# HG changeset patch # User Paul Boddie # Date 1427839216 -7200 # Node ID 712edee5d697a4c291e7adf4d9421e8c0fcc5946 # Parent f5fd49a85dc5703b53a2808799a3b79378ac695d Changed form handling to only update stored events when performing one of the appropriate actions. diff -r f5fd49a85dc5 -r 712edee5d697 imipweb/event.py --- a/imipweb/event.py Tue Mar 31 20:21:14 2015 +0200 +++ b/imipweb/event.py Wed Apr 01 00:00:16 2015 +0200 @@ -73,33 +73,43 @@ self.redirect(self.env.get_path()) return None - # Update the object. - - if args.has_key("summary"): - obj["SUMMARY"] = [(args["summary"][0], {})] - - attendees = uri_dict(obj.get_value_map("ATTENDEE")) - - if args.has_key("partstat"): - if attendees.has_key(self.user): - attendees[self.user]["PARTSTAT"] = args["partstat"][0] - if attendees[self.user].has_key("RSVP"): - del attendees[self.user]["RSVP"] - is_organiser = get_uri(obj.get_value("ORGANIZER")) == self.user # Obtain the user's timezone and process datetime values. update = False + periods = None if is_organiser: periods, errors = self.handle_all_period_controls() if errors: return errors - elif periods: + + # Update the object. + + if reply or invite or cancel or save: + + # Update time periods (main and recurring). + + if periods: self.set_period_in_object(obj, periods[0]) self.set_periods_in_object(obj, periods[1:]) + # Update summary. + + if args.has_key("summary"): + obj["SUMMARY"] = [(args["summary"][0], {})] + + # Update attendee participation. + + attendees = uri_dict(obj.get_value_map("ATTENDEE")) + + if args.has_key("partstat"): + if attendees.has_key(self.user): + attendees[self.user]["PARTSTAT"] = args["partstat"][0] + if attendees[self.user].has_key("RSVP"): + del attendees[self.user]["RSVP"] + # Obtain any participants to be added or removed. removed = args.get("remove")