Author: jmorliaguet
Date: Thu Jun 29 20:23:02 2006
New Revision: 3562

Modified:
   cpsskins/branches/paris-sprint-2006/controllers/theme.py
   cpsskins/branches/paris-sprint-2006/controllers/themepage.py
   cpsskins/branches/paris-sprint-2006/doc/theme-structure.txt
   cpsskins/branches/paris-sprint-2006/standard/negotiation/page.py

Log:

- fixed the behaviour of default themes



Modified: cpsskins/branches/paris-sprint-2006/controllers/theme.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/controllers/theme.py    (original)
+++ cpsskins/branches/paris-sprint-2006/controllers/theme.py    Thu Jun 29 
20:23:02 2006
@@ -43,6 +43,10 @@
     def removed(self):
         element = self.element
         tmutil = getThemeManager(element)
-
         tmutil.unregisterUtility(element, ITheme, getName(element))
 
+        if element.isDefault():
+            themes = tmutil.getThemes()
+            if themes:
+                tmutil.setAsDefault(themes[0])
+

Modified: cpsskins/branches/paris-sprint-2006/controllers/themepage.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/controllers/themepage.py        
(original)
+++ cpsskins/branches/paris-sprint-2006/controllers/themepage.py        Thu Jun 
29 20:23:02 2006
@@ -52,7 +52,8 @@
         theme = element.getTheme()
         theme.unregisterUtility(element, IThemePage, getName(element))
 
-        if tmutil.getDefaultPage(theme) is None:
+        if element.isDefault():
             pages = tmutil.getPages(theme)
             if pages:
                 tmutil.setAsDefault(pages[0])
+

Modified: cpsskins/branches/paris-sprint-2006/doc/theme-structure.txt
==============================================================================
--- cpsskins/branches/paris-sprint-2006/doc/theme-structure.txt (original)
+++ cpsskins/branches/paris-sprint-2006/doc/theme-structure.txt Thu Jun 29 
20:23:02 2006
@@ -54,14 +54,13 @@
 
 We add a theme skeleton, this creates a default theme with a default page.
 
-    >>> themes = addThemeSkeleton(tmutil)
+    >>> theme1 = addThemeSkeleton(tmutil)
 
     >>> inspect()
     - Theme (default: True)
       |_ Default page (default: True)
 
-    >>> theme1 = tmutil.getDefaultTheme()
-    >>> theme1
+    >>> tmutil.getDefaultTheme()
     Theme('Theme')
 
 we create and add a second theme:
@@ -173,3 +172,16 @@
       |_ Default page (default: True)
     - Theme 2 (default: True)
 
+if we remove a theme that is a default theme, the first theme will become
+the default theme:
+
+    >>> del tmutil[u'Theme-2']
+    >>> inspect()
+    - Theme (default: True)
+      |_ Default page (default: True)
+
+we can delete the only theme left:
+
+
+    >>> del tmutil[u'Theme']
+    >>> inspect()

Modified: cpsskins/branches/paris-sprint-2006/standard/negotiation/page.py
==============================================================================
--- cpsskins/branches/paris-sprint-2006/standard/negotiation/page.py    
(original)
+++ cpsskins/branches/paris-sprint-2006/standard/negotiation/page.py    Thu Jun 
29 20:23:02 2006
@@ -69,7 +69,8 @@
     implements(IDefaultNegotiationScheme)
 
     def __call__(self):
-        return self.manager.getDefaultPage()
+        theme = self.manager.getDefaultTheme()
+        return self.manager.getDefaultPage(theme)
 
 class Context(NegotiationScheme):
     """Look for a page in the context
-- 
http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins

Reply via email to