# HG changeset patch # User Paul Boddie # Date 1423582996 -3600 # Node ID 1b3168ab5512545db82c32bbe3260ab7408e1439 # Parent 47759fe379ca4b997790a3ceaeacd93586ddd097 Added missing URI conversions. diff -r 47759fe379ca -r 1b3168ab5512 imip_manager.py --- a/imip_manager.py Tue Feb 10 00:40:51 2015 +0100 +++ b/imip_manager.py Tue Feb 10 16:43:16 2015 +0100 @@ -31,7 +31,8 @@ sys.path.append(LIBRARY_PATH) from imiptools.content import Handler -from imiptools.data import get_address, get_uri, make_freebusy, Object, to_part +from imiptools.data import get_address, get_uri, make_freebusy, Object, to_part, \ + uri_dict, uri_item, uri_items, uri_values from imiptools.dates import format_datetime, format_time, get_date, get_datetime, \ get_datetime_item, get_default_timezone, \ get_end_of_day, get_start_of_day, get_start_of_next_day, \ @@ -155,8 +156,8 @@ # also attending. The updated event will be saved by the outgoing # handler. - organiser = self.obj.get_value("ORGANIZER") - attendees = self.obj.get_values("ATTENDEE") + organiser = uri_values(self.obj.get_value("ORGANIZER")) + attendees = uri_values(self.obj.get_values("ATTENDEE")) if for_organiser: recipients = [get_address(attendee) for attendee in attendees if attendee != self.user] @@ -210,7 +211,7 @@ # Reply only on behalf of this user. - for attendee, attendee_attr in self.obj.get_items("ATTENDEE"): + for attendee, attendee_attr in uri_items(self.obj.get_items("ATTENDEE")): if attendee == self.user: if attendee_attr.has_key("RSVP"): @@ -242,13 +243,13 @@ provided. """ - organiser, organiser_attr = self.obj.get_item("ORGANIZER") + organiser, organiser_attr = uri_item(self.obj.get_item("ORGANIZER")) if self.messenger and self.messenger.sender != get_address(organiser): organiser_attr["SENT-BY"] = get_uri(self.messenger.sender) if removed: - attendee_map = self.obj.get_value_map("ATTENDEE") + attendee_map = uri_dict(self.obj.get_value_map("ATTENDEE")) self.obj["ATTENDEE"] = [(attendee, attendee_attr) for (attendee, attendee_attr) in attendee_map.items() if attendee not in removed] @@ -518,8 +519,8 @@ if args.has_key("summary"): obj["SUMMARY"] = [(args["summary"][0], {})] - organisers = obj.get_value_map("ORGANIZER") - attendees = obj.get_value_map("ATTENDEE") + organisers = uri_dict(obj.get_value_map("ORGANIZER")) + attendees = uri_dict(obj.get_value_map("ATTENDEE")) if args.has_key("partstat"): for d in attendees, organisers: @@ -528,7 +529,7 @@ if d[self.user].has_key("RSVP"): del d[self.user]["RSVP"] - is_organiser = obj.get_value("ORGANIZER") == self.user + is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user # Obtain any participants to be removed. @@ -670,9 +671,9 @@ page = self.page - is_organiser = obj.get_value("ORGANIZER") == self.user + is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user - attendees = obj.get_value_map("ATTENDEE") + attendees = uri_dict(obj.get_value_map("ATTENDEE")) is_attendee = attendees.has_key(self.user) attendee_attr = attendees.get(self.user) @@ -800,7 +801,7 @@ page.thead.close() page.tbody() - is_organiser = obj.get_value("ORGANIZER") == self.user + is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user for name, label in self.property_items: page.tr() @@ -885,6 +886,8 @@ first = False if name in ("ATTENDEE", "ORGANIZER"): + value = get_uri(value) + page.td(class_="objectattribute") page.add(value) page.add(" ") @@ -1443,7 +1446,7 @@ has_continued = continuation and point != start will_continue = not ends_on_same_day(point, end, tzid) - is_organiser = obj and obj.get_value("ORGANIZER") == self.user + is_organiser = obj and get_uri(obj.get_value("ORGANIZER")) == self.user css = " ".join( ["event"] + diff -r 47759fe379ca -r 1b3168ab5512 imiptools/content.py --- a/imiptools/content.py Tue Feb 10 00:40:51 2015 +0100 +++ b/imiptools/content.py Tue Feb 10 16:43:16 2015 +0100 @@ -373,8 +373,8 @@ NOTE: incorporated into any new object assessment. """ - old_attendees = obj.get_value_map("ATTENDEE") - new_attendees = self.obj.get_value_map("ATTENDEE") + old_attendees = uri_dict(obj.get_value_map("ATTENDEE")) + new_attendees = uri_dict(self.obj.get_value_map("ATTENDEE")) for attendee, attr in old_attendees.items(): old_partstat = attr.get("PARTSTAT") diff -r 47759fe379ca -r 1b3168ab5512 imiptools/data.py --- a/imiptools/data.py Tue Feb 10 00:40:51 2015 +0100 +++ b/imiptools/data.py Tue Feb 10 16:43:16 2015 +0100 @@ -245,6 +245,11 @@ def get_uri(value): return value.lower().startswith("mailto:") and value.lower() or ":" in value and value or "mailto:%s" % value.lower() +uri_value = get_uri + +def uri_values(values): + return map(get_uri, values) + def uri_dict(d): return dict([(get_uri(key), value) for key, value in d.items()])