[Checkins] SVN: z3c.menu.ready2go/trunk/ Added initial
implementation
Roger Ineichen
roger at projekt01.ch
Thu Sep 27 15:14:36 EDT 2007
Log message for revision 80250:
Added initial implementation
Changed:
_U z3c.menu.ready2go/trunk/
A z3c.menu.ready2go/trunk/AUTHOR.txt
A z3c.menu.ready2go/trunk/CHANGES.txt
A z3c.menu.ready2go/trunk/LICENSE.txt
A z3c.menu.ready2go/trunk/README.txt
A z3c.menu.ready2go/trunk/bootstrap.py
A z3c.menu.ready2go/trunk/buildout.cfg
A z3c.menu.ready2go/trunk/setup.py
_U z3c.menu.ready2go/trunk/src/
A z3c.menu.ready2go/trunk/src/z3c/__init__.py
A z3c.menu.ready2go/trunk/src/z3c/menu/__init__.py
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.pt
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/manager.py
A z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/menu.pt
-=-
Property changes on: z3c.menu.ready2go/trunk
___________________________________________________________________
Name: svn:ignore
+ .installed.cfg
bin
develop-eggs
parts
Added: z3c.menu.ready2go/trunk/AUTHOR.txt
===================================================================
--- z3c.menu.ready2go/trunk/AUTHOR.txt (rev 0)
+++ z3c.menu.ready2go/trunk/AUTHOR.txt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1 @@
+Roger Ineichen (roger <at> projekt01 <dot> ch)
Property changes on: z3c.menu.ready2go/trunk/AUTHOR.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/CHANGES.txt
===================================================================
--- z3c.menu.ready2go/trunk/CHANGES.txt (rev 0)
+++ z3c.menu.ready2go/trunk/CHANGES.txt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,8 @@
+=======
+CHANGES
+=======
+
+Version 0.5.0 (unreleased)
+--------------------------
+
+- Initial Release
Property changes on: z3c.menu.ready2go/trunk/CHANGES.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/LICENSE.txt
===================================================================
--- z3c.menu.ready2go/trunk/LICENSE.txt (rev 0)
+++ z3c.menu.ready2go/trunk/LICENSE.txt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,54 @@
+Zope Public License (ZPL) Version 2.1
+-------------------------------------
+
+A copyright notice accompanies this license document that
+identifies the copyright holders.
+
+This license has been certified as open source. It has also
+been designated as GPL compatible by the Free Software
+Foundation (FSF).
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions in source code must retain the
+ accompanying copyright notice, this list of conditions,
+ and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the accompanying
+ copyright notice, this list of conditions, and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+3. Names of the copyright holders must not be used to
+ endorse or promote products derived from this software
+ without prior written permission from the copyright
+ holders.
+
+4. The right to distribute this software or to use it for
+ any purpose does not give you the right to use
+ Servicemarks (sm) or Trademarks (tm) of the copyright
+ holders. Use of them is covered by separate agreement
+ with the copyright holders.
+
+5. If any files are modified, you must cause the modified
+ files to carry prominent notices stating that you changed
+ the files and the date of any change.
+
+Disclaimer
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
+ AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
Property changes on: z3c.menu.ready2go/trunk/LICENSE.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/README.txt
===================================================================
--- z3c.menu.ready2go/trunk/README.txt (rev 0)
+++ z3c.menu.ready2go/trunk/README.txt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1 @@
+This package provides a ready 2 go menu implementation based on viewlets.
Property changes on: z3c.menu.ready2go/trunk/README.txt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/bootstrap.py
===================================================================
--- z3c.menu.ready2go/trunk/bootstrap.py (rev 0)
+++ z3c.menu.ready2go/trunk/bootstrap.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,52 @@
+##############################################################################
+#
+# 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.
+#
+##############################################################################
+"""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: bootstrap.py 75940 2007-05-24 14:45:00Z srichter $
+"""
+
+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: z3c.menu.ready2go/trunk/bootstrap.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/buildout.cfg
===================================================================
--- z3c.menu.ready2go/trunk/buildout.cfg (rev 0)
+++ z3c.menu.ready2go/trunk/buildout.cfg 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,7 @@
+[buildout]
+develop = .
+parts = test
+
+[test]
+recipe = zc.recipe.testrunner
+eggs = z3c.menu.ready2go [test]
Added: z3c.menu.ready2go/trunk/setup.py
===================================================================
--- z3c.menu.ready2go/trunk/setup.py (rev 0)
+++ z3c.menu.ready2go/trunk/setup.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,69 @@
+##############################################################################
+#
+# Copyright (c) 2007 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.
+#
+##############################################################################
+"""Setup
+
+$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.menu.ready2go',
+ version='0.5.0',
+ author = "Stephan Richter, Roger Ineichen and the Zope Community",
+ author_email = "zope3-dev at zope.org",
+ description = "A ready to go menu for Zope3",
+ long_description=(
+ read('README.txt')
+ + '\n\n' +
+ read('CHANGES.txt')
+ ),
+ license = "ZPL 2.1",
+ keywords = "zope3 z3c ready 2 go menu",
+ classifiers = [
+ 'Development Status :: 4 - Beta',
+ 'Environment :: Web Environment',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: Zope Public License',
+ 'Programming Language :: Python',
+ 'Natural Language :: English',
+ 'Operating System :: OS Independent',
+ 'Topic :: Internet :: WWW/HTTP',
+ 'Framework :: Zope3'],
+ url = 'http://cheeseshop.python.org/pypi/z3c.menu.ready2go',
+ packages = find_packages('src'),
+ include_package_data = True,
+ package_dir = {'':'src'},
+ namespace_packages = ['z3c'],
+ extras_require = dict(
+ test = [
+ 'zope.testbrowser',
+ 'zope.app.securitypolicy',
+ 'zope.app.testing',
+ 'zope.app.zcmlfiles',
+ 'zope.app.twisted',
+ ],
+ ),
+ install_requires = [
+ 'setuptools',
+ 'zope.configuration',
+ 'zope.traversing',
+ 'zope.app.http',
+ 'zope.app.publisher',
+ ],
+ zip_safe = False,
+)
\ No newline at end of file
Property changes on: z3c.menu.ready2go/trunk/setup.py
___________________________________________________________________
Name: svn:eol-style
+ native
Property changes on: z3c.menu.ready2go/trunk/src
___________________________________________________________________
Name: svn:ignore
+ z3c.menu.ready2go.egg-info
Added: z3c.menu.ready2go/trunk/src/z3c/__init__.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/__init__.py (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/__init__.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,7 @@
+# this is a namespace package
+try:
+ import pkg_resources
+ pkg_resources.declare_namespace(__name__)
+except ImportError:
+ import pkgutil
+ __path__ = pkgutil.extend_path(__path__, __name__)
Property changes on: z3c.menu.ready2go/trunk/src/z3c/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/__init__.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/__init__.py (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/__init__.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,7 @@
+# this is a namespace package
+try:
+ import pkg_resources
+ pkg_resources.declare_namespace(__name__)
+except ImportError:
+ import pkgutil
+ __path__ = pkgutil.extend_path(__path__, __name__)
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,16 @@
+##############################################################################
+#
+# Copyright (c) 2007 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: layer.py 197 2007-04-13 05:03:32Z rineichen $
+"""
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/__init__.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.pt
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.pt (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.pt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,5 @@
+<li class="current"
+ tal:attributes="class view/css">
+ <a href="#"
+ tal:attributes="href view/url"><span i18n:translate="" tal:content="view/title">Title</span></a>
+</li>
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.pt
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,95 @@
+##############################################################################
+#
+# Copyright (c) 2007 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: layer.py 197 2007-04-13 05:03:32Z rineichen $
+"""
+__docformat__ = "reStructuredText"
+
+import zope.interface
+from zope.traversing.browser import absoluteURL
+from zope.viewlet import viewlet
+from zope.app.component import hooks
+from zope.app.pagetemplate import ViewPageTemplateFile
+
+
+# base menu item mixin
+class MenuItem(viewlet.ViewletBase):
+ """Menu item base."""
+
+ template = ViewPageTemplateFile('item.pt')
+
+ # set this attrs directly in zcml or override it in a sub class
+ contextInterface = zope.interface.Interface
+ viewInterface = zope.interface.Interface
+ viewName = u'index.html'
+ cssActive = u'selected'
+ cssInActive = u''
+ weight = 0
+
+ # override it and use i18n msg ids
+ @property
+ def title(self):
+ return self.__name__
+
+ @property
+ def available(self):
+ return True
+
+ def getURLContext(self):
+ return hooks.getSite()
+
+ @property
+ def css(self):
+ if self.selected:
+ return self.cssActive
+ else:
+ return self.cssInActive
+
+ @property
+ def available(self):
+ return True
+
+ @property
+ def selected(self):
+ if self.viewInterface.providedBy(self.__parent__) and \
+ self.contextInterface.providedBy(self.__parent__.context) and \
+ self.__parent__.__name__ == self.viewName:
+ return True
+ return False
+
+ @property
+ def url(self):
+ context = self.getURLContext()
+ return absoluteURL(context, self.request) + '/' + self.viewName
+
+ def render(self):
+ """Return the template with the option 'menus'"""
+ return self.template()
+
+ def __repr__(self):
+ return '<%s %r>' % (self.__class__.__name__, self.__name__)
+
+
+class GlobalMenuItem(MenuItem):
+ """Global menu item."""
+
+ def getURLContext(self):
+ return hooks.getSite()
+
+
+class ContextMenuItem(MenuItem):
+ """Context menu item."""
+
+ def getURLContext(self):
+ return self.context
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/item.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/manager.py
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/manager.py (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/manager.py 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,55 @@
+##############################################################################
+#
+# Copyright (c) 2007 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: layer.py 197 2007-04-13 05:03:32Z rineichen $
+"""
+__docformat__ = "reStructuredText"
+
+import zope.interface
+import zope.security
+from zope.traversing.browser import absoluteURL
+from zope.viewlet import manager
+from zope.app.component import hooks
+from zope.app.pagetemplate import ViewPageTemplateFile
+
+
+def getWeight((name, viewlet)):
+ try:
+ return int(viewlet.weight)
+ except AttributeError:
+ return 0
+
+
+# base menu manager mixin
+class MenuManager(manager.ViewletManagerBase):
+ """Menu manager for all kind of menu items"""
+
+ def sort(self, viewlets):
+ return sorted(viewlets, key=getWeight)
+
+ def filter(self, viewlets):
+ """Filter available menu items."""
+ # Only return viewlets accessible to the principal
+ return [(name, viewlet) for name, viewlet in viewlets
+ if zope.security.canAccess(viewlet, 'render') and
+ viewlet.available == True]
+
+ def render(self):
+ """Return the template whihc renders the menu items."""
+ if not self.viewlets:
+ return u''
+ return self.template()
+
+ def __repr__(self):
+ return '<%s %r>' % (self.__class__.__name__, self.__name__)
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/manager.py
___________________________________________________________________
Name: svn:eol-style
+ native
Added: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/menu.pt
===================================================================
--- z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/menu.pt (rev 0)
+++ z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/menu.pt 2007-09-27 19:14:35 UTC (rev 80250)
@@ -0,0 +1,6 @@
+<tal:block define="viewlets view/viewlets">
+<ul tal:condition="viewlets">
+ <tal:block repeat="viewlet viewlets"
+ content="structure viewlet/render" />
+</ul>
+</tal:block>
Property changes on: z3c.menu.ready2go/trunk/src/z3c/menu/ready2go/menu.pt
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the Checkins
mailing list