1.1 --- a/imipweb/handler.py Wed May 20 16:56:43 2015 +0200
1.2 +++ b/imipweb/handler.py Wed May 20 18:39:06 2015 +0200
1.3 @@ -21,11 +21,9 @@
1.4
1.5 from imiptools.client import Client
1.6 from imiptools.data import get_address, get_uri, make_freebusy, \
1.7 - to_part, uri_item, uri_items, uri_values
1.8 + to_part, uri_item, uri_values
1.9 from imiptools.dates import format_datetime, get_timestamp
1.10 from imiptools.handlers import Handler
1.11 -from imiptools.period import update_freebusy
1.12 -from imipweb.data import event_period_from_period
1.13
1.14 class ManagerHandler(Handler):
1.15
1.16 @@ -76,15 +74,16 @@
1.17
1.18 freebusy = self.store.get_freebusy(self.user)
1.19
1.20 - # Replace the non-updated free/busy details for this event with
1.21 - # newer details (since the outgoing handler updates this user's
1.22 - # free/busy details).
1.23 + # Since the outgoing handler updates this user's free/busy details,
1.24 + # the stored details will probably not have the updated details at
1.25 + # this point, so we update our copy for serialisation as the bundled
1.26 + # free/busy object.
1.27
1.28 self.update_freebusy(freebusy,
1.29 self.obj.get_periods(self.get_tzid(), self.get_window_end()))
1.30
1.31 - user_attr = self.messenger and self.messenger.sender != get_address(self.user) and \
1.32 - {"SENT-BY" : get_uri(self.messenger.sender)} or {}
1.33 + user_attr = {}
1.34 + self.update_sender(user_attr)
1.35
1.36 parts.append(to_part("PUBLISH", [
1.37 make_freebusy(freebusy, uid, self.user, user_attr)
1.38 @@ -101,7 +100,7 @@
1.39 def process_received_request(self):
1.40
1.41 """
1.42 - Process the current request for the given 'user'. Return whether any
1.43 + Process the current request for the current user. Return whether any
1.44 action was taken.
1.45 """
1.46
1.47 @@ -109,14 +108,14 @@
1.48
1.49 attendee_attr = self.update_participation(self.obj)
1.50
1.51 - if attendee_attr:
1.52 - self.obj["ATTENDEE"] = [(self.user, attendee_attr)]
1.53 - self.update_dtstamp()
1.54 - self.set_sequence(False)
1.55 - self.send_message("REPLY", get_address(self.user), from_organiser=False)
1.56 - return True
1.57 + if not attendee_attr:
1.58 + return False
1.59
1.60 - return False
1.61 + self.obj["ATTENDEE"] = [(self.user, attendee_attr)]
1.62 + self.update_dtstamp()
1.63 + self.set_sequence(False)
1.64 + self.send_message("REPLY", get_address(self.user), from_organiser=False)
1.65 + return True
1.66
1.67 def process_created_request(self, method, to_cancel=None, to_unschedule=None):
1.68
1.69 @@ -128,11 +127,11 @@
1.70 messages is provided.
1.71 """
1.72
1.73 + # Here, the organiser should be the current user.
1.74 +
1.75 organiser, organiser_attr = uri_item(self.obj.get_item("ORGANIZER"))
1.76
1.77 - if self.messenger and self.messenger.sender != get_address(organiser):
1.78 - organiser_attr["SENT-BY"] = get_uri(self.messenger.sender)
1.79 -
1.80 + self.update_sender(organiser_attr)
1.81 self.update_dtstamp()
1.82 self.set_sequence(True)
1.83