From b3ec3c4add6e6c064f070a828e359e6342a73b30 Mon Sep 17 00:00:00 2001 From: Nicolas Dumazet <nicolas.dumazet@nexedi.com> Date: Tue, 1 Feb 2011 05:02:55 +0000 Subject: [PATCH] documentation and naming. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42866 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Type/dynamic/accessor_holder.py | 32 +++++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/product/ERP5Type/dynamic/accessor_holder.py b/product/ERP5Type/dynamic/accessor_holder.py index 5ba8eb880b..146e2a9ca9 100644 --- a/product/ERP5Type/dynamic/accessor_holder.py +++ b/product/ERP5Type/dynamic/accessor_holder.py @@ -112,9 +112,22 @@ class AccessorHolderType(type): return accessor_holder_class -generating_base_accessors = False +generating_base_accessor_holder = False def _generateBaseAccessorHolder(portal, accessor_holder_module): + """ + Create once an accessor holder that contains all accessors common to + all portal types: erp5.accessor_holder.BaseAccessorHolder + + * Related category accessors are generated here. + In the future we would like as well: + * the has.*Property accessors + * the is.*Type group accessors + + It's important to remember that this accessor holder will be the last + class added to a portal type class, and that it will always be added, + to all living ERP5 objects. + """ base_accessor_holder_id = 'BaseAccessorHolder' accessor_holder = getattr(accessor_holder_module, @@ -123,15 +136,15 @@ def _generateBaseAccessorHolder(portal, if accessor_holder is not None: return accessor_holder - global generating_base_accessors - if generating_base_accessors: + global generating_base_accessor_holder + if generating_base_accessor_holder: # can cause recursion, as accessing categories generates category properties return None - generating_base_accessors = True + generating_base_accessor_holder = True portal_categories = getattr(portal, 'portal_categories', None) if portal_categories is None: - generating_base_accessors = False + generating_base_accessor_holder = False return None base_category_list = portal_categories.objectIds() @@ -150,11 +163,18 @@ def _generateBaseAccessorHolder(portal, 'erp5.accessor_holder', initialize=False) setattr(accessor_holder_module, base_accessor_holder_id, accessor_holder) - generating_base_accessors = False + generating_base_accessor_holder = False return accessor_holder def _generatePreferenceToolAccessorHolder(portal, accessor_holder_list, accessor_holder_module): + """ + Generate a specific Accessor Holder that will be put on the Preference Tool. + (This used to happen in ERP5Form.PreferenceTool._aq_dynamic) + + We iterate over all properties that do exist on the system, select the + preferences out of those, and generate the getPreferred.* accessors. + """ property_holder = PropertyHolder('PreferenceTool') from Products.ERP5Type.Accessor.TypeDefinition import list_types -- 2.30.9