1.1 --- a/imipweb/calendar.py Tue Sep 29 19:28:40 2015 +0200
1.2 +++ b/imipweb/calendar.py Tue Sep 29 21:03:03 2015 +0200
1.3 @@ -20,7 +20,7 @@
1.4 """
1.5
1.6 from datetime import datetime
1.7 -from imiptools.data import get_address, get_uri, uri_values
1.8 +from imiptools.data import get_address, get_uri, uri_parts
1.9 from imiptools.dates import format_datetime, get_datetime, \
1.10 get_datetime_item, get_end_of_day, get_start_of_day, \
1.11 get_start_of_next_day, get_timestamp, ends_on_same_day, \
1.12 @@ -123,21 +123,29 @@
1.13 start, end = coalesced[0]
1.14 start_value, start_attr = get_datetime_item(start, tzid)
1.15 end_value, end_attr = get_datetime_item(end, tzid)
1.16 + user_attr = self.get_user_attributes()
1.17
1.18 rwrite(("UID", {}, uid))
1.19 rwrite(("SUMMARY", {}, summary or ("New event at %s" % utcnow)))
1.20 rwrite(("DTSTAMP", {}, utcnow))
1.21 rwrite(("DTSTART", start_attr, start_value))
1.22 rwrite(("DTEND", end_attr, end_value))
1.23 - rwrite(("ORGANIZER", {}, self.user))
1.24 + rwrite(("ORGANIZER", user_attr, self.user))
1.25 +
1.26 + cn_participants = uri_parts(filter(None, participants))
1.27 + participants = []
1.28
1.29 - participants = uri_values(filter(None, participants))
1.30 -
1.31 - for participant in participants:
1.32 - rwrite(("ATTENDEE", {"RSVP" : "TRUE", "PARTSTAT" : "NEEDS-ACTION"}, participant))
1.33 + for cn, participant in cn_participants:
1.34 + d = {"RSVP" : "TRUE", "PARTSTAT" : "NEEDS-ACTION"}
1.35 + if cn:
1.36 + d["CN"] = cn
1.37 + rwrite(("ATTENDEE", d, participant))
1.38 + participants.append(participant)
1.39
1.40 if self.user not in participants:
1.41 - rwrite(("ATTENDEE", {"PARTSTAT" : "ACCEPTED"}, self.user))
1.42 + d = {"PARTSTAT" : "ACCEPTED"}
1.43 + d.update(user_attr)
1.44 + rwrite(("ATTENDEE", d, self.user))
1.45
1.46 # Define additional occurrences if many slots are defined.
1.47