Ignore:
Timestamp:
05/14/09 19:09:36 (5 years ago)
Author:
jon
Message:

Adding mit import

File:
1 edited

Legend:

Unmodified
Added
Removed
  • enpraxis.educommons/branches/educommons-imsintegration/enpraxis/educommons/utilities/eduimsccreader.py

    r189 r198  
    119119    implements(IIMSManifestReader) 
    120120 
    121     def readPackage(self, context, input): 
     121    def readPackage(self, file, context): 
    122122        """ Read the manifest """ 
    123123 
    124         source = ZipfileReader(input) 
     124 
     125        source = ZipfileReader(file) 
    125126        objDict = {} 
    126127 
     
    128129             return False, 'Internal error. No source object specified' 
    129130 
    130         ccreader = CCReader(context, source) 
     131        ccreader = CCReader() 
    131132              
    132133        manifest = source.readManifest() 
     
    141142 
    142143        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) 
    145147            reshref = ccresourcereader.getHref() 
     148            cctype = ccresourcereader.getCCType() 
    146149            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         
    164199        objcreator = getUtility(IIMSObjectCreator) 
    165200        objcreator.createObjects(objDict, context, source) 
     
    167202 
    168203 
    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): 
    170251        """ Read the resource metadata """ 
    171252             
Note: See TracChangeset for help on using the changeset viewer.