13149 add gettext_lazy to forms

This commit is contained in:
Arthur 2023-07-12 22:25:02 +07:00 committed by Jeremy Stretch
parent e9c553bb7b
commit 546f6d0316
2 changed files with 26 additions and 8 deletions

View File

@ -1,5 +1,5 @@
from django import forms from django import forms
from django.utils.translation import gettext as _ from django.utils.translation import gettext_lazy as _
from dcim.models import * from dcim.models import *
from netbox.forms import NetBoxModelForm from netbox.forms import NetBoxModelForm
@ -38,8 +38,11 @@ class ComponentCreateForm(forms.Form):
Subclass this form when facilitating the creation of one or more component or component template objects based on Subclass this form when facilitating the creation of one or more component or component template objects based on
a name pattern. a name pattern.
""" """
name = ExpandableNameField() name = ExpandableNameField(
label=_('Name'),
)
label = ExpandableNameField( label = ExpandableNameField(
label=_('Label'),
required=False, required=False,
help_text=_('Alphanumeric ranges are supported. (Must match the number of objects being created.)') help_text=_('Alphanumeric ranges are supported. (Must match the number of objects being created.)')
) )
@ -57,8 +60,8 @@ class ComponentCreateForm(forms.Form):
value_count = len(self.cleaned_data[field_name]) value_count = len(self.cleaned_data[field_name])
if self.cleaned_data[field_name] and value_count != pattern_count: if self.cleaned_data[field_name] and value_count != pattern_count:
raise forms.ValidationError({ raise forms.ValidationError({
field_name: f'The provided pattern specifies {value_count} values, but {pattern_count} are ' field_name: _('The provided pattern specifies {value_count} values, but {pattern_count} are '
f'expected.' 'expected.').format(value_count=value_count, pattern_count=pattern_count)
}, code='label_pattern_mismatch') }, code='label_pattern_mismatch')
@ -222,12 +225,13 @@ class InterfaceCreateForm(ComponentCreateForm, model_forms.InterfaceForm):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
if 'module' in self.fields: if 'module' in self.fields:
self.fields['name'].help_text += ' The string <code>{module}</code> will be replaced with the position ' \ self.fields['name'].help_text += _(' The string <code>{module}</code> will be replaced with the position '
'of the assigned module, if any' 'of the assigned module, if any').format(module=module)
class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm): class FrontPortCreateForm(ComponentCreateForm, model_forms.FrontPortForm):
device = DynamicModelChoiceField( device = DynamicModelChoiceField(
label=_('Device'),
queryset=Device.objects.all(), queryset=Device.objects.all(),
selector=True, selector=True,
widget=APISelect( widget=APISelect(
@ -329,6 +333,7 @@ class InventoryItemCreateForm(ComponentCreateForm, model_forms.InventoryItemForm
class VirtualChassisCreateForm(NetBoxModelForm): class VirtualChassisCreateForm(NetBoxModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(
label=_('Region'),
queryset=Region.objects.all(), queryset=Region.objects.all(),
required=False, required=False,
initial_params={ initial_params={
@ -336,6 +341,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
} }
) )
site_group = DynamicModelChoiceField( site_group = DynamicModelChoiceField(
label=_('Site group'),
queryset=SiteGroup.objects.all(), queryset=SiteGroup.objects.all(),
required=False, required=False,
initial_params={ initial_params={
@ -343,6 +349,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
} }
) )
site = DynamicModelChoiceField( site = DynamicModelChoiceField(
label=_('Site'),
queryset=Site.objects.all(), queryset=Site.objects.all(),
required=False, required=False,
query_params={ query_params={
@ -351,6 +358,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
} }
) )
rack = DynamicModelChoiceField( rack = DynamicModelChoiceField(
label=_('Rack'),
queryset=Rack.objects.all(), queryset=Rack.objects.all(),
required=False, required=False,
null_option='None', null_option='None',
@ -359,6 +367,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
} }
) )
members = DynamicModelMultipleChoiceField( members = DynamicModelMultipleChoiceField(
label=_('Members'),
queryset=Device.objects.all(), queryset=Device.objects.all(),
required=False, required=False,
query_params={ query_params={
@ -367,6 +376,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
} }
) )
initial_position = forms.IntegerField( initial_position = forms.IntegerField(
label=_('Initial position'),
initial=1, initial=1,
required=False, required=False,
help_text=_('Position of the first member device. Increases by one for each additional member.') help_text=_('Position of the first member device. Increases by one for each additional member.')
@ -383,7 +393,7 @@ class VirtualChassisCreateForm(NetBoxModelForm):
if self.cleaned_data['members'] and self.cleaned_data['initial_position'] is None: if self.cleaned_data['members'] and self.cleaned_data['initial_position'] is None:
raise forms.ValidationError({ raise forms.ValidationError({
'initial_position': "A position must be specified for the first VC member." 'initial_position': _("A position must be specified for the first VC member.")
}) })
def save(self, *args, **kwargs): def save(self, *args, **kwargs):

View File

@ -1,5 +1,5 @@
from django import forms from django import forms
from django.utils.translation import gettext as _ from django.utils.translation import gettext_lazy as _
from dcim.choices import InterfacePoEModeChoices, InterfacePoETypeChoices, InterfaceTypeChoices, PortTypeChoices from dcim.choices import InterfacePoEModeChoices, InterfacePoETypeChoices, InterfaceTypeChoices, PortTypeChoices
from dcim.models import * from dcim.models import *
@ -57,6 +57,7 @@ class PowerPortTemplateImportForm(ComponentTemplateImportForm):
class PowerOutletTemplateImportForm(ComponentTemplateImportForm): class PowerOutletTemplateImportForm(ComponentTemplateImportForm):
power_port = forms.ModelChoiceField( power_port = forms.ModelChoiceField(
label=_('Power port'),
queryset=PowerPortTemplate.objects.all(), queryset=PowerPortTemplate.objects.all(),
to_field_name='name', to_field_name='name',
required=False required=False
@ -85,6 +86,7 @@ class PowerOutletTemplateImportForm(ComponentTemplateImportForm):
class InterfaceTemplateImportForm(ComponentTemplateImportForm): class InterfaceTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
label=_('Type'),
choices=InterfaceTypeChoices.CHOICES choices=InterfaceTypeChoices.CHOICES
) )
poe_mode = forms.ChoiceField( poe_mode = forms.ChoiceField(
@ -113,9 +115,11 @@ class InterfaceTemplateImportForm(ComponentTemplateImportForm):
class FrontPortTemplateImportForm(ComponentTemplateImportForm): class FrontPortTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
label=_('Type'),
choices=PortTypeChoices.CHOICES choices=PortTypeChoices.CHOICES
) )
rear_port = forms.ModelChoiceField( rear_port = forms.ModelChoiceField(
label=_('Rear port'),
queryset=RearPortTemplate.objects.all(), queryset=RearPortTemplate.objects.all(),
to_field_name='name' to_field_name='name'
) )
@ -143,6 +147,7 @@ class FrontPortTemplateImportForm(ComponentTemplateImportForm):
class RearPortTemplateImportForm(ComponentTemplateImportForm): class RearPortTemplateImportForm(ComponentTemplateImportForm):
type = forms.ChoiceField( type = forms.ChoiceField(
label=_('Type'),
choices=PortTypeChoices.CHOICES choices=PortTypeChoices.CHOICES
) )
@ -173,15 +178,18 @@ class DeviceBayTemplateImportForm(ComponentTemplateImportForm):
class InventoryItemTemplateImportForm(ComponentTemplateImportForm): class InventoryItemTemplateImportForm(ComponentTemplateImportForm):
parent = forms.ModelChoiceField( parent = forms.ModelChoiceField(
label=_('Parent'),
queryset=InventoryItemTemplate.objects.all(), queryset=InventoryItemTemplate.objects.all(),
required=False required=False
) )
role = forms.ModelChoiceField( role = forms.ModelChoiceField(
label=_('Role'),
queryset=InventoryItemRole.objects.all(), queryset=InventoryItemRole.objects.all(),
to_field_name='name', to_field_name='name',
required=False required=False
) )
manufacturer = forms.ModelChoiceField( manufacturer = forms.ModelChoiceField(
label=_('Manufacturer'),
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
to_field_name='name', to_field_name='name',
required=False required=False