[Erp5-report] r20781 - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Apr 23 18:10:41 CEST 2008
Author: nicolas
Date: Wed Apr 23 18:10:39 2008
New Revision: 20781
URL: http://svn.erp5.org?rev=20781&view=rev
Log:
Avoid raising NotFound Error on temporary Bt (BT for diff)
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=20781&r1=20780&r2=20781&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py Wed Apr 23 18:10:39 2008
@@ -349,7 +349,9 @@
class BaseTemplateItem(Implicit, Persistent):
"""
This class is the base class for all template items.
+ is_bt_for_diff means This BT is used to compare self temporary BT with installed BT
"""
+ is_bt_for_diff = None
def __init__(self, id_list, **kw):
self.__dict__.update(kw)
@@ -1509,14 +1511,15 @@
workflow_name = workflow
if workflow[0] != '-' and \
workflow_name not in chain_dict['chain_%s' % portal_type]:
- raise NotFound, 'workflow %s not found in chain for portal_type %s'\
+ if not self.is_bt_for_diff:
+ raise NotFound, 'workflow %s not found in chain for portal_type %s'\
% (workflow, portal_type)
if self._objects.has_key(portal_type):
# other workflow id already defined for this portal type
self._objects[portal_type].append(workflow)
else:
self._objects[portal_type] = [workflow,]
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'portal type %s not found in workflow chain'\
% portal_type
@@ -2214,7 +2217,8 @@
self._objects[key].wl_clearLocks()
break
else:
- raise NotFound, 'Action %r not found' %(id,)
+ if not self.is_bt_for_diff:
+ raise NotFound, 'Action %r not found' %(id,)
def install(self, context, trashbin, **kw):
update_dict = kw.get('object_to_update')
@@ -2471,7 +2475,7 @@
break
else:
obj = None
- if obj is None:
+ if obj is None and not self.is_bt_for_diff:
raise NotFound, 'the property %s is not found' % id
self._objects[id] = (prop_type, obj)
@@ -2966,7 +2970,7 @@
for key in self._archive.keys():
if key in sql_search_result_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Result key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'result_key_list'] = key_list
@@ -3057,7 +3061,7 @@
for key in self._archive.keys():
if key in sql_search_related_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Related key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'related_key_list'] = key_list
@@ -3151,7 +3155,7 @@
for key in self._archive.keys():
if key in sql_search_result_tables:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Result table "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'result_table_list'] = key_list
@@ -3243,7 +3247,7 @@
for key in self._archive.keys():
if key in sql_keyword_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Keyword key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'keyword_key_list'] = key_list
@@ -3335,7 +3339,7 @@
for key in self._archive.keys():
if key in sql_datetime_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'DateTime key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'datetime_key_list'] = key_list
@@ -3427,7 +3431,7 @@
for key in self._archive.keys():
if key in sql_full_text_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Fulltext key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'full_text_key_list'] = key_list
@@ -3520,7 +3524,7 @@
for key in self._archive.keys():
if key in sql_request_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Request key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'request_key_list'] = key_list
@@ -3612,7 +3616,7 @@
for key in self._archive.keys():
if key in sql_multivalue_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Multivalue key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'multivalue_key_list'] = key_list
@@ -3703,7 +3707,7 @@
for key in self._archive.keys():
if key in sql_catalog_topic_search_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Topic key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'topic_key_list'] = key_list
@@ -3794,7 +3798,7 @@
for key in self._archive.keys():
if key in sql_catalog_scriptable_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Scriptable key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'scriptable_key_list'] = key_list
@@ -3887,7 +3891,7 @@
for key in self._archive.keys():
if key in sql_catalog_role_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'Role key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'role_key_list'] = key_list
@@ -3980,7 +3984,7 @@
for key in self._archive.keys():
if key in sql_catalog_local_role_keys:
key_list.append(key)
- else:
+ elif not self.is_bt_for_diff:
raise NotFound, 'LocalRole key "%r" not found in catalog' %(key,)
if len(key_list) > 0:
self._objects[self.__class__.__name__+'/'+'local_role_key_list'] = key_list
@@ -4569,7 +4573,10 @@
# Build each part
for item_name in self._item_name_list:
- getattr(self, item_name).build(self)
+ item = getattr(self, item_name)
+ if self.getBtForDiff():
+ item.is_bt_for_diff = 1
+ item.build(self)
build = WorkflowMethod(build)
@@ -4638,7 +4645,7 @@
bt2 = self.portal_templates.manage_clone(ob=installed_bt, id=INSTALLED_BT_FOR_DIFF)
# update portal types properties to get last modifications
bt2.getPortalTypesProperties()
- bt2.edit(description='tmp bt generated for diff')
+ bt2.edit(description='tmp bt generated for diff', bt_for_diff=1)
bt2.build()
installed_bt = bt2
More information about the Erp5-report
mailing list