14117 validate rear port range assignment

This commit is contained in:
Arthur 2023-10-26 11:16:44 -07:00
parent 5b2f29480a
commit 9ad13a8736

View File

@ -68,6 +68,15 @@ class ComponentCreateForm(forms.Form):
).format(value_count=value_count, pattern_count=pattern_count) ).format(value_count=value_count, pattern_count=pattern_count)
}, code='label_pattern_mismatch') }, code='label_pattern_mismatch')
if hasattr(self, 'get_iterative_data'):
object_name, iterative_limit = self.get_iterative_item_limit()
if pattern_count > iterative_limit:
raise forms.ValidationError({
field_name: _(
"The provided pattern specifies {pattern_count} values but there are not enough {object_name} selected to assign to."
).format(pattern_count=pattern_count, object_name=object_name)
}, code='label_pattern_mismatch')
# #
# Device component templates # Device component templates
@ -161,6 +170,9 @@ class FrontPortTemplateCreateForm(ComponentCreateForm, model_forms.FrontPortTemp
'rear_port_position': int(position), 'rear_port_position': int(position),
} }
def get_iterative_item_limit(self):
return _('rear ports'), len(self.cleaned_data['rear_port'])
class RearPortTemplateCreateForm(ComponentCreateForm, model_forms.RearPortTemplateForm): class RearPortTemplateCreateForm(ComponentCreateForm, model_forms.RearPortTemplateForm):
@ -301,6 +313,9 @@ class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm):
'rear_port_position': int(position), 'rear_port_position': int(position),
} }
def get_iterative_item_limit(self):
return _('rear ports'), len(self.cleaned_data['rear_port'])
class RearPortCreateForm(ComponentCreateForm, model_forms.RearPortForm): class RearPortCreateForm(ComponentCreateForm, model_forms.RearPortForm):