Changeset 171


Ignore:
Timestamp:
05/09/09 10:46:04 (5 years ago)
Author:
jon
Message:

Providing type information based on ec metadata

Location:
enpraxis.educommons/branches/educommons-imsintegration/enpraxis/educommons/utilities
Files:
2 edited

Legend:

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

    r164 r171  
    2626                if ot not in ['Course', 'FSSFile', 'Document', 'File', 'Image', 'Link']: 
    2727                    raise ManifestError, '"%s" is not a recognized object type.' %ot 
    28                 metadata['Type'] = '%s' %ot 
     28                metadata['type'] = '%s' %ot 
    2929 
    3030        copyright_nodes = node.getElementsByTagNameNS(ec_namespace, 'copyright') 
  • enpraxis.educommons/branches/educommons-imsintegration/enpraxis/educommons/utilities/objcreator.py

    r164 r171  
    1616        for id in objDict: 
    1717            data = objDict[id] 
    18             if data.has_key('Type') and data['Type'] == 'Course': 
     18            if data.has_key('type') and data['type'] == 'Course': 
    1919                obj = context 
    2020                obj.setText(zf.readFile(data['file'])) 
    21                 for key in data.keys(): 
    22                     if key not in ['id', 'file']: 
    23                         field = obj.getField(key) 
    24                         if field: 
    25                             mutator = field.getMutator(obj) 
    26                             if mutator: 
    27                                 if field.__name__ == 'excludeFromNav': 
    28                                     mutator('False') 
    29                                 else: 
    30                                     mutator(data[key]) 
     21                self.applyMetadata(obj, data) 
     22                if data['id'].split('.')[-1] == 'html' and data['id'].find('.html') > 0: 
     23                    courseid = '.'.join(data['id'].split('.')[:-1]).encode('utf-8') 
     24                    objpar = obj.aq_inner.aq_parent 
     25                    if getattr(objpar, courseid, None): 
     26                        raise ManifestError, 'Could not import package because a course with id "' + courseid + '" already exists.' 
     27                    else: 
     28                        obj.setId(courseid) 
    3129                obj.reindexObject() 
    3230                context.reindexObject() 
     
    3937 
    4038            data = objDict[id] 
    41             if data.has_key('Type') and data['Type'] == 'Course': 
     39            if data.has_key('type') and data['type'] == 'Course': 
    4240                continue 
    4341            else: 
     
    6462                    obj.setText(data['text']) 
    6563 
    66                 # Set the metadata on the object 
    67                 for key in data.keys(): 
    68                     if key != 'file': 
    69                         field = obj.getField(key) 
    70                         if field: 
    71                             mutator = field.getMutator(obj) 
    72                             if mutator: 
    73                                 if field.__name__ == 'excludeFromNav': 
    74                                     mutator('False') 
    75                                 else: 
    76                                     mutator(data[key]) 
    77  
     64                self.applyMetadata(obj, data) 
    7865 
    7966            obj.reindexObject() 
    8067            self.context.reindexObject() 
     68 
     69 
     70    def applyMetadata(self, obj, data): 
     71        # Set the metadata on the object 
     72        for key in data.keys(): 
     73            if key not in  ['file', 'id', 'type']: 
     74                field = obj.getField(key) 
     75                if field: 
     76                    mutator = field.getMutator(obj) 
     77                    if mutator: 
     78                        if field.__name__ == 'excludeFromNav': 
     79                            mutator('False') 
     80                        else: 
     81                            mutator(data[key]) 
     82 
    8183 
    8284    def CreateFolderPath(self, context, path): 
Note: See TracChangeset for help on using the changeset viewer.