diff --git a/khal/khalendar/event.py b/khal/khalendar/event.py index 3af1531cd..4de51e53c 100644 --- a/khal/khalendar/event.py +++ b/khal/khalendar/event.py @@ -355,6 +355,13 @@ def organizer(self) -> str: else: return email + def update_organizer(self, organizer: str) -> None: + if organizer: + self._vevents[self.ref]['ORGANIZER'] = organizer + else: + self._vevents[self.ref].pop('ORGANIZER') + + @property def url(self) -> str: if 'URL' not in self._vevents[self.ref]: diff --git a/khal/ui/editor.py b/khal/ui/editor.py index fd255642e..98d76e7d2 100644 --- a/khal/ui/editor.py +++ b/khal/ui/editor.py @@ -377,6 +377,7 @@ def __init__( self.description = event.description self.location = event.location + self.organizer = event.organizer self.attendees = event.attendees self.categories = event.categories self.url = event.url @@ -419,6 +420,10 @@ def decorate_choice(c) -> tuple[str, str]: self.categories = urwid.AttrMap(ExtendedEdit( caption=('caption', 'Categories: '), edit_text=self.categories), 'edit', 'edit focus', ) + + self.organizer = urwid.AttrMap(ExtendedEdit( + caption=('caption', 'Organizer: '), edit_text=self.organizer), 'edit', 'edit focus', + ) self.attendees = urwid.AttrMap( ExtendedEdit( caption=('caption', 'Attendees: '), @@ -442,6 +447,7 @@ def decorate_choice(c) -> tuple[str, str]: self.description, self.url, divider, + self.organizer, self.attendees, divider, self.startendeditor, @@ -512,6 +518,8 @@ def changed(self): return True if get_wrapped_text(self.url) != self.event.url: return True + if get_wrapped_text(self.organizer) != self.event.organizer: + return True if get_wrapped_text(self.attendees) != self.event.attendees: return True if self.startendeditor.changed or self.calendar_chooser.changed: @@ -526,6 +534,7 @@ def update_vevent(self): self.event.update_summary(get_wrapped_text(self.summary)) self.event.update_description(get_wrapped_text(self.description)) self.event.update_location(get_wrapped_text(self.location)) + self.event.update_organizer(get_wrapped_text(self.organizer)) self.event.update_attendees(get_wrapped_text(self.attendees).split(',')) self.event.update_categories(get_wrapped_text(self.categories).split(',')) self.event.update_url(get_wrapped_text(self.url))