[Checkins] SVN: grokapps/rdbexample/trunk/ Get this in working
order again. It's really time proper page templates
Martijn Faassen
faassen at infrae.com
Tue Jun 24 20:17:40 EDT 2008
Log message for revision 87738:
Get this in working order again. It's really time proper page templates
were introduced to the UI though, as this text-driven UI impossible to
navigate.
Changed:
_U grokapps/rdbexample/trunk/
U grokapps/rdbexample/trunk/buildout.cfg
U grokapps/rdbexample/trunk/setup.py
U grokapps/rdbexample/trunk/src/rdbexample/app.py
-=-
Property changes on: grokapps/rdbexample/trunk
___________________________________________________________________
Name: svn:externals
- collective.lead https://svn.plone.org/svn/collective/collective.lead/branches/elro-tpc
sqlalchemy http://svn.sqlalchemy.org/sqlalchemy/trunk/
grok svn://svn.zope.org/repos/main/grok/trunk
+ zope.sqlalchemy svn://svn.zope.org/repos/main/zope.sqlalchemy/trunk
z3c.saconfig svn://svn.zope.org/repos/main/z3c.saconfig/trunk
megrok.rdb svn://svn.zope.org/repos/main/megrok.rdb/trunk
Modified: grokapps/rdbexample/trunk/buildout.cfg
===================================================================
--- grokapps/rdbexample/trunk/buildout.cfg 2008-06-25 00:16:41 UTC (rev 87737)
+++ grokapps/rdbexample/trunk/buildout.cfg 2008-06-25 00:17:40 UTC (rev 87738)
@@ -1,9 +1,8 @@
[buildout]
-develop = . megrok.rdb collective.lead grok sqlalchemy
+develop = . megrok.rdb zope.sqlalchemy z3c.saconfig megrok.rdb
parts = app data zopectl i18n test
-find-links = http://download.zope.org/distribution/
newest = false
-extends= grok/versions.cfg
+extends = http://grok.zope.org/releaseinfo/grok-0.13.cfg
versions = versions
[app]
Modified: grokapps/rdbexample/trunk/setup.py
===================================================================
--- grokapps/rdbexample/trunk/setup.py 2008-06-25 00:16:41 UTC (rev 87737)
+++ grokapps/rdbexample/trunk/setup.py 2008-06-25 00:17:40 UTC (rev 87738)
@@ -19,9 +19,8 @@
include_package_data=True,
zip_safe=False,
install_requires=['setuptools',
- 'grok',
+ 'grok == 0.13',
'megrok.rdb',
- 'psycopg2',
],
entry_points="""
# Add entry points here
Modified: grokapps/rdbexample/trunk/src/rdbexample/app.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/app.py 2008-06-25 00:16:41 UTC (rev 87737)
+++ grokapps/rdbexample/trunk/src/rdbexample/app.py 2008-06-25 00:17:40 UTC (rev 87738)
@@ -1,49 +1,63 @@
import grok
from megrok import rdb
-from zope.interface.interfaces import IInterface
-
-
-
from sqlalchemy.schema import Column, ForeignKey
from sqlalchemy.types import Integer, String
from sqlalchemy.orm import relation
+from zope.app.publication.interfaces import IBeforeTraverseEvent
+from zope import component
-class Database(rdb.Database):
+from z3c.saconfig import EngineFactory, GloballyScopedSession
+from z3c.saconfig.interfaces import IEngineFactory
- url = 'postgres:///rdbexample'
+TEST_DSN = 'sqlite:///:memory:'
+
+engine_factory = EngineFactory(TEST_DSN)
+scoped_session = GloballyScopedSession()
+grok.global_utility(engine_factory, direct=True)
+grok.global_utility(scoped_session, direct=True)
+metadata = rdb.MetaData()
+
class RDBExample(grok.Application, grok.Model):
def traverse(self, name):
try:
key = int(name)
except ValueError:
return None
- return rdb.query(Faculty).get(key)
+ session = rdb.Session()
+ return session.query(Faculty).get(key)
+ at grok.subscribe(RDBExample, IBeforeTraverseEvent)
+def setUpDatabase(obj, event):
+ # XXX
+ # hack: set up database if it hasn't been set up before
+ engine_factory = component.getUtility(IEngineFactory)
+ engine = engine_factory()
+ metadata.create_all(engine)
+
class FacultyList(grok.View):
grok.name('index')
grok.context(RDBExample)
def render(self):
result = ""
- for faculty in rdb.query(Faculty).all():
+ session = rdb.Session()
+ for faculty in session.query(Faculty).all():
result += "%s - %s (%s)" % (faculty.id, faculty.title,
self.url(str(faculty.id)))
return result
-
class Departments(rdb.Container):
rdb.key('title')
class Faculty(rdb.Model):
- # rdb.table_name('faculty') is the default
- __tablename__ = 'faculty'
-
grok.traversable('departments')
+ rdb.metadata(metadata)
+
id = Column('id', Integer, primary_key=True)
title = Column('title', String(50))
@@ -52,8 +66,8 @@
collection_class=Departments)
class Department(rdb.Model):
- __tablename__ = 'department'
-
+ rdb.metadata(metadata)
+
id = Column('id', Integer, primary_key=True)
faculty_id = Column('faculty_id', Integer, ForeignKey('faculty.id'))
title = Column('title', String(50))
@@ -67,10 +81,11 @@
@grok.action('add')
def handle_add(self, *args, **kw):
- d = Department(**kw)
- self.context.set(d)
+ department = Department(**kw)
+ session = rdb.Session()
+ session.add(department)
+ self.context.set(department)
-
class DepartmentView(grok.View):
grok.name('index')
grok.context(Department)
@@ -107,6 +122,6 @@
@grok.action('add')
def handle_add(self, *args, **kw):
- f = Faculty(**kw)
- rdb.session().save(f)
- #import pdb; pdb.set_trace()
+ faculty = Faculty(**kw)
+ session = rdb.Session()
+ session.add(faculty)
More information about the Checkins
mailing list