Commit e58efba6 authored by wenjie.zheng's avatar wenjie.zheng Committed by Sebastien Robin

erp5_core: define property of propertysheets by changing directly the reference

Until now, it was only possible to define the ID on properties, then the
reference was guessed from the ID. We even had constraint to make sure
when we define a standard "foo" property that the ID was "foo_property".
Then the reference "foo" was guessed for the ID.

This is not user friendly, it is more logical to make the ID non editable
and guess it from the reference. Therefore now the developer could define
the reference, like "foo", and the corresponding ID will be automatically
set.
parent eb91fa00
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>editable</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>delegated_message_list</string> </key>
<value>
<list>
<string>external_validator_failed</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The provided id must have the right suffix for its type.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ID</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewFieldLibrary</string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Reference</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -79,7 +79,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -11,7 +11,6 @@
<value>
<list>
<string>description</string>
<string>editable</string>
<string>title</string>
</list>
</value>
......@@ -77,13 +76,9 @@
<key> <string>description</string> </key>
<value> <string>Property name</string> </value>
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -79,7 +79,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -84,11 +84,11 @@
</item>
<item>
<key> <string>editable</string> </key>
<value> <int>0</int> </value>
<value> <int>1</int> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_string_field</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -72,7 +72,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_id_as_reference</string> </value>
<value> <string>my_view_mode_read_only_id</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -73,7 +73,7 @@
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_read_only_reference</string> </value>
<value> <string>my_view_mode_reference_as_name</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
......
......@@ -77,4 +77,11 @@ def IdAsReferenceMixin(suffix):
except AttributeError:
return getattr(aq_base(self), 'default_reference', (args or [None])[0])
def _setReference(self, value):
self.__dict__.pop('default_reference', None) # BBB
self.setId(value + suffix)
security.declareProtected(Permissions.ModifyPortalContent, 'setReference')
setReference = _setReference
return IdAsReferenceMixin
......@@ -96,9 +96,12 @@ class PropertySheetTestCase(ERP5TypeTestCase):
self.assertTrue('portal_type' in kw, "You need to specify the portal_type"
" you want to use to create that new property")
property = getattr(ps, property_id, None)
suffix = ps.newContent(temp_object=1, **kw).getIdAsReferenceSuffix()
property_id_as_reference = property_id + suffix
property = getattr(ps, property_id_as_reference, None)
if property is not None:
ps._delObject(property_id)
ps._delObject(property_id_as_reference)
property = ps.newContent(reference=property_id, **kw)
if commit:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment