def __init__(self, *args, **kwargs): linked_object = kwargs.pop('linked_object') self.event = getattr(linked_object, 'event', None) # not present in categories super().__init__(*args, **kwargs) self.folder.query = (AttachmentFolder.find( object=linked_object, is_default=False, is_deleted=False).order_by(db.func.lower(AttachmentFolder.title)))
def build_material_legacy_api_data(linked_object): # Skipping root folder and files in legacy API event = linked_object.getConference() try: cache = g.legacy_api_event_attachments[event] except (AttributeError, KeyError): if 'legacy_api_event_attachments' not in g: g.legacy_api_event_attachments = {} g.legacy_api_event_attachments[event] = cache = defaultdict(list) query = (AttachmentFolder.find( event_id=int(linked_object.getConference().id), is_deleted=False, is_default=False).options( joinedload(AttachmentFolder.legacy_mapping), joinedload(AttachmentFolder.attachments))) for folder in query: cache[folder.linked_object].append(folder) return filter( None, map(_build_folder_legacy_api_data, cache.get(linked_object, [])))
def _get_folders_protection_info(linked_object): folders = AttachmentFolder.find(object=linked_object, is_deleted=False) return {folder.id: folder.is_self_protected for folder in folders}
def __init__(self, *args, **kwargs): linked_object = kwargs.pop('linked_object') super(AttachmentFormBase, self).__init__(*args, **kwargs) self.folder.query = (AttachmentFolder.find( object=linked_object, is_default=False, is_deleted=False).order_by(db.func.lower(AttachmentFolder.title)))
def find_folders(self): return AttachmentFolder.find(event_id=int(self.event.id), is_deleted=False)