Author: jmorliaguet Date: Tue Dec 13 01:51:41 2005 New Revision: 2025 Modified: cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py cpsskins/branches/jmo-perspectives/elements/configure.zcml cpsskins/branches/jmo-perspectives/elements/display.py cpsskins/branches/jmo-perspectives/elements/element.py cpsskins/branches/jmo-perspectives/elements/format.py cpsskins/branches/jmo-perspectives/elements/interfaces.py cpsskins/branches/jmo-perspectives/elements/presentation.py cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py cpsskins/branches/jmo-perspectives/engines/editing/views.py cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py Log:
- updated the classification of resources - removed 'formatname' (='resourcename') - added method properties to access resource names, element names, ... Modified: cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py ============================================================================== --- cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py (original) +++ cpsskins/branches/jmo-perspectives/browser/rendering/renderer.py Tue Dec 13 01:51:41 2005 @@ -93,13 +93,13 @@ # look for renderers associated to the element's content type iface = IType(element).getContentType() - name = engine + '.' + iface.__name__ # XXX create a dotted name + name = engine + '.' + iface.getTaggedValue('name') renderer = queryUtility(configuration.IRenderer, name) if renderer is None: # fall back to the element type iface = IType(element).getElementType() - name = engine + '.' + iface.__name__ # XXX create a dotted name + name = engine + '.' + iface.getTaggedValue('name') renderer = queryUtility(configuration.IRenderer, name) if renderer is None: logger.log(INFO, Modified: cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/displays/metaconfigure.py Tue Dec 13 01:51:41 2005 @@ -72,7 +72,6 @@ configuration.IDisplay, name) # set up interface types - alsoProvides(IDisplay, IElementType) alsoProvides(schema, IContentType) schema.setTaggedValue('name', name) Modified: cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/formats/metaconfigure.py Tue Dec 13 01:51:41 2005 @@ -29,6 +29,7 @@ from cpsskins.elements.interfaces import IElementType, IFormat from cpsskins.ontology import FormatPredicate, IFormatPredicate +from cpsskins.setup.interfaces import IResourceType def getAbsolutePath(_context, file): return os.path.abspath(str(_context.path(file))) @@ -76,8 +77,8 @@ provideUtility(FormatPredicate(predicate), IFormatPredicate, name) # set up interface types + alsoProvides(schema, IResourceType) alsoProvides(schema, IContentType) - alsoProvides(IFormat, IElementType) # set tagged values schema.setTaggedValue('predicate', predicate) Modified: cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py ============================================================================== --- cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py (original) +++ cpsskins/branches/jmo-perspectives/configuration/renderers/metaconfigure.py Tue Dec 13 01:51:41 2005 @@ -47,7 +47,7 @@ renderer(self._context, engine, self.for_) for iface in self.for_: - name = engine + '.' + iface.__name__ # XXX create a dotted name + name = engine + '.' + iface.getTaggedValue('name') provideUtility(configuration.Renderer(filters=self.filters), configuration.IRenderer, name) Modified: cpsskins/branches/jmo-perspectives/elements/configure.zcml ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/configure.zcml (original) +++ cpsskins/branches/jmo-perspectives/elements/configure.zcml Tue Dec 13 01:51:41 2005 @@ -129,11 +129,19 @@ /> + <!-- Canvas elements --> + + <interface + interface=".interfaces.ICanvas" + type=".interfaces.IElementType" + /> + + <!-- Theme --> <interface interface=".interfaces.ITheme" - type=".interfaces.IElementType" + type="cpsskins.setup.interfaces.IResourceType" /> <interface @@ -166,7 +174,7 @@ <interface interface=".interfaces.IThemePage" - type=".interfaces.IElementType" + type="cpsskins.setup.interfaces.IResourceType" /> <interface @@ -223,7 +231,7 @@ <interface interface=".interfaces.IPageBlock" - type=".interfaces.IElementType" + type="cpsskins.setup.interfaces.IResourceType" /> <interface @@ -281,7 +289,7 @@ <interface interface=".interfaces.ICell" - type=".interfaces.IElementType" + type="cpsskins.setup.interfaces.IResourceType" /> <interface @@ -345,7 +353,7 @@ <interface interface=".interfaces.ISlot" - type=".interfaces.IElementType" + type="cpsskins.setup.interfaces.IResourceType" /> <interface Modified: cpsskins/branches/jmo-perspectives/elements/display.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/display.py (original) +++ cpsskins/branches/jmo-perspectives/elements/display.py Tue Dec 13 01:51:41 2005 @@ -205,10 +205,10 @@ context = self.context presentation = queryUtility(configuration.IPresentation, - IType(context).contenttype()) + IType(context).contentname) if presentation is None: presentation = queryUtility(configuration.IPresentation, - IType(context).elementtype()) + IType(context).elementname) display = getUtility(configuration.IDisplay, presentation.display) return apply(display.factory, ()) Modified: cpsskins/branches/jmo-perspectives/elements/element.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/element.py (original) +++ cpsskins/branches/jmo-perspectives/elements/element.py Tue Dec 13 01:51:41 2005 @@ -66,7 +66,7 @@ def getURI(self): element = self.element - prefix = IType(element).resourcetype + prefix = IType(element).resourcename suffix = str(IRelatable(element)) or \ str(IRelatable(element.__parent__)) or u'' return '%s.%s' % (prefix, suffix) @@ -130,20 +130,26 @@ def __init__(self, element): self.element = element - def getContentType(self): - return queryType(self.element, IContentType) - def getElementType(self): return queryType(self.element, IElementType) def getResourceType(self): - return queryType(self.element, IResourceType) + return queryType(self.element, IResourceType) or self.getElementType() - def contenttype(self): - return self.getContentType().getTaggedValue('name') + def getContentType(self): + return queryType(self.element, IContentType) - def elementtype(self): + def getElementName(self): return self.getElementType().getTaggedValue('name') - def resourcetype(self): + def getResourceName(self): return self.getResourceType().getTaggedValue('name') + + def getContentName(self): + return self.getContentType().getTaggedValue('name') + + elementname = property(getElementName) + + resourcename = property(getResourceName) + + contentname = property(getContentName) Modified: cpsskins/branches/jmo-perspectives/elements/format.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/format.py (original) +++ cpsskins/branches/jmo-perspectives/elements/format.py Tue Dec 13 01:51:41 2005 @@ -48,15 +48,10 @@ reltool = IRelationTool(self) return reltool.getFirsts(second=self, predicate=hasFormat) - def _getPredicate(self): + def getPredicate(self): return IType(self).getContentType().getTaggedValue('predicate') - def _getFormatName(self): - return IType(self).getContentType().getTaggedValue('name') - - formatname = property(_getFormatName) - - predicate = property(_getPredicate) + predicate = property(getPredicate) class Formattable(object): """This adapter makes elements formattable. @@ -135,7 +130,7 @@ def getFormatNames(self): """Return the list of format names in alphabetical order. """ - names = [f.formatname for f in self.getFormats()] + names = [IType(f).resourcename for f in self.getFormats()] names.sort() return names @@ -155,7 +150,7 @@ context = self.context reltool = IRelationTool(context) - predicate = self.getPredicate(format.formatname) + predicate = self.getPredicate(IType(format).resourcename) relations = reltool.search(first=context, predicate=predicate) reltool.remove(relations) Modified: cpsskins/branches/jmo-perspectives/elements/interfaces.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/interfaces.py (original) +++ cpsskins/branches/jmo-perspectives/elements/interfaces.py Tue Dec 13 01:51:41 2005 @@ -41,18 +41,25 @@ class IType(Interface): + def getElementType(): + """ """ + + def getResourceType(): + """ """ + def getContentType(): """ """ - def getElementType(): + def getElementName(): """ """ - def contenttype(): + def getResourceName(): """ """ - def elementtype(): + def getContentName(): """ """ + class INode(IElement): """A generic tree node""" @@ -68,6 +75,11 @@ """Return the list of child nodes """ +class ICanvas(IElement): + """A canvas element""" + +ICanvas.setTaggedValue('name', u'canvas') + class IDisplay(IElement): """A display element""" @@ -112,8 +124,6 @@ class IFormat(IElement): - formatname = Attribute(u"Format name") - type = Attribute("The type of format.") def findDisplays(): @@ -181,7 +191,7 @@ IPortlet.setTaggedValue('name', u'portlet') -class ISlot(IInnerNode, IItemContainer): +class ISlot(ICanvas, IInnerNode, IItemContainer): """A slot. """ @@ -200,7 +210,7 @@ ISlot.setTaggedValue('name', u'slot') -class ICell(IInnerNode): +class ICell(ICanvas, IInnerNode): """A cell. """ title = TextLine( @@ -209,7 +219,7 @@ ICell.setTaggedValue('name', u'cell') -class IPageBlock(IInnerNode): +class IPageBlock(ICanvas, IInnerNode): """A page block. """ title = TextLine( @@ -218,7 +228,7 @@ IPageBlock.setTaggedValue('name', u'pageblock') -class IThemePage(IInnerNode): +class IThemePage(ICanvas, IInnerNode): """A page. """ title = TextLine( @@ -231,7 +241,7 @@ IThemePage.setTaggedValue('name', u'themepage') -class ITheme(IInnerNode): +class ITheme(ICanvas, IInnerNode): """A theme. """ @@ -340,6 +350,3 @@ different content types will be categorized under the same element type. """ -class IDisplayType(IInterface): - """The display type categorizes displays elements.""" - Modified: cpsskins/branches/jmo-perspectives/elements/presentation.py ============================================================================== --- cpsskins/branches/jmo-perspectives/elements/presentation.py (original) +++ cpsskins/branches/jmo-perspectives/elements/presentation.py Tue Dec 13 01:51:41 2005 @@ -58,10 +58,10 @@ formattable = IFormattable(display) factory_info = queryUtility(configuration.IPresentation, - IType(context).contenttype()) + IType(context).contentname) if factory_info is None: factory_info = queryUtility(configuration.IPresentation, - IType(context).elementtype()) + IType(context).elementname) for name, type in factory_info.formats.items(): formattable.addFormat(name=name, type=type) @@ -165,7 +165,7 @@ formats_info = {} for format in formattable.getFormats(): - format_name = format.formatname + format_name = format.resourcename format_info = formats_info[format_name] = {} format_info['format'] = format Modified: cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt (original) +++ cpsskins/branches/jmo-perspectives/engines/contentauthor/filters/portlet.pt Tue Dec 13 01:51:41 2005 @@ -7,7 +7,7 @@ getDisplay nocall:context/displayable:getDisplay; actual_display python: getDisplay(perspective); formats actual_display/formattable:getFormatNames|python:[]; - parent_type parent/type:elementtype; + parent_type parent/type:getElementName; editable python: str(parent_type) == 'ISlot' and 1 or 0; title context/title; id context/identifier" Modified: cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py (original) +++ cpsskins/branches/jmo-perspectives/engines/default/filters/style/__init__.py Tue Dec 13 01:51:41 2005 @@ -130,7 +130,7 @@ self.style = style def __str__(self): - return 'style%s' % IIdentifiable(self.style).getURI() + return 'style%s' % self.style.identifier def __call__(self): """Render the style in CSS""" Modified: cpsskins/branches/jmo-perspectives/engines/editing/views.py ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/editing/views.py (original) +++ cpsskins/branches/jmo-perspectives/engines/editing/views.py Tue Dec 13 01:51:41 2005 @@ -106,8 +106,9 @@ main = context # Edited element + type = IType(context) element_info = { - 'title': IType(context).contenttype, + 'title': '%s.%s' % (type.elementname, type.contentname), 'url': '@@edit-menu.html?main_url=@@edit.html', 'selected': not format_name, 'icon': '', @@ -121,7 +122,8 @@ is_setting = ISetting.providedBy(f) if is_setting: f = IResource(f).getResource() - name = f.formatname + type = IType(f) + name = type.resourcename selected = name == format_name if selected: format = f @@ -133,7 +135,7 @@ main = format formats_info.append({ - 'title': IType(f).contenttype, + 'title': '%s.%s' % (type.elementname, type.resourcename), 'url': './@@edit-menu.html?format=%s' % name, 'selected': selected, }) Modified: cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt (original) +++ cpsskins/branches/jmo-perspectives/engines/layoutdesigner/filters/portlet.pt Tue Dec 13 01:51:41 2005 @@ -15,6 +15,6 @@ <div class="portletBox"> <strong tal:condition="title" tal:content="title" /> (<tal:block i18n:domain="cpsskins" - i18n:translate="" content="context/type:contenttype" />) + i18n:translate="" content="context/type:getContentName" />) </div> </div> Modified: cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py (original) +++ cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py Tue Dec 13 01:51:41 2005 @@ -22,6 +22,7 @@ from zope.component import getUtilitiesFor, getUtility, getMultiAdapter from zope.component import queryUtility, getAllUtilitiesRegisteredFor +from cpsskins.elements.interfaces import IType from cpsskins.setup.interfaces import ISetting, IGlobalSetting from cpsskins.setup.interfaces import IResourceType, IResourceManager, IResource from cpsskins.io.interfaces import IDataExporter @@ -42,8 +43,7 @@ # get all settings for name, setting in getUtilitiesFor(ISetting): resource = IResource(setting).getResource() - resource_type = queryType(resource, IResourceType) - info.setdefault(resource_type.getTaggedValue('name'), []).append({ + info.setdefault(IType(resource).resourcename, []).append({ 'name': name, 'setting': setting, 'resource': resource, -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins