def transform_num_votes(self, instance): return instance.votes.count() #def transform_searches(self, instance): #searches = [] #for search in instance.searches.all(): #searches.append('"%s"' % search.label) #return ', '.join(searches) #def transform_districts(self, instance): #districts = [] #for district in instance.household.districts.all(): #districts.append(unicode(district)) #return ', '.join(districts) solango.register(Voter, VoterDocument) #class HouseholdDocument(BaseSearchDocument): # address = solango.fields.TextField(copy=True) # street = solango.fields.CharField() # number = solango.fields.CharField() # other = solango.fields.CharField(copy=True) # zip = solango.fields.CharField(copy=True) # city = solango.fields.CharField(copy=True) # state = solango.fields.CharField(copy=True) # districts = solango.fields.TextField() # # class Media: # template = 'voters/solango/household_document.html' # # def transform_address(self, instance):
" Saves the render of the homepage result " return render_to_string("discussion/render/singular.html", {"discussion": instance}) def transform_blob(self, instance): " Saves all the discussion content " output = "" for c in instance.comments(): output += "\n\n\n%s\n\n\n" % (c.text) for s in c.secrets.all(): output += "\n\n\n%s\n\n\n" % (s.title) return output def transform_comments(self, instance): " Most number of discussions " return instance.comment_count def transform_secrets(self, instance): " Most number of secret proposals " return instance.proposal_count def transform_created(self, instance): " When the discussion was created " return instance.created_at def transform_updated(self, instance): " Last time the discussion was commented on - or falls back to when it was created " return instance.updated_at solango.register(Discussion, DiscussionDocument)
return instance.tags.split(',') def transform_entity(self, instance, what): """get a model for solr""" whats = [] for _what in instance.get_entity(what): whats.append(str(_what)) return whats def transform_people(self, instance): """get people for solr""" return self.transform_entity(instance, 'Person') def transform_organisations(self, instance): """get organisations for solr""" return self.transform_entity(instance, 'Organisation') def transform_places(self, instance): """get places for solr""" return self.transform_entity(instance, 'Place') def get_model(self): """get model""" if not self._cached_model: self._cached_model = Article.objects.get( id=self.fields['id'].value ) return self._cached_model solango.register(Article, ArticleDocument)
def transform_photocount(self, instance): return len(instance.photos()) def render(self, template): return self.data_dict["render_%s" % template] @classmethod def add_renders(self): # render func def render_func(template): # gets self, instance return lambda s, i: render_to_string(SECRET_RENDER_FOLDER % template, {"secret": i}) # save for each language for t in SECRET_RENDER_TEMPLATES: # Ugly hack to dynamically add fields onto SearchDocument name = "render_%s" % t # need to create a new field instance for each template rendering field = solango.fields.TextField(indexed=False, stored=True) # name the field and save to base_fields field.name = name SecretDocument.base_fields[name] = field # add transform accessor for save setattr(SecretDocument, "transform_%s" % name, render_func(t)) return self SecretDocument.add_renders() solango.register(Secret, SecretDocument)
class Media: template = 'transitlabourapp/page_searchdocument.html' def transform_date(self, instance): return instance.published_date def tranform_author(self,instance): return instance.author.first_name + ' ' + instance.author.last_name class BlogSearchDocument(solango.SearchDocument): date = solango.fields.DateField() header = solango.fields.CharField(copy=True) teaser_text = solango.fields.TextField(copy=True) body = solango.fields.TextField(copy=True) author = solango.fields.CharField(copy=True) slug = solango.fields.CharField(copy=True) class Media: template = 'transitlabourapp/blog_searchdocument.html' def transform_date(self, instance): return instance.published_date def tranform_author(self,instance): return instance.author.first_name + ' ' + instance.author.last_name solango.register(Page, PageSearchDocument) solango.register(Blog, BlogSearchDocument)
import solango from lifeflow.models import Comment, Entry class EntryDocument(solango.SearchDocument): date = solango.fields.DateField() summary = solango.fields.TextField(copy=True) title = solango.fields.CharField(copy=True) tags = solango.fields.CharField(copy=True) content = solango.fields.TextField(copy=True) def transform_summary(self, instance): return instance.summary def transform_tags(self, instance): tags = list(instance.tags.all()) texts = [ tag.title for tag in tags ] return ",".join(texts) def transform_date(self, instance): return instance.pub_date def transform_content(self, instance): return instance.body solango.register(Entry, EntryDocument)