cleanup of syrup folder; documentation stub for Course.item_tree
authorgfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 25 Nov 2008 03:33:21 +0000 (03:33 +0000)
committergfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Tue, 25 Nov 2008 03:33:21 +0000 (03:33 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@49 6d9bc8c9-1ec2-4278-b937-99fde70a366f

conifer/doc/graphs/model_to_graphviz.py [new file with mode: 0644]
conifer/syrup/model_to_graphviz.py [deleted file]
conifer/syrup/models.py

diff --git a/conifer/doc/graphs/model_to_graphviz.py b/conifer/doc/graphs/model_to_graphviz.py
new file mode 100644 (file)
index 0000000..1e83de5
--- /dev/null
@@ -0,0 +1,31 @@
+# Generate a graph visualization from the model. Requires Graphviz.
+# To run, from conifer directory:
+# DJANGO_SETTINGS_MODULE=conifer.settings PYTHONPATH=.. python syrup/model_to_graphviz.py  | fdp -Tpng > /tmp/syrup-model.png
+
+import django.db.models
+#import conifer.syrup.models as models
+import conifer.syrup.direct_models as models
+
+from django.db.models.fields.related import ForeignRelatedObjectsDescriptor
+
+print 'digraph a {'
+print '{ splines=true; }'
+print 'graph [ label="dotted-end is the foreign (\'many\') end", splines=true ]'
+
+all = set(); linked = set(); primary = set()
+
+for name, value in models.__dict__.items():
+    if isinstance(value, type) and issubclass(value, django.db.models.Model):
+        local = value.__name__
+        all.add(local)
+        for k, v in value.__dict__.items():
+            if isinstance(v, ForeignRelatedObjectsDescriptor):
+                foreign = v.related.model.__name__
+                print '%s -> %s [ arrowhead=dot, arrowtail=none ];' % (local, foreign)
+                primary.add(local); linked.add(local); linked.add(foreign)
+for n in (all - linked):
+    print '%s [ style=dashed ]' % n
+
+for n in primary:
+    print '%s [ color=blue ]' % n
+print '}'
diff --git a/conifer/syrup/model_to_graphviz.py b/conifer/syrup/model_to_graphviz.py
deleted file mode 100644 (file)
index 1e83de5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Generate a graph visualization from the model. Requires Graphviz.
-# To run, from conifer directory:
-# DJANGO_SETTINGS_MODULE=conifer.settings PYTHONPATH=.. python syrup/model_to_graphviz.py  | fdp -Tpng > /tmp/syrup-model.png
-
-import django.db.models
-#import conifer.syrup.models as models
-import conifer.syrup.direct_models as models
-
-from django.db.models.fields.related import ForeignRelatedObjectsDescriptor
-
-print 'digraph a {'
-print '{ splines=true; }'
-print 'graph [ label="dotted-end is the foreign (\'many\') end", splines=true ]'
-
-all = set(); linked = set(); primary = set()
-
-for name, value in models.__dict__.items():
-    if isinstance(value, type) and issubclass(value, django.db.models.Model):
-        local = value.__name__
-        all.add(local)
-        for k, v in value.__dict__.items():
-            if isinstance(v, ForeignRelatedObjectsDescriptor):
-                foreign = v.related.model.__name__
-                print '%s -> %s [ arrowhead=dot, arrowtail=none ];' % (local, foreign)
-                primary.add(local); linked.add(local); linked.add(foreign)
-for n in (all - linked):
-    print '%s [ style=dashed ]' % n
-
-for n in primary:
-    print '%s [ color=blue ]' % n
-print '}'
index 9207aa8..0267c27 100644 (file)
@@ -117,6 +117,16 @@ class Course(m.Model):
     def items(self):
         return Item.objects.filter(course=self.id)
 
+    def item_tree(self):
+        """
+        Return a list, representing a tree of the course items, in
+        display order.  Every element of the list is an (Item, [Item])
+        tuple, where the second element is the (optional) list of
+        sub-elements (if a heading) or None (if an item).
+        """
+        raise NotImplementedError
+
+
 class Member(m.Model):
     course = m.ForeignKey(Course)
     user = m.ForeignKey(User)