Esempio n. 1
0
 def get_entity_count(self, state=None):
     from aleph.model.entity import Entity
     q = Entity.all()
     q = q.filter(Entity.collection_id == self.id)
     if state is not None:
         q = q.filter(Entity.state == state)
     return q.count()
Esempio n. 2
0
 def label(self):
     if self.custom_label is not None:
         return self.custom_label
     # This is weird. Should live somewhere else.
     fragments = []
     q = self.query.get('q')
     if q and len(q):
         fragments.append('matching "%s"' % ''.join(q))
     entities = self.query.get('entity')
     if entities and len(entities):
         try:
             entities = Entity.by_id_set(entities)
             sub_fragments = []
             for entity in entities.values():
                 sub_fragments.append('"%s"' % entity.name)
             fragment = ' and '.join(sub_fragments)
             fragments.append('mentioning %s' % fragment)
         except:
             pass
     for key in self.query.keys():
         try:
             if not key.startswith('filter:'):
                 continue
             _, field = key.split(':', 1)
             # TODO: source_id special handling?
             field = field.replace('_', ' ')
             value = '; '.join(self.query.get(key))
             fragments.append('filtered by %s: %s' % (field, value))
         except:
             pass
     if not len(fragments):
         return 'Everything'
     return 'Results %s' % ', '.join(fragments)
Esempio n. 3
0
 def get_entity_count(self, state=None):
     from aleph.model.entity import Entity, collection_entity_table
     q = Entity.all()
     q = q.join(collection_entity_table)
     q = q.filter(collection_entity_table.c.collection_id == self.id)
     if state is not None:
         q = q.filter(Entity.state == state)
     return q.count()
Esempio n. 4
0
def convert_entities(entities):
    results = []
    buckets = entities.get('buckets', [])
    entities = Entity.by_id_set([e.get('key') for e in buckets])
    for bucket in buckets:
        entity = entities.get(bucket.get('key'))
        if entity is None:
            continue
        data = entity.to_dict()
        data['count'] = bucket.get('doc_count')
        results.append(data)
    return results