def update_event( self, calendar: Calendar, event: iCalendarEvent, event_name: str, current_user: User, ) -> Content: """ Update Content Event :param calendar: Event calendar owner :param event: ICS event :param event_name: Event name (ID) like 20160602T083511Z-18100-1001-1-71_Bastien-20160602T083516Z.ics :param current_user: Current modification asking user :return: Updated Content """ workspace = None if isinstance(calendar, WorkspaceCalendar): workspace = calendar.related_object elif isinstance(calendar, UserCalendar): pass else: raise UnknownCalendarType('Type "{0}" is not implemented' .format(type(calendar))) content_api = ContentApi( current_user, force_show_all_types=True, disable_user_workspaces_filter=True ) content = content_api.find_one_by_unique_property( property_name='name', property_value=event_name, workspace=workspace ) with new_revision(content): self.populate_content_with_event( content, event, event_name ) content.revision_type = ActionDescription.EDITION DBSession.flush() transaction.commit() return content
def delete_event_with_name(self, event_name: str, current_user: User)\ -> Content: """ Delete Content Event :param event_name: Event name (ID) like 20160602T083511Z-18100-1001-1-71_Bastien-20160602T083516Z.ics :param current_user: Current deletion asking user :return: Deleted Content """ content_api = ContentApi(current_user, force_show_all_types=True) content = content_api.find_one_by_unique_property( property_name='name', property_value=event_name, workspace=None) with new_revision(content): content_api.delete(content) DBSession.flush() transaction.commit() return content
def update_event( self, calendar: Calendar, event: iCalendarEvent, event_name: str, current_user: User, ) -> Content: """ Update Content Event :param calendar: Event calendar owner :param event: ICS event :param event_name: Event name (ID) like 20160602T083511Z-18100-1001-1-71_Bastien-20160602T083516Z.ics :param current_user: Current modification asking user :return: Updated Content """ workspace = None if isinstance(calendar, WorkspaceCalendar): workspace = calendar.related_object elif isinstance(calendar, UserCalendar): pass else: raise UnknownCalendarType('Type "{0}" is not implemented'.format( type(calendar))) content_api = ContentApi(current_user, force_show_all_types=True, disable_user_workspaces_filter=True) content = content_api.find_one_by_unique_property( property_name='name', property_value=event_name, workspace=workspace) with new_revision(content): self.populate_content_with_event(content, event, event_name) content.revision_type = ActionDescription.EDITION DBSession.flush() transaction.commit() return content
def delete_event_with_name(self, event_name: str, current_user: User)\ -> Content: """ Delete Content Event :param event_name: Event name (ID) like 20160602T083511Z-18100-1001-1-71_Bastien-20160602T083516Z.ics :param current_user: Current deletion asking user :return: Deleted Content """ content_api = ContentApi(current_user, force_show_all_types=True) content = content_api.find_one_by_unique_property( property_name='name', property_value=event_name, workspace=None ) with new_revision(content): content_api.delete(content) DBSession.flush() transaction.commit() return content