[Checkins] SVN: grokapps/rdbexample/ Import a completely non-working early sketch of an example app

Martijn Faassen faassen at infrae.com
Thu May 1 11:22:35 EDT 2008


Log message for revision 86007:
  Import a completely non-working early sketch of an example app
  for relational database integration for Grok. Everything in here
  is going to be a rather experimental prototype for a while.
  

Changed:
  A   grokapps/rdbexample/
  A   grokapps/rdbexample/trunk/
  A   grokapps/rdbexample/trunk/buildout.cfg
  A   grokapps/rdbexample/trunk/megrok.rdb/
  A   grokapps/rdbexample/trunk/megrok.rdb/README.txt
  A   grokapps/rdbexample/trunk/megrok.rdb/docs/
  A   grokapps/rdbexample/trunk/megrok.rdb/docs/HISTORY.txt
  A   grokapps/rdbexample/trunk/megrok.rdb/setup.py
  A   grokapps/rdbexample/trunk/megrok.rdb/src/
  A   grokapps/rdbexample/trunk/megrok.rdb/src/megrok/
  A   grokapps/rdbexample/trunk/megrok.rdb/src/megrok/__init__.py
  A   grokapps/rdbexample/trunk/megrok.rdb/src/megrok/rdb/
  A   grokapps/rdbexample/trunk/megrok.rdb/src/megrok/rdb/__init__.py
  A   grokapps/rdbexample/trunk/setup.py
  A   grokapps/rdbexample/trunk/src/
  A   grokapps/rdbexample/trunk/src/rdbexample/
  A   grokapps/rdbexample/trunk/src/rdbexample/__init__.py
  A   grokapps/rdbexample/trunk/src/rdbexample/app.py
  A   grokapps/rdbexample/trunk/src/rdbexample/app_templates/
  A   grokapps/rdbexample/trunk/src/rdbexample/app_templates/index.pt
  A   grokapps/rdbexample/trunk/src/rdbexample/configure.zcml
  A   grokapps/rdbexample/trunk/src/rdbexample/ftesting.zcml
  A   grokapps/rdbexample/trunk/src/rdbexample/testing.py

-=-
Added: grokapps/rdbexample/trunk/buildout.cfg
===================================================================
--- grokapps/rdbexample/trunk/buildout.cfg	                        (rev 0)
+++ grokapps/rdbexample/trunk/buildout.cfg	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,66 @@
+[buildout]
+develop = . megrok.rdb
+parts = app data zopectl i18n test
+find-links = http://download.zope.org/distribution/
+eggs-directory = /home/faassen/buildout-eggs
+newest = false
+extends= http://grok.zope.org/releaseinfo/grok-0.12.cfg
+versions = versions
+
+[app]
+recipe = zc.zope3recipes>=0.5.3:application
+eggs = rdbexample
+site.zcml = <include package="rdbexample" />
+            <include package="zope.app.twisted" />
+
+            <configure i18n_domain="rdbexample">
+              <unauthenticatedPrincipal id="zope.anybody"
+                                        title="Unauthenticated User" />
+              <unauthenticatedGroup id="zope.Anybody"
+                                    title="Unauthenticated Users" />
+              <authenticatedGroup id="zope.Authenticated"
+                                title="Authenticated Users" />
+              <everybodyGroup id="zope.Everybody"
+                              title="All Users" />
+              <principal id="zope.manager"
+                         title="Manager"
+                         login="admin"
+                         password_manager="Plain Text"
+                         password="admin"
+                         />
+
+              <!-- Replace the following directive if you don't want
+                   public access -->
+              <grant permission="zope.View"
+                     principal="zope.Anybody" />
+              <grant permission="zope.app.dublincore.view"
+                     principal="zope.Anybody" />
+
+              <role id="zope.Manager" title="Site Manager" />
+              <role id="zope.Member" title="Site Member" />
+              <grantAll role="zope.Manager" />
+              <grant role="zope.Manager"
+                     principal="zope.manager" />
+           </configure>
+
+[data]
+recipe = zc.recipe.filestorage
+
+# this section named so that the start/stop script is called bin/zopectl
+[zopectl]
+recipe = zc.zope3recipes:instance
+application = app
+zope.conf = ${data:zconfig}
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = rdbexample
+defaults = ['--tests-pattern', '^f?tests$', '-v']
+
+# this section named so that the i18n scripts are called bin/i18n...
+[i18n]
+recipe = lovely.recipe:i18n
+package = rdbexample
+domain = rdbexample
+location = src/rdbexample
+output = locales

Added: grokapps/rdbexample/trunk/megrok.rdb/README.txt
===================================================================
--- grokapps/rdbexample/trunk/megrok.rdb/README.txt	                        (rev 0)
+++ grokapps/rdbexample/trunk/megrok.rdb/README.txt	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,4 @@
+Introduction
+============
+
+

Added: grokapps/rdbexample/trunk/megrok.rdb/docs/HISTORY.txt
===================================================================
--- grokapps/rdbexample/trunk/megrok.rdb/docs/HISTORY.txt	                        (rev 0)
+++ grokapps/rdbexample/trunk/megrok.rdb/docs/HISTORY.txt	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,8 @@
+Changelog
+=========
+
+0.1 - Unreleased
+----------------
+
+* Initial release
+

Added: grokapps/rdbexample/trunk/megrok.rdb/setup.py
===================================================================
--- grokapps/rdbexample/trunk/megrok.rdb/setup.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/megrok.rdb/setup.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,33 @@
+from setuptools import setup, find_packages
+import os
+
+version = '0.1'
+
+setup(name='megrok.rdb',
+      version=version,
+      description="SQLAlchemy based RDB support for Grok.",
+      long_description=open("README.txt").read() + "\n" +
+                       open(os.path.join("docs", "HISTORY.txt")).read(),
+      # Get more strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+      classifiers=[
+        "Programming Language :: Python",
+        "Topic :: Software Development :: Libraries :: Python Modules",
+        ],
+      keywords='',
+      author='Grok Team',
+      author_email='grok-dev at zope.org',
+      url='',
+      license='ZPL',
+      packages=find_packages('src'),
+      package_dir = {'': 'src'},
+      namespace_packages=['megrok'],
+      include_package_data=True,
+      zip_safe=True,
+      install_requires=[
+          'setuptools',
+          'SQLAlchemy',
+      ],
+      entry_points="""
+      # -*- Entry points: -*-
+      """,
+      )

Added: grokapps/rdbexample/trunk/megrok.rdb/src/megrok/__init__.py
===================================================================
--- grokapps/rdbexample/trunk/megrok.rdb/src/megrok/__init__.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/megrok.rdb/src/megrok/__init__.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,6 @@
+# See http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Added: grokapps/rdbexample/trunk/megrok.rdb/src/megrok/rdb/__init__.py
===================================================================

Added: grokapps/rdbexample/trunk/setup.py
===================================================================
--- grokapps/rdbexample/trunk/setup.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/setup.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,29 @@
+from setuptools import setup, find_packages
+
+version = '0.0'
+
+setup(name='rdbexample',
+      version=version,
+      description="",
+      long_description="""\
+""",
+      # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+      classifiers=[], 
+      keywords="",
+      author="",
+      author_email="",
+      url="",
+      license="",
+      package_dir={'': 'src'},
+      packages=find_packages('src'),
+      include_package_data=True,
+      zip_safe=False,
+      install_requires=['setuptools',
+                        'grok',
+                        'megrok.rdb',
+                        'psycopg2',
+                        ],
+      entry_points="""
+      # Add entry points here
+      """,
+      )

Added: grokapps/rdbexample/trunk/src/rdbexample/__init__.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/__init__.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/__init__.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1 @@
+# this directory is a package

Added: grokapps/rdbexample/trunk/src/rdbexample/app.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/app.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/app.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,21 @@
+import grok
+from megrok import rdb
+
+class rdbexample(grok.Application, grok.Model):
+    def __init__(self):
+        pass
+
+    def traverse(self, name):
+        if name == 'departments':
+            self.departments = Departments()
+            
+
+class Index(grok.View):
+    pass # see app_templates/index.pt
+
+
+class Departments(rdb.Container):
+    pass
+
+class Department(rdb.Model):
+    pass

Added: grokapps/rdbexample/trunk/src/rdbexample/app_templates/index.pt
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/app_templates/index.pt	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/app_templates/index.pt	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,11 @@
+<html>
+<head>
+</head>
+<body>
+  <h1>Congratulations!</h1>
+
+  <p>Your Grok application is up and running.
+  Edit <code>rdbexample/app_templates/index.pt</code> to change
+  this page.</p>
+</body>
+</html>

Added: grokapps/rdbexample/trunk/src/rdbexample/configure.zcml
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/configure.zcml	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/configure.zcml	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,6 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+           xmlns:grok="http://namespaces.zope.org/grok">
+  <include package="grok" />
+  <includeDependencies package="." />
+  <grok:grok package="." />
+</configure>

Added: grokapps/rdbexample/trunk/src/rdbexample/ftesting.zcml
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/ftesting.zcml	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/ftesting.zcml	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,35 @@
+<configure
+   xmlns="http://namespaces.zope.org/zope"
+   i18n_domain="rdbexample"
+   package="rdbexample"
+   >
+
+  <include package="grok" />
+  <include package="rdbexample" />
+
+  <!-- Typical functional testing security setup -->
+  <securityPolicy
+      component="zope.app.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+      />
+
+  <unauthenticatedPrincipal
+      id="zope.anybody"
+      title="Unauthenticated User"
+      />
+  <grant
+      permission="zope.View"
+      principal="zope.anybody"
+      />
+
+  <principal
+      id="zope.mgr"
+      title="Manager"
+      login="mgr"
+      password="mgrpw"
+      />
+
+  <role id="zope.Manager" title="Site Manager" />
+  <grantAll role="zope.Manager" />
+  <grant role="zope.Manager" principal="zope.mgr" />
+
+</configure>

Added: grokapps/rdbexample/trunk/src/rdbexample/testing.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/testing.py	                        (rev 0)
+++ grokapps/rdbexample/trunk/src/rdbexample/testing.py	2008-05-01 15:22:35 UTC (rev 86007)
@@ -0,0 +1,7 @@
+import os.path
+import rdbexample
+from zope.app.testing.functional import ZCMLLayer
+
+ftesting_zcml = os.path.join(
+    os.path.dirname(rdbexample.__file__), 'ftesting.zcml')
+FunctionalLayer = ZCMLLayer(ftesting_zcml, __name__, 'FunctionalLayer')



More information about the Checkins mailing list