1.1 --- a/imiptools/client.py Mon Oct 16 23:11:23 2017 +0200
1.2 +++ b/imiptools/client.py Mon Oct 16 23:21:15 2017 +0200
1.3 @@ -24,8 +24,8 @@
1.4 from imiptools.data import Object, check_delegation, get_address, \
1.5 get_sender_identities, get_uri, \
1.6 get_window_end, is_new_object, make_freebusy, \
1.7 - make_uid, to_part, uri_dict, uri_item, uri_items, \
1.8 - uri_parts, uri_values
1.9 + make_uid, to_part, update_attendees_with_delegates, \
1.10 + uri_dict, uri_item, uri_items, uri_parts, uri_values
1.11 from imiptools.dates import check_permitted_values, format_datetime, \
1.12 get_datetime, get_default_timezone, \
1.13 get_duration, get_time, get_timestamp, \
1.14 @@ -547,32 +547,21 @@
1.15
1.16 # Get attendee details in a usable form.
1.17
1.18 - attendee_map = uri_dict(obj.get_value_map("ATTENDEE"))
1.19 + stored_attendees = uri_dict(obj.get_value_map("ATTENDEE"))
1.20
1.21 for attendee, attendee_attr in attendees.items():
1.22
1.23 # Update attendance in the loaded object for any recognised
1.24 # attendees.
1.25
1.26 - if attendee_map.has_key(attendee):
1.27 - attendee_map[attendee] = attendee_attr
1.28 -
1.29 - # Check for delegated attendees.
1.30 -
1.31 - for attendee, attendee_attr in attendees.items():
1.32 + if stored_attendees.has_key(attendee):
1.33 + stored_attendees[attendee] = attendee_attr
1.34
1.35 - # Identify delegates and check the delegation using the updated
1.36 - # attendee information.
1.37 -
1.38 - if not attendee_map.has_key(attendee) and \
1.39 - attendee_attr.has_key("DELEGATED-FROM") and \
1.40 - check_delegation(attendee_map, attendee, attendee_attr):
1.41 -
1.42 - attendee_map[attendee] = attendee_attr
1.43 + update_attendees_with_delegates(stored_attendees, attendees)
1.44
1.45 # Set the new details and store the object.
1.46
1.47 - obj["ATTENDEE"] = attendee_map.items()
1.48 + obj["ATTENDEE"] = stored_attendees.items()
1.49
1.50 # Set a specific recurrence or the complete event if not an additional
1.51 # occurrence.