[Checkins] SVN: megrok.resourceviewlet/trunk/src/ Added base code.
Souheil CHELFOUH
souheil at chelfouh.com
Wed Dec 23 19:43:08 EST 2009
Log message for revision 107032:
Added base code.
Changed:
A megrok.resourceviewlet/trunk/src/
A megrok.resourceviewlet/trunk/src/megrok/
A megrok.resourceviewlet/trunk/src/megrok/__init__.py
A megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/
A megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/__init__.py
A megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
A megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/tests.py
-=-
Added: megrok.resourceviewlet/trunk/src/megrok/__init__.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/__init__.py (rev 0)
+++ megrok.resourceviewlet/trunk/src/megrok/__init__.py 2009-12-24 00:43:07 UTC (rev 107032)
@@ -0,0 +1,5 @@
+try:
+ __import__('pkg_resources').declare_namespace(__name__)
+except ImportError:
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
Added: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py (rev 0)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py 2009-12-24 00:43:07 UTC (rev 107032)
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+import grokcore.component as grok
+
+from hurry.resource import IInclusion
+from grokcore.viewlet.component import ViewletManager, Viewlet
+from grokcore.viewlet.interfaces import IViewletManager
+
+from zope.schema import List, Object
+from zope.schema.fieldproperty import FieldProperty
+from zope.interface import Interface
+from zope.viewlet.interfaces import IViewlet
+from zope.viewlet.manager import ViewletManagerBase
+
+
+class IResourceViewlet(IViewlet):
+ """A viewlet which sole purpose is to include resources.
+ """
+ resources = List(
+ title = u"Resources to be included",
+ required = True,
+ value_type = Object(
+ schema = IInclusion,
+ )
+ )
+
+ def render(self):
+ """Calling this method will 'need' the resources.
+ The return value will *not* be taken in consideration.
+ """
+
+
+class InclusionViewletManager(ViewletManager):
+ """A manager which sole purpose is to render ResourceViewlets.
+ """
+ grok.baseclass()
+
+ def __init__(self, context, request, view):
+ self.context = context
+ self.request = request
+ self.view = view
+
+ def sort(self, viewlets):
+ return viewlets
+
+ def default_namespace(self):
+ raise NotImplementedError(
+ "No template can be associated to this component")
+
+ def namespace(self):
+ raise NotImplementedError(
+ "No template can be associated to this component")
+
+ def render(self):
+ for viewlet in self.viewlets:
+ if IResourceViewlet.providedBy(viewlet):
+ viewlet.render()
+
+
+class ResourceViewlet(Viewlet):
+ """A viewlet including resources.
+ """
+ grok.baseclass()
+ grok.implements(IResourceViewlet)
+ resources = FieldProperty(IResourceViewlet['resources'])
+
+ def __init__(self, context, request, view, manager):
+ pass
+
+ def default_namespace(self):
+ raise NotImplementedError(
+ "No template can be associated to this component")
+
+ def namespace(self):
+ raise NotImplementedError(
+ "No template can be associated to this component")
+
+ def update(self):
+ pass
+
+ def render(self):
+ for resource in resources:
+ resource.need()
Added: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/tests.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/tests.py (rev 0)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/tests.py 2009-12-24 00:43:07 UTC (rev 107032)
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+import os.path
+import unittest
+from zope.app.testing import functional
+from zope.testing import doctest, module
+from zope.publisher.browser import TestRequest
+from zope.app.testing.functional import ZCMLLayer
+
+ftesting_zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
+FunctionalLayer = ZCMLLayer(
+ ftesting_zcml, __name__, 'FunctionalLayer', allow_teardown=True)
+
+
+def setUp(test):
+ module.setUp(test, 'megrok.resourceviewlet.tests')
+
+def tearDown(test):
+ module.tearDown(test)
+
+def test_suite():
+ suite = unittest.TestSuite()
+ readme = functional.FunctionalDocFileSuite(
+ 'README.txt', setUp=setUp, tearDown=tearDown)
+ readme.layer = FunctionalLayer
+ suite.addTest(readme)
+ return suite
More information about the checkins
mailing list