[Erp5-report] r39184 jm - in /erp5/trunk/products/ERP5Type: ./ Accessor/ Core/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Oct 14 17:07:34 CEST 2010
Author: jm
Date: Thu Oct 14 17:07:32 2010
New Revision: 39184
URL: http://svn.erp5.org?rev=39184&view=rev
Log:
Performance: get tools from the portal instead of relying on acquisition
Modified:
erp5/trunk/products/ERP5Type/Accessor/Translation.py
erp5/trunk/products/ERP5Type/Accessor/WorkflowState.py
erp5/trunk/products/ERP5Type/Base.py
erp5/trunk/products/ERP5Type/CopySupport.py
erp5/trunk/products/ERP5Type/Core/Folder.py
Modified: erp5/trunk/products/ERP5Type/Accessor/Translation.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Translation.py?rev=39184&r1=39183&r2=39184&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Translation.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Translation.py [utf8] Thu Oct 14 17:07:32 2010
@@ -29,7 +29,6 @@
from zLOG import LOG
from Products.ERP5Type.PsycoWrapper import psyco
from Acquisition import aq_base
-from Products.CMFCore.utils import getToolByName
from Products.ERP5Type.Accessor.Base import func_code, ATTRIBUTE_PREFIX, evaluateTales, Getter as BaseGetter, Method
from Products.ERP5Type.Accessor import Accessor, AcquiredProperty
@@ -72,7 +71,7 @@ class TranslatedPropertyGetter(BaseGette
default = self._default
if self._language is None:
- language = kw.get('language') or getToolByName(instance, 'Localizer').get_selected_language()
+ language = kw.get('language') or instance.getPortalObject().Localizer.get_selected_language()
else:
language = self._language
try:
@@ -83,7 +82,7 @@ class TranslatedPropertyGetter(BaseGette
value = instance.getProperty(self._property_id)
if domain == '' or (value in ('', None)):
return value
- localizer = getToolByName(instance, 'Localizer')
+ localizer = instance.getPortalObject().Localizer
message_catalog = getattr(localizer, domain, None)
if message_catalog is not None:
return message_catalog.gettext(unicode(value, 'utf8'), lang=self._language).encode('utf8')
@@ -246,7 +245,7 @@ class TranslatedPropertyTester(Method):
if domain==TRANSLATION_DOMAIN_CONTENT_TRANSLATION:
if self._language is None:
- language = kw.get('language') or getToolByName(instance, 'Localizer').get_selected_language()
+ language = kw.get('language') or instance.getPortalObject().Localizer.get_selected_language()
else:
language = self._language
try:
Modified: erp5/trunk/products/ERP5Type/Accessor/WorkflowState.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/WorkflowState.py?rev=39184&r1=39183&r2=39184&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/WorkflowState.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Accessor/WorkflowState.py [utf8] Thu Oct 14 17:07:32 2010
@@ -26,7 +26,6 @@
#
##############################################################################
-from Products.CMFCore.utils import getToolByName
from Products.ERP5Type.PsycoWrapper import psyco
from Base import Getter as BaseGetter, Setter as BaseSetter
from warnings import warn
@@ -54,7 +53,7 @@ class Getter(BaseGetter):
self._key = key
def __call__(self, instance):
- portal_workflow = getToolByName(instance, 'portal_workflow')
+ portal_workflow = instance.getPortalObject().portal_workflow
wf = portal_workflow.getWorkflowById(self._key)
return wf._getWorkflowStateOf(instance, id_only=1)
@@ -79,7 +78,7 @@ class TitleGetter(BaseGetter):
self._key = key
def __call__(self, instance):
- portal_workflow = getToolByName(instance, 'portal_workflow')
+ portal_workflow = instance.getPortalObject().portal_workflow
wf = portal_workflow.getWorkflowById(self._key)
return wf._getWorkflowStateOf(instance).title
@@ -90,13 +89,12 @@ class TranslatedGetter(Getter):
"""
def __call__(self, instance):
- portal_workflow = getToolByName(instance, 'portal_workflow')
- localizer = getToolByName(instance, 'Localizer')
- wf = portal_workflow.getWorkflowById(self._key)
+ portal = instance.getPortalObject()
+ wf = portal.portal_workflow.getWorkflowById(self._key)
state_id = wf._getWorkflowStateOf(instance, id_only=1)
warn('Translated workflow state getters, such as %s are deprecated' %
self._id, DeprecationWarning)
- return localizer.erp5_ui.gettext(state_id).encode('utf8')
+ return portal.localizer.erp5_ui.gettext(state_id).encode('utf8')
psyco.bind(__call__)
@@ -106,10 +104,10 @@ class TranslatedTitleGetter(TitleGetter)
"""
def __call__(self, instance):
- portal_workflow = getToolByName(instance, 'portal_workflow')
- localizer = getToolByName(instance, 'Localizer')
+ portal = instance.getPortalObject()
+ localizer = portal.Localizer
wf_id = self._key
- wf = portal_workflow.getWorkflowById(wf_id)
+ wf = portal.portal_workflow.getWorkflowById(wf_id)
selected_language = localizer.get_selected_language()
state_title = wf._getWorkflowStateOf(instance).title
msg_id = '%s [state in %s]' % (state_title, wf_id)
Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=39184&r1=39183&r2=39184&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Base.py [utf8] Thu Oct 14 17:07:32 2010
@@ -2647,9 +2647,8 @@ class Base( CopyContainer,
"""
This returns the translated portal_type
"""
- portal_type = self.portal_type
- localizer = getToolByName(self, 'Localizer')
- return localizer.erp5_ui.gettext(portal_type).encode('utf8')
+ localizer = self.getPortalObject().Localizer
+ return localizer.erp5_ui.gettext(self.portal_type).encode('utf8')
security.declareProtected(Permissions.AccessContentsInformation, 'getMetaType')
def getMetaType(self):
Modified: erp5/trunk/products/ERP5Type/CopySupport.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/CopySupport.py?rev=39184&r1=39183&r2=39184&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/CopySupport.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/CopySupport.py [utf8] Thu Oct 14 17:07:32 2010
@@ -25,7 +25,6 @@ from OFS.CopySupport import _cb_encode,
from OFS.CopySupport import sanity_check
from Products.ERP5Type import Permissions
from Acquisition import aq_base, aq_inner, aq_parent
-from Products.CMFCore.utils import getToolByName
from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter
from Products.ERP5Type.Globals import PersistentMapping, MessageDialog
from Products.ERP5Type.Utils import get_request
@@ -157,11 +156,10 @@ class CopyContainer:
ob = self._getOb(id)
# Make sure there is no activities pending on that object
try:
- portal_activities = getToolByName(self, 'portal_activities')
+ portal_activities = self.getPortalObject().portal_activities
except AttributeError:
- # There is no activity tool
- portal_activities = None
- if portal_activities is not None:
+ pass # There is no activity tool
+ else:
if portal_activities.countMessage(path=ob.getPath())>0:
raise ActivityPendingError, 'Sorry, pending activities prevent ' \
+ 'changing id at this current stage'
@@ -249,8 +247,8 @@ class CopyContainer:
self_base = aq_base(self)
#LOG("After Clone ",0, "self:%s item:%s" % (repr(self), repr(item)))
#LOG("After Clone ",0, "self:%s item:%s" % (repr(self), repr(self.getPortalObject().objectIds())))
- portal_catalog = getToolByName(self.getPortalObject(), 'portal_catalog')
- self_base.uid = portal_catalog.newUid()
+ portal = self.getPortalObject()
+ self_base.uid = portal.portal_catalog.newUid()
# Give the Owner local role to the current user, zope only does this if no
# local role has been defined on the object, which breaks ERP5Security
@@ -286,7 +284,7 @@ class CopyContainer:
# Add info about copy to edit workflow
REQUEST = get_request()
- pw = getToolByName(self, 'portal_workflow')
+ pw = portal.portal_workflow
if 'edit_workflow' in pw.getChainFor(self)\
and (REQUEST is None or
not REQUEST.get('is_business_template_installation', 0)):
@@ -362,7 +360,7 @@ class CopyContainer:
Unindex the object from the portal catalog.
"""
if self.isIndexable:
- catalog = getToolByName(self, 'portal_catalog', None)
+ catalog = getattr(self.getPortalObject(), 'portal_catalog', None)
if catalog is not None:
# Make sure there is not activity for this object
self.flushActivity(invoke=0)
@@ -400,7 +398,7 @@ class CopyContainer:
# Update the modification date.
if getattr(aq_base(self), 'notifyModified', _marker) is not _marker:
self.notifyModified()
- catalog = getToolByName(self.getPortalObject(), 'portal_catalog', None)
+ catalog = getattr(self.getPortalObject(), 'portal_catalog', None)
if catalog is not None:
catalog.moveObject(self, idxs=idxs)
@@ -511,8 +509,8 @@ class CopyContainer:
def _postDuplicate(self):
self_base = aq_base(self)
- portal_catalog = getToolByName(self.getPortalObject(), 'portal_catalog')
- self_base.uid = portal_catalog.newUid()
+ portal = self.getPortalObject()
+ self_base.uid = portal.portal_catalog.newUid()
# Give the Owner local role to the current user, zope only does this if no
# local role has been defined on the object, which breaks ERP5Security
Modified: erp5/trunk/products/ERP5Type/Core/Folder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Core/Folder.py?rev=39184&r1=39183&r2=39184&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Core/Folder.py [utf8] Thu Oct 14 17:07:32 2010
@@ -33,7 +33,6 @@ from Acquisition import aq_base, aq_pare
from OFS.History import Historical
import ExtensionClass
-from Products.CMFCore.utils import getToolByName
from Products.CMFCore.exceptions import AccessControl_Unauthorized
from Products.CMFCore.CMFCatalogAware import CMFCatalogAware
from Products.CMFCore.PortalFolder import ContentFilter
@@ -1553,7 +1552,7 @@ class Folder(CopyContainer, CMFBTreeFold
def _verifyObjectPaste(self, object, validate_src=1):
# To paste in an ERP5Type folder, we need to check 'Add permission'
# that might be defined on the sub object type information.
- pt = getToolByName(self, 'portal_types')
+ pt = self.getPortalObject().portal_types
subobject_type = pt.getTypeInfo(object)
if subobject_type is not None:
sm = getSecurityManager()
@@ -1592,10 +1591,10 @@ class Folder(CopyContainer, CMFBTreeFold
CMF 2.2
"""
ti = self.getTypeInfo()
- utool = getToolByName(self, 'portal_url')
+ url = self.getPortalObject().portal_url()
if ti is None:
- return '%s/misc_/OFSP/dtmldoc.gif' % utool()
- return '%s/%s' % (utool(), ti.getTypeIcon())
+ return '%s/misc_/OFSP/dtmldoc.gif' % url
+ return '%s/%s' % (url, ti.getTypeIcon())
# We browse all used class from btree and hbtree and set not implemented
# class if one method defined on a class is not defined on other, thus if
More information about the Erp5-report
mailing list