Changeset 198 for enpraxis.educommons/branches/educommons-imsintegration/enpraxis/educommons/utilities/eduimsccreader.py
- Timestamp:
- 05/14/09 19:09:36 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
enpraxis.educommons/branches/educommons-imsintegration/enpraxis/educommons/utilities/eduimsccreader.py
r189 r198 119 119 implements(IIMSManifestReader) 120 120 121 def readPackage(self, context, input):121 def readPackage(self, file, context): 122 122 """ Read the manifest """ 123 123 124 source = ZipfileReader(input) 124 125 source = ZipfileReader(file) 125 126 objDict = {} 126 127 … … 128 129 return False, 'Internal error. No source object specified' 129 130 130 ccreader = CCReader( context, source)131 ccreader = CCReader() 131 132 132 133 manifest = source.readManifest() … … 141 142 142 143 for resourceid in resourceids: 143 ccresourcereader = eduCCResourceReader(ccreader, resourceid, {}) 144 resdata = self.parseResourceMetadata(ccresourcereader, resourceid, context) 144 145 ccresourcereader = eduCCResourceReader(ccreader, resourceid) 146 resdata = self._parseResourceMetadata(ccresourcereader, resourceid) 145 147 reshref = ccresourcereader.getHref() 148 cctype = ccresourcereader.getCCType() 146 149 files = ccresourcereader.readFiles() 147 148 hashref = '' 149 if files: 150 for file in files: 151 hashref = '%s%s' %(resourceid, file) 152 id = self.createIdFromFile(file) 153 path = self.createPathFromFile(file) 154 155 if reshref == file or len(files) == 1: 156 hashref = resourceid 157 objDict[hashref] = resdata 158 159 if hashref in [org for org in orgdata if org]: 160 objDict[hashref]['excludeFromNav'] = False 161 162 self.parseFile(context, file, objDict, hashref, id, path) 163 150 hashref = resourceid 151 152 if files and cctype == 'imswl_xmlv1p0': 153 file = files[0] 154 155 id = self._createIdFromFile(file) 156 id = id.replace('.xml','') 157 path = self._createPathFromFile(file) 158 159 objDict[hashref] = resdata 160 objDict[hashref]['type'] = 'Link' 161 if not objDict[hashref].has_key('path'): 162 objDict[hashref]['path'] = path 163 if not objDict[hashref].has_key('id'): 164 objDict[hashref]['id'] = id 165 166 linkxml = source.readFile(file) 167 linktuple = ccresourcereader.getLink(self.WL, 'webLink', linkxml) 168 169 objDict[hashref]['title'] = linktuple[0] 170 objDict[hashref]['remoteUrl'] = linktuple[1] 171 172 elif cctype == 'webcontent': 173 if files: 174 for file in files: 175 176 id = self._createIdFromFile(file) 177 path = self._createPathFromFile(file) 178 179 if reshref == file or len(files) == 1: 180 hashref = resourceid 181 objDict[hashref] = resdata 182 183 # Check if item is in organizations section 184 orgs = [org for org in orgdata if org] 185 if hashref in orgs: 186 objDict[hashref]['excludeFromNav'] = False 187 objDict[hashref]['title'] = orgdata[hashref] 188 else: 189 objDict[hashref]['excludeFromNav'] = True 190 191 else: 192 hashref = '%s%s' %(resourceid, file) 193 objDict[hashref] = {} 194 objDict[hashref]['excludeFromNav'] = True 195 196 self._parseFile(file, objDict, hashref, id, path) 197 198 164 199 objcreator = getUtility(IIMSObjectCreator) 165 200 objcreator.createObjects(objDict, context, source) … … 167 202 168 203 169 def parseResourceMetadata(self, resourcereader, resourceid, context): 204 205 # source = ZipfileReader(input) 206 # objDict = {} 207 208 # if not source: 209 # return False, 'Internal error. No source object specified' 210 211 # ccreader = CCReader(context, source) 212 213 # manifest = source.readManifest() 214 # if not manifest: 215 # return False, \ 216 # 'Manifest', \ 217 # 'Could not locate manifest file "imsmanifest.xml" in the zip archive.' 218 219 # ccreader.parseManifest(manifest) 220 # orgdata = ccreader.readOrganizations() 221 # resourceids = ccreader.readResources() 222 223 # for resourceid in resourceids: 224 # ccresourcereader = eduCCResourceReader(ccreader, resourceid, {}) 225 # resdata = self.parseResourceMetadata(ccresourcereader, resourceid, context) 226 # reshref = ccresourcereader.getHref() 227 # files = ccresourcereader.readFiles() 228 229 # hashref = '' 230 # if files: 231 # for file in files: 232 # hashref = '%s%s' %(resourceid, file) 233 # id = self.createIdFromFile(file) 234 # path = self.createPathFromFile(file) 235 236 # if reshref == file or len(files) == 1: 237 # hashref = resourceid 238 # objDict[hashref] = resdata 239 240 # if hashref in [org for org in orgdata if org]: 241 # objDict[hashref]['excludeFromNav'] = False 242 243 # self.parseFile(context, file, objDict, hashref, id, path) 244 245 # objcreator = getUtility(IIMSObjectCreator) 246 # objcreator.createObjects(objDict, context, source) 247 # return 248 249 250 def _parseResourceMetadata(self, resourcereader, resourceid): 170 251 """ Read the resource metadata """ 171 252
Note: See TracChangeset
for help on using the changeset viewer.
