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
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
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