[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