Ejemplo n.º 1
0
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')
Ejemplo n.º 2
0
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')
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
 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))
Ejemplo n.º 7
0
 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))
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
 def find_attachments(self):
     return Attachment.find(~AttachmentFolder.is_deleted, ~Attachment.is_deleted,
                            AttachmentFolder.event_id == int(self.event.id), _join=AttachmentFolder)
Ejemplo n.º 10
0
 def find_attachments(self):
     return Attachment.find(~AttachmentFolder.is_deleted, ~Attachment.is_deleted,
                            AttachmentFolder.event_id == int(self.event.id), _join=AttachmentFolder)
Ejemplo n.º 11
0
 def _count_attachments(cls, obj):
     return Attachment.find(~AttachmentFolder.is_deleted, AttachmentFolder.linked_object == obj,
                            is_deleted=False, _join=AttachmentFolder).count()
Ejemplo n.º 12
0
 def _count_attachments(cls, obj):
     return Attachment.find(~AttachmentFolder.is_deleted,
                            AttachmentFolder.linked_object == obj,
                            is_deleted=False,
                            _join=AttachmentFolder).count()