From 7f3408f1958f1fcd28966889668cb5a13f06e4d0 Mon Sep 17 00:00:00 2001
From: Christophe Dumez <christophe@nexedi.com>
Date: Tue, 16 May 2006 14:20:43 +0000
Subject: [PATCH] Added a script that return the id of the original business
 template where the given object is coming from.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@7295 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../Base_getOriginalBusinessTemplateId.xml           |  2 +-
 product/ERP5/Document/BusinessTemplate.py            | 12 ++++++++++++
 product/ERP5/Tool/TemplateTool.py                    |  9 +++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

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 9851f91e1a..daf3421059 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 43419c49b0..bfbe006d37 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 d0f80c1521..9bd78d9d6d 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):
       """
-- 
2.30.9