[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