Author: jmorliaguet Date: Thu Dec 8 17:45:21 2005 New Revision: 1997 Modified: cpsskins/branches/jmo-perspectives/engines/sitedesigner/browser.py cpsskins/branches/jmo-perspectives/engines/sitedesigner/site_designer.pt cpsskins/branches/jmo-perspectives/setup/interfaces.py cpsskins/branches/jmo-perspectives/setup/manager.py cpsskins/branches/jmo-perspectives/setup/setting.py Log:
- split up settings into: - LocalSetting (persistent) - GlobalSetting (non-persistent) 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 Thu Dec 8 17:45:21 2005 @@ -26,8 +26,8 @@ from zope.component import getUtilitiesFor, getUtility, getMultiAdapter from zope.component import queryUtility, getAllUtilitiesRegisteredFor -from cpsskins.setup.interfaces import ISetting, IResource -from cpsskins.setup.interfaces import IResourceType, IResourceManager +from cpsskins.setup.interfaces import ISetting, IGlobalSetting, ILocalSetting +from cpsskins.setup.interfaces import IResourceType, IResourceManager, IResource from cpsskins.setup.registration import refresh setting_xml = """<?xml version="1.0"?> @@ -46,12 +46,12 @@ for name, setting in getUtilitiesFor(ISetting): resource = IResource(setting).getResource() resource_type = queryType(resource, IResourceType) - readonly = setting.filename is not None info.setdefault(resource_type.getTaggedValue('name'), []).append({ 'name': name, 'setting': setting, 'resource': resource, - 'readonly': readonly, + 'readonly': IGlobalSetting.providedBy(setting), + 'custom': getattr(setting, 'custom', False), }) return info Modified: cpsskins/branches/jmo-perspectives/engines/sitedesigner/site_designer.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/engines/sitedesigner/site_designer.pt (original) +++ cpsskins/branches/jmo-perspectives/engines/sitedesigner/site_designer.pt Thu Dec 8 17:45:21 2005 @@ -49,7 +49,7 @@ <tal:block content="info/setting/title" /> <tal:block define="name info/name; readonly info/readonly; - custom info/setting/custom"> + custom info/custom"> <a tal:attributes="href string:@@customizeSetting?name=$name" tal:condition="readonly">[customize]</a> <a tal:attributes="href string:@@decustomizeSetting?name=$name" Modified: cpsskins/branches/jmo-perspectives/setup/interfaces.py ============================================================================== --- cpsskins/branches/jmo-perspectives/setup/interfaces.py (original) +++ cpsskins/branches/jmo-perspectives/setup/interfaces.py Thu Dec 8 17:45:21 2005 @@ -37,8 +37,14 @@ resource = Attribute("The resource.") +class IGlobalSetting(ISetting): + """ """ + filename = Attribute("The resource filename.") +class ILocalSetting(ISetting): + """ """ + custom = Attribute("Is this a custom setting?.") class IResource(Interface): Modified: cpsskins/branches/jmo-perspectives/setup/manager.py ============================================================================== --- cpsskins/branches/jmo-perspectives/setup/manager.py (original) +++ cpsskins/branches/jmo-perspectives/setup/manager.py Thu Dec 8 17:45:21 2005 @@ -30,7 +30,7 @@ from cpsskins.setup.interfaces import IResourceManager, IResource, ISettings from cpsskins.setup.interfaces import ISetting -from cpsskins.setup.setting import Setting +from cpsskins.setup.setting import GlobalSetting, LocalSetting class ResourceManager(object): """Resource manager utility""" @@ -46,7 +46,8 @@ """ # register as a global utility if context is None: - setting = Setting(title=title, resource=resource, filename=filename) + setting = GlobalSetting(title=title, resource=resource, + filename=filename) provideUtility(setting, ISetting, name) # register as a local utility @@ -54,7 +55,8 @@ settings = getUtility(ISettings, context=context) chooser = INameChooser(settings) name = name or chooser.chooseName(title, object) - setting = Setting(title=title, resource=resource, custom=custom) + setting = LocalSetting(title=title, resource=resource, + custom=custom) settings[name] = setting reg = UtilityRegistration(name, ISetting, settings[name]) Modified: cpsskins/branches/jmo-perspectives/setup/setting.py ============================================================================== --- cpsskins/branches/jmo-perspectives/setup/setting.py (original) +++ cpsskins/branches/jmo-perspectives/setup/setting.py Thu Dec 8 17:45:21 2005 @@ -21,16 +21,34 @@ from zope.interface import implements from persistent import Persistent -from cpsskins.setup.interfaces import ISetting +from cpsskins.setup.interfaces import ISetting, IGlobalSetting, ILocalSetting -class Setting(Persistent, Contained): +class Setting(object): """A setting configuration item. """ implements(ISetting) - def __init__(self, title=u'', resource=None, filename=None, custom=False): + def __init__(self, title=u'', resource=None): + self.title = title + self.resource = resource + +class GlobalSetting(Setting): + """A local persistent setting + """ + implements(IGlobalSetting) + + def __init__(self, title=u'', resource=None, filename=None): self.title = title self.resource = resource self.filename = filename + +class LocalSetting(Setting, Persistent, Contained): + """A local persistent setting + """ + implements(ILocalSetting) + + def __init__(self, title=u'', resource=None, custom=False): + self.title = title + self.resource = resource self.custom = custom -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins