Closes #13279: Wrap choice labels with gettext()

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
This commit is contained in:
Arthur Hanson 2023-08-01 04:31:07 +07:00 committed by GitHub
parent e284cd7e54
commit e625a5667c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 286 additions and 271 deletions

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -16,12 +18,12 @@ class CircuitStatusChoices(ChoiceSet):
STATUS_DECOMMISSIONED = 'decommissioned'
CHOICES = [
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_PROVISIONING, 'Provisioning', 'blue'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_OFFLINE, 'Offline', 'red'),
(STATUS_DEPROVISIONING, 'Deprovisioning', 'yellow'),
(STATUS_DECOMMISSIONED, 'Decommissioned', 'gray'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_PROVISIONING, _('Provisioning'), 'blue'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_OFFLINE, _('Offline'), 'red'),
(STATUS_DEPROVISIONING, _('Deprovisioning'), 'yellow'),
(STATUS_DECOMMISSIONED, _('Decommissioned'), 'gray'),
]

View File

@ -1,4 +1,4 @@
from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -63,12 +63,12 @@ class JobStatusChoices(ChoiceSet):
STATUS_FAILED = 'failed'
CHOICES = (
(STATUS_PENDING, 'Pending', 'cyan'),
(STATUS_SCHEDULED, 'Scheduled', 'gray'),
(STATUS_RUNNING, 'Running', 'blue'),
(STATUS_COMPLETED, 'Completed', 'green'),
(STATUS_ERRORED, 'Errored', 'red'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_PENDING, _('Pending'), 'cyan'),
(STATUS_SCHEDULED, _('Scheduled'), 'gray'),
(STATUS_RUNNING, _('Running'), 'blue'),
(STATUS_COMPLETED, _('Completed'), 'green'),
(STATUS_ERRORED, _('Errored'), 'red'),
(STATUS_FAILED, _('Failed'), 'red'),
)
TERMINAL_STATE_CHOICES = (

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -15,11 +17,11 @@ class SiteStatusChoices(ChoiceSet):
STATUS_RETIRED = 'retired'
CHOICES = [
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_STAGING, 'Staging', 'blue'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_RETIRED, 'Retired', 'red'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_STAGING, _('Staging'), 'blue'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
(STATUS_RETIRED, _('Retired'), 'red'),
]
@ -60,13 +62,13 @@ class RackTypeChoices(ChoiceSet):
TYPE_WALLCABINET_VERTICAL = 'wall-cabinet-vertical'
CHOICES = (
(TYPE_2POST, '2-post frame'),
(TYPE_4POST, '4-post frame'),
(TYPE_CABINET, '4-post cabinet'),
(TYPE_WALLFRAME, 'Wall-mounted frame'),
(TYPE_WALLFRAME_VERTICAL, 'Wall-mounted frame (vertical)'),
(TYPE_WALLCABINET, 'Wall-mounted cabinet'),
(TYPE_WALLCABINET_VERTICAL, 'Wall-mounted cabinet (vertical)'),
(TYPE_2POST, _('2-post frame')),
(TYPE_4POST, _('4-post frame')),
(TYPE_CABINET, _('4-post cabinet')),
(TYPE_WALLFRAME, _('Wall-mounted frame')),
(TYPE_WALLFRAME_VERTICAL, _('Wall-mounted frame (vertical)')),
(TYPE_WALLCABINET, _('Wall-mounted cabinet')),
(TYPE_WALLCABINET_VERTICAL, _('Wall-mounted cabinet (vertical)')),
)
@ -78,10 +80,10 @@ class RackWidthChoices(ChoiceSet):
WIDTH_23IN = 23
CHOICES = (
(WIDTH_10IN, '10 inches'),
(WIDTH_19IN, '19 inches'),
(WIDTH_21IN, '21 inches'),
(WIDTH_23IN, '23 inches'),
(WIDTH_10IN, _('10 inches')),
(WIDTH_19IN, _('19 inches')),
(WIDTH_21IN, _('21 inches')),
(WIDTH_23IN, _('23 inches')),
)
@ -95,11 +97,11 @@ class RackStatusChoices(ChoiceSet):
STATUS_DEPRECATED = 'deprecated'
CHOICES = [
(STATUS_RESERVED, 'Reserved', 'yellow'),
(STATUS_AVAILABLE, 'Available', 'green'),
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_ACTIVE, 'Active', 'blue'),
(STATUS_DEPRECATED, 'Deprecated', 'red'),
(STATUS_RESERVED, _('Reserved'), 'yellow'),
(STATUS_AVAILABLE, _('Available'), 'green'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_ACTIVE, _('Active'), 'blue'),
(STATUS_DEPRECATED, _('Deprecated'), 'red'),
]
@ -109,8 +111,8 @@ class RackDimensionUnitChoices(ChoiceSet):
UNIT_INCH = 'in'
CHOICES = (
(UNIT_MILLIMETER, 'Millimeters'),
(UNIT_INCH, 'Inches'),
(UNIT_MILLIMETER, _('Millimeters')),
(UNIT_INCH, _('Inches')),
)
@ -135,8 +137,8 @@ class SubdeviceRoleChoices(ChoiceSet):
ROLE_CHILD = 'child'
CHOICES = (
(ROLE_PARENT, 'Parent'),
(ROLE_CHILD, 'Child'),
(ROLE_PARENT, _('Parent')),
(ROLE_CHILD, _('Child')),
)
@ -150,8 +152,8 @@ class DeviceFaceChoices(ChoiceSet):
FACE_REAR = 'rear'
CHOICES = (
(FACE_FRONT, 'Front'),
(FACE_REAR, 'Rear'),
(FACE_FRONT, _('Front')),
(FACE_REAR, _('Rear')),
)
@ -167,13 +169,13 @@ class DeviceStatusChoices(ChoiceSet):
STATUS_DECOMMISSIONING = 'decommissioning'
CHOICES = [
(STATUS_OFFLINE, 'Offline', 'gray'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_STAGED, 'Staged', 'blue'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_INVENTORY, 'Inventory', 'purple'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_OFFLINE, _('Offline'), 'gray'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_STAGED, _('Staged'), 'blue'),
(STATUS_FAILED, _('Failed'), 'red'),
(STATUS_INVENTORY, _('Inventory'), 'purple'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
]
@ -188,13 +190,13 @@ class DeviceAirflowChoices(ChoiceSet):
AIRFLOW_MIXED = 'mixed'
CHOICES = (
(AIRFLOW_FRONT_TO_REAR, 'Front to rear'),
(AIRFLOW_REAR_TO_FRONT, 'Rear to front'),
(AIRFLOW_LEFT_TO_RIGHT, 'Left to right'),
(AIRFLOW_RIGHT_TO_LEFT, 'Right to left'),
(AIRFLOW_SIDE_TO_REAR, 'Side to rear'),
(AIRFLOW_PASSIVE, 'Passive'),
(AIRFLOW_MIXED, 'Mixed'),
(AIRFLOW_FRONT_TO_REAR, _('Front to rear')),
(AIRFLOW_REAR_TO_FRONT, _('Rear to front')),
(AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
(AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
(AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
(AIRFLOW_PASSIVE, _('Passive')),
(AIRFLOW_MIXED, _('Mixed')),
)
@ -213,12 +215,12 @@ class ModuleStatusChoices(ChoiceSet):
STATUS_DECOMMISSIONING = 'decommissioning'
CHOICES = [
(STATUS_OFFLINE, 'Offline', 'gray'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_STAGED, 'Staged', 'blue'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_OFFLINE, _('Offline'), 'gray'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_STAGED, _('Staged'), 'blue'),
(STATUS_FAILED, _('Failed'), 'red'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
]
@ -438,7 +440,7 @@ class PowerPortTypeChoices(ChoiceSet):
(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
)),
('NEMA (Non-locking)', (
(_('NEMA (Non-locking)'), (
(TYPE_NEMA_115P, 'NEMA 1-15P'),
(TYPE_NEMA_515P, 'NEMA 5-15P'),
(TYPE_NEMA_520P, 'NEMA 5-20P'),
@ -460,7 +462,7 @@ class PowerPortTypeChoices(ChoiceSet):
(TYPE_NEMA_1550P, 'NEMA 15-50P'),
(TYPE_NEMA_1560P, 'NEMA 15-60P'),
)),
('NEMA (Locking)', (
(_('NEMA (Locking)'), (
(TYPE_NEMA_L115P, 'NEMA L1-15P'),
(TYPE_NEMA_L515P, 'NEMA L5-15P'),
(TYPE_NEMA_L520P, 'NEMA L5-20P'),
@ -483,7 +485,7 @@ class PowerPortTypeChoices(ChoiceSet):
(TYPE_NEMA_L2130P, 'NEMA L21-30P'),
(TYPE_NEMA_L2230P, 'NEMA L22-30P'),
)),
('California Style', (
(_('California Style'), (
(TYPE_CS6361C, 'CS6361C'),
(TYPE_CS6365C, 'CS6365C'),
(TYPE_CS8165C, 'CS8165C'),
@ -491,7 +493,7 @@ class PowerPortTypeChoices(ChoiceSet):
(TYPE_CS8365C, 'CS8365C'),
(TYPE_CS8465C, 'CS8465C'),
)),
('International/ITA', (
(_('International/ITA'), (
(TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
(TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
(TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
@ -521,7 +523,7 @@ class PowerPortTypeChoices(ChoiceSet):
('DC', (
(TYPE_DC, 'DC Terminal'),
)),
('Proprietary', (
(_('Proprietary'), (
(TYPE_SAF_D_GRID, 'Saf-D-Grid'),
(TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
(TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
@ -529,7 +531,7 @@ class PowerPortTypeChoices(ChoiceSet):
(TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
)),
('Other', (
(_('Other'), (
(TYPE_HARDWIRED, 'Hardwired'),
(TYPE_OTHER, 'Other'),
)),
@ -675,7 +677,7 @@ class PowerOutletTypeChoices(ChoiceSet):
(TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
(TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
)),
('NEMA (Non-locking)', (
(_('NEMA (Non-locking)'), (
(TYPE_NEMA_115R, 'NEMA 1-15R'),
(TYPE_NEMA_515R, 'NEMA 5-15R'),
(TYPE_NEMA_520R, 'NEMA 5-20R'),
@ -697,7 +699,7 @@ class PowerOutletTypeChoices(ChoiceSet):
(TYPE_NEMA_1550R, 'NEMA 15-50R'),
(TYPE_NEMA_1560R, 'NEMA 15-60R'),
)),
('NEMA (Locking)', (
(_('NEMA (Locking)'), (
(TYPE_NEMA_L115R, 'NEMA L1-15R'),
(TYPE_NEMA_L515R, 'NEMA L5-15R'),
(TYPE_NEMA_L520R, 'NEMA L5-20R'),
@ -720,7 +722,7 @@ class PowerOutletTypeChoices(ChoiceSet):
(TYPE_NEMA_L2130R, 'NEMA L21-30R'),
(TYPE_NEMA_L2230R, 'NEMA L22-30R'),
)),
('California Style', (
(_('California Style'), (
(TYPE_CS6360C, 'CS6360C'),
(TYPE_CS6364C, 'CS6364C'),
(TYPE_CS8164C, 'CS8164C'),
@ -728,7 +730,7 @@ class PowerOutletTypeChoices(ChoiceSet):
(TYPE_CS8364C, 'CS8364C'),
(TYPE_CS8464C, 'CS8464C'),
)),
('ITA/International', (
(_('ITA/International'), (
(TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
(TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
(TYPE_ITA_G, 'ITA Type G (BS 1363)'),
@ -750,7 +752,7 @@ class PowerOutletTypeChoices(ChoiceSet):
('DC', (
(TYPE_DC, 'DC Terminal'),
)),
('Proprietary', (
(_('Proprietary'), (
(TYPE_HDOT_CX, 'HDOT Cx'),
(TYPE_SAF_D_GRID, 'Saf-D-Grid'),
(TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
@ -759,7 +761,7 @@ class PowerOutletTypeChoices(ChoiceSet):
(TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
(TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
)),
('Other', (
(_('Other'), (
(TYPE_HARDWIRED, 'Hardwired'),
(TYPE_OTHER, 'Other'),
)),
@ -789,9 +791,9 @@ class InterfaceKindChoices(ChoiceSet):
KIND_WIRELESS = 'wireless'
CHOICES = (
(KIND_PHYSICAL, 'Physical'),
(KIND_VIRTUAL, 'Virtual'),
(KIND_WIRELESS, 'Wireless'),
(KIND_PHYSICAL, _('Physical')),
(KIND_VIRTUAL, _('Virtual')),
(KIND_WIRELESS, _('Wireless')),
)
@ -939,15 +941,15 @@ class InterfaceTypeChoices(ChoiceSet):
CHOICES = (
(
'Virtual interfaces',
_('Virtual interfaces'),
(
(TYPE_VIRTUAL, 'Virtual'),
(TYPE_BRIDGE, 'Bridge'),
(TYPE_LAG, 'Link Aggregation Group (LAG)'),
(TYPE_VIRTUAL, _('Virtual')),
(TYPE_BRIDGE, _('Bridge')),
(TYPE_LAG, _('Link Aggregation Group (LAG)')),
),
),
(
'Ethernet (fixed)',
_('Ethernet (fixed)'),
(
(TYPE_100ME_FX, '100BASE-FX (10/100ME FIBER)'),
(TYPE_100ME_LFX, '100BASE-LFX (10/100ME FIBER)'),
@ -961,7 +963,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Ethernet (modular)',
_('Ethernet (modular)'),
(
(TYPE_1GE_GBIC, 'GBIC (1GE)'),
(TYPE_1GE_SFP, 'SFP (1GE)'),
@ -994,7 +996,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Ethernet (backplane)',
_('Ethernet (backplane)'),
(
(TYPE_1GE_KX, '1000BASE-KX (1GE)'),
(TYPE_10GE_KR, '10GBASE-KR (10GE)'),
@ -1008,7 +1010,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Wireless',
_('Wireless'),
(
(TYPE_80211A, 'IEEE 802.11a'),
(TYPE_80211G, 'IEEE 802.11b/g'),
@ -1022,7 +1024,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Cellular',
_('Cellular'),
(
(TYPE_GSM, 'GSM'),
(TYPE_CDMA, 'CDMA'),
@ -1069,7 +1071,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Serial',
_('Serial'),
(
(TYPE_T1, 'T1 (1.544 Mbps)'),
(TYPE_E1, 'E1 (2.048 Mbps)'),
@ -1084,7 +1086,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Coaxial',
_('Coaxial'),
(
(TYPE_DOCSIS, 'DOCSIS'),
)
@ -1101,7 +1103,7 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Stacking',
_('Stacking'),
(
(TYPE_STACKWISE, 'Cisco StackWise'),
(TYPE_STACKWISE_PLUS, 'Cisco StackWise Plus'),
@ -1120,9 +1122,9 @@ class InterfaceTypeChoices(ChoiceSet):
)
),
(
'Other',
_('Other'),
(
(TYPE_OTHER, 'Other'),
(TYPE_OTHER, _('Other')),
)
),
)
@ -1149,9 +1151,9 @@ class InterfaceDuplexChoices(ChoiceSet):
DUPLEX_AUTO = 'auto'
CHOICES = (
(DUPLEX_HALF, 'Half'),
(DUPLEX_FULL, 'Full'),
(DUPLEX_AUTO, 'Auto'),
(DUPLEX_HALF, _('Half')),
(DUPLEX_FULL, _('Full')),
(DUPLEX_AUTO, _('Auto')),
)
@ -1162,9 +1164,9 @@ class InterfaceModeChoices(ChoiceSet):
MODE_TAGGED_ALL = 'tagged-all'
CHOICES = (
(MODE_ACCESS, 'Access'),
(MODE_TAGGED, 'Tagged'),
(MODE_TAGGED_ALL, 'Tagged (All)'),
(MODE_ACCESS, _('Access')),
(MODE_TAGGED, _('Tagged')),
(MODE_TAGGED_ALL, _('Tagged (All)')),
)
@ -1193,7 +1195,7 @@ class InterfacePoETypeChoices(ChoiceSet):
CHOICES = (
(
'IEEE Standard',
_('IEEE Standard'),
(
(TYPE_1_8023AF, '802.3af (Type 1)'),
(TYPE_2_8023AT, '802.3at (Type 2)'),
@ -1202,12 +1204,12 @@ class InterfacePoETypeChoices(ChoiceSet):
)
),
(
'Passive',
_('Passive'),
(
(PASSIVE_24V_2PAIR, 'Passive 24V (2-pair)'),
(PASSIVE_24V_4PAIR, 'Passive 24V (4-pair)'),
(PASSIVE_48V_2PAIR, 'Passive 48V (2-pair)'),
(PASSIVE_48V_4PAIR, 'Passive 48V (4-pair)'),
(PASSIVE_24V_2PAIR, _('Passive 24V (2-pair)')),
(PASSIVE_24V_4PAIR, _('Passive 24V (4-pair)')),
(PASSIVE_48V_2PAIR, _('Passive 48V (2-pair)')),
(PASSIVE_48V_4PAIR, _('Passive 48V (4-pair)')),
)
),
)
@ -1269,7 +1271,7 @@ class PortTypeChoices(ChoiceSet):
CHOICES = (
(
'Copper',
_('Copper'),
(
(TYPE_8P8C, '8P8C'),
(TYPE_8P6C, '8P6C'),
@ -1292,7 +1294,7 @@ class PortTypeChoices(ChoiceSet):
),
),
(
'Fiber Optic',
_('Fiber Optic'),
(
(TYPE_FC, 'FC'),
(TYPE_LC, 'LC'),
@ -1325,9 +1327,9 @@ class PortTypeChoices(ChoiceSet):
),
),
(
'Other',
_('Other'),
(
(TYPE_OTHER, 'Other'),
(TYPE_OTHER, _('Other')),
)
)
)
@ -1365,7 +1367,7 @@ class CableTypeChoices(ChoiceSet):
CHOICES = (
(
'Copper', (
_('Copper'), (
(TYPE_CAT3, 'CAT3'),
(TYPE_CAT5, 'CAT5'),
(TYPE_CAT5E, 'CAT5e'),
@ -1381,7 +1383,7 @@ class CableTypeChoices(ChoiceSet):
),
),
(
'Fiber', (
_('Fiber'), (
(TYPE_MMF, 'Multimode Fiber'),
(TYPE_MMF_OM1, 'Multimode Fiber (OM1)'),
(TYPE_MMF_OM2, 'Multimode Fiber (OM2)'),
@ -1394,7 +1396,7 @@ class CableTypeChoices(ChoiceSet):
(TYPE_AOC, 'Active Optical Cabling (AOC)'),
),
),
(TYPE_POWER, 'Power'),
(TYPE_POWER, _('Power')),
)
@ -1405,9 +1407,9 @@ class LinkStatusChoices(ChoiceSet):
STATUS_DECOMMISSIONING = 'decommissioning'
CHOICES = (
(STATUS_CONNECTED, 'Connected', 'green'),
(STATUS_PLANNED, 'Planned', 'blue'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_CONNECTED, _('Connected'), 'green'),
(STATUS_PLANNED, _('Planned'), 'blue'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
)
@ -1424,12 +1426,12 @@ class CableLengthUnitChoices(ChoiceSet):
UNIT_INCH = 'in'
CHOICES = (
(UNIT_KILOMETER, 'Kilometers'),
(UNIT_METER, 'Meters'),
(UNIT_CENTIMETER, 'Centimeters'),
(UNIT_MILE, 'Miles'),
(UNIT_FOOT, 'Feet'),
(UNIT_INCH, 'Inches'),
(UNIT_KILOMETER, _('Kilometers')),
(UNIT_METER, _('Meters')),
(UNIT_CENTIMETER, _('Centimeters')),
(UNIT_MILE, _('Miles')),
(UNIT_FOOT, _('Feet')),
(UNIT_INCH, _('Inches')),
)
@ -1444,10 +1446,10 @@ class WeightUnitChoices(ChoiceSet):
UNIT_OUNCE = 'oz'
CHOICES = (
(UNIT_KILOGRAM, 'Kilograms'),
(UNIT_GRAM, 'Grams'),
(UNIT_POUND, 'Pounds'),
(UNIT_OUNCE, 'Ounces'),
(UNIT_KILOGRAM, _('Kilograms')),
(UNIT_GRAM, _('Grams')),
(UNIT_POUND, _('Pounds')),
(UNIT_OUNCE, _('Ounces')),
)
@ -1480,10 +1482,10 @@ class PowerFeedStatusChoices(ChoiceSet):
STATUS_FAILED = 'failed'
CHOICES = [
(STATUS_OFFLINE, 'Offline', 'gray'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_PLANNED, 'Planned', 'blue'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_OFFLINE, _('Offline'), 'gray'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_PLANNED, _('Planned'), 'blue'),
(STATUS_FAILED, _('Failed'), 'red'),
]
@ -1493,8 +1495,8 @@ class PowerFeedTypeChoices(ChoiceSet):
TYPE_REDUNDANT = 'redundant'
CHOICES = (
(TYPE_PRIMARY, 'Primary', 'green'),
(TYPE_REDUNDANT, 'Redundant', 'cyan'),
(TYPE_PRIMARY, _('Primary'), 'green'),
(TYPE_REDUNDANT, _('Redundant'), 'cyan'),
)
@ -1515,8 +1517,8 @@ class PowerFeedPhaseChoices(ChoiceSet):
PHASE_3PHASE = 'three-phase'
CHOICES = (
(PHASE_SINGLE, 'Single phase'),
(PHASE_3PHASE, 'Three-phase'),
(PHASE_SINGLE, _('Single phase')),
(PHASE_3PHASE, _('Three-phase')),
)
@ -1531,7 +1533,7 @@ class VirtualDeviceContextStatusChoices(ChoiceSet):
STATUS_OFFLINE = 'offline'
CHOICES = [
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_OFFLINE, 'Offline', 'red'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_OFFLINE, _('Offline'), 'red'),
]

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ButtonColorChoices, ChoiceSet
@ -22,19 +24,19 @@ class CustomFieldTypeChoices(ChoiceSet):
TYPE_MULTIOBJECT = 'multiobject'
CHOICES = (
(TYPE_TEXT, 'Text'),
(TYPE_LONGTEXT, 'Text (long)'),
(TYPE_INTEGER, 'Integer'),
(TYPE_DECIMAL, 'Decimal'),
(TYPE_BOOLEAN, 'Boolean (true/false)'),
(TYPE_DATE, 'Date'),
(TYPE_DATETIME, 'Date & time'),
(TYPE_URL, 'URL'),
(TYPE_JSON, 'JSON'),
(TYPE_SELECT, 'Selection'),
(TYPE_MULTISELECT, 'Multiple selection'),
(TYPE_OBJECT, 'Object'),
(TYPE_MULTIOBJECT, 'Multiple objects'),
(TYPE_TEXT, _('Text')),
(TYPE_LONGTEXT, _('Text (long)')),
(TYPE_INTEGER, _('Integer')),
(TYPE_DECIMAL, _('Decimal')),
(TYPE_BOOLEAN, _('Boolean (true/false)')),
(TYPE_DATE, _('Date')),
(TYPE_DATETIME, _('Date & time')),
(TYPE_URL, _('URL')),
(TYPE_JSON, _('JSON')),
(TYPE_SELECT, _('Selection')),
(TYPE_MULTISELECT, _('Multiple selection')),
(TYPE_OBJECT, _('Object')),
(TYPE_MULTIOBJECT, _('Multiple objects')),
)
@ -45,9 +47,9 @@ class CustomFieldFilterLogicChoices(ChoiceSet):
FILTER_EXACT = 'exact'
CHOICES = (
(FILTER_DISABLED, 'Disabled'),
(FILTER_LOOSE, 'Loose'),
(FILTER_EXACT, 'Exact'),
(FILTER_DISABLED, _('Disabled')),
(FILTER_LOOSE, _('Loose')),
(FILTER_EXACT, _('Exact')),
)
@ -59,10 +61,10 @@ class CustomFieldVisibilityChoices(ChoiceSet):
VISIBILITY_HIDDEN_IFUNSET = 'hidden-ifunset'
CHOICES = (
(VISIBILITY_READ_WRITE, 'Read/Write'),
(VISIBILITY_READ_ONLY, 'Read-only'),
(VISIBILITY_HIDDEN, 'Hidden'),
(VISIBILITY_HIDDEN_IFUNSET, 'Hidden (if unset)'),
(VISIBILITY_READ_WRITE, _('Read/write')),
(VISIBILITY_READ_ONLY, _('Read-only')),
(VISIBILITY_HIDDEN, _('Hidden')),
(VISIBILITY_HIDDEN_IFUNSET, _('Hidden (if unset)')),
)
@ -89,7 +91,7 @@ class CustomLinkButtonClassChoices(ButtonColorChoices):
CHOICES = (
*ButtonColorChoices.CHOICES,
(LINK, 'Link'),
(LINK, _('Link')),
)
@ -103,8 +105,8 @@ class BookmarkOrderingChoices(ChoiceSet):
ORDERING_OLDEST = 'created'
CHOICES = (
(ORDERING_NEWEST, 'Newest'),
(ORDERING_OLDEST, 'Oldest'),
(ORDERING_NEWEST, _('Newest')),
(ORDERING_OLDEST, _('Oldest')),
)
#
@ -119,9 +121,9 @@ class ObjectChangeActionChoices(ChoiceSet):
ACTION_DELETE = 'delete'
CHOICES = (
(ACTION_CREATE, 'Created', 'green'),
(ACTION_UPDATE, 'Updated', 'blue'),
(ACTION_DELETE, 'Deleted', 'red'),
(ACTION_CREATE, _('Created'), 'green'),
(ACTION_UPDATE, _('Updated'), 'blue'),
(ACTION_DELETE, _('Deleted'), 'red'),
)
@ -138,10 +140,10 @@ class JournalEntryKindChoices(ChoiceSet):
KIND_DANGER = 'danger'
CHOICES = [
(KIND_INFO, 'Info', 'cyan'),
(KIND_SUCCESS, 'Success', 'green'),
(KIND_WARNING, 'Warning', 'yellow'),
(KIND_DANGER, 'Danger', 'red'),
(KIND_INFO, _('Info'), 'cyan'),
(KIND_SUCCESS, _('Success'), 'green'),
(KIND_WARNING, _('Warning'), 'yellow'),
(KIND_DANGER, _('Danger'), 'red'),
]
@ -158,22 +160,22 @@ class LogLevelChoices(ChoiceSet):
LOG_FAILURE = 'failure'
CHOICES = (
(LOG_DEFAULT, 'Default', 'gray'),
(LOG_SUCCESS, 'Success', 'green'),
(LOG_INFO, 'Info', 'cyan'),
(LOG_WARNING, 'Warning', 'yellow'),
(LOG_FAILURE, 'Failure', 'red'),
(LOG_DEFAULT, _('Default'), 'gray'),
(LOG_SUCCESS, _('Success'), 'green'),
(LOG_INFO, _('Info'), 'cyan'),
(LOG_WARNING, _('Warning'), 'yellow'),
(LOG_FAILURE, _('Failure'), 'red'),
)
class DurationChoices(ChoiceSet):
CHOICES = (
(60, 'Hourly'),
(720, '12 hours'),
(1440, 'Daily'),
(10080, 'Weekly'),
(43200, '30 days'),
(60, _('Hourly')),
(720, _('12 hours')),
(1440, _('Daily')),
(10080, _('Weekly')),
(43200, _('30 days')),
)
@ -191,12 +193,12 @@ class JobResultStatusChoices(ChoiceSet):
STATUS_FAILED = 'failed'
CHOICES = (
(STATUS_PENDING, 'Pending', 'cyan'),
(STATUS_SCHEDULED, 'Scheduled', 'gray'),
(STATUS_RUNNING, 'Running', 'blue'),
(STATUS_COMPLETED, 'Completed', 'green'),
(STATUS_ERRORED, 'Errored', 'red'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_PENDING, _('Pending'), 'cyan'),
(STATUS_SCHEDULED, _('Scheduled'), 'gray'),
(STATUS_RUNNING, _('Running'), 'blue'),
(STATUS_COMPLETED, _('Completed'), 'green'),
(STATUS_ERRORED, _('Errored'), 'red'),
(STATUS_FAILED, _('Failed'), 'red'),
)
TERMINAL_STATE_CHOICES = (
@ -238,7 +240,7 @@ class ChangeActionChoices(ChoiceSet):
ACTION_DELETE = 'delete'
CHOICES = (
(ACTION_CREATE, 'Create', 'green'),
(ACTION_UPDATE, 'Update', 'blue'),
(ACTION_DELETE, 'Delete', 'red'),
(ACTION_CREATE, _('Create'), 'green'),
(ACTION_UPDATE, _('Update'), 'blue'),
(ACTION_DELETE, _('Delete'), 'red'),
)

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -25,10 +27,10 @@ class PrefixStatusChoices(ChoiceSet):
STATUS_DEPRECATED = 'deprecated'
CHOICES = [
(STATUS_CONTAINER, 'Container', 'gray'),
(STATUS_ACTIVE, 'Active', 'blue'),
(STATUS_RESERVED, 'Reserved', 'cyan'),
(STATUS_DEPRECATED, 'Deprecated', 'red'),
(STATUS_CONTAINER, _('Container'), 'gray'),
(STATUS_ACTIVE, _('Active'), 'blue'),
(STATUS_RESERVED, _('Reserved'), 'cyan'),
(STATUS_DEPRECATED, _('Deprecated'), 'red'),
]
@ -44,9 +46,9 @@ class IPRangeStatusChoices(ChoiceSet):
STATUS_DEPRECATED = 'deprecated'
CHOICES = [
(STATUS_ACTIVE, 'Active', 'blue'),
(STATUS_RESERVED, 'Reserved', 'cyan'),
(STATUS_DEPRECATED, 'Deprecated', 'red'),
(STATUS_ACTIVE, _('Active'), 'blue'),
(STATUS_RESERVED, _('Reserved'), 'cyan'),
(STATUS_DEPRECATED, _('Deprecated'), 'red'),
]
@ -64,11 +66,11 @@ class IPAddressStatusChoices(ChoiceSet):
STATUS_SLAAC = 'slaac'
CHOICES = [
(STATUS_ACTIVE, 'Active', 'blue'),
(STATUS_RESERVED, 'Reserved', 'cyan'),
(STATUS_DEPRECATED, 'Deprecated', 'red'),
(STATUS_DHCP, 'DHCP', 'green'),
(STATUS_SLAAC, 'SLAAC', 'purple'),
(STATUS_ACTIVE, _('Active'), 'blue'),
(STATUS_RESERVED, _('Reserved'), 'cyan'),
(STATUS_DEPRECATED, _('Deprecated'), 'red'),
(STATUS_DHCP, _('DHCP'), 'green'),
(STATUS_SLAAC, _('SLAAC'), 'purple'),
]
@ -84,9 +86,9 @@ class IPAddressRoleChoices(ChoiceSet):
ROLE_CARP = 'carp'
CHOICES = (
(ROLE_LOOPBACK, 'Loopback', 'gray'),
(ROLE_SECONDARY, 'Secondary', 'blue'),
(ROLE_ANYCAST, 'Anycast', 'yellow'),
(ROLE_LOOPBACK, _('Loopback'), 'gray'),
(ROLE_SECONDARY, _('Secondary'), 'blue'),
(ROLE_ANYCAST, _('Anycast'), 'yellow'),
(ROLE_VIP, 'VIP', 'purple'),
(ROLE_VRRP, 'VRRP', 'green'),
(ROLE_HSRP, 'HSRP', 'green'),
@ -110,15 +112,15 @@ class FHRPGroupProtocolChoices(ChoiceSet):
PROTOCOL_OTHER = 'other'
CHOICES = (
('Standard', (
(_('Standard'), (
(PROTOCOL_VRRP2, 'VRRPv2'),
(PROTOCOL_VRRP3, 'VRRPv3'),
(PROTOCOL_CARP, 'CARP'),
)),
('CheckPoint', (
(_('CheckPoint'), (
(PROTOCOL_CLUSTERXL, 'ClusterXL'),
)),
('Cisco', (
(_('Cisco'), (
(PROTOCOL_HSRP, 'HSRP'),
(PROTOCOL_GLBP, 'GLBP'),
)),
@ -132,7 +134,7 @@ class FHRPGroupAuthTypeChoices(ChoiceSet):
AUTHENTICATION_MD5 = 'md5'
CHOICES = (
(AUTHENTICATION_PLAINTEXT, 'Plaintext'),
(AUTHENTICATION_PLAINTEXT, _('Plaintext')),
(AUTHENTICATION_MD5, 'MD5'),
)
@ -149,9 +151,9 @@ class VLANStatusChoices(ChoiceSet):
STATUS_DEPRECATED = 'deprecated'
CHOICES = [
(STATUS_ACTIVE, 'Active', 'blue'),
(STATUS_RESERVED, 'Reserved', 'cyan'),
(STATUS_DEPRECATED, 'Deprecated', 'red'),
(STATUS_ACTIVE, _('Active'), 'blue'),
(STATUS_RESERVED, _('Reserved'), 'cyan'),
(STATUS_DEPRECATED, _('Deprecated'), 'red'),
]

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -12,8 +14,8 @@ class ContactPriorityChoices(ChoiceSet):
PRIORITY_INACTIVE = 'inactive'
CHOICES = (
(PRIORITY_PRIMARY, 'Primary'),
(PRIORITY_SECONDARY, 'Secondary'),
(PRIORITY_TERTIARY, 'Tertiary'),
(PRIORITY_INACTIVE, 'Inactive'),
(PRIORITY_PRIMARY, _('Primary')),
(PRIORITY_SECONDARY, _('Secondary')),
(PRIORITY_TERTIARY, _('Tertiary')),
(PRIORITY_INACTIVE, _('Inactive')),
)

View File

@ -1,4 +1,5 @@
from django.conf import settings
from django.utils.translation import gettext_lazy as _
class ChoiceSetMeta(type):
@ -9,7 +10,9 @@ class ChoiceSetMeta(type):
# Extend static choices with any configured choices
if key := attrs.get('key'):
assert type(attrs['CHOICES']) is list, f"{name} has a key defined but CHOICES is not a list"
assert type(attrs['CHOICES']) is list, _(
"{name} has a key defined but CHOICES is not a list"
).format(name=name)
app = attrs['__module__'].split('.', 1)[0]
replace_key = f'{app}.{key}'
extend_key = f'{replace_key}+' if replace_key else None
@ -127,33 +130,33 @@ class ColorChoices(ChoiceSet):
COLOR_WHITE = 'ffffff'
CHOICES = (
(COLOR_DARK_RED, 'Dark Red'),
(COLOR_RED, 'Red'),
(COLOR_PINK, 'Pink'),
(COLOR_ROSE, 'Rose'),
(COLOR_FUCHSIA, 'Fuchsia'),
(COLOR_PURPLE, 'Purple'),
(COLOR_DARK_PURPLE, 'Dark Purple'),
(COLOR_INDIGO, 'Indigo'),
(COLOR_BLUE, 'Blue'),
(COLOR_LIGHT_BLUE, 'Light Blue'),
(COLOR_CYAN, 'Cyan'),
(COLOR_TEAL, 'Teal'),
(COLOR_AQUA, 'Aqua'),
(COLOR_DARK_GREEN, 'Dark Green'),
(COLOR_GREEN, 'Green'),
(COLOR_LIGHT_GREEN, 'Light Green'),
(COLOR_LIME, 'Lime'),
(COLOR_YELLOW, 'Yellow'),
(COLOR_AMBER, 'Amber'),
(COLOR_ORANGE, 'Orange'),
(COLOR_DARK_ORANGE, 'Dark Orange'),
(COLOR_BROWN, 'Brown'),
(COLOR_LIGHT_GREY, 'Light Grey'),
(COLOR_GREY, 'Grey'),
(COLOR_DARK_GREY, 'Dark Grey'),
(COLOR_BLACK, 'Black'),
(COLOR_WHITE, 'White'),
(COLOR_DARK_RED, _('Dark Red')),
(COLOR_RED, _('Red')),
(COLOR_PINK, _('Pink')),
(COLOR_ROSE, _('Rose')),
(COLOR_FUCHSIA, _('Fuchsia')),
(COLOR_PURPLE, _('Purple')),
(COLOR_DARK_PURPLE, _('Dark Purple')),
(COLOR_INDIGO, _('Indigo')),
(COLOR_BLUE, _('Blue')),
(COLOR_LIGHT_BLUE, _('Light Blue')),
(COLOR_CYAN, _('Cyan')),
(COLOR_TEAL, _('Teal')),
(COLOR_AQUA, _('Aqua')),
(COLOR_DARK_GREEN, _('Dark Green')),
(COLOR_GREEN, _('Green')),
(COLOR_LIGHT_GREEN, _('Light Green')),
(COLOR_LIME, _('Lime')),
(COLOR_YELLOW, _('Yellow')),
(COLOR_AMBER, _('Amber')),
(COLOR_ORANGE, _('Orange')),
(COLOR_DARK_ORANGE, _('Dark Orange')),
(COLOR_BROWN, _('Brown')),
(COLOR_LIGHT_GREY, _('Light Grey')),
(COLOR_GREY, _('Grey')),
(COLOR_DARK_GREY, _('Dark Grey')),
(COLOR_BLACK, _('Black')),
(COLOR_WHITE, _('White')),
)
@ -182,20 +185,20 @@ class ButtonColorChoices(ChoiceSet):
WHITE = 'white'
CHOICES = (
(DEFAULT, 'Default'),
(BLUE, 'Blue'),
(INDIGO, 'Indigo'),
(PURPLE, 'Purple'),
(PINK, 'Pink'),
(RED, 'Red'),
(ORANGE, 'Orange'),
(YELLOW, 'Yellow'),
(GREEN, 'Green'),
(TEAL, 'Teal'),
(CYAN, 'Cyan'),
(GRAY, 'Gray'),
(BLACK, 'Black'),
(WHITE, 'White'),
(DEFAULT, _('Default')),
(BLUE, _('Blue')),
(INDIGO, _('Indigo')),
(PURPLE, _('Purple')),
(PINK, _('Pink')),
(RED, _('Red')),
(ORANGE, _('Orange')),
(YELLOW, _('Yellow')),
(GREEN, _('Green')),
(TEAL, _('Teal')),
(CYAN, _('Cyan')),
(GRAY, _('Gray')),
(BLACK, _('Black')),
(WHITE, _('White')),
)
@ -209,9 +212,9 @@ class ImportMethodChoices(ChoiceSet):
DATA_FILE = 'datafile'
CHOICES = [
(DIRECT, 'Direct'),
(UPLOAD, 'Upload'),
(DATA_FILE, 'Data file'),
(DIRECT, _('Direct')),
(UPLOAD, _('Upload')),
(DATA_FILE, _('Data file')),
]
@ -222,7 +225,7 @@ class ImportFormatChoices(ChoiceSet):
YAML = 'yaml'
CHOICES = [
(AUTO, 'Auto-detect'),
(AUTO, _('Auto-detect')),
(CSV, 'CSV'),
(JSON, 'JSON'),
(YAML, 'YAML'),

View File

@ -1,3 +1,5 @@
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -15,11 +17,11 @@ class ClusterStatusChoices(ChoiceSet):
STATUS_OFFLINE = 'offline'
CHOICES = [
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_STAGING, 'Staging', 'blue'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_OFFLINE, 'Offline', 'red'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_STAGING, _('Staging'), 'blue'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
(STATUS_OFFLINE, _('Offline'), 'red'),
]
@ -38,10 +40,10 @@ class VirtualMachineStatusChoices(ChoiceSet):
STATUS_DECOMMISSIONING = 'decommissioning'
CHOICES = [
(STATUS_OFFLINE, 'Offline', 'gray'),
(STATUS_ACTIVE, 'Active', 'green'),
(STATUS_PLANNED, 'Planned', 'cyan'),
(STATUS_STAGED, 'Staged', 'blue'),
(STATUS_FAILED, 'Failed', 'red'),
(STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
(STATUS_OFFLINE, _('Offline'), 'gray'),
(STATUS_ACTIVE, _('Active'), 'green'),
(STATUS_PLANNED, _('Planned'), 'cyan'),
(STATUS_STAGED, _('Staged'), 'blue'),
(STATUS_FAILED, _('Failed'), 'red'),
(STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
]

View File

@ -1,4 +1,4 @@
from django.utils.translation import gettext as _
from django.utils.translation import gettext_lazy as _
from utilities.choices import ChoiceSet
@ -8,8 +8,8 @@ class WirelessRoleChoices(ChoiceSet):
ROLE_STATION = 'station'
CHOICES = (
(ROLE_AP, 'Access point'),
(ROLE_STATION, 'Station'),
(ROLE_AP, _('Access point')),
(ROLE_STATION, _('Station')),
)
@ -464,10 +464,10 @@ class WirelessAuthTypeChoices(ChoiceSet):
TYPE_WPA_ENTERPRISE = 'wpa-enterprise'
CHOICES = (
(TYPE_OPEN, 'Open'),
(TYPE_OPEN, _('Open')),
(TYPE_WEP, 'WEP'),
(TYPE_WPA_PERSONAL, 'WPA Personal (PSK)'),
(TYPE_WPA_ENTERPRISE, 'WPA Enterprise'),
(TYPE_WPA_PERSONAL, _('WPA Personal (PSK)')),
(TYPE_WPA_ENTERPRISE, _('WPA Enterprise')),
)
@ -477,7 +477,7 @@ class WirelessAuthCipherChoices(ChoiceSet):
CIPHER_AES = 'aes'
CHOICES = (
(CIPHER_AUTO, 'Auto'),
(CIPHER_AUTO, _('Auto')),
(CIPHER_TKIP, 'TKIP'),
(CIPHER_AES, 'AES'),
)