1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #13352: Translation support for model verbose names (#13354)

* Update verbose_name & verbose_name_plural Meta attributes on all models

* Alter makemigrations to ignore verbose_name & verbose_name_plural changes
This commit is contained in:
Jeremy Stretch
2023-08-03 10:41:10 -04:00
committed by GitHub
parent 24ffaf09d4
commit caedc8dbe3
36 changed files with 288 additions and 28 deletions

View File

@@ -48,8 +48,8 @@ class ASNRange(OrganizationalModel):
class Meta:
ordering = ('name',)
verbose_name = 'ASN range'
verbose_name_plural = 'ASN ranges'
verbose_name = _('ASN range')
verbose_name_plural = _('ASN ranges')
def __str__(self):
return f'{self.name} ({self.range_as_string()})'
@@ -122,8 +122,8 @@ class ASN(PrimaryModel):
class Meta:
ordering = ['asn']
verbose_name = 'ASN'
verbose_name_plural = 'ASNs'
verbose_name = _('ASN')
verbose_name_plural = _('ASNs')
def __str__(self):
return f'AS{self.asn_with_asdot}'

View File

@@ -54,7 +54,8 @@ class FHRPGroup(PrimaryModel):
class Meta:
ordering = ['protocol', 'group_id', 'pk']
verbose_name = 'FHRP group'
verbose_name = _('FHRP group')
verbose_name_plural = _('FHRP groups')
def __str__(self):
name = ''
@@ -108,6 +109,7 @@ class FHRPGroupAssignment(ChangeLoggedModel):
),
)
verbose_name = _('FHRP group assignment')
verbose_name_plural = _('FHRP group assignments')
def __str__(self):
return f'{self.interface}: {self.group} ({self.priority})'

View File

@@ -111,6 +111,8 @@ class Aggregate(GetAvailablePrefixesMixin, PrimaryModel):
class Meta:
ordering = ('prefix', 'pk') # prefix may be non-unique
verbose_name = _('aggregate')
verbose_name_plural = _('aggregates')
def __str__(self):
return str(self.prefix)
@@ -188,6 +190,8 @@ class Role(OrganizationalModel):
class Meta:
ordering = ('weight', 'name')
verbose_name = _('role')
verbose_name_plural = _('roles')
def __str__(self):
return self.name
@@ -279,7 +283,8 @@ class Prefix(GetAvailablePrefixesMixin, PrimaryModel):
class Meta:
ordering = (F('vrf').asc(nulls_first=True), 'prefix', 'pk') # (vrf, prefix) may be non-unique
verbose_name_plural = 'prefixes'
verbose_name = _('prefix')
verbose_name_plural = _('prefixes')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -532,8 +537,8 @@ class IPRange(PrimaryModel):
class Meta:
ordering = (F('vrf').asc(nulls_first=True), 'start_address', 'pk') # (vrf, start_address) may be non-unique
verbose_name = 'IP range'
verbose_name_plural = 'IP ranges'
verbose_name = _('IP range')
verbose_name_plural = _('IP ranges')
def __str__(self):
return self.name
@@ -783,8 +788,8 @@ class IPAddress(PrimaryModel):
indexes = [
models.Index(Cast(Host('address'), output_field=IPAddressField()), name='ipam_ipaddress_host'),
]
verbose_name = 'IP address'
verbose_name_plural = 'IP addresses'
verbose_name = _('IP address')
verbose_name_plural = _('IP addresses')
def __str__(self):
return str(self.address)

View File

@@ -62,7 +62,8 @@ class L2VPN(PrimaryModel):
class Meta:
ordering = ('name', 'identifier')
verbose_name = 'L2VPN'
verbose_name = _('L2VPN')
verbose_name_plural = _('L2VPNs')
def __str__(self):
if self.identifier:
@@ -105,13 +106,14 @@ class L2VPNTermination(NetBoxModel):
class Meta:
ordering = ('l2vpn',)
verbose_name = 'L2VPN termination'
constraints = (
models.UniqueConstraint(
fields=('assigned_object_type', 'assigned_object_id'),
name='ipam_l2vpntermination_assigned_object'
),
)
verbose_name = _('L2VPN termination')
verbose_name_plural = _('L2VPN terminations')
def __str__(self):
if self.pk is not None:

View File

@@ -56,6 +56,8 @@ class ServiceTemplate(ServiceBase, PrimaryModel):
class Meta:
ordering = ('name',)
verbose_name = _('service template')
verbose_name_plural = _('service templates')
def get_absolute_url(self):
return reverse('ipam:servicetemplate', args=[self.pk])
@@ -97,6 +99,8 @@ class Service(ServiceBase, PrimaryModel):
class Meta:
ordering = ('protocol', 'ports', 'pk') # (protocol, port) may be non-unique
verbose_name = _('service')
verbose_name_plural = _('services')
def get_absolute_url(self):
return reverse('ipam:service', args=[self.pk])

View File

@@ -79,8 +79,8 @@ class VLANGroup(OrganizationalModel):
name='%(app_label)s_%(class)s_unique_scope_slug'
),
)
verbose_name = 'VLAN group'
verbose_name_plural = 'VLAN groups'
verbose_name = _('VLAN group')
verbose_name_plural = _('VLAN groups')
def get_absolute_url(self):
return reverse('ipam:vlangroup', args=[self.pk])
@@ -204,8 +204,8 @@ class VLAN(PrimaryModel):
name='%(app_label)s_%(class)s_unique_group_name'
),
)
verbose_name = 'VLAN'
verbose_name_plural = 'VLANs'
verbose_name = _('VLAN')
verbose_name_plural = _('VLANs')
def __str__(self):
return f'{self.name} ({self.vid})'

View File

@@ -59,8 +59,8 @@ class VRF(PrimaryModel):
class Meta:
ordering = ('name', 'rd', 'pk') # (name, rd) may be non-unique
verbose_name = 'VRF'
verbose_name_plural = 'VRFs'
verbose_name = _('VRF')
verbose_name_plural = _('VRFs')
def __str__(self):
if self.rd:
@@ -91,6 +91,8 @@ class RouteTarget(PrimaryModel):
class Meta:
ordering = ['name']
verbose_name = _('route target')
verbose_name_plural = _('route targets')
def __str__(self):
return self.name