diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/Base_getOriginalBusinessTemplateId.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/Base_getOriginalBusinessTemplateId.xml index 9851f91e1af315e8dff64e599413904b1ced7dcb..daf34210594e1df9f7a7f57be36df6c3eb7807fc 100644 --- a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/Base_getOriginalBusinessTemplateId.xml +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_forge/Base_getOriginalBusinessTemplateId.xml @@ -69,7 +69,7 @@ <value> <string>installed_bts = context.getPortalObject()[\'portal_templates\'].getInstalledBusinessTemplatesList()\n for bt in installed_bts:\n if file in bt.getItemsList():\n - return [bt.getTitle(), bt.getId()]\n + return bt.getId()\n return None\n </string> </value> </item> diff --git a/product/ERP5/Document/BusinessTemplate.py b/product/ERP5/Document/BusinessTemplate.py index 43419c49b0723f4160a57926d9e3cb0da85d43f5..bfbe006d37aebd606e6a83894916714f59d9ca7a 100644 --- a/product/ERP5/Document/BusinessTemplate.py +++ b/product/ERP5/Document/BusinessTemplate.py @@ -356,6 +356,9 @@ class BaseTemplateItem(Implicit, Persistent): def export(self, context, bta, **kw): pass + def getKeys(self): + return self._objects.keys() + def importFile(self, bta, **kw): bta.importFiles(klass=self) @@ -4278,6 +4281,15 @@ Business Template is a set of definitions, such as skins, portal types and categ for item_name in self._item_name_list: getattr(self, item_name).importFile(bta) + #By christophe Dumez <christophe@nexedi.com> + def getItemsList(self): + """Return list of items in business template + """ + items_list = [] + for item_name in self._item_name_list: + item = getattr(self, item_name) + items_list.extend(item.getKeys()) + return items_list def diffObject(self, REQUEST, **kw): """ diff --git a/product/ERP5/Tool/TemplateTool.py b/product/ERP5/Tool/TemplateTool.py index d0f80c15212981a400adcecb23eb67f58280ebb9..9bd78d9d6d612b71744a5bc5da5d562ccbca9ba3 100644 --- a/product/ERP5/Tool/TemplateTool.py +++ b/product/ERP5/Tool/TemplateTool.py @@ -102,6 +102,15 @@ class TemplateTool (BaseTool): if bt.getInstallationState() == 'installed' and bt.getTitle() == title: return bt return None + + def getInstalledBusinessTemplatesList(self): + """Get list of installed business templates + """ + installed_bts = [] + for bt in self.contentValues(filter={'portal_type':'Business Template'}): + if bt.getInstallationState() == 'installed': + installed_bts.append(bt) + return installed_bts def updateLocalConfiguration(self, template, **kw): """