[Erp5-report] r33568 nicolas.dumazet - /erp5/trunk/products/ERP5/Document/BusinessTemplate.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 10 10:50:31 CET 2010
Author: nicolas.dumazet
Date: Wed Mar 10 10:50:30 2010
New Revision: 33568
URL: http://svn.erp5.org?rev=33568&view=rev
Log:
use a less treacherous way to override methods.
staticmethod() is used because the imported methods do not use
self/klass as a first parameter. Arguably, we could also fix the
method and introduce a first parameter, even if it is unused.
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=33568&r1=33567&r2=33568&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/BusinessTemplate.py [utf8] Wed Mar 10 10:50:30 2010
@@ -68,7 +68,7 @@
XMLExportImport.magic: importXML,
}
-from zLOG import LOG, WARNING, PROBLEM
+from zLOG import LOG, WARNING
from warnings import warn
from gzip import GzipFile
from lxml.etree import parse
@@ -3082,15 +3082,15 @@
pass
class DocumentTemplateItem(BaseTemplateItem):
- local_file_reader_name = 'readLocalDocument'
- local_file_writer_name = 'writeLocalDocument'
- local_file_importer_name = 'importLocalDocument'
- local_file_remover_name = 'removeLocalDocument'
+ local_file_reader_name = staticmethod(readLocalDocument)
+ local_file_writer_name = staticmethod(writeLocalDocument)
+ local_file_importer_name = staticmethod(importLocalDocument)
+ local_file_remover_name = staticmethod(removeLocalDocument)
def build(self, context, **kw):
BaseTemplateItem.build(self, context, **kw)
for id in self._archive.keys():
- self._objects[self.__class__.__name__+'/'+id] = globals()[self.local_file_reader_name](id)
+ self._objects[self.__class__.__name__+'/'+id] = self.local_file_reader_name(id)
def preinstall(self, context, installed_bt, **kw):
modified_object_list = {}
@@ -3139,14 +3139,14 @@
path, name = posixpath.split(id)
# This raises an exception if the file already exists.
try:
- globals()[self.local_file_writer_name](name, text, create=0)
+ self.local_file_writer_name(name, text, create=0)
except IOError, error:
LOG("BusinessTemplate.py", WARNING, "Cannot install class %s on file system" %(name,))
if error.errno :
raise
continue
if self.local_file_importer_name is not None:
- globals()[self.local_file_importer_name](name)
+ self.local_file_importer_name(name)
# after any import, flush all ZODB caches to force a DB reload
# otherwise we could have objects trying to get commited while
# holding reference to a class that is no longer the same one as
@@ -3162,9 +3162,9 @@
for id in self._archive.keys():
text = self._archive[id]
# This raises an exception if the file exists.
- globals()[self.local_file_writer_name](id, text, create=1)
+ self.local_file_writer_name(id, text, create=1)
if self.local_file_importer_name is not None:
- globals()[self.local_file_importer_name](id)
+ self.local_file_importer_name(id)
def uninstall(self, context, **kw):
object_path = kw.get('object_path', None)
@@ -3173,7 +3173,7 @@
else:
object_keys = self._archive.keys()
for id in object_keys:
- globals()[self.local_file_remover_name](id)
+ self.local_file_remover_name(id)
BaseTemplateItem.uninstall(self, context, **kw)
def export(self, context, bta, **kw):
@@ -3193,30 +3193,30 @@
self._objects[file_name[:-3]] = text
class PropertySheetTemplateItem(DocumentTemplateItem):
- local_file_reader_name = 'readLocalPropertySheet'
- local_file_writer_name = 'writeLocalPropertySheet'
- local_file_importer_name = 'importLocalPropertySheet'
- local_file_remover_name = 'removeLocalPropertySheet'
+ local_file_reader_name = staticmethod(readLocalPropertySheet)
+ local_file_writer_name = staticmethod(writeLocalPropertySheet)
+ local_file_importer_name = staticmethod(importLocalPropertySheet)
+ local_file_remover_name = staticmethod(removeLocalPropertySheet)
class ConstraintTemplateItem(DocumentTemplateItem):
- local_file_reader_name = 'readLocalConstraint'
- local_file_writer_name = 'writeLocalConstraint'
- local_file_importer_name = 'importLocalConstraint'
- local_file_remover_name = 'removeLocalConstraint'
+ local_file_reader_name = staticmethod(readLocalConstraint)
+ local_file_writer_name = staticmethod(writeLocalConstraint)
+ local_file_importer_name = staticmethod(importLocalConstraint)
+ local_file_remover_name = staticmethod(removeLocalConstraint)
class ExtensionTemplateItem(DocumentTemplateItem):
- local_file_reader_name = 'readLocalExtension'
- local_file_writer_name = 'writeLocalExtension'
+ local_file_reader_name = staticmethod(readLocalExtension)
+ local_file_writer_name = staticmethod(writeLocalExtension)
# Extension needs no import
local_file_importer_name = None
- local_file_remover_name = 'removeLocalExtension'
+ local_file_remover_name = staticmethod(removeLocalExtension)
class TestTemplateItem(DocumentTemplateItem):
- local_file_reader_name = 'readLocalTest'
- local_file_writer_name = 'writeLocalTest'
+ local_file_reader_name = staticmethod(readLocalTest)
+ local_file_writer_name = staticmethod(writeLocalTest)
# Test needs no import
local_file_importer_name = None
- local_file_remover_name = 'removeLocalTest'
+ local_file_remover_name = staticmethod(removeLocalTest)
class ProductTemplateItem(BaseTemplateItem):
More information about the Erp5-report
mailing list