diff --git a/integrator/content/browser.py b/integrator/content/browser.py index ef513e8..741c437 100644 --- a/integrator/content/browser.py +++ b/integrator/content/browser.py @@ -23,6 +23,7 @@ $Id$ """ from zope import interface, component +from zope.app.pagetemplate import ViewPageTemplateFile from zope.app.publisher.browser import getDefaultViewName from zope.cachedescriptors.property import Lazy @@ -31,7 +32,10 @@ from loops.browser.node import NodeView from loops.common import adapted -class ExternalAccessView(NodeView): +view_macros = ViewPageTemplateFile('view_macros.pt') + + +class ExternalAccessRenderer(NodeView): @Lazy def adapted(self): @@ -45,3 +49,14 @@ class ExternalAccessView(NodeView): def publishTraverse(self, request, name): return self.adapted()[name] + + +class FlashVideo(ConceptView): + + @Lazy + def macro(self): + return view_macros.macros['flashvideo'] + + @Lazy + def startName(self): + return self.adapted.address + '.html' diff --git a/integrator/content/configure.zcml b/integrator/content/configure.zcml index 0e6f7f9..1818b6b 100644 --- a/integrator/content/configure.zcml +++ b/integrator/content/configure.zcml @@ -40,11 +40,20 @@ + + diff --git a/integrator/content/view_macros.pt b/integrator/content/view_macros.pt new file mode 100755 index 0000000..6bb1136 --- /dev/null +++ b/integrator/content/view_macros.pt @@ -0,0 +1,16 @@ + + + +
+

+ Title +

+

+ Open Resource +
+ + +
diff --git a/integrator/interfaces.py b/integrator/interfaces.py index 8421cb0..97410da 100644 --- a/integrator/interfaces.py +++ b/integrator/interfaces.py @@ -57,7 +57,7 @@ class IExternalCollection(IConceptSchema): title=_(u'Base address'), description=_(u'A base path or URL for accessing this collection ' 'on the external system'), - required=False) + required=True) address = schema.TextLine( title=_(u'Relative address'), description=_(u'Optional second (local) part of the ' diff --git a/resource.py b/resource.py index ca711a6..1c05fc9 100644 --- a/resource.py +++ b/resource.py @@ -379,7 +379,7 @@ class ExternalFileAdapter(FileAdapter): self.storageName = storageName def getData(self): - if self.storageName == 'unknown': # object not set up yet + if self.storageName in ('unknown', None): # object not set up yet return '' storage = component.getUtility(IExternalStorage, name=self.storageName) return storage.getData(self.externalAddress, params=self.storageParams)