Commit 8565e828 authored by Rafael Monnerat's avatar Rafael Monnerat

Form: If form is in ignore list don't check it's fields

parent c0acf2cb
...@@ -1362,40 +1362,40 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate): ...@@ -1362,40 +1362,40 @@ class ERP5Form(Base, ZMIForm, ZopePageTemplate):
'erp5-Guideline.Report.Name.Uses.Portal.Type.Followed.By.View.Report.Name.And.Report', 'erp5-Guideline.Report.Name.Uses.Portal.Type.Followed.By.View.Report.Name.And.Report',
'Report form name must follow ${portal_type}_view.*Report naming') 'Report form name must follow ${portal_type}_view.*Report naming')
is_field_library = self.getId().endswith('FieldLibrary') is_field_library = self.getId().endswith('FieldLibrary')
if self.pt == 'form_view' and not is_field_library: if self.pt == 'form_view' and not is_field_library:
translated_workflow_state_title_field_re = re.compile('my_translated_.*state_title$') translated_workflow_state_title_field_re = re.compile('my_translated_.*state_title$')
def isTranslatedWorkflowStateTitleField(f): def isTranslatedWorkflowStateTitleField(f):
return translated_workflow_state_title_field_re.match(f.getId()) is not None return translated_workflow_state_title_field_re.match(f.getId()) is not None
not_translated_workflow_state_field_re = re.compile('my_(?!translated_).*state(_title|)$') not_translated_workflow_state_field_re = re.compile('my_(?!translated_).*state(_title|)$')
def isNonTranslatedWorkflowStateField(f): def isNonTranslatedWorkflowStateField(f):
return not_translated_workflow_state_field_re.match(f.getId()) and f.getId() not in ( return not_translated_workflow_state_field_re.match(f.getId()) and f.getId() not in (
# exception for some properties containing "state" in their names # exception for some properties containing "state" in their names
'my_initial_implementation_state', 'my_initial_implementation_state',
'my_hot_reindexing_state', 'my_hot_reindexing_state',
'my_message_different_state', 'my_message_different_state',
) )
for group_name in self.get_groups(): for group_name in self.get_groups():
field_list = self.get_fields_in_group(group_name) field_list = self.get_fields_in_group(group_name)
for index, field in enumerate(field_list): for index, field in enumerate(field_list):
if isTranslatedWorkflowStateTitleField(field): if isTranslatedWorkflowStateTitleField(field):
is_in_right_group = 'right' in group_name is_in_right_group = 'right' in group_name
# workflow states fields must be the last ones, so we check # workflow states fields must be the last ones, so we check
# that this field or all the one below match the # that this field or all the one below match the
# my_translated_${state_variable}_title regex # my_translated_${state_variable}_title regex
all_bottom_fields_are_workflow_state_fields = {True} == { all_bottom_fields_are_workflow_state_fields = {True} == {
isTranslatedWorkflowStateTitleField(f) is not None for f in field_list[index:]} isTranslatedWorkflowStateTitleField(f) is not None for f in field_list[index:]}
if not (all_bottom_fields_are_workflow_state_fields and is_in_right_group): if not (all_bottom_fields_are_workflow_state_fields and is_in_right_group):
addMessage(
'erp5-Guideline.Place.Simulation.And.Validation.Fields.In.Bottom.Of.Right.Group',
'Workflow state fields must be at the bottom right')
if isNonTranslatedWorkflowStateField(field):
addMessage( addMessage(
'erp5-Guideline.Place.Simulation.And.Validation.Fields.In.Bottom.Of.Right.Group', 'erp5-Guideline.Use.Correct.Names.For.Simulation.And.Validation.Titles',
'Workflow state fields must be at the bottom right') 'Workflow state fields should be named my_translated_${state_variable}_title')
if isNonTranslatedWorkflowStateField(field):
addMessage(
'erp5-Guideline.Use.Correct.Names.For.Simulation.And.Validation.Titles',
'Workflow state fields should be named my_translated_${state_variable}_title')
return message_list return message_list
......
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