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