Ejemplo n.º 1
0
 def index_references(cls, document_id):
     """Helper function to get reference data for indexing."""
     # cf. aleph.index.entities.generate_entities()
     from aleph.model.entity import Entity, collection_entity_table
     cet = collection_entity_table.alias()
     q = db.session.query(Reference.entity_id, cet.c.collection_id)
     q = q.filter(cet.c.entity_id == Reference.entity_id)
     q = q.filter(Reference.document_id == document_id)
     q = q.filter(Entity.id == Reference.entity_id)
     q = q.filter(Entity.state == Entity.STATE_ACTIVE)
     return q.all()
Ejemplo n.º 2
0
 def index_references(cls, document_id):
     """Helper function to get reference data for indexing."""
     # cf. aleph.index.entities.generate_entities()
     from aleph.model.entity import Entity, collection_entity_table
     cet = collection_entity_table.alias()
     q = db.session.query(Reference.entity_id, cet.c.collection_id)
     q = q.filter(cet.c.entity_id == Reference.entity_id)
     q = q.filter(Reference.document_id == document_id)
     q = q.filter(Entity.id == Reference.entity_id)
     q = q.filter(Entity.state == Entity.STATE_ACTIVE)
     return q.all()
Ejemplo n.º 3
0
 def filters(cls, q, start_collection, start_entity_id=None,
             end_collection_id=[], labels=[], types=[]):
     if start_entity_id is not None:
         q = q.filter(cls.start_entity_id == start_entity_id)
     else:
         cet = collection_entity_table.alias()
         q = q.join(cet, cet.c.entity_id == cls.start_entity_id)
         q = q.filter(cet.c.collection_id == start_collection.id)
     q = q.filter(cls.end_collection_id.overlap(end_collection_id))
     pred = not_(cls.end_collection_id.contains([start_collection.id]))
     q = q.filter(pred)
     if len(labels):
         labels = cast(labels, ARRAY(db.Unicode()))
         q = q.filter(cls.labels.contained_by(labels))
     if len(types):
         types = cast(types, ARRAY(db.Unicode()))
         q = q.filter(cls.types.contained_by(types))
     return q