[Erp5-report] r16405 - /erp5/trunk/products/ERP5Form/Form.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Sep 17 10:57:49 CEST 2007


Author: jerome
Date: Mon Sep 17 10:57:49 2007
New Revision: 16405

URL: http://svn.erp5.org?rev=16405&view=rev
Log:
always add fields from default field library, even if we have perfect matches.
if no property "erp5_default_field_library_path" is defined, fallback to erp5_core.Base_viewFieldLibrary

Modified:
    erp5/trunk/products/ERP5Form/Form.py

Modified: erp5/trunk/products/ERP5Form/Form.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/Form.py?rev=16405&r1=16404&r2=16405&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/Form.py (original)
+++ erp5/trunk/products/ERP5Form/Form.py Mon Sep 17 10:57:49 2007
@@ -584,7 +584,9 @@
             portal = portal_url.getPortalObject()
             portal_skins = getToolByName(self, 'portal_skins')
 
-            default_field_library_path = portal.getProperty('erp5_default_field_library_path', None)
+            default_field_library_path = portal.getProperty(
+                                  'erp5_default_field_library_path',
+                                  'erp5_core.Base_viewFieldLibrary')
             if (not default_field_library_path or
                 len(default_field_library_path.split('.'))!=2):
                 return
@@ -595,21 +597,24 @@
             default_field_library = getattr(skinfolder, form_id, None)
             if default_field_library is None:
                 return
-
-            if not default_field_library_path in form_order:
-                for i in default_field_library.objectValues():
-                    field_meta_type, proxy_flag = get_field_meta_type_and_proxy_flag(i)
-                    if meta_type==field_meta_type:
-                        if proxy_flag:
-                            field_meta_type = '%s(Proxy' % field_meta_type
-                        matched_item = {'form_id':form_id,
-                                        'field_type':field_meta_type,
-                                        'field_object':i,
-                                        'proxy_flag':proxy_flag,
-                                        'matched_rate':0
-                                        }
+            for i in default_field_library.objectValues():
+                field_meta_type, proxy_flag = get_field_meta_type_and_proxy_flag(i)
+                if meta_type==field_meta_type:
+                    if proxy_flag:
+                        field_meta_type = '%s(Proxy)' % field_meta_type
+                    matched_item = {'form_id':form_id,
+                                    'field_type':field_meta_type,
+                                    'field_object':i,
+                                    'proxy_flag':proxy_flag,
+                                    'matched_rate':0
+                                    }
+                    if not default_field_library_path in form_order:
                         matched_append(default_field_library_path,
                                        matched_item)
+                    if not default_field_library_path in \
+                                          perfect_matched_form_order:
+                        perfect_matched_append(default_field_library_path,
+                                               matched_item)
 
         id_ = field.getId()
         meta_type = field.meta_type
@@ -649,6 +654,7 @@
 
         if perfect_matched:
             perfect_matched_form_order.sort()
+            add_default_field_library()
             return perfect_matched_form_order, perfect_matched
 
         form_order.sort()
@@ -783,7 +789,8 @@
         try:
             return field.getRecursiveTemplateField().meta_type, True
         except AttributeError:
-            raise AttributeError, 'The proxy target of %s field does not exists. Please check the field setting.' % field.getId()
+            raise AttributeError, 'The proxy target of %s field does not '\
+                  'exists. Please check the field setting.' % field.getId()
     else:
         return field.meta_type, False
 




More information about the Erp5-report mailing list