def _merge_users(target, source, **kwargs): from indico.modules.attachments.models.attachments import Attachment, AttachmentFile from indico.modules.attachments.models.principals import AttachmentPrincipal, AttachmentFolderPrincipal Attachment.find(user_id=source.id).update({Attachment.user_id: target.id}) AttachmentFile.find(user_id=source.id).update({AttachmentFile.user_id: target.id}) AttachmentPrincipal.merge_users(target, source, 'attachment') AttachmentFolderPrincipal.merge_users(target, source, 'folder')
def _merge_users(target, source, **kwargs): from indico.modules.attachments.models.attachments import Attachment, AttachmentFile from indico.modules.attachments.models.principals import AttachmentPrincipal, AttachmentFolderPrincipal Attachment.find(user_id=source.id).update({Attachment.user_id: target.id}) AttachmentFile.find(user_id=source.id).update( {AttachmentFile.user_id: target.id}) AttachmentPrincipal.merge_users(target, source, 'attachment') AttachmentFolderPrincipal.merge_users(target, source, 'folder')
def _build_base_query(self, added_since=None): query = Attachment.find(Attachment.type == AttachmentType.file, ~AttachmentFolder.is_deleted, ~Attachment.is_deleted, AttachmentFolder.event_new == self.event_new, _join=AttachmentFolder) if added_since is not None: query = query.join(Attachment.file).filter(cast(AttachmentFile.created_dt, Date) >= added_since) return query
def _build_base_query(self, added_since=None): query = Attachment.find(Attachment.type == AttachmentType.file, ~AttachmentFolder.is_deleted, ~Attachment.is_deleted, AttachmentFolder.event == self.event, _join=AttachmentFolder) if added_since is not None: query = query.join(Attachment.file).filter(cast(AttachmentFile.created_dt, Date) >= added_since) return query
def cds_link_exists(obj, url): query = (Attachment.find(~Attachment.is_deleted, ~AttachmentFolder.is_deleted, AttachmentFolder.object == obj, Attachment.type == AttachmentType.link, Attachment.link_url == url, _join=AttachmentFolder).options(noload('*'))) return db.session.query(query.exists()).scalar()
def materialToXMLMarc21(self, obj, out=None): if not out: out = self._XMLGen for attachment in (Attachment.find(~AttachmentFolder.is_deleted, AttachmentFolder.object == obj, is_deleted=False, _join=AttachmentFolder) .options(joinedload(Attachment.legacy_mapping))): if attachment.can_access(self.__aw.getUser().user): self.resourceToXMLMarc21(attachment, out) self._generateAccessList(acl=self._attachment_access_list(attachment), out=out, objId=self._attachment_unique_id(attachment, add_prefix=False))
def materialToXMLMarc21(self, obj, out=None): if not out: out = self._XMLGen for attachment in (Attachment.find(~AttachmentFolder.is_deleted, AttachmentFolder.object == obj, is_deleted=False, _join=AttachmentFolder) .options(joinedload(Attachment.legacy_mapping))): if attachment.can_access(self.__aw.getUser().user): self.resourceToXMLMarc21(attachment, out) self._generateAccessList(acl=self._attachment_access_list(attachment), out=out, objId=self._attachment_unique_id(attachment, add_prefix=False))
def _process(self): ids = request.args.getlist('a') results = {int(id_): cache.get(id_) for id_ in ids} finished = [id_ for id_, status in results.iteritems() if status == 'finished'] pending = [id_ for id_, status in results.iteritems() if status == 'pending'] containers = {} if finished: tpl = get_template_module('attachments/_display.html') for attachment in Attachment.find(Attachment.id.in_(finished)): if not attachment.folder.can_view(session.user): continue containers[attachment.id] = tpl.render_attachments_folders(item=attachment.folder.object) return jsonify(finished=finished, pending=pending, containers=containers)
def find_attachments(self): return Attachment.find(~AttachmentFolder.is_deleted, ~Attachment.is_deleted, AttachmentFolder.event_id == int(self.event.id), _join=AttachmentFolder)
def find_attachments(self): return Attachment.find(~AttachmentFolder.is_deleted, ~Attachment.is_deleted, AttachmentFolder.event_id == int(self.event.id), _join=AttachmentFolder)
def _count_attachments(cls, obj): return Attachment.find(~AttachmentFolder.is_deleted, AttachmentFolder.linked_object == obj, is_deleted=False, _join=AttachmentFolder).count()
def _count_attachments(cls, obj): return Attachment.find(~AttachmentFolder.is_deleted, AttachmentFolder.linked_object == obj, is_deleted=False, _join=AttachmentFolder).count()