Merge branch 'master' of git@veekun.com:floof
[zzz-floof.git] / floof / model / search.py
index 011468c..fb86f35 100644 (file)
@@ -1,30 +1,43 @@
 from elixir import *
-from users import User
+# from users import User
+
 
 class SavedSearch(Entity):
     string = Field(Unicode) # I tried calling this query, but it broke elixir
-    author = ManyToOne(User)
-    
+    author = ManyToOne('User')
+    fork = ManyToOne("SavedSearch")
+
     def __unicode__(self):
         return self.string
 
+    @property
+    def results(self):
+        # This caused some cyclic dependencies when I tried importing it
+        # at the module level.  I wonder why that is...
+        from floof.lib.search import do_search
+        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.
-    
+
+    # 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 query(self):
-        return self.search.query
-    
-    @query.setter
-    def query(self, value):
+    def string(self):
+        return self.search
+
+    @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, query=value)
\ 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)