[Erp5-report] r30718 - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Nov 18 12:50:08 CET 2009


Author: yo
Date: Wed Nov 18 12:50:06 2009
New Revision: 30718

URL: http://svn.erp5.org?rev=30718&view=rev
Log:
Allow Modules to propagate categories. Otherwise, it is too hard to pack information on business applications into a business template.

Modified:
    erp5/trunk/products/ERP5/Document/BusinessTemplate.py

Modified: erp5/trunk/products/ERP5/Document/BusinessTemplate.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/BusinessTemplate.py?rev=30718&r1=30717&r2=30718&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Wed Nov 18 12:50:06 2009
@@ -2846,18 +2846,19 @@
       mapping['portal_type'] = module.getPortalType()
       permission_list = []
       mapping['permission_list'] = module.showPermissions()
+      mapping['category_list'] = module.getCategoryList()
       self._objects[module_id] = mapping
 
   # Function to generate XML Code Manually
   def generateXml(self, path=None):
-    dict = self._objects[path]
+    mapping = self._objects[path]
     xml_data = ['<module>']
-    keys = dict.keys()
+    keys = mapping.keys()
     for key in sorted(keys):
       if key == 'permission_list':
         # separe permission dict into xml
         xml_data.append(' <%s>' % (key, ))
-        permission_list = dict[key]
+        permission_list = mapping[key]
         for perm in permission_list:
           # the type of the permission defined if we use acquired or not
           if isinstance(perm[1], list):
@@ -2878,8 +2879,16 @@
             xml_data.append('   <role>%s</role>' % (role, ))
           xml_data.append('  </permission>')
         xml_data.append(' </%s>' % (key, ))
+      elif key == 'category_list':
+        category_list = mapping[key]
+        if not category_list:
+          continue
+        xml_data.append(' <%s>' % (key, ))
+        for category in category_list:
+          xml_data.append('  <category>%s</category>' % (category, ))
+        xml_data.append(' </%s>' % (key, ))
       else:
-        xml_data.append(' <%s>%s</%s>' % (key, dict[key], key))
+        xml_data.append(' <%s>%s</%s>' % (key, mapping[key], key))
     xml_data.append('</module>')
     return '\n'.join(xml_data)
 
@@ -2926,6 +2935,8 @@
           role_list = permission_dict.get(name, ('Manager',))
           acquire = isinstance(role_list, list)
           module.manage_permission(name, roles=role_list, acquire=acquire)
+        if 'category_list' in mapping:
+          module.setCategoryList(mapping['category_list'])
 
   def _importFile(self, file_name, file):
     if not file_name.endswith('.xml'):
@@ -2962,6 +2973,20 @@
         else:
           value = node_list[0].data
         mapping[key] = str(value)
+
+    category_list = []
+    try:
+      elt = xml.getElementsByTagName('category_list')[0]
+    except IndexError:
+      pass
+    else:
+      category_element_list = elt.getElementsByTagName('category')
+      for category_element in category_element_list:
+        category_node = category_element.childNodes[0]
+        category = str(category_node.data)
+        category_list.append(category)
+    mapping['category_list'] = category_list
+
     self._objects[file_name[:-4]] = mapping
 
   def uninstall(self, context, **kw):




More information about the Erp5-report mailing list