[Checkins] SVN: Sandbox/pcardune/z3c.mvc/ Let's see if people stop complaining when we put them in a small mvc box.

Paul Carduner paulcarduner at gmail.com
Sun Feb 1 00:47:03 EST 2009


Log message for revision 95802:
  Let's see if people stop complaining when we put them in a small mvc box.

Changed:
  A   Sandbox/pcardune/z3c.mvc/
  A   Sandbox/pcardune/z3c.mvc/bootstrap.py
  A   Sandbox/pcardune/z3c.mvc/buildout.cfg
  A   Sandbox/pcardune/z3c.mvc/setup.py
  A   Sandbox/pcardune/z3c.mvc/src/
  A   Sandbox/pcardune/z3c.mvc/src/z3c/
  A   Sandbox/pcardune/z3c.mvc/src/z3c/__init__.py
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/controller.py
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/interfaces.py
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/meta.zcml
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/template.py
  A   Sandbox/pcardune/z3c.mvc/src/z3c/mvc/zcml.py

-=-

Property changes on: Sandbox/pcardune/z3c.mvc
___________________________________________________________________
Added: svn:ignore
   + .installed.cfg
bin
develop-eggs
parts


Added: Sandbox/pcardune/z3c.mvc/bootstrap.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/bootstrap.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/bootstrap.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,52 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Bootstrap a buildout-based project
+
+Simply run this script in a directory containing a buildout.cfg.
+The script accepts buildout command-line options, so you can
+use the -c option to specify an alternate configuration file.
+
+$Id$
+"""
+
+import os, shutil, sys, tempfile, urllib2
+
+tmpeggs = tempfile.mkdtemp()
+
+ez = {}
+exec urllib2.urlopen('http://peak.telecommunity.com/dist/ez_setup.py'
+                     ).read() in ez
+ez['use_setuptools'](to_dir=tmpeggs, download_delay=0)
+
+import pkg_resources
+
+cmd = 'from setuptools.command.easy_install import main; main()'
+if sys.platform == 'win32':
+    cmd = '"%s"' % cmd # work around spawn lamosity on windows
+
+ws = pkg_resources.working_set
+assert os.spawnle(
+    os.P_WAIT, sys.executable, sys.executable,
+    '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
+    dict(os.environ,
+         PYTHONPATH=
+         ws.find(pkg_resources.Requirement.parse('setuptools')).location
+         ),
+    ) == 0
+
+ws.add_entry(tmpeggs)
+ws.require('zc.buildout')
+import zc.buildout.buildout
+zc.buildout.buildout.main(sys.argv[1:] + ['bootstrap'])
+shutil.rmtree(tmpeggs)


Property changes on: Sandbox/pcardune/z3c.mvc/bootstrap.py
___________________________________________________________________
Added: svn:keywords
   + Id

Added: Sandbox/pcardune/z3c.mvc/buildout.cfg
===================================================================
--- Sandbox/pcardune/z3c.mvc/buildout.cfg	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/buildout.cfg	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,8 @@
+[buildout]
+extends=http://download.zope.org/zope3.4/3.4.0/versions.cfg
+develop = .
+parts = test
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = z3c.mvc

Added: Sandbox/pcardune/z3c.mvc/setup.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/setup.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/setup.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,49 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Setup for z3c.mvc package
+
+$Id$
+"""
+import os
+from setuptools import setup, find_packages
+
+def read(*rnames):
+    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
+
+setup(
+    name='z3c.mvc',
+    version = '0.1.0',
+    description='Strict Model-View-Controller implementation',
+    license='ZPL 2.1',
+    packages=find_packages('src'),
+    package_dir = {'': 'src'},
+    namespace_packages=['z3c'],
+    extras_require=dict(
+        test=['zope.app.testing',
+              'zope.testing',
+              'zope.app.securitypolicy',
+              'zope.app.zcmlfiles']),
+    install_requires=[
+        'setuptools',
+        'z3c.pagelet',
+        'z3c.template',
+        'zope.interface',
+        'zope.component',
+        'zope.app.pagetemplate',
+        'zope.configuration',
+        'zope.publisher',
+        ],
+    include_package_data = True,
+    zip_safe = False,
+    )


Property changes on: Sandbox/pcardune/z3c.mvc/setup.py
___________________________________________________________________
Added: svn:keywords
   + Id


Property changes on: Sandbox/pcardune/z3c.mvc/src
___________________________________________________________________
Added: svn:ignore
   + z3c.mvc.egg-info


Added: Sandbox/pcardune/z3c.mvc/src/z3c/__init__.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/__init__.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/__init__.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,22 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id$
+"""
+
+# this is a namespace package
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+    pass


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/__init__.py
___________________________________________________________________
Added: svn:keywords
   + Id

Added: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/controller.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/mvc/controller.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/mvc/controller.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,42 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""File-based page templates that can be used as methods on views.
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+
+from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+
+from z3c.template.macro import Macro
+from z3c.pagelet.browser import BrowserPagelet
+
+from z3c.mvc import interfaces
+
+
+class Controller(BrowserPagelet):
+    """Page Template that only has access to a well defined model
+    """
+
+    def getModel(self):
+        raise NotImplemented("Subclasses must provide the getModel method")
+
+    def render(self):
+        # render content template
+        if self.template is None:
+            template = zope.component.getMultiAdapter(
+                (self, self.request), interfaces.IModelTemplate)
+            return template(self)
+        return self.template()


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/controller.py
___________________________________________________________________
Added: svn:keywords
   + Id

Added: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/interfaces.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/mvc/interfaces.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/mvc/interfaces.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,26 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""model, view, controller interfaces.
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+
+from zope.interface import Interface
+
+class IModelProvider(Interface):
+
+    def getModel():
+        """returns a model to be used by a view template."""


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/interfaces.py
___________________________________________________________________
Added: svn:keywords
   + Id

Added: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/meta.zcml
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/mvc/meta.zcml	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/mvc/meta.zcml	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,16 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:meta="http://namespaces.zope.org/meta">
+
+  <meta:directives namespace="http://namespaces.zope.org/z3c">
+
+    <meta:directive
+        name="mvcTemplate"
+        schema="z3c.template.interfaces.ITemplateDirective"
+        handler=".zcml.templateDirective"
+        />
+
+  </meta:directives>
+
+</configure>
+


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/meta.zcml
___________________________________________________________________
Added: svn:eol-style
   + native

Added: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/template.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/mvc/template.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/mvc/template.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,53 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""File-based page templates that can be used as methods on views.
+
+$Id$
+"""
+__docformat__ = 'restructuredtext'
+
+from zope.interface import implements
+from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
+
+from z3c.mvc import interfaces
+from z3c.template.macro import Macro
+
+class ModelTemplate(ViewPageTemplateFile):
+    """Page Template that only has access to a well defined model
+    """
+    implements(interfaces.IModelTemplate)
+
+    def pt_getContext(self, instance, request, **_kw):
+        # instance is a View component
+        namespace = super(ViewPageTemplateFile, self).pt_getContext(**_kw)
+        assert interfaces.IModelProvider.providedBy(instance)
+        namespace['model'] = instace.getModel()
+        return namespace
+
+
+class TemplateFactory(object):
+    """Template factory."""
+
+    template = None
+
+    def __init__(self, filename, contentType, macro=None):
+        self.macro = macro
+        self.contentType = contentType
+        self.template = ModelTemplate(filename, content_type=contentType)
+
+    def __call__(self, view, request):
+        if self.macro is None:
+            return self.template
+        return Macro(self.template, self.macro, view, request,
+            self.contentType)


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/template.py
___________________________________________________________________
Added: svn:keywords
   + Id

Added: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/zcml.py
===================================================================
--- Sandbox/pcardune/z3c.mvc/src/z3c/mvc/zcml.py	                        (rev 0)
+++ Sandbox/pcardune/z3c.mvc/src/z3c/mvc/zcml.py	2009-02-01 05:47:02 UTC (rev 95802)
@@ -0,0 +1,52 @@
+##############################################################################
+#
+# Copyright (c) 2005 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""
+$Id$
+"""
+__docformat__ = "reStructuredText"
+
+import os
+
+import zope.interface
+import zope.component.zcml
+from zope.configuration.exceptions import ConfigurationError
+from zope.publisher.interfaces.browser import IDefaultBrowserLayer
+
+import z3c.template.interfaces
+
+from z3c.mvc.template import TemplateFactory
+from z3c.mvc.interfaces import IModelTemplate
+
+
+def templateDirective(
+    _context, template, name=u'',
+    for_=zope.interface.Interface, layer=IDefaultBrowserLayer,
+    provides=IModelTemplate,
+    contentType='text/html', macro=None):
+
+    # Make sure that the template exists
+    template = os.path.abspath(str(_context.path(template)))
+    if not os.path.isfile(template):
+        raise ConfigurationError("No such file", template)
+
+    factory = TemplateFactory(template, contentType, macro)
+    zope.interface.directlyProvides(factory, provides)
+
+    # register the template
+    if name:
+        zope.component.zcml.adapter(_context, (factory,), provides,
+                                    (for_, layer), name=name)
+    else:
+        zope.component.zcml.adapter(_context, (factory,), provides,
+                                    (for_, layer))


Property changes on: Sandbox/pcardune/z3c.mvc/src/z3c/mvc/zcml.py
___________________________________________________________________
Added: svn:keywords
   + Id



More information about the Checkins mailing list