Changeset 143
- Timestamp:
- 05/06/09 11:52:05 (4 years ago)
- Location:
- collective.imstransport/trunk/collective/imstransport
- Files:
-
- 2 added
- 6 edited
-
browser/importform.py (modified) (2 diffs)
-
config.py (added)
-
utilities/ccreader.py (added)
-
utilities/ccwriter.py (modified) (2 diffs)
-
utilities/configure.zcml (modified) (1 diff)
-
utilities/imsutility.py (modified) (1 diff)
-
utilities/interfaces.py (modified) (1 diff)
-
utilities/objcreator.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
collective.imstransport/trunk/collective/imstransport/browser/importform.py
r91 r143 5 5 from zope.app.form.browser.textwidgets import FileWidget 6 6 from zope.formlib.form import FormFields, action 7 from zope.component import getUtility 7 from zope.component import getUtility, getUtilitiesFor 8 8 from collective.imstransport.utilities.imsutility import IIMSTransportUtility 9 from collective.imstransport.utilities.interfaces import IIMSManifestReader 9 10 10 11 from collective.imstransport import IMSTransportMessageFactory as _ … … 18 19 19 20 def imspackagetypevocabulary(self): 20 imstrans = getUtility(IIMSTransportUtility) 21 readers = imstrans.getReaders() 21 22 readers = [] 23 imsreaders = getUtilitiesFor(IIMSManifestReader) 24 for reader in imsreaders: 25 readers.append((reader[0], reader[0])) 22 26 return SimpleVocabulary.fromItems(readers) 23 27 -
collective.imstransport/trunk/collective/imstransport/utilities/ccwriter.py
r138 r143 93 93 if customMetadataString: 94 94 self.parseCustomString(customMetadataString, rlomwriter); 95 96 95 97 96 rlomwriter.writeFileNode(path) … … 169 168 170 169 path = obj.virtual_url_path().replace(self.context.aq_inner.aq_parent.virtual_url_path(), '')[1:] 170 171 171 if path[-1] == '/': 172 172 path = path[:-1] 173 174 path_parts = path.split('/') 175 if len(path_parts) == 1: 176 return '' 177 else: 178 path = '/'.join(path_parts[1:]) 173 179 174 180 if hasattr(obj.aq_explicit, 'Format'): -
collective.imstransport/trunk/collective/imstransport/utilities/configure.zcml
r91 r143 15 15 <utility 16 16 provides=".interfaces.IIMSManifestReader" 17 factory=". imscc.IMSCCReader"17 factory=".ccreader.IMSCCReader" 18 18 name="IMS Common Cartridge" 19 19 /> -
collective.imstransport/trunk/collective/imstransport/utilities/imsutility.py
r138 r143 12 12 13 13 implements(IIMSTransportUtility) 14 # tocpage = PageTemplateFile('tableofcontents',WWW_DIR)15 14 16 15 def importPackage(self, context, package, packagetype): 17 16 reader = getUtility(IIMSManifestReader, packagetype) 18 manifestDictionary = reader.readManifest(package) 19 oc = getUtility(IIMSObjectCreator) 20 oc.createObject(context, manifestDictionary, package) 17 return reader.readPackage(context, package) 21 18 22 19 def exportPackage(self, package, filename, packagetype = "Common Cartridge", wtype='Common Cartridge'): 23 20 writer = getUtility(IIMSManifestWriter, packagetype) 24 # writer.setDestination(ZipfileWriter(filename, package.getId()))25 21 return writer.createPackage(package, filename) 26 22 -
collective.imstransport/trunk/collective/imstransport/utilities/interfaces.py
r91 r143 28 28 """ Return the desciptive name of the package type. """ 29 29 30 def read Manifest(file):30 def readPackage(file): 31 31 """ Read IMS CC manifest """ 32 32 -
collective.imstransport/trunk/collective/imstransport/utilities/objcreator.py
r136 r143 4 4 from Products.PageTemplates.PageTemplateFile import PageTemplateFile 5 5 from OFS.SimpleItem import SimpleItem 6 from AccessControl import Unauthorized 6 7 7 8 class ObjectCreator(object): … … 10 11 implements(IIMSObjectCreator) 11 12 12 def createObject(self, context, objDict, zipfile): 13 def createObjects(self, objDict, context, source): 14 """ Read the manifest """ 15 16 self.context = context 13 17 14 18 for id in objDict: 19 15 20 data = objDict[id] 21 # Recursively create objects based on metadata dictionary 22 parent = self.CreateFolderPath(context, data['path']) 16 23 17 # Recursively create objects based on metadata dictionary18 parent = self.CreateFolderPath(context, data['path'].split('/'))19 20 24 if not getattr(parent, data['id'], None): 21 25 parent.invokeFactory(data['type'], data['id']) 22 26 obj = getattr(parent, data['id']) 23 obj.setTitle(data['title']) 24 27 25 28 if data.has_key('file'): 26 if (data['path']): 27 path_to_file = '%s/%s' %(data['path'], data['file']) 28 else: 29 path_to_file = data['file'] 30 zf = ZipFile(zipfile, 'r') 29 path_to_file = data['file'] 30 zf = source 31 31 if data['type'] == 'Image' or getattr(obj, 'setImage', None): 32 obj.setImage(zf.read (path_to_file))32 obj.setImage(zf.readFile(path_to_file)) 33 33 elif data['type'] == 'File' and getattr(obj, 'setFile', None): 34 obj.setFile(zf.read (path_to_file))34 obj.setFile(zf.readFile(path_to_file)) 35 35 elif data['type'] == 'Document' and getattr(obj, 'setText', None): 36 obj.setText(zf.read(path_to_file)) 37 zf.close() 36 obj.setText(zf.readFile(path_to_file)) 38 37 elif data.has_key('text'): 39 38 obj.setText(data['text']) 39 40 # Set the metadata on the object 41 for key in data.keys(): 42 if key != 'file': 43 field = obj.getField(key) 44 if field: 45 mutator = field.getMutator(obj) 46 if mutator: 47 if field.__name__ == 'excludeFromNav': 48 mutator('False') 49 else: 50 mutator(data[key]) 40 51 41 52 obj.reindexObject() … … 46 57 47 58 temp = context 48 for path_elem in path: 59 pathsplit = path.split('/') 60 61 for path_elem in pathsplit: 49 62 if not path_elem: 50 63 continue … … 58 71 59 72 return temp 60 61 62 63 64 65 66 67
Note: See TracChangeset
for help on using the changeset viewer.
