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

Reply via email to