Author: jmorliaguet Date: Tue Apr 11 20:05:34 2006 New Revision: 2816 Modified: cpsskins/branches/jmo-perspectives/setup/snapshot.py cpsskins/branches/jmo-perspectives/ui/panels/io_section.pt cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/configure.zcml cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/views.py Log:
- saving working in progress: XML importers are being converted to views. Modified: cpsskins/branches/jmo-perspectives/setup/snapshot.py ============================================================================== --- cpsskins/branches/jmo-perspectives/setup/snapshot.py (original) +++ cpsskins/branches/jmo-perspectives/setup/snapshot.py Tue Apr 11 20:05:34 2006 @@ -39,3 +39,5 @@ self.filename = 'site-%4d-%02d-%02d-%02d:%02d:%02d.tgz' % \ time.gmtime()[:6] + def read(self): + return self.data Modified: cpsskins/branches/jmo-perspectives/ui/panels/io_section.pt ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/panels/io_section.pt (original) +++ cpsskins/branches/jmo-perspectives/ui/panels/io_section.pt Tue Apr 11 20:05:34 2006 @@ -19,15 +19,16 @@ <h4>Upload a snapshot</h4> <form action="@@importSite" method="post" enctype="multipart/form-data"> - <input id="snapshot" type="file" name="file" /> + <input type="file" name="file" /> <button type="submit">Upload</button> </form> <h4>Load an existing snapshot</h4> - <form> - <select name="snapshot"> + <form action="@@importSnapshot" method="post" + enctype="multipart/form-data"> + <select name="filename"> <option tal:repeat="snapshot view/@@listSnapshots" - tal:content="snapshot/title" /> + tal:content="snapshot" /> </select> <button type="submit">Load</button> </form> Modified: cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/configure.zcml ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/configure.zcml (original) +++ cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/configure.zcml Tue Apr 11 20:05:34 2006 @@ -82,6 +82,11 @@ attribute="downloadSnapshot" /> + <page + name="importSnapshot" + attribute="importSnapshot" + /> + </pages> </configure> Modified: cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/views.py ============================================================================== --- cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/views.py (original) +++ cpsskins/branches/jmo-perspectives/ui/screens/sitemanager/views.py Tue Apr 11 20:05:34 2006 @@ -26,7 +26,7 @@ from cpsskins import minjson as json from cpsskins.elements.interfaces import IType from cpsskins.setup.interfaces import ISettings, ISetting, IGlobalSetting -from cpsskins.setup.interfaces import IGlobalSetting, IDataExporter +from cpsskins.setup.interfaces import IDataExporter, IDataImporter from cpsskins.setup.interfaces import IResourceType, IResourceManager, IResource from cpsskins.setup.registration import reloadSetting, refreshSettings from cpsskins.setup.utils import TarArchive @@ -144,26 +144,34 @@ def importSite(self, file=None): + archive = TarArchive(mode='r', data=file.read()) + + themes_data = archive[u'themes.xml'] + settings_data = archive[u'settings.xml'] + formats_data = archive[u'formats.xml'] + displays_data = archive[u'displays.xml'] + portlets_data = archive[u'portlets.xml'] + relations_data = archive[u'relations.xml'] + mgr = getThemeManager() + relations = mgr[u'relations'] + relations.purge() - archive = TarArchive(mode='r', data=file.read()) + self.importStorage(u'relations', relations_data) - themes = archive[u'themes.xml'] - settings = archive[u'settings.xml'] - formats = archive[u'formats.xml'] - displays = archive[u'displays.xml'] - portlets = archive[u'portlets.xml'] - relations = archive[u'relations.xml'] + return relations_data ################################################################### # Snapshots ################################################################### + def getSnapshotStorage(self): + return getThemeManager().getSnapshotStorage() + def createSnapshot(self): - snapshots = getThemeManager().getSnapshotStorage() + snapshots = self.getSnapshotStorage() snapshot = Snapshot(data=self.exportSite(False)) snapshots.add(snapshot, snapshot.filename) - self.request.response.setHeader('content-type', 'text/x-json') return json.write({'form': { 'snapshot': snapshot.filename, @@ -171,17 +179,20 @@ }}) def listSnapshots(self): - return list(getThemeManager().getSnapshotStorage()) - - def downloadSnapshot(self, filename): - snapshots = getThemeManager().getSnapshotStorage() + return list(self.getSnapshotStorage()) + def downloadSnapshot(self, filename=''): response = self.request.response response.setHeader('content-type', 'application/tgz') response.setHeader('Content-disposition', 'attachment; filename=%s' % filename) + snapshots = self.getSnapshotStorage() return snapshots.get(filename).data + def importSnapshot(self, filename=u''): + snapshots = self.getSnapshotStorage() + self.importSite(snapshots.get(filename)) + ################################################################### # Storage ################################################################### @@ -200,7 +211,14 @@ exporter = getMultiAdapter((storage, request), IDataExporter) return exporter() - def importStorage(self, xml): + def importStorage(self, name=u'', xml=u''): + request = self.request + + mgr = getThemeManager() + storage = mgr[name] + + importer = getMultiAdapter((storage, request), IDataImporter) + importer.load(xml) print xml ################################################################### -- http://lists.nuxeo.com/mailman/listinfo/z3lab-checkins