Merged add_tags and lib.search into lib.tags.
[zzz-floof.git] / floof / model / __init__.py
index 5e963e2..8368357 100644 (file)
@@ -1,28 +1,39 @@
-#
-#   floof/floof/model/__init__.py
-#
-#   Copyright (c) 2009 Scribblr
-#
-#   See: http://bel-epa.com/docs/elixir_pylons/
-#
-
 """The application's model objects"""
-
-from floof.model import art, users
-from floof.model import meta
 import elixir
+from floof.model import meta
 
-elixir.options_defaults.update({ 'autoload': True, 'shortnames': True })
-
+Session = elixir.session = meta.Session
+# Uncomment if using reflected tables
+# elixir.options_defaults.update({'autoload': True})
+elixir.options_defaults.update({'shortnames':True})
 metadata = elixir.metadata
 
+# this will be called in config/environment.py
+# if not using reflected tables
 def init_model(engine):
-    elixir.session.configure(bind=engine)
+    """Call me before using any of the tables or classes in the model"""
+    meta.Session.configure(bind=engine)
     metadata.bind = engine
 
-    if elixir.options_defaults.get('autoload', False):
-        if not metadata.is_bound():
-            elixir.delay_setup = True
-    else:
-        elixir.setup_all(True)
+# Delay the setup if using reflected tables
+if elixir.options_defaults.get('autoload', False) \
+    and not metadata.is_bound():
+    elixir.delay_setup = True
+
+# # import other entities here, e.g.
+# from floof.model.blog import BlogEntry, BlogComment
+from floof.model.art import *
+from floof.model.ratings import *
+from floof.model.comments import *
+from floof.model.search import *
+from floof.model.tags import *
+from floof.model.users import *
+from floof.model.relations import *
+
+
+# Finally, call elixir to set up the tables.
+# but not if using reflected tables
+if not elixir.options_defaults.get('autoload', False):
+    elixir.setup_all()
+