[Erp5-report] r43169 kazuhiko - /erp5/trunk/products/ERP5/Tool/TemplateTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Feb 8 13:23:32 CET 2011
Author: kazuhiko
Date: Tue Feb 8 13:23:32 2011
New Revision: 43169
URL: http://svn.erp5.org?rev=43169&view=rev
Log:
sort business templates recursively, without possibly adding additional business templates, that is already handled by TemplateTool_installRepositoryBusinessTemplateList.
Modified:
erp5/trunk/products/ERP5/Tool/TemplateTool.py
Modified: erp5/trunk/products/ERP5/Tool/TemplateTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/TemplateTool.py?rev=43169&r1=43168&r2=43169&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/TemplateTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Tool/TemplateTool.py [utf8] Tue Feb 8 13:23:32 2011
@@ -966,19 +966,33 @@ class TemplateTool (BaseTool):
'sortBusinessTemplateList')
def sortBusinessTemplateList(self, bt_list):
"""
- Sort a list of bt according to dependencies
+ Sort a list of business template in repositories according to
+ dependencies
+
+ bt_list : list of (repository, id) tuple.
"""
- result_list = []
- for repository, id in bt_list:
- dependency_list = self.getDependencyList((repository, id))
- dependency_list.append((repository, id))
- for dependency in dependency_list:
- if dependency[0] == 'meta':
- provider_list = self.getProviderList(dependency[1])
- dependency = self.findProviderInBTList(provider_list, bt_list)
- if dependency not in result_list:
- result_list.append(dependency)
- return result_list
+ def isDepend(a, b):
+ # return True if a depends on b.
+ dependency_list = [x.split(' ')[0] for x in a['dependency_list']]
+ provision_list = list(b['provision_list']) + [b['title']]
+ for i in provision_list:
+ if i in dependency_list:
+ return True
+ return False
+
+ sorted_bt_list = []
+ for repository, bt_id in bt_list:
+ bt = [x for x in self.repository_dict[repository] \
+ if x['id'] == bt_id][0]
+ for j in range(len(sorted_bt_list)):
+ if isDepend(sorted_bt_list[j][1], bt):
+ sorted_bt_list.insert(j, (repository, bt))
+ break
+ else:
+ sorted_bt_list.append((repository, bt))
+ sorted_bt_list = [(repository, bt['id']) for repository, bt \
+ in sorted_bt_list]
+ return sorted_bt_list
security.declareProtected( Permissions.AccessContentsInformation,
'getRepositoryBusinessTemplateList' )
More information about the Erp5-report
mailing list