Example #1
0
 def relations_vocab(self):
     """XXX: move relations lookup
     """
     vocab = list()
     relations = self.model.metadata.relations
     if not relations:
         return vocab
     md = SolrMetadata(solr_config(self.model), SOLR_FIELDS)
     for relation in relations:
         rel = md.query(q='uid:%s' % relation, fl='title')
         if rel and rel[0].get('title'):
             title = rel[0].title
         else:
             # happens if relation is not found in solr
             title = relation
         vocab.append((relation, title))
     return vocab
Example #2
0
 def relations(self):
     """XXX: move relations lookup
     """
     relations = self.model.metadata.relations
     ret = list()
     if not relations:
         return ret
     query = Term('uid', relations[0])
     for rel in relations[1:]:
         query = query | Term('uid', rel)
     md = SolrMetadata(solr_config(self.model), SOLR_FIELDS)
     for relmd in md.query(q=query, fl='title,path'):
         ret.append({
             'target': '%s/%s' % (self.request.application_url, relmd.path),
             'title': relmd.title,
         })
     return ret
Example #3
0
def solr_livesearch_callback(model, request):
    result = list()
    if not authenticated_userid(request):
        return result
    config = solr_config(model)
    term = request.params['term']
    s_term = '%s*~' % term
    query = Term('title', s_term) \
          | Term('description', s_term) \
          | Term('creator', s_term) \
          | Term('author', s_term) \
          | Term('body', s_term)
    for md in Metadata(config, SOLR_FIELDS).query(q=query, fl='title,path'):
        result.append({
            'label': md.title,
            'value': term,
            'target': '/'.join([request.application_url, md.path]),
        })
    return result