diff --git a/bt5/erp5_forge/ExtensionTemplateItem/ProxyFieldUtils.py b/bt5/erp5_forge/ExtensionTemplateItem/ProxyFieldUtils.py new file mode 100644 index 0000000000000000000000000000000000000000..3b351d8ec88dccf3a0f56d979fd9b0f8dedb841c --- /dev/null +++ b/bt5/erp5_forge/ExtensionTemplateItem/ProxyFieldUtils.py @@ -0,0 +1,38 @@ +### External Method + +from Products.Formulator.MethodField import Method + +# +# This function is useful to check if two fields is equal or not. +# +def get_field_data(field): + value_dict = {} + tales_dict = {} + + if field.meta_type=='ProxyField': + template_field = field.getRecursiveTemplateField() + for ui_field_id in template_field.form.fields.keys(): + value = field.get_recursive_orig_value(ui_field_id) + if isinstance(value, Method): + value = value.method_name + tales = field.get_recursive_tales(ui_field_id) + if tales: + tales_text = tales._text + else: + tales_text = '' + value_dict[ui_field_id] = value + tales_dict[ui_field_id] = tales_text + else: + for ui_field_id in field.form.fields.keys(): + value = field.get_orig_value(ui_field_id) + if isinstance(value, Method): + value = value.method_name + tales = field.get_tales(ui_field_id) + if tales: + tales_text = tales._text + else: + tales_text = '' + value_dict[ui_field_id] = value + tales_dict[ui_field_id] = tales_text + + return value_dict, tales_dict diff --git a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/Base_getFieldData.xml b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/Base_getFieldData.xml index d330a2e5f317a7da30253c376b5a9b8f15a14f7f..1b55e7b26516cbec484400be92dcc171af4eb487 100644 --- a/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/Base_getFieldData.xml +++ b/bt5/erp5_forge/SkinTemplateItem/portal_skins/erp5_toolbox/Base_getFieldData.xml @@ -15,7 +15,7 @@ </item> <item> <key> <string>_module</string> </key> - <value> <string>proxy_field_util</string> </value> + <value> <string>ProxyFieldUtils</string> </value> </item> <item> <key> <string>id</string> </key> diff --git a/bt5/erp5_forge/bt/revision b/bt5/erp5_forge/bt/revision index 28621d35adae761a9610140bce7572be86f10c78..be8a1b91d5276031b7c628ada0b6c2f7377cb964 100644 --- a/bt5/erp5_forge/bt/revision +++ b/bt5/erp5_forge/bt/revision @@ -1 +1 @@ -542 \ No newline at end of file +538 \ No newline at end of file diff --git a/bt5/erp5_forge/bt/template_extension_id_list b/bt5/erp5_forge/bt/template_extension_id_list index ae44ca2d780a824500f3bf2ff48a3e628abb8eda..5f062267328b35520a1b897196bdbcf32025a7d8 100644 --- a/bt5/erp5_forge/bt/template_extension_id_list +++ b/bt5/erp5_forge/bt/template_extension_id_list @@ -1,4 +1,5 @@ Glossary PythonScriptParserUtility Security -SecurityCloner \ No newline at end of file +SecurityCloner +ProxyFieldUtils \ No newline at end of file