Exemple #1
0
 def _loadProfileMeta(self, module_path):
     """
     """
     instance_identifier = self.getInstanceIdentifier()
     profilemeta_path = join(module_path, 'profilemeta.xml')
     profilemeta_handler, error = profilemeta_parser().parse(self.futRead(profilemeta_path, 'r'))
     if profilemeta_handler is not None:
         if profilemeta_handler.root is not None:
             profiles_tool = self.getProfilesTool()
             entry_title = 'Profile at %s' % instance_identifier
             #add entry in profiles tool
             if not profiles_tool.profiles_meta.has_key(self.meta_type):
                 profiles_tool.profiles_meta[self.meta_type] = {
                     'title': entry_title,
                     'properties': [],
                     'instances': []
                 }
                 psa = profiles_tool.profiles_meta[self.meta_type]['properties'].append
                 for p in profilemeta_handler.root.properties:
                     psa({'id': p.id, 'value': p.value, 'type': p.type})
             if instance_identifier not in profiles_tool.profiles_meta[self.meta_type]['instances']:
                 #update profile meta instances list
                 profiles_tool.profiles_meta[self.meta_type]['instances'].append(instance_identifier)
                 profiles_tool._p_changed = 1
                 #update all existing profiles
                 sheet_id = self.getInstanceSheetId()
                 for profile_ob in profiles_tool.getProfiles():
                     manage_addProfileSheet(profile_ob, sheet_id, entry_title, instance_identifier)
                     sheet_ob = profile_ob._getOb(sheet_id)
                     for p in profilemeta_handler.root.properties:
                         sheet_ob.manage_addProperty(p.id, p.value, p.type)
     else:
         raise Exception, EXCEPTION_PARSINGFILE % (profilemeta_path, error)
Exemple #2
0
 def loadProfileSheets(self, profile_ob):
     """
     Given a profile object, it loads all needed sheets according
     with profile metadata definitions.
     """
     for k, v in self.profiles_meta.items():
         title = v['title']
         properties = v['properties']
         for x in v['instances']:
             instance_ob = self.getInstanceByIdentifier(x)
             sheet_id = instance_ob.getInstanceSheetId()
             manage_addProfileSheet(profile_ob, sheet_id, title, x)
             sheet_ob = profile_ob._getOb(sheet_id)
             for p in properties:
                 sheet_ob.manage_addProperty(p['id'], p['value'], p['type'])
Exemple #3
0
 def loadProfileSheets(self, profile_ob):
     """
     Given a profile object, it loads all needed sheets according
     with profile metadata definitions.
     """
     for k, v in self.profiles_meta.items():
         title = v['title']
         properties = v['properties']
         for x in v['instances']:
             instance_ob = self.getInstanceByIdentifier(x)
             sheet_id = instance_ob.getInstanceSheetId()
             manage_addProfileSheet(profile_ob, sheet_id, title, x)
             sheet_ob = profile_ob._getOb(sheet_id)
             for p in properties:
                 sheet_ob.manage_addProperty(p['id'], p['value'], p['type'])