Author: jmorliaguet Date: Thu Jun 22 15:07:08 2006 New Revision: 3490 Modified: cpsskins/branches/paris-sprint-2006/setup/io/migration.py
Log: - import pages Modified: cpsskins/branches/paris-sprint-2006/setup/io/migration.py ============================================================================== --- cpsskins/branches/paris-sprint-2006/setup/io/migration.py (original) +++ cpsskins/branches/paris-sprint-2006/setup/io/migration.py Thu Jun 22 15:07:08 2006 @@ -21,6 +21,7 @@ from zope.component import getUtility from cpsskins.elements.theme import Theme +from cpsskins.elements.themepage import ThemePage from cpsskins.setup.archives import TarArchive from cpsskins.setup.interfaces import IResourceManager from cpsskins.standard.fields.image import WebImage @@ -43,6 +44,7 @@ for theme_name in theme_names: self.importTheme(theme_name) self.importImages(theme_name) + return self.themes def getThemeNames(self): @@ -53,10 +55,12 @@ names.append(item[len('themes/'):-1]) return names - def importTheme(self, name=u''): - path = 'themes/%s.xml' % name - doc = parseString(self.archive[path]) + def importTheme(self, theme_name=u''): + themes = self.themes + archive = self.archive + path = 'themes/%s.xml' % theme_name + doc = parseString(archive[path]) theme_node = doc.childNodes[0] theme_name = theme_node.getAttribute('name') props = self.getProperties(theme_node, 'title', 'author', 'copyright', @@ -64,14 +68,22 @@ theme = Theme(**props) self.themes.addTheme(theme, name=theme_name) - def importImages(self, name): + page_names = self.getObjects(doc.childNodes[0], 'Theme Page').keys() + for page_name in page_names: + page_path = 'themes/%s/%s.xml' % (theme_name, page_name) + page_node = parseString(archive[page_path]) + props = self.getProperties(page_node, 'title') + page = ThemePage(**props) + themes.addPage(theme, page) + + def importImages(self, theme_name): resources = self.resources archive = self.archive themes = self.themes - for item in archive['themes/%s/icons/' % name]: + for item in archive['themes/%s/icons/' % theme_name]: image = WebImage(data=archive[item]) name = self.getFileName(item) - resources.register(name=name, resource=image, context=themes) + resources.register(name=theme_name, resource=image, context=themes) ### utilities @@ -88,6 +100,16 @@ info[str(name)] = value return info + def getObjects(self, node=None, type=u''): + info = {} + for obj in node.getElementsByTagName('object'): + name = obj.getAttribute('name') + meta_type = obj.getAttribute('meta_type') + if type and type != meta_type: + continue + info[name] = meta_type + return info + def getFileName(self, path): return path.split('/')[-1] -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins