from elixir import *
# from users import User
-from floof.lib.search import do_search
class SavedSearch(Entity):
string = Field(Unicode) # I tried calling this query, but it broke elixir
author = ManyToOne('User')
-
+ fork = ManyToOne("SavedSearch")
+
def __unicode__(self):
return self.string
-
- @property
- def results(self):
- return do_search(self.string)
class GalleryWidget(Entity):
+ page = ManyToOne('UserPage')
search = ManyToOne(SavedSearch)
- displayer = ManyToOne('User') # determines whose page should it should show up on
- # Could be no-ones, if it's just a template.
+ def __init__(self, string=None, **kwargs):
+ owner = kwargs.get('owner', None)
+ if string:
+ self.search = SavedSearch(author=owner, string=string)
+
+ page = kwargs.get('page', None)
+ if owner and not page:
+ page = author.primary_page
+
+ super(GalleryWidget, self).__init__(**kwargs)
+
+
+ # NOTE: no longer needed now that we have pages, I guess.
+ # displayer = ManyToOne('User') # determines whose page should it should show up on
+ # # Could be no-ones, if it's just a template.
+
# Needs some fields for position on your page
@property
def string(self):
- return self.search
-
+ return self.search.string
+
@string.setter
def string(self, value):
# TODO: should we delete the possibly orphaned saved search?
- if not self.displayer:
- # TODO: may have to refactor this into an init if the key ordering is inconvenienc
- raise "Oh no! This gallery needs a displayer to set on the saved search."
-
- self.search = SavedSearch(author=self.displayer, string=value)
-
-
-# class UserPage(Entity):
-# owner = ManyToOne('User')
-# visible = Field(Boolean)
\ No newline at end of file
+ # if not self.displayer:
+ # # TODO: may have to refactor this into an init if the key ordering is inconvenienc
+ # raise "Oh no! This gallery needs a displayer to set on the saved search."
+
+ self.search = SavedSearch(author=getattr(self,"author",None), string=value)