# HG changeset patch # User Paul Boddie # Date 1445017490 -7200 # Node ID aa8db311ced1a6d28f7e0edefc357da3fa34f353 # Parent 85465e12b2a7e17e6bb4afb15a1ce8fe909d24c0 Consolidated attendee and recurrence removal logic. diff -r 85465e12b2a7 -r aa8db311ced1 imipweb/event.py --- a/imipweb/event.py Fri Oct 16 19:39:04 2015 +0200 +++ b/imipweb/event.py Fri Oct 16 19:44:50 2015 +0200 @@ -63,7 +63,9 @@ without notification. """ - return self.can_edit_recurrence(recurrence) and recurrence.origin != "RRULE" + return self.can_change_object() and \ + (self.can_edit_recurrence(recurrence) or not self.is_organiser()) and \ + recurrence.origin != "RRULE" def can_edit_recurrence(self, recurrence): @@ -84,7 +86,8 @@ notification. """ - return self.can_edit_attendee(attendee) or attendee == self.user and self.is_organiser() + return self.can_change_object() and \ + (self.can_edit_attendee(attendee) or attendee == self.user and self.is_organiser()) def can_edit_attendee(self, attendee): @@ -401,7 +404,7 @@ # Permit organisers to remove attendees. - if self.can_change_object() and (self.can_remove_attendee(attendee_uri) or self.is_organiser()): + if self.can_remove_attendee(attendee_uri) or self.is_organiser(): # Permit the removal of newly-added attendees. @@ -532,9 +535,7 @@ # counter-proposal. Organisers may need to unschedule recurrences # instead. - remove_type = self.can_change_object() and \ - (self.can_remove_recurrence(period) or not self.is_organiser()) and \ - "submit" or "checkbox" + remove_type = self.can_remove_recurrence(period) and "submit" or "checkbox" self.control("recur-remove", remove_type, str(index), str(index) in args.get("recur-remove", []), @@ -1183,7 +1184,7 @@ except (IndexError, ValueError): continue - if self.can_remove_recurrence(recurrence) or not self.is_organiser(): + if self.can_remove_recurrence(recurrence): del recurrences[i] correction += 1 else: