[Checkins] SVN: grokapps/rdbexample/trunk/src/rdbexample/app.py Able to remove a lot of code thanks to improvements in Grok.

Martijn Faassen faassen at infrae.com
Sat May 3 12:52:37 EDT 2008


Log message for revision 86258:
  Able to remove a lot of code thanks to improvements in Grok.
  
  (also: located() shouldn't be necessary in 'traverse' methods, as Grok should
  add this by itself)
  

Changed:
  U   grokapps/rdbexample/trunk/src/rdbexample/app.py

-=-
Modified: grokapps/rdbexample/trunk/src/rdbexample/app.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/app.py	2008-05-03 16:51:49 UTC (rev 86257)
+++ grokapps/rdbexample/trunk/src/rdbexample/app.py	2008-05-03 16:52:36 UTC (rev 86258)
@@ -3,8 +3,6 @@
 
 from zope.interface.interfaces import IInterface
 
-from zope.location.location import located
-
 from sqlalchemy.schema import Column, ForeignKey
 from sqlalchemy.types import Integer, String
 from sqlalchemy.orm import relation
@@ -18,11 +16,10 @@
 class RDBExample(grok.Application, grok.Model):
     def traverse(self, name):
         try:
-            return located(rdb.query(Faculty).get(int(name)), self, name)
-        except KeyError:
-            return None
+            key = int(name)
         except ValueError:
             return None
+        return rdb.query(Faculty).get(key)
 
 class FacultyList(grok.View):
     grok.name('index')
@@ -39,26 +36,10 @@
 class Departments(rdb.Container):
     rdb.key('title')
 
-
-class DepartmentTraverse(grok.Traverser):
-    grok.context(Departments)
-    def traverse(self, name):
-        try:
-            return located(self.context[int(name)], self.context, name)
-        except KeyError:
-            return None
-        except ValueError:
-            return None
-
 class Faculty(rdb.Model):
     # rdb.table_name('faculty') is the default
     __tablename__ = 'faculty'
 
-    # XXX note that rdb.Model s don't support traversal using traverse methods;
-    # it does work using external grok.Traversers
-    def traverse(self, name):
-        pass
-
     grok.traversable('departments')
 
     id = Column('id', Integer, primary_key=True)
@@ -68,13 +49,6 @@
                            backref='faculty',
                            collection_class=Departments)
 
-class FacultyTraverse(grok.Traverser):
-    grok.context(Faculty)
-
-    def traverse(self, name):
-        if name == 'departments':
-            return located(self.context.departments, self.context, name)
-
 class Department(rdb.Model):
     __tablename__ = 'department'
 



More information about the Checkins mailing list