diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 2a5a12ba7..207bd87e5 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-04-22 19:49+0000\n" +"POT-Creation-Date: 2024-05-06 17:40+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,9 +18,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: account/tables.py:27 templates/account/token.html:23 -#: templates/users/token.html:18 users/forms/bulk_import.py:41 -#: users/forms/model_forms.py:114 +#: account/tables.py:27 templates/account/token.html:22 +#: templates/users/token.html:17 users/forms/bulk_import.py:39 +#: users/forms/model_forms.py:116 msgid "Key" msgstr "" @@ -28,30 +28,30 @@ msgstr "" msgid "Write Enabled" msgstr "" -#: account/tables.py:34 core/tables/jobs.py:29 extras/choices.py:135 -#: extras/tables/tables.py:474 templates/account/token.html:44 -#: templates/core/configrevision.html:34 -#: templates/core/configrevision_restore.html:12 templates/core/job.html:58 -#: templates/extras/htmx/report_result.html:11 -#: templates/extras/htmx/script_result.html:12 -#: templates/extras/journalentry.html:25 templates/generic/object.html:48 -#: templates/users/token.html:36 +#: account/tables.py:35 core/tables/jobs.py:29 core/tables/tasks.py:79 +#: extras/choices.py:138 extras/tables/tables.py:499 +#: templates/account/token.html:43 templates/core/configrevision.html:26 +#: templates/core/configrevision_restore.html:12 templates/core/job.html:51 +#: templates/core/rq_task.html:16 templates/core/rq_task.html:73 +#: templates/core/rq_worker.html:14 templates/extras/htmx/script_result.html:12 +#: templates/extras/journalentry.html:22 templates/generic/object.html:58 +#: templates/users/token.html:35 msgid "Created" msgstr "" -#: account/tables.py:37 templates/account/token.html:48 -#: templates/users/token.html:40 users/forms/bulk_edit.py:97 +#: account/tables.py:39 templates/account/token.html:47 +#: templates/users/token.html:39 users/forms/bulk_edit.py:117 #: users/forms/filtersets.py:137 msgid "Expires" msgstr "" -#: account/tables.py:40 users/forms/filtersets.py:142 +#: account/tables.py:42 users/forms/filtersets.py:142 msgid "Last Used" msgstr "" -#: account/tables.py:43 templates/account/token.html:56 -#: templates/users/token.html:48 users/forms/bulk_edit.py:102 -#: users/forms/model_forms.py:126 +#: account/tables.py:45 templates/account/token.html:55 +#: templates/users/token.html:47 users/forms/bulk_edit.py:122 +#: users/forms/model_forms.py:128 msgid "Allowed IPs" msgstr "" @@ -66,16 +66,16 @@ msgstr "" msgid "Planned" msgstr "" -#: circuits/choices.py:22 netbox/navigation/menu.py:290 +#: circuits/choices.py:22 netbox/navigation/menu.py:289 msgid "Provisioning" msgstr "" -#: circuits/choices.py:23 dcim/choices.py:22 dcim/choices.py:103 -#: dcim/choices.py:173 dcim/choices.py:219 dcim/choices.py:1500 -#: dcim/choices.py:1550 extras/tables/tables.py:380 ipam/choices.py:31 -#: ipam/choices.py:49 ipam/choices.py:69 ipam/choices.py:154 -#: templates/extras/configcontext.html:26 templates/users/user.html:38 -#: users/forms/bulk_edit.py:36 virtualization/choices.py:22 +#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22 +#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219 +#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385 +#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 ipam/choices.py:154 +#: templates/extras/configcontext.html:25 templates/users/user.html:37 +#: users/forms/bulk_edit.py:38 virtualization/choices.py:22 #: virtualization/choices.py:44 vpn/choices.py:19 wireless/choices.py:25 msgid "Active" msgstr "" @@ -94,95 +94,97 @@ msgstr "" msgid "Decommissioned" msgstr "" -#: circuits/filtersets.py:29 circuits/filtersets.py:190 dcim/filtersets.py:124 -#: dcim/filtersets.py:185 dcim/filtersets.py:260 dcim/filtersets.py:369 -#: dcim/filtersets.py:903 dcim/filtersets.py:1207 dcim/filtersets.py:1702 -#: dcim/filtersets.py:1945 dcim/filtersets.py:2003 ipam/filtersets.py:305 -#: ipam/filtersets.py:896 virtualization/filtersets.py:45 -#: virtualization/filtersets.py:173 vpn/filtersets.py:341 +#: circuits/filtersets.py:29 circuits/filtersets.py:196 dcim/filtersets.py:97 +#: dcim/filtersets.py:151 dcim/filtersets.py:211 dcim/filtersets.py:297 +#: dcim/filtersets.py:406 dcim/filtersets.py:969 dcim/filtersets.py:1295 +#: dcim/filtersets.py:1822 dcim/filtersets.py:2065 dcim/filtersets.py:2123 +#: ipam/filtersets.py:339 ipam/filtersets.py:945 +#: virtualization/filtersets.py:45 virtualization/filtersets.py:173 +#: vpn/filtersets.py:377 msgid "Region (ID)" msgstr "" -#: circuits/filtersets.py:36 circuits/filtersets.py:197 dcim/filtersets.py:130 -#: dcim/filtersets.py:192 dcim/filtersets.py:267 dcim/filtersets.py:376 -#: dcim/filtersets.py:910 dcim/filtersets.py:1214 dcim/filtersets.py:1709 -#: dcim/filtersets.py:1952 dcim/filtersets.py:2010 extras/filtersets.py:414 -#: ipam/filtersets.py:312 ipam/filtersets.py:903 +#: circuits/filtersets.py:36 circuits/filtersets.py:203 dcim/filtersets.py:104 +#: dcim/filtersets.py:157 dcim/filtersets.py:218 dcim/filtersets.py:304 +#: dcim/filtersets.py:413 dcim/filtersets.py:976 dcim/filtersets.py:1302 +#: dcim/filtersets.py:1829 dcim/filtersets.py:2072 dcim/filtersets.py:2130 +#: extras/filtersets.py:461 ipam/filtersets.py:346 ipam/filtersets.py:952 #: virtualization/filtersets.py:52 virtualization/filtersets.py:180 -#: vpn/filtersets.py:336 +#: vpn/filtersets.py:372 msgid "Region (slug)" msgstr "" -#: circuits/filtersets.py:42 circuits/filtersets.py:203 dcim/filtersets.py:198 -#: dcim/filtersets.py:273 dcim/filtersets.py:382 dcim/filtersets.py:916 -#: dcim/filtersets.py:1220 dcim/filtersets.py:1715 dcim/filtersets.py:1958 -#: dcim/filtersets.py:2016 ipam/filtersets.py:318 ipam/filtersets.py:909 -#: virtualization/filtersets.py:58 virtualization/filtersets.py:186 +#: circuits/filtersets.py:42 circuits/filtersets.py:209 dcim/filtersets.py:127 +#: dcim/filtersets.py:224 dcim/filtersets.py:310 dcim/filtersets.py:419 +#: dcim/filtersets.py:982 dcim/filtersets.py:1308 dcim/filtersets.py:1835 +#: dcim/filtersets.py:2078 dcim/filtersets.py:2136 ipam/filtersets.py:352 +#: ipam/filtersets.py:958 virtualization/filtersets.py:58 +#: virtualization/filtersets.py:186 msgid "Site group (ID)" msgstr "" -#: circuits/filtersets.py:49 circuits/filtersets.py:210 dcim/filtersets.py:205 -#: dcim/filtersets.py:280 dcim/filtersets.py:389 dcim/filtersets.py:923 -#: dcim/filtersets.py:1227 dcim/filtersets.py:1722 dcim/filtersets.py:1965 -#: dcim/filtersets.py:2023 extras/filtersets.py:420 ipam/filtersets.py:325 -#: ipam/filtersets.py:916 virtualization/filtersets.py:65 -#: virtualization/filtersets.py:193 +#: circuits/filtersets.py:49 circuits/filtersets.py:216 dcim/filtersets.py:134 +#: dcim/filtersets.py:231 dcim/filtersets.py:317 dcim/filtersets.py:426 +#: dcim/filtersets.py:989 dcim/filtersets.py:1315 dcim/filtersets.py:1842 +#: dcim/filtersets.py:2085 dcim/filtersets.py:2143 extras/filtersets.py:467 +#: ipam/filtersets.py:359 ipam/filtersets.py:965 +#: virtualization/filtersets.py:65 virtualization/filtersets.py:193 msgid "Site group (slug)" msgstr "" -#: circuits/filtersets.py:54 circuits/forms/bulk_import.py:117 -#: circuits/forms/filtersets.py:47 circuits/forms/filtersets.py:167 -#: circuits/forms/model_forms.py:137 dcim/forms/bulk_edit.py:166 -#: dcim/forms/bulk_edit.py:238 dcim/forms/bulk_edit.py:570 -#: dcim/forms/bulk_edit.py:763 dcim/forms/bulk_import.py:130 -#: dcim/forms/bulk_import.py:184 dcim/forms/bulk_import.py:257 -#: dcim/forms/bulk_import.py:485 dcim/forms/bulk_import.py:1262 -#: dcim/forms/bulk_import.py:1290 dcim/forms/filtersets.py:84 -#: dcim/forms/filtersets.py:217 dcim/forms/filtersets.py:264 -#: dcim/forms/filtersets.py:373 dcim/forms/filtersets.py:680 -#: dcim/forms/filtersets.py:910 dcim/forms/filtersets.py:934 -#: dcim/forms/filtersets.py:1024 dcim/forms/filtersets.py:1062 -#: dcim/forms/filtersets.py:1468 dcim/forms/filtersets.py:1492 -#: dcim/forms/filtersets.py:1516 dcim/forms/model_forms.py:138 -#: dcim/forms/model_forms.py:167 dcim/forms/model_forms.py:211 -#: dcim/forms/model_forms.py:401 dcim/forms/model_forms.py:637 -#: dcim/forms/object_create.py:390 dcim/tables/devices.py:186 -#: dcim/tables/power.py:26 dcim/tables/power.py:93 dcim/tables/racks.py:62 -#: dcim/tables/racks.py:138 dcim/tables/sites.py:129 extras/filtersets.py:430 -#: ipam/forms/bulk_edit.py:215 ipam/forms/bulk_edit.py:269 -#: ipam/forms/bulk_edit.py:447 ipam/forms/bulk_edit.py:519 -#: ipam/forms/bulk_import.py:170 ipam/forms/bulk_import.py:437 -#: ipam/forms/filtersets.py:152 ipam/forms/filtersets.py:226 -#: ipam/forms/filtersets.py:417 ipam/forms/filtersets.py:470 -#: ipam/forms/model_forms.py:206 ipam/forms/model_forms.py:552 -#: ipam/forms/model_forms.py:644 ipam/tables/ip.py:244 ipam/tables/vlans.py:114 -#: ipam/tables/vlans.py:216 templates/circuits/circuittermination_edit.html:20 -#: templates/circuits/inc/circuit_termination.html:33 -#: templates/dcim/device.html:22 templates/dcim/inc/cable_termination.html:8 -#: templates/dcim/inc/cable_termination.html:33 templates/dcim/location.html:40 -#: templates/dcim/powerpanel.html:23 templates/dcim/rack.html:25 -#: templates/dcim/rackreservation.html:31 templates/dcim/site.html:27 -#: templates/ipam/prefix.html:57 templates/ipam/vlan.html:26 -#: templates/ipam/vlan_edit.html:40 templates/virtualization/cluster.html:45 -#: templates/virtualization/virtualmachine.html:96 -#: virtualization/forms/bulk_edit.py:90 virtualization/forms/bulk_edit.py:108 -#: virtualization/forms/bulk_edit.py:123 virtualization/forms/bulk_import.py:59 -#: virtualization/forms/bulk_import.py:85 virtualization/forms/filtersets.py:78 -#: virtualization/forms/filtersets.py:144 -#: virtualization/forms/model_forms.py:74 -#: virtualization/forms/model_forms.py:107 -#: virtualization/forms/model_forms.py:174 virtualization/tables/clusters.py:77 -#: virtualization/tables/virtualmachines.py:62 vpn/forms/filtersets.py:262 -#: wireless/forms/model_forms.py:77 wireless/forms/model_forms.py:117 +#: circuits/filtersets.py:54 circuits/forms/bulk_import.py:116 +#: circuits/forms/filtersets.py:48 circuits/forms/filtersets.py:168 +#: circuits/forms/model_forms.py:136 circuits/forms/model_forms.py:152 +#: dcim/forms/bulk_edit.py:167 dcim/forms/bulk_edit.py:239 +#: dcim/forms/bulk_edit.py:575 dcim/forms/bulk_edit.py:771 +#: dcim/forms/bulk_import.py:130 dcim/forms/bulk_import.py:184 +#: dcim/forms/bulk_import.py:257 dcim/forms/bulk_import.py:485 +#: dcim/forms/bulk_import.py:1262 dcim/forms/bulk_import.py:1290 +#: dcim/forms/filtersets.py:85 dcim/forms/filtersets.py:218 +#: dcim/forms/filtersets.py:265 dcim/forms/filtersets.py:374 +#: dcim/forms/filtersets.py:681 dcim/forms/filtersets.py:908 +#: dcim/forms/filtersets.py:932 dcim/forms/filtersets.py:1022 +#: dcim/forms/filtersets.py:1060 dcim/forms/filtersets.py:1468 +#: dcim/forms/filtersets.py:1492 dcim/forms/filtersets.py:1516 +#: dcim/forms/model_forms.py:136 dcim/forms/model_forms.py:164 +#: dcim/forms/model_forms.py:206 dcim/forms/model_forms.py:406 +#: dcim/forms/model_forms.py:668 dcim/forms/object_create.py:391 +#: dcim/tables/devices.py:158 dcim/tables/power.py:26 dcim/tables/power.py:93 +#: dcim/tables/racks.py:62 dcim/tables/racks.py:138 dcim/tables/sites.py:129 +#: extras/filtersets.py:477 ipam/forms/bulk_edit.py:216 +#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448 +#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170 +#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153 +#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424 +#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203 +#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673 +#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 +#: templates/circuits/inc/circuit_termination.html:32 +#: templates/dcim/device.html:21 templates/dcim/inc/cable_termination.html:8 +#: templates/dcim/inc/cable_termination.html:33 templates/dcim/location.html:37 +#: templates/dcim/powerpanel.html:22 templates/dcim/rack.html:22 +#: templates/dcim/rackreservation.html:28 templates/dcim/site.html:27 +#: templates/ipam/prefix.html:56 templates/ipam/vlan.html:23 +#: templates/ipam/vlan_edit.html:40 templates/virtualization/cluster.html:42 +#: templates/virtualization/virtualmachine.html:91 +#: virtualization/forms/bulk_edit.py:91 virtualization/forms/bulk_edit.py:109 +#: virtualization/forms/bulk_edit.py:124 virtualization/forms/bulk_import.py:59 +#: virtualization/forms/bulk_import.py:85 virtualization/forms/filtersets.py:79 +#: virtualization/forms/filtersets.py:148 +#: virtualization/forms/model_forms.py:71 +#: virtualization/forms/model_forms.py:104 +#: virtualization/forms/model_forms.py:171 virtualization/tables/clusters.py:77 +#: virtualization/tables/virtualmachines.py:62 vpn/forms/filtersets.py:266 +#: wireless/forms/model_forms.py:76 wireless/forms/model_forms.py:118 msgid "Site" msgstr "" -#: circuits/filtersets.py:60 circuits/filtersets.py:221 -#: circuits/filtersets.py:258 dcim/filtersets.py:215 dcim/filtersets.py:290 -#: dcim/filtersets.py:363 extras/filtersets.py:436 ipam/filtersets.py:215 -#: ipam/filtersets.py:335 ipam/filtersets.py:926 +#: circuits/filtersets.py:60 circuits/filtersets.py:227 +#: circuits/filtersets.py:272 dcim/filtersets.py:241 dcim/filtersets.py:327 +#: dcim/filtersets.py:400 extras/filtersets.py:483 ipam/filtersets.py:238 +#: ipam/filtersets.py:369 ipam/filtersets.py:975 #: virtualization/filtersets.py:75 virtualization/filtersets.py:203 -#: vpn/filtersets.py:346 +#: vpn/filtersets.py:382 msgid "Site (slug)" msgstr "" @@ -190,19 +192,19 @@ msgstr "" msgid "ASN (ID)" msgstr "" -#: circuits/filtersets.py:71 circuits/forms/filtersets.py:27 -#: ipam/forms/model_forms.py:158 ipam/models/asns.py:108 +#: circuits/filtersets.py:71 circuits/forms/filtersets.py:28 +#: ipam/forms/model_forms.py:157 ipam/models/asns.py:108 #: ipam/models/asns.py:125 ipam/tables/asn.py:41 templates/ipam/asn.html:20 msgid "ASN" msgstr "" #: circuits/filtersets.py:93 circuits/filtersets.py:120 -#: circuits/filtersets.py:154 +#: circuits/filtersets.py:154 ipam/filtersets.py:243 msgid "Provider (ID)" msgstr "" #: circuits/filtersets.py:99 circuits/filtersets.py:126 -#: circuits/filtersets.py:160 +#: circuits/filtersets.py:160 ipam/filtersets.py:249 msgid "Provider (slug)" msgstr "" @@ -210,410 +212,420 @@ msgstr "" msgid "Provider account (ID)" msgstr "" -#: circuits/filtersets.py:170 +#: circuits/filtersets.py:171 +msgid "Provider account (account)" +msgstr "" + +#: circuits/filtersets.py:176 msgid "Provider network (ID)" msgstr "" -#: circuits/filtersets.py:174 +#: circuits/filtersets.py:180 msgid "Circuit type (ID)" msgstr "" -#: circuits/filtersets.py:180 +#: circuits/filtersets.py:186 msgid "Circuit type (slug)" msgstr "" -#: circuits/filtersets.py:215 circuits/filtersets.py:252 dcim/filtersets.py:209 -#: dcim/filtersets.py:284 dcim/filtersets.py:357 dcim/filtersets.py:927 -#: dcim/filtersets.py:1232 dcim/filtersets.py:1727 dcim/filtersets.py:1969 -#: dcim/filtersets.py:2028 ipam/filtersets.py:209 ipam/filtersets.py:329 -#: ipam/filtersets.py:920 virtualization/filtersets.py:69 -#: virtualization/filtersets.py:197 vpn/filtersets.py:351 +#: circuits/filtersets.py:221 circuits/filtersets.py:266 dcim/filtersets.py:235 +#: dcim/filtersets.py:321 dcim/filtersets.py:394 dcim/filtersets.py:993 +#: dcim/filtersets.py:1320 dcim/filtersets.py:1847 dcim/filtersets.py:2089 +#: dcim/filtersets.py:2148 ipam/filtersets.py:232 ipam/filtersets.py:363 +#: ipam/filtersets.py:969 virtualization/filtersets.py:69 +#: virtualization/filtersets.py:197 vpn/filtersets.py:387 msgid "Site (ID)" msgstr "" -#: circuits/filtersets.py:244 core/filtersets.py:73 core/filtersets.py:132 -#: dcim/filtersets.py:640 dcim/filtersets.py:1201 dcim/filtersets.py:2076 -#: extras/filtersets.py:40 extras/filtersets.py:69 extras/filtersets.py:101 -#: extras/filtersets.py:140 extras/filtersets.py:168 extras/filtersets.py:195 -#: extras/filtersets.py:226 extras/filtersets.py:295 extras/filtersets.py:343 -#: extras/filtersets.py:403 extras/filtersets.py:562 extras/filtersets.py:604 -#: extras/filtersets.py:645 ipam/forms/model_forms.py:416 -#: netbox/filtersets.py:275 netbox/forms/__init__.py:23 -#: netbox/forms/base.py:158 templates/htmx/object_selector.html:28 -#: templates/inc/filter_list.html:53 templates/ipam/ipaddress_assign.html:32 -#: templates/search.html:7 templates/search.html:26 tenancy/filtersets.py:87 -#: users/filtersets.py:21 users/filtersets.py:37 users/filtersets.py:69 -#: users/filtersets.py:117 utilities/forms/forms.py:105 +#: circuits/filtersets.py:231 circuits/filtersets.py:235 +msgid "Termination A (ID)" +msgstr "" + +#: circuits/filtersets.py:258 core/filtersets.py:73 core/filtersets.py:132 +#: dcim/filtersets.py:693 dcim/filtersets.py:1289 dcim/filtersets.py:2196 +#: extras/filtersets.py:41 extras/filtersets.py:63 extras/filtersets.py:92 +#: extras/filtersets.py:127 extras/filtersets.py:176 extras/filtersets.py:204 +#: extras/filtersets.py:234 extras/filtersets.py:271 extras/filtersets.py:343 +#: extras/filtersets.py:390 extras/filtersets.py:450 extras/filtersets.py:613 +#: extras/filtersets.py:655 extras/filtersets.py:696 +#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275 +#: netbox/forms/__init__.py:22 netbox/forms/base.py:165 +#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45 +#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7 +#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23 +#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140 +#: utilities/forms/forms.py:104 msgid "Search" msgstr "" -#: circuits/filtersets.py:248 circuits/forms/bulk_edit.py:167 -#: circuits/forms/model_forms.py:110 circuits/forms/model_forms.py:132 -#: dcim/forms/connections.py:66 templates/circuits/circuit.html:15 +#: circuits/filtersets.py:262 circuits/forms/bulk_edit.py:168 +#: circuits/forms/model_forms.py:109 circuits/forms/model_forms.py:131 +#: dcim/forms/connections.py:71 templates/circuits/circuit.html:15 #: templates/dcim/inc/cable_termination.html:55 #: templates/dcim/trace/circuit.html:4 msgid "Circuit" msgstr "" -#: circuits/filtersets.py:262 +#: circuits/filtersets.py:276 msgid "ProviderNetwork (ID)" msgstr "" -#: circuits/forms/bulk_edit.py:25 circuits/forms/filtersets.py:52 -#: circuits/forms/model_forms.py:26 circuits/tables/providers.py:33 -#: dcim/forms/bulk_edit.py:126 dcim/forms/filtersets.py:187 -#: dcim/forms/model_forms.py:126 dcim/tables/sites.py:94 +#: circuits/forms/bulk_edit.py:26 circuits/forms/filtersets.py:53 +#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33 +#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188 +#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94 #: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219 -#: netbox/navigation/menu.py:160 netbox/navigation/menu.py:163 -#: templates/circuits/provider.html:24 +#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162 +#: templates/circuits/provider.html:23 msgid "ASNs" msgstr "" -#: circuits/forms/bulk_edit.py:29 circuits/forms/bulk_edit.py:51 -#: circuits/forms/bulk_edit.py:78 circuits/forms/bulk_edit.py:99 -#: circuits/forms/bulk_edit.py:159 core/forms/bulk_edit.py:27 -#: dcim/forms/bulk_create.py:35 dcim/forms/bulk_edit.py:71 -#: dcim/forms/bulk_edit.py:90 dcim/forms/bulk_edit.py:149 -#: dcim/forms/bulk_edit.py:190 dcim/forms/bulk_edit.py:208 -#: dcim/forms/bulk_edit.py:336 dcim/forms/bulk_edit.py:371 -#: dcim/forms/bulk_edit.py:386 dcim/forms/bulk_edit.py:445 -#: dcim/forms/bulk_edit.py:484 dcim/forms/bulk_edit.py:514 -#: dcim/forms/bulk_edit.py:538 dcim/forms/bulk_edit.py:608 -#: dcim/forms/bulk_edit.py:657 dcim/forms/bulk_edit.py:709 -#: dcim/forms/bulk_edit.py:732 dcim/forms/bulk_edit.py:780 -#: dcim/forms/bulk_edit.py:850 dcim/forms/bulk_edit.py:903 -#: dcim/forms/bulk_edit.py:938 dcim/forms/bulk_edit.py:978 -#: dcim/forms/bulk_edit.py:1022 dcim/forms/bulk_edit.py:1067 -#: dcim/forms/bulk_edit.py:1094 dcim/forms/bulk_edit.py:1112 -#: dcim/forms/bulk_edit.py:1130 dcim/forms/bulk_edit.py:1148 -#: dcim/forms/bulk_edit.py:1566 extras/forms/bulk_edit.py:36 -#: extras/forms/bulk_edit.py:123 extras/forms/bulk_edit.py:152 -#: extras/forms/bulk_edit.py:182 extras/forms/bulk_edit.py:263 -#: extras/forms/bulk_edit.py:287 extras/forms/bulk_edit.py:301 -#: extras/tables/tables.py:56 ipam/forms/bulk_edit.py:50 -#: ipam/forms/bulk_edit.py:70 ipam/forms/bulk_edit.py:90 -#: ipam/forms/bulk_edit.py:114 ipam/forms/bulk_edit.py:143 -#: ipam/forms/bulk_edit.py:172 ipam/forms/bulk_edit.py:191 -#: ipam/forms/bulk_edit.py:260 ipam/forms/bulk_edit.py:304 -#: ipam/forms/bulk_edit.py:352 ipam/forms/bulk_edit.py:395 -#: ipam/forms/bulk_edit.py:423 ipam/forms/bulk_edit.py:551 -#: ipam/forms/bulk_edit.py:582 templates/account/token.html:36 -#: templates/circuits/circuit.html:60 templates/circuits/circuittype.html:29 -#: templates/circuits/inc/circuit_termination.html:115 -#: templates/circuits/provider.html:34 -#: templates/circuits/providernetwork.html:35 templates/core/datasource.html:55 -#: templates/dcim/cable.html:37 templates/dcim/consoleport.html:47 -#: templates/dcim/consoleserverport.html:47 templates/dcim/device.html:96 -#: templates/dcim/devicebay.html:35 templates/dcim/devicerole.html:33 -#: templates/dcim/devicetype.html:36 templates/dcim/frontport.html:61 -#: templates/dcim/interface.html:70 templates/dcim/inventoryitem.html:61 -#: templates/dcim/inventoryitemrole.html:23 templates/dcim/location.html:36 -#: templates/dcim/manufacturer.html:43 templates/dcim/module.html:71 -#: templates/dcim/modulebay.html:39 templates/dcim/moduletype.html:27 -#: templates/dcim/platform.html:36 templates/dcim/powerfeed.html:43 -#: templates/dcim/poweroutlet.html:43 templates/dcim/powerpanel.html:31 -#: templates/dcim/powerport.html:43 templates/dcim/rack.html:54 -#: templates/dcim/rackreservation.html:69 templates/dcim/rackrole.html:29 -#: templates/dcim/rearport.html:57 templates/dcim/region.html:34 -#: templates/dcim/site.html:60 templates/dcim/sitegroup.html:34 -#: templates/dcim/virtualchassis.html:32 -#: templates/extras/admin/plugins_list.html:26 -#: templates/extras/configcontext.html:22 -#: templates/extras/configtemplate.html:18 templates/extras/customfield.html:35 +#: circuits/forms/bulk_edit.py:30 circuits/forms/bulk_edit.py:52 +#: circuits/forms/bulk_edit.py:79 circuits/forms/bulk_edit.py:100 +#: circuits/forms/bulk_edit.py:160 core/forms/bulk_edit.py:28 +#: core/tables/plugins.py:29 dcim/forms/bulk_create.py:35 +#: dcim/forms/bulk_edit.py:72 dcim/forms/bulk_edit.py:91 +#: dcim/forms/bulk_edit.py:150 dcim/forms/bulk_edit.py:191 +#: dcim/forms/bulk_edit.py:209 dcim/forms/bulk_edit.py:337 +#: dcim/forms/bulk_edit.py:373 dcim/forms/bulk_edit.py:388 +#: dcim/forms/bulk_edit.py:447 dcim/forms/bulk_edit.py:486 +#: dcim/forms/bulk_edit.py:516 dcim/forms/bulk_edit.py:540 +#: dcim/forms/bulk_edit.py:613 dcim/forms/bulk_edit.py:665 +#: dcim/forms/bulk_edit.py:717 dcim/forms/bulk_edit.py:740 +#: dcim/forms/bulk_edit.py:788 dcim/forms/bulk_edit.py:858 +#: dcim/forms/bulk_edit.py:911 dcim/forms/bulk_edit.py:946 +#: dcim/forms/bulk_edit.py:986 dcim/forms/bulk_edit.py:1030 +#: dcim/forms/bulk_edit.py:1075 dcim/forms/bulk_edit.py:1102 +#: dcim/forms/bulk_edit.py:1120 dcim/forms/bulk_edit.py:1138 +#: dcim/forms/bulk_edit.py:1156 dcim/forms/bulk_edit.py:1575 +#: extras/forms/bulk_edit.py:36 extras/forms/bulk_edit.py:124 +#: extras/forms/bulk_edit.py:153 extras/forms/bulk_edit.py:183 +#: extras/forms/bulk_edit.py:264 extras/forms/bulk_edit.py:288 +#: extras/forms/bulk_edit.py:302 extras/tables/tables.py:58 +#: ipam/forms/bulk_edit.py:51 ipam/forms/bulk_edit.py:71 +#: ipam/forms/bulk_edit.py:91 ipam/forms/bulk_edit.py:115 +#: ipam/forms/bulk_edit.py:144 ipam/forms/bulk_edit.py:173 +#: ipam/forms/bulk_edit.py:192 ipam/forms/bulk_edit.py:261 +#: ipam/forms/bulk_edit.py:305 ipam/forms/bulk_edit.py:353 +#: ipam/forms/bulk_edit.py:396 ipam/forms/bulk_edit.py:424 +#: ipam/forms/bulk_edit.py:554 ipam/forms/bulk_edit.py:585 +#: templates/account/token.html:35 templates/circuits/circuit.html:59 +#: templates/circuits/circuittype.html:26 +#: templates/circuits/inc/circuit_termination.html:114 +#: templates/circuits/provider.html:33 +#: templates/circuits/providernetwork.html:32 templates/core/datasource.html:54 +#: templates/dcim/cable.html:36 templates/dcim/consoleport.html:44 +#: templates/dcim/consoleserverport.html:44 templates/dcim/device.html:93 +#: templates/dcim/devicebay.html:32 templates/dcim/devicerole.html:30 +#: templates/dcim/devicetype.html:33 templates/dcim/frontport.html:58 +#: templates/dcim/interface.html:69 templates/dcim/inventoryitem.html:60 +#: templates/dcim/inventoryitemrole.html:22 templates/dcim/location.html:33 +#: templates/dcim/manufacturer.html:40 templates/dcim/module.html:70 +#: templates/dcim/modulebay.html:38 templates/dcim/moduletype.html:26 +#: templates/dcim/platform.html:33 templates/dcim/powerfeed.html:40 +#: templates/dcim/poweroutlet.html:40 templates/dcim/powerpanel.html:30 +#: templates/dcim/powerport.html:40 templates/dcim/rack.html:51 +#: templates/dcim/rackreservation.html:62 templates/dcim/rackrole.html:26 +#: templates/dcim/rearport.html:54 templates/dcim/region.html:33 +#: templates/dcim/site.html:59 templates/dcim/sitegroup.html:33 +#: templates/dcim/virtualchassis.html:31 templates/extras/configcontext.html:21 +#: templates/extras/configtemplate.html:17 templates/extras/customfield.html:34 #: templates/extras/dashboard/widget_add.html:14 -#: templates/extras/eventrule.html:24 templates/extras/exporttemplate.html:25 -#: templates/extras/report_list.html:47 templates/extras/savedfilter.html:18 -#: templates/extras/script_list.html:53 templates/extras/tag.html:23 -#: templates/extras/webhook.html:20 templates/generic/bulk_import.html:118 -#: templates/ipam/aggregate.html:44 templates/ipam/asn.html:43 -#: templates/ipam/asnrange.html:39 templates/ipam/fhrpgroup.html:35 -#: templates/ipam/ipaddress.html:58 templates/ipam/iprange.html:70 -#: templates/ipam/prefix.html:82 templates/ipam/rir.html:29 -#: templates/ipam/role.html:29 templates/ipam/routetarget.html:22 -#: templates/ipam/service.html:53 templates/ipam/servicetemplate.html:28 -#: templates/ipam/vlan.html:65 templates/ipam/vlangroup.html:35 -#: templates/ipam/vrf.html:36 templates/tenancy/contact.html:68 -#: templates/tenancy/contactgroup.html:28 templates/tenancy/contactrole.html:23 -#: templates/tenancy/tenant.html:25 templates/tenancy/tenantgroup.html:36 -#: templates/users/objectpermission.html:22 templates/users/token.html:28 -#: templates/virtualization/cluster.html:28 -#: templates/virtualization/clustergroup.html:29 -#: templates/virtualization/clustertype.html:29 -#: templates/virtualization/virtualdisk.html:40 -#: templates/virtualization/virtualmachine.html:34 -#: templates/virtualization/vminterface.html:54 templates/vpn/ikepolicy.html:18 -#: templates/vpn/ikeproposal.html:18 templates/vpn/ipsecpolicy.html:18 -#: templates/vpn/ipsecprofile.html:18 templates/vpn/ipsecprofile.html:43 -#: templates/vpn/ipsecprofile.html:78 templates/vpn/ipsecproposal.html:18 -#: templates/vpn/l2vpn.html:27 templates/vpn/tunnel.html:34 -#: templates/vpn/tunnelgroup.html:33 templates/wireless/wirelesslan.html:27 -#: templates/wireless/wirelesslangroup.html:34 -#: templates/wireless/wirelesslink.html:37 tenancy/forms/bulk_edit.py:31 -#: tenancy/forms/bulk_edit.py:79 tenancy/forms/bulk_edit.py:121 -#: users/forms/bulk_edit.py:62 users/forms/bulk_edit.py:92 -#: virtualization/forms/bulk_edit.py:31 virtualization/forms/bulk_edit.py:45 -#: virtualization/forms/bulk_edit.py:99 virtualization/forms/bulk_edit.py:176 -#: virtualization/forms/bulk_edit.py:227 virtualization/forms/bulk_edit.py:336 -#: vpn/forms/bulk_edit.py:27 vpn/forms/bulk_edit.py:63 -#: vpn/forms/bulk_edit.py:120 vpn/forms/bulk_edit.py:154 -#: vpn/forms/bulk_edit.py:191 vpn/forms/bulk_edit.py:216 -#: vpn/forms/bulk_edit.py:248 vpn/forms/bulk_edit.py:277 -#: wireless/forms/bulk_edit.py:28 wireless/forms/bulk_edit.py:81 -#: wireless/forms/bulk_edit.py:128 +#: templates/extras/eventrule.html:21 templates/extras/exporttemplate.html:19 +#: templates/extras/savedfilter.html:17 templates/extras/script_list.html:47 +#: templates/extras/tag.html:20 templates/extras/webhook.html:17 +#: templates/generic/bulk_import.html:120 templates/ipam/aggregate.html:43 +#: templates/ipam/asn.html:42 templates/ipam/asnrange.html:38 +#: templates/ipam/fhrpgroup.html:34 templates/ipam/ipaddress.html:55 +#: templates/ipam/iprange.html:67 templates/ipam/prefix.html:81 +#: templates/ipam/rir.html:26 templates/ipam/role.html:26 +#: templates/ipam/routetarget.html:21 templates/ipam/service.html:50 +#: templates/ipam/servicetemplate.html:27 templates/ipam/vlan.html:62 +#: templates/ipam/vlangroup.html:34 templates/ipam/vrf.html:33 +#: templates/tenancy/contact.html:67 templates/tenancy/contactgroup.html:25 +#: templates/tenancy/contactrole.html:22 templates/tenancy/tenant.html:24 +#: templates/tenancy/tenantgroup.html:33 templates/users/group.html:21 +#: templates/users/objectpermission.html:21 templates/users/token.html:27 +#: templates/virtualization/cluster.html:25 +#: templates/virtualization/clustergroup.html:26 +#: templates/virtualization/clustertype.html:26 +#: templates/virtualization/virtualdisk.html:39 +#: templates/virtualization/virtualmachine.html:31 +#: templates/virtualization/vminterface.html:51 templates/vpn/ikepolicy.html:17 +#: templates/vpn/ikeproposal.html:17 templates/vpn/ipsecpolicy.html:17 +#: templates/vpn/ipsecprofile.html:17 templates/vpn/ipsecprofile.html:40 +#: templates/vpn/ipsecprofile.html:73 templates/vpn/ipsecproposal.html:17 +#: templates/vpn/l2vpn.html:26 templates/vpn/tunnel.html:33 +#: templates/vpn/tunnelgroup.html:30 templates/wireless/wirelesslan.html:26 +#: templates/wireless/wirelesslangroup.html:33 +#: templates/wireless/wirelesslink.html:34 tenancy/forms/bulk_edit.py:32 +#: tenancy/forms/bulk_edit.py:80 tenancy/forms/bulk_edit.py:122 +#: users/forms/bulk_edit.py:64 users/forms/bulk_edit.py:82 +#: users/forms/bulk_edit.py:112 virtualization/forms/bulk_edit.py:32 +#: virtualization/forms/bulk_edit.py:46 virtualization/forms/bulk_edit.py:100 +#: virtualization/forms/bulk_edit.py:177 virtualization/forms/bulk_edit.py:228 +#: virtualization/forms/bulk_edit.py:337 vpn/forms/bulk_edit.py:28 +#: vpn/forms/bulk_edit.py:64 vpn/forms/bulk_edit.py:121 +#: vpn/forms/bulk_edit.py:155 vpn/forms/bulk_edit.py:190 +#: vpn/forms/bulk_edit.py:215 vpn/forms/bulk_edit.py:247 +#: vpn/forms/bulk_edit.py:274 wireless/forms/bulk_edit.py:29 +#: wireless/forms/bulk_edit.py:82 wireless/forms/bulk_edit.py:129 msgid "Description" msgstr "" -#: circuits/forms/bulk_edit.py:46 circuits/forms/bulk_edit.py:68 -#: circuits/forms/bulk_edit.py:118 circuits/forms/bulk_import.py:35 -#: circuits/forms/bulk_import.py:50 circuits/forms/bulk_import.py:76 -#: circuits/forms/filtersets.py:66 circuits/forms/filtersets.py:84 -#: circuits/forms/filtersets.py:112 circuits/forms/filtersets.py:127 -#: circuits/forms/model_forms.py:32 circuits/forms/model_forms.py:44 -#: circuits/forms/model_forms.py:58 circuits/forms/model_forms.py:92 -#: circuits/tables/circuits.py:55 circuits/tables/providers.py:72 -#: circuits/tables/providers.py:103 templates/circuits/circuit.html:19 -#: templates/circuits/provider.html:20 -#: templates/circuits/provideraccount.html:21 -#: templates/circuits/providernetwork.html:23 +#: circuits/forms/bulk_edit.py:47 circuits/forms/bulk_edit.py:69 +#: circuits/forms/bulk_edit.py:119 circuits/forms/bulk_import.py:34 +#: circuits/forms/bulk_import.py:49 circuits/forms/bulk_import.py:75 +#: circuits/forms/filtersets.py:67 circuits/forms/filtersets.py:85 +#: circuits/forms/filtersets.py:113 circuits/forms/filtersets.py:128 +#: circuits/forms/model_forms.py:45 circuits/forms/model_forms.py:59 +#: circuits/forms/model_forms.py:91 circuits/tables/circuits.py:55 +#: circuits/tables/providers.py:72 circuits/tables/providers.py:103 +#: templates/circuits/circuit.html:18 templates/circuits/provider.html:20 +#: templates/circuits/provideraccount.html:20 +#: templates/circuits/providernetwork.html:20 #: templates/dcim/inc/cable_termination.html:51 msgid "Provider" msgstr "" -#: circuits/forms/bulk_edit.py:75 circuits/forms/filtersets.py:87 -#: templates/circuits/providernetwork.html:31 +#: circuits/forms/bulk_edit.py:76 circuits/forms/filtersets.py:88 +#: templates/circuits/providernetwork.html:28 msgid "Service ID" msgstr "" -#: circuits/forms/bulk_edit.py:95 circuits/forms/filtersets.py:103 -#: dcim/forms/bulk_edit.py:204 dcim/forms/bulk_edit.py:500 -#: dcim/forms/bulk_edit.py:694 dcim/forms/bulk_edit.py:1063 -#: dcim/forms/bulk_edit.py:1090 dcim/forms/bulk_edit.py:1562 -#: dcim/forms/filtersets.py:977 dcim/forms/filtersets.py:1353 -#: dcim/forms/filtersets.py:1374 dcim/tables/devices.py:726 -#: dcim/tables/devices.py:786 dcim/tables/devices.py:1013 +#: circuits/forms/bulk_edit.py:96 circuits/forms/filtersets.py:104 +#: dcim/forms/bulk_edit.py:205 dcim/forms/bulk_edit.py:502 +#: dcim/forms/bulk_edit.py:702 dcim/forms/bulk_edit.py:1071 +#: dcim/forms/bulk_edit.py:1098 dcim/forms/bulk_edit.py:1571 +#: dcim/forms/filtersets.py:975 dcim/forms/filtersets.py:1351 +#: dcim/forms/filtersets.py:1372 dcim/tables/devices.py:699 +#: dcim/tables/devices.py:759 dcim/tables/devices.py:986 #: dcim/tables/devicetypes.py:245 dcim/tables/devicetypes.py:260 -#: dcim/tables/racks.py:32 extras/forms/bulk_edit.py:259 -#: extras/tables/tables.py:328 templates/circuits/circuittype.html:33 -#: templates/dcim/cable.html:41 templates/dcim/devicerole.html:37 -#: templates/dcim/frontport.html:43 templates/dcim/inventoryitemrole.html:27 -#: templates/dcim/rackrole.html:33 templates/dcim/rearport.html:43 -#: templates/extras/tag.html:29 +#: dcim/tables/racks.py:32 extras/forms/bulk_edit.py:260 +#: extras/tables/tables.py:333 templates/circuits/circuittype.html:30 +#: templates/dcim/cable.html:40 templates/dcim/devicerole.html:34 +#: templates/dcim/frontport.html:40 templates/dcim/inventoryitemrole.html:26 +#: templates/dcim/rackrole.html:30 templates/dcim/rearport.html:40 +#: templates/extras/tag.html:26 msgid "Color" msgstr "" -#: circuits/forms/bulk_edit.py:113 circuits/forms/bulk_import.py:89 -#: circuits/forms/filtersets.py:122 core/forms/bulk_edit.py:17 -#: core/forms/filtersets.py:29 core/tables/data.py:20 core/tables/jobs.py:18 -#: dcim/forms/bulk_edit.py:281 dcim/forms/bulk_edit.py:672 -#: dcim/forms/bulk_edit.py:811 dcim/forms/bulk_edit.py:879 -#: dcim/forms/bulk_edit.py:898 dcim/forms/bulk_edit.py:921 -#: dcim/forms/bulk_edit.py:963 dcim/forms/bulk_edit.py:1007 -#: dcim/forms/bulk_edit.py:1058 dcim/forms/bulk_edit.py:1085 +#: circuits/forms/bulk_edit.py:114 circuits/forms/bulk_import.py:88 +#: circuits/forms/filtersets.py:123 core/forms/bulk_edit.py:18 +#: core/forms/filtersets.py:30 core/tables/data.py:20 core/tables/jobs.py:18 +#: dcim/forms/bulk_edit.py:282 dcim/forms/bulk_edit.py:680 +#: dcim/forms/bulk_edit.py:819 dcim/forms/bulk_edit.py:887 +#: dcim/forms/bulk_edit.py:906 dcim/forms/bulk_edit.py:929 +#: dcim/forms/bulk_edit.py:971 dcim/forms/bulk_edit.py:1015 +#: dcim/forms/bulk_edit.py:1066 dcim/forms/bulk_edit.py:1093 #: dcim/forms/bulk_import.py:214 dcim/forms/bulk_import.py:653 #: dcim/forms/bulk_import.py:679 dcim/forms/bulk_import.py:705 #: dcim/forms/bulk_import.py:725 dcim/forms/bulk_import.py:808 #: dcim/forms/bulk_import.py:902 dcim/forms/bulk_import.py:944 #: dcim/forms/bulk_import.py:1161 dcim/forms/bulk_import.py:1327 -#: dcim/forms/filtersets.py:286 dcim/forms/filtersets.py:867 -#: dcim/forms/filtersets.py:967 dcim/forms/filtersets.py:1088 -#: dcim/forms/filtersets.py:1158 dcim/forms/filtersets.py:1180 -#: dcim/forms/filtersets.py:1202 dcim/forms/filtersets.py:1219 -#: dcim/forms/filtersets.py:1253 dcim/forms/filtersets.py:1348 -#: dcim/forms/filtersets.py:1369 dcim/forms/object_import.py:89 -#: dcim/forms/object_import.py:118 dcim/forms/object_import.py:150 -#: dcim/tables/devices.py:211 dcim/tables/devices.py:842 +#: dcim/forms/filtersets.py:287 dcim/forms/filtersets.py:866 +#: dcim/forms/filtersets.py:965 dcim/forms/filtersets.py:1086 +#: dcim/forms/filtersets.py:1156 dcim/forms/filtersets.py:1178 +#: dcim/forms/filtersets.py:1200 dcim/forms/filtersets.py:1217 +#: dcim/forms/filtersets.py:1251 dcim/forms/filtersets.py:1346 +#: dcim/forms/filtersets.py:1367 dcim/forms/model_forms.py:643 +#: dcim/forms/model_forms.py:649 dcim/forms/object_import.py:84 +#: dcim/forms/object_import.py:113 dcim/forms/object_import.py:145 +#: dcim/tables/devices.py:183 dcim/tables/devices.py:815 #: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 -#: extras/tables/tables.py:278 extras/tables/tables.py:350 -#: extras/tables/tables.py:448 netbox/tables/tables.py:234 -#: templates/circuits/circuit.html:31 templates/core/datasource.html:39 -#: templates/dcim/cable.html:16 templates/dcim/consoleport.html:39 -#: templates/dcim/consoleserverport.html:39 templates/dcim/frontport.html:39 -#: templates/dcim/interface.html:47 templates/dcim/interface.html:175 -#: templates/dcim/interface.html:323 templates/dcim/powerfeed.html:35 -#: templates/dcim/poweroutlet.html:39 templates/dcim/powerport.html:39 -#: templates/dcim/rack.html:81 templates/dcim/rearport.html:39 -#: templates/extras/eventrule.html:95 templates/virtualization/cluster.html:20 -#: templates/vpn/l2vpn.html:23 -#: templates/wireless/inc/authentication_attrs.html:9 +#: extras/tables/tables.py:283 extras/tables/tables.py:355 +#: extras/tables/tables.py:473 netbox/tables/tables.py:236 +#: templates/circuits/circuit.html:30 templates/core/datasource.html:38 +#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36 +#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36 +#: templates/dcim/interface.html:46 templates/dcim/interface.html:169 +#: templates/dcim/interface.html:311 templates/dcim/powerfeed.html:32 +#: templates/dcim/poweroutlet.html:36 templates/dcim/powerport.html:36 +#: templates/dcim/rack.html:76 templates/dcim/rearport.html:36 +#: templates/extras/eventrule.html:80 templates/virtualization/cluster.html:17 +#: templates/vpn/l2vpn.html:22 +#: templates/wireless/inc/authentication_attrs.html:8 #: templates/wireless/inc/wirelesslink_interface.html:14 -#: virtualization/forms/bulk_edit.py:59 virtualization/forms/bulk_import.py:41 -#: virtualization/forms/filtersets.py:53 virtualization/forms/model_forms.py:65 -#: virtualization/tables/clusters.py:66 vpn/forms/bulk_edit.py:267 -#: vpn/forms/bulk_import.py:264 vpn/forms/filtersets.py:214 -#: vpn/forms/model_forms.py:83 vpn/forms/model_forms.py:118 -#: vpn/forms/model_forms.py:232 +#: virtualization/forms/bulk_edit.py:60 virtualization/forms/bulk_import.py:41 +#: virtualization/forms/filtersets.py:54 virtualization/forms/model_forms.py:62 +#: virtualization/tables/clusters.py:66 vpn/forms/bulk_edit.py:264 +#: vpn/forms/bulk_import.py:264 vpn/forms/filtersets.py:217 +#: vpn/forms/model_forms.py:84 vpn/forms/model_forms.py:119 +#: vpn/forms/model_forms.py:231 msgid "Type" msgstr "" -#: circuits/forms/bulk_edit.py:123 circuits/forms/bulk_import.py:82 -#: circuits/forms/filtersets.py:135 circuits/forms/model_forms.py:97 +#: circuits/forms/bulk_edit.py:124 circuits/forms/bulk_import.py:81 +#: circuits/forms/filtersets.py:136 circuits/forms/model_forms.py:96 msgid "Provider account" msgstr "" -#: circuits/forms/bulk_edit.py:131 circuits/forms/bulk_import.py:95 -#: circuits/forms/filtersets.py:146 core/forms/filtersets.py:34 -#: core/forms/filtersets.py:75 core/tables/data.py:23 core/tables/jobs.py:26 -#: dcim/forms/bulk_edit.py:104 dcim/forms/bulk_edit.py:179 -#: dcim/forms/bulk_edit.py:260 dcim/forms/bulk_edit.py:593 -#: dcim/forms/bulk_edit.py:646 dcim/forms/bulk_edit.py:678 -#: dcim/forms/bulk_edit.py:805 dcim/forms/bulk_edit.py:1585 -#: dcim/forms/bulk_import.py:87 dcim/forms/bulk_import.py:146 -#: dcim/forms/bulk_import.py:202 dcim/forms/bulk_import.py:450 -#: dcim/forms/bulk_import.py:604 dcim/forms/bulk_import.py:1155 -#: dcim/forms/bulk_import.py:1322 dcim/forms/bulk_import.py:1386 -#: dcim/forms/filtersets.py:170 dcim/forms/filtersets.py:229 -#: dcim/forms/filtersets.py:281 dcim/forms/filtersets.py:726 -#: dcim/forms/filtersets.py:835 dcim/forms/filtersets.py:871 -#: dcim/forms/filtersets.py:972 dcim/forms/filtersets.py:1083 -#: dcim/tables/devices.py:173 dcim/tables/devices.py:845 -#: dcim/tables/devices.py:1073 dcim/tables/modules.py:69 -#: dcim/tables/power.py:74 dcim/tables/racks.py:66 dcim/tables/sites.py:82 -#: dcim/tables/sites.py:133 ipam/forms/bulk_edit.py:240 -#: ipam/forms/bulk_edit.py:289 ipam/forms/bulk_edit.py:337 -#: ipam/forms/bulk_edit.py:541 ipam/forms/bulk_import.py:191 +#: circuits/forms/bulk_edit.py:132 circuits/forms/bulk_import.py:94 +#: circuits/forms/filtersets.py:147 core/forms/filtersets.py:35 +#: core/forms/filtersets.py:76 core/tables/data.py:23 core/tables/jobs.py:26 +#: core/tables/tasks.py:88 dcim/forms/bulk_edit.py:105 +#: dcim/forms/bulk_edit.py:180 dcim/forms/bulk_edit.py:261 +#: dcim/forms/bulk_edit.py:598 dcim/forms/bulk_edit.py:654 +#: dcim/forms/bulk_edit.py:686 dcim/forms/bulk_edit.py:813 +#: dcim/forms/bulk_edit.py:1594 dcim/forms/bulk_import.py:87 +#: dcim/forms/bulk_import.py:146 dcim/forms/bulk_import.py:202 +#: dcim/forms/bulk_import.py:450 dcim/forms/bulk_import.py:604 +#: dcim/forms/bulk_import.py:1155 dcim/forms/bulk_import.py:1322 +#: dcim/forms/bulk_import.py:1386 dcim/forms/filtersets.py:171 +#: dcim/forms/filtersets.py:230 dcim/forms/filtersets.py:282 +#: dcim/forms/filtersets.py:727 dcim/forms/filtersets.py:835 +#: dcim/forms/filtersets.py:869 dcim/forms/filtersets.py:970 +#: dcim/forms/filtersets.py:1081 dcim/tables/devices.py:145 +#: dcim/tables/devices.py:818 dcim/tables/devices.py:1046 +#: dcim/tables/modules.py:69 dcim/tables/power.py:74 dcim/tables/racks.py:66 +#: dcim/tables/sites.py:82 dcim/tables/sites.py:133 ipam/forms/bulk_edit.py:241 +#: ipam/forms/bulk_edit.py:290 ipam/forms/bulk_edit.py:338 +#: ipam/forms/bulk_edit.py:544 ipam/forms/bulk_import.py:191 #: ipam/forms/bulk_import.py:256 ipam/forms/bulk_import.py:292 -#: ipam/forms/bulk_import.py:458 ipam/forms/filtersets.py:205 -#: ipam/forms/filtersets.py:270 ipam/forms/filtersets.py:341 -#: ipam/forms/filtersets.py:482 ipam/forms/model_forms.py:435 +#: ipam/forms/bulk_import.py:458 ipam/forms/filtersets.py:209 +#: ipam/forms/filtersets.py:274 ipam/forms/filtersets.py:348 +#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:457 #: ipam/tables/ip.py:236 ipam/tables/ip.py:309 ipam/tables/ip.py:359 #: ipam/tables/ip.py:421 ipam/tables/ip.py:448 ipam/tables/vlans.py:122 -#: ipam/tables/vlans.py:227 templates/circuits/circuit.html:35 -#: templates/core/datasource.html:47 templates/core/job.html:35 -#: templates/dcim/cable.html:20 templates/dcim/device.html:183 -#: templates/dcim/location.html:48 templates/dcim/module.html:67 -#: templates/dcim/powerfeed.html:39 templates/dcim/rack.html:46 -#: templates/dcim/site.html:43 templates/extras/report_list.html:49 -#: templates/extras/script_list.html:55 templates/ipam/ipaddress.html:40 -#: templates/ipam/iprange.html:57 templates/ipam/prefix.html:74 -#: templates/ipam/vlan.html:51 templates/virtualization/cluster.html:24 -#: templates/virtualization/virtualmachine.html:22 templates/vpn/tunnel.html:26 -#: templates/wireless/wirelesslan.html:23 -#: templates/wireless/wirelesslink.html:20 users/forms/filtersets.py:33 -#: users/forms/model_forms.py:197 virtualization/forms/bulk_edit.py:69 -#: virtualization/forms/bulk_edit.py:117 virtualization/forms/bulk_import.py:54 -#: virtualization/forms/bulk_import.py:80 virtualization/forms/filtersets.py:61 -#: virtualization/forms/filtersets.py:156 virtualization/tables/clusters.py:74 -#: virtualization/tables/virtualmachines.py:59 vpn/forms/bulk_edit.py:38 -#: vpn/forms/bulk_import.py:37 vpn/forms/filtersets.py:46 -#: vpn/tables/tunnels.py:48 wireless/forms/bulk_edit.py:42 -#: wireless/forms/bulk_edit.py:104 wireless/forms/bulk_import.py:43 -#: wireless/forms/bulk_import.py:84 wireless/forms/filtersets.py:48 -#: wireless/forms/filtersets.py:82 wireless/tables/wirelesslan.py:52 +#: ipam/tables/vlans.py:227 templates/circuits/circuit.html:34 +#: templates/core/datasource.html:46 templates/core/job.html:30 +#: templates/core/rq_task.html:81 templates/core/system.html:18 +#: templates/dcim/cable.html:19 templates/dcim/device.html:175 +#: templates/dcim/location.html:45 templates/dcim/module.html:66 +#: templates/dcim/powerfeed.html:36 templates/dcim/rack.html:43 +#: templates/dcim/site.html:42 templates/extras/script_list.html:49 +#: templates/ipam/ipaddress.html:37 templates/ipam/iprange.html:54 +#: templates/ipam/prefix.html:73 templates/ipam/vlan.html:48 +#: templates/virtualization/cluster.html:21 +#: templates/virtualization/virtualmachine.html:19 templates/vpn/tunnel.html:25 +#: templates/wireless/wirelesslan.html:22 +#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33 +#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70 +#: virtualization/forms/bulk_edit.py:118 virtualization/forms/bulk_import.py:54 +#: virtualization/forms/bulk_import.py:80 virtualization/forms/filtersets.py:62 +#: virtualization/forms/filtersets.py:160 virtualization/tables/clusters.py:74 +#: virtualization/tables/virtualmachines.py:59 vpn/forms/bulk_edit.py:39 +#: vpn/forms/bulk_import.py:37 vpn/forms/filtersets.py:47 +#: vpn/tables/tunnels.py:48 wireless/forms/bulk_edit.py:43 +#: wireless/forms/bulk_edit.py:105 wireless/forms/bulk_import.py:43 +#: wireless/forms/bulk_import.py:84 wireless/forms/filtersets.py:49 +#: wireless/forms/filtersets.py:83 wireless/tables/wirelesslan.py:52 #: wireless/tables/wirelesslink.py:19 msgid "Status" msgstr "" -#: circuits/forms/bulk_edit.py:137 circuits/forms/bulk_import.py:100 -#: circuits/forms/filtersets.py:115 dcim/forms/bulk_edit.py:120 -#: dcim/forms/bulk_edit.py:185 dcim/forms/bulk_edit.py:255 -#: dcim/forms/bulk_edit.py:366 dcim/forms/bulk_edit.py:583 -#: dcim/forms/bulk_edit.py:684 dcim/forms/bulk_edit.py:1590 +#: circuits/forms/bulk_edit.py:138 circuits/forms/bulk_import.py:99 +#: circuits/forms/filtersets.py:116 dcim/forms/bulk_edit.py:121 +#: dcim/forms/bulk_edit.py:186 dcim/forms/bulk_edit.py:256 +#: dcim/forms/bulk_edit.py:368 dcim/forms/bulk_edit.py:588 +#: dcim/forms/bulk_edit.py:692 dcim/forms/bulk_edit.py:1599 #: dcim/forms/bulk_import.py:106 dcim/forms/bulk_import.py:151 #: dcim/forms/bulk_import.py:195 dcim/forms/bulk_import.py:282 #: dcim/forms/bulk_import.py:424 dcim/forms/bulk_import.py:1167 -#: dcim/forms/bulk_import.py:1379 dcim/forms/filtersets.py:165 -#: dcim/forms/filtersets.py:197 dcim/forms/filtersets.py:248 -#: dcim/forms/filtersets.py:333 dcim/forms/filtersets.py:354 -#: dcim/forms/filtersets.py:653 dcim/forms/filtersets.py:826 -#: dcim/forms/filtersets.py:891 dcim/forms/filtersets.py:921 -#: dcim/forms/filtersets.py:1043 dcim/tables/power.py:88 -#: extras/filtersets.py:517 extras/forms/filtersets.py:331 -#: extras/forms/filtersets.py:405 ipam/forms/bulk_edit.py:40 -#: ipam/forms/bulk_edit.py:65 ipam/forms/bulk_edit.py:109 -#: ipam/forms/bulk_edit.py:138 ipam/forms/bulk_edit.py:163 -#: ipam/forms/bulk_edit.py:235 ipam/forms/bulk_edit.py:284 -#: ipam/forms/bulk_edit.py:332 ipam/forms/bulk_edit.py:536 +#: dcim/forms/bulk_import.py:1379 dcim/forms/filtersets.py:166 +#: dcim/forms/filtersets.py:198 dcim/forms/filtersets.py:249 +#: dcim/forms/filtersets.py:334 dcim/forms/filtersets.py:355 +#: dcim/forms/filtersets.py:652 dcim/forms/filtersets.py:827 +#: dcim/forms/filtersets.py:889 dcim/forms/filtersets.py:919 +#: dcim/forms/filtersets.py:1041 dcim/tables/power.py:88 +#: extras/filtersets.py:564 extras/forms/filtersets.py:332 +#: extras/forms/filtersets.py:405 ipam/forms/bulk_edit.py:41 +#: ipam/forms/bulk_edit.py:66 ipam/forms/bulk_edit.py:110 +#: ipam/forms/bulk_edit.py:139 ipam/forms/bulk_edit.py:164 +#: ipam/forms/bulk_edit.py:236 ipam/forms/bulk_edit.py:285 +#: ipam/forms/bulk_edit.py:333 ipam/forms/bulk_edit.py:539 #: ipam/forms/bulk_import.py:37 ipam/forms/bulk_import.py:66 #: ipam/forms/bulk_import.py:94 ipam/forms/bulk_import.py:114 #: ipam/forms/bulk_import.py:134 ipam/forms/bulk_import.py:163 #: ipam/forms/bulk_import.py:249 ipam/forms/bulk_import.py:285 -#: ipam/forms/bulk_import.py:451 ipam/forms/filtersets.py:47 -#: ipam/forms/filtersets.py:67 ipam/forms/filtersets.py:99 -#: ipam/forms/filtersets.py:119 ipam/forms/filtersets.py:142 -#: ipam/forms/filtersets.py:169 ipam/forms/filtersets.py:256 -#: ipam/forms/filtersets.py:296 ipam/forms/filtersets.py:450 +#: ipam/forms/bulk_import.py:451 ipam/forms/filtersets.py:48 +#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100 +#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143 +#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 +#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457 #: ipam/tables/ip.py:451 ipam/tables/vlans.py:224 -#: templates/circuits/circuit.html:39 templates/dcim/cable.html:24 -#: templates/dcim/device.html:81 templates/dcim/location.html:52 -#: templates/dcim/powerfeed.html:47 templates/dcim/rack.html:37 -#: templates/dcim/rackreservation.html:56 templates/dcim/site.html:47 -#: templates/dcim/virtualdevicecontext.html:55 templates/ipam/aggregate.html:31 -#: templates/ipam/asn.html:34 templates/ipam/asnrange.html:30 -#: templates/ipam/ipaddress.html:31 templates/ipam/iprange.html:61 -#: templates/ipam/prefix.html:30 templates/ipam/routetarget.html:18 -#: templates/ipam/vlan.html:42 templates/ipam/vrf.html:23 -#: templates/tenancy/tenant.html:17 templates/virtualization/cluster.html:36 -#: templates/virtualization/virtualmachine.html:38 templates/vpn/l2vpn.html:31 -#: templates/vpn/tunnel.html:50 templates/wireless/wirelesslan.html:35 -#: templates/wireless/wirelesslink.html:28 tenancy/forms/forms.py:25 -#: tenancy/forms/forms.py:48 tenancy/forms/model_forms.py:53 -#: tenancy/tables/columns.py:64 virtualization/forms/bulk_edit.py:75 -#: virtualization/forms/bulk_edit.py:154 virtualization/forms/bulk_import.py:66 +#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23 +#: templates/dcim/device.html:78 templates/dcim/location.html:49 +#: templates/dcim/powerfeed.html:44 templates/dcim/rack.html:34 +#: templates/dcim/rackreservation.html:49 templates/dcim/site.html:46 +#: templates/dcim/virtualdevicecontext.html:52 templates/ipam/aggregate.html:30 +#: templates/ipam/asn.html:33 templates/ipam/asnrange.html:29 +#: templates/ipam/ipaddress.html:28 templates/ipam/iprange.html:58 +#: templates/ipam/prefix.html:29 templates/ipam/routetarget.html:17 +#: templates/ipam/vlan.html:39 templates/ipam/vrf.html:20 +#: templates/tenancy/tenant.html:17 templates/virtualization/cluster.html:33 +#: templates/virtualization/virtualmachine.html:35 templates/vpn/l2vpn.html:30 +#: templates/vpn/tunnel.html:49 templates/wireless/wirelesslan.html:34 +#: templates/wireless/wirelesslink.html:25 tenancy/forms/forms.py:25 +#: tenancy/forms/forms.py:48 tenancy/forms/model_forms.py:52 +#: tenancy/tables/columns.py:64 virtualization/forms/bulk_edit.py:76 +#: virtualization/forms/bulk_edit.py:155 virtualization/forms/bulk_import.py:66 #: virtualization/forms/bulk_import.py:115 -#: virtualization/forms/filtersets.py:46 virtualization/forms/filtersets.py:101 -#: vpn/forms/bulk_edit.py:58 vpn/forms/bulk_edit.py:272 +#: virtualization/forms/filtersets.py:47 virtualization/forms/filtersets.py:105 +#: vpn/forms/bulk_edit.py:59 vpn/forms/bulk_edit.py:269 #: vpn/forms/bulk_import.py:59 vpn/forms/bulk_import.py:258 -#: vpn/forms/filtersets.py:211 wireless/forms/bulk_edit.py:62 -#: wireless/forms/bulk_edit.py:109 wireless/forms/bulk_import.py:55 -#: wireless/forms/bulk_import.py:97 wireless/forms/filtersets.py:34 -#: wireless/forms/filtersets.py:74 +#: vpn/forms/filtersets.py:214 wireless/forms/bulk_edit.py:63 +#: wireless/forms/bulk_edit.py:110 wireless/forms/bulk_import.py:55 +#: wireless/forms/bulk_import.py:97 wireless/forms/filtersets.py:35 +#: wireless/forms/filtersets.py:75 msgid "Tenant" msgstr "" -#: circuits/forms/bulk_edit.py:142 circuits/forms/filtersets.py:170 +#: circuits/forms/bulk_edit.py:143 circuits/forms/filtersets.py:171 msgid "Install date" msgstr "" -#: circuits/forms/bulk_edit.py:147 circuits/forms/filtersets.py:175 +#: circuits/forms/bulk_edit.py:148 circuits/forms/filtersets.py:176 msgid "Termination date" msgstr "" -#: circuits/forms/bulk_edit.py:153 circuits/forms/filtersets.py:182 +#: circuits/forms/bulk_edit.py:154 circuits/forms/filtersets.py:183 msgid "Commit rate (Kbps)" msgstr "" -#: circuits/forms/bulk_edit.py:168 circuits/forms/model_forms.py:111 +#: circuits/forms/bulk_edit.py:169 circuits/forms/model_forms.py:110 msgid "Service Parameters" msgstr "" -#: circuits/forms/bulk_edit.py:169 circuits/forms/model_forms.py:112 -#: dcim/forms/model_forms.py:141 dcim/forms/model_forms.py:183 -#: dcim/forms/model_forms.py:260 dcim/forms/model_forms.py:679 -#: dcim/forms/model_forms.py:1574 ipam/forms/model_forms.py:61 -#: ipam/forms/model_forms.py:114 ipam/forms/model_forms.py:135 -#: ipam/forms/model_forms.py:159 ipam/forms/model_forms.py:231 -#: ipam/forms/model_forms.py:257 netbox/navigation/menu.py:38 -#: templates/dcim/cable_edit.html:68 templates/dcim/device_edit.html:85 -#: templates/dcim/rack_edit.html:30 templates/ipam/ipaddress_bulk_add.html:27 -#: templates/ipam/ipaddress_edit.html:27 templates/ipam/vlan_edit.html:22 -#: virtualization/forms/model_forms.py:83 -#: virtualization/forms/model_forms.py:225 vpn/forms/bulk_edit.py:77 -#: vpn/forms/filtersets.py:43 vpn/forms/model_forms.py:61 -#: vpn/forms/model_forms.py:146 vpn/forms/model_forms.py:410 -#: wireless/forms/model_forms.py:55 wireless/forms/model_forms.py:160 +#: circuits/forms/bulk_edit.py:170 circuits/forms/model_forms.py:111 +#: dcim/forms/model_forms.py:138 dcim/forms/model_forms.py:180 +#: dcim/forms/model_forms.py:228 dcim/forms/model_forms.py:267 +#: dcim/forms/model_forms.py:713 dcim/forms/model_forms.py:1636 +#: ipam/forms/model_forms.py:62 ipam/forms/model_forms.py:79 +#: ipam/forms/model_forms.py:113 ipam/forms/model_forms.py:134 +#: ipam/forms/model_forms.py:158 ipam/forms/model_forms.py:230 +#: ipam/forms/model_forms.py:259 ipam/forms/model_forms.py:314 +#: netbox/navigation/menu.py:37 templates/dcim/device_edit.html:85 +#: templates/dcim/htmx/cable_edit.html:72 +#: templates/ipam/ipaddress_bulk_add.html:27 templates/ipam/vlan_edit.html:22 +#: virtualization/forms/model_forms.py:80 +#: virtualization/forms/model_forms.py:222 vpn/forms/bulk_edit.py:78 +#: vpn/forms/filtersets.py:44 vpn/forms/model_forms.py:62 +#: vpn/forms/model_forms.py:147 vpn/forms/model_forms.py:411 +#: wireless/forms/model_forms.py:54 wireless/forms/model_forms.py:163 msgid "Tenancy" msgstr "" -#: circuits/forms/bulk_import.py:38 circuits/forms/bulk_import.py:53 -#: circuits/forms/bulk_import.py:79 +#: circuits/forms/bulk_import.py:37 circuits/forms/bulk_import.py:52 +#: circuits/forms/bulk_import.py:78 msgid "Assigned provider" msgstr "" -#: circuits/forms/bulk_import.py:70 dcim/forms/bulk_import.py:178 +#: circuits/forms/bulk_import.py:69 dcim/forms/bulk_import.py:178 #: dcim/forms/bulk_import.py:388 dcim/forms/bulk_import.py:1108 -#: dcim/forms/bulk_import.py:1187 extras/forms/bulk_import.py:235 +#: dcim/forms/bulk_import.py:1187 extras/forms/bulk_import.py:232 msgid "RGB color in hexadecimal. Example:" msgstr "" -#: circuits/forms/bulk_import.py:85 +#: circuits/forms/bulk_import.py:84 msgid "Assigned provider account" msgstr "" -#: circuits/forms/bulk_import.py:92 +#: circuits/forms/bulk_import.py:91 msgid "Type of circuit" msgstr "" -#: circuits/forms/bulk_import.py:97 dcim/forms/bulk_import.py:89 +#: circuits/forms/bulk_import.py:96 dcim/forms/bulk_import.py:89 #: dcim/forms/bulk_import.py:148 dcim/forms/bulk_import.py:204 #: dcim/forms/bulk_import.py:452 dcim/forms/bulk_import.py:606 #: dcim/forms/bulk_import.py:1324 ipam/forms/bulk_import.py:193 @@ -624,7 +636,7 @@ msgstr "" msgid "Operational status" msgstr "" -#: circuits/forms/bulk_import.py:104 dcim/forms/bulk_import.py:110 +#: circuits/forms/bulk_import.py:103 dcim/forms/bulk_import.py:110 #: dcim/forms/bulk_import.py:155 dcim/forms/bulk_import.py:286 #: dcim/forms/bulk_import.py:428 dcim/forms/bulk_import.py:1171 #: dcim/forms/bulk_import.py:1319 dcim/forms/bulk_import.py:1383 @@ -638,141 +650,146 @@ msgstr "" msgid "Assigned tenant" msgstr "" -#: circuits/forms/bulk_import.py:123 circuits/forms/filtersets.py:143 -#: circuits/forms/model_forms.py:143 +#: circuits/forms/bulk_import.py:122 circuits/forms/filtersets.py:144 +#: circuits/forms/model_forms.py:142 msgid "Provider network" msgstr "" -#: circuits/forms/filtersets.py:26 circuits/forms/filtersets.py:114 -#: dcim/forms/bulk_edit.py:247 dcim/forms/bulk_edit.py:345 -#: dcim/forms/bulk_edit.py:575 dcim/forms/bulk_edit.py:622 -#: dcim/forms/bulk_edit.py:772 dcim/forms/bulk_import.py:189 +#: circuits/forms/filtersets.py:27 circuits/forms/filtersets.py:115 +#: dcim/forms/bulk_edit.py:248 dcim/forms/bulk_edit.py:346 +#: dcim/forms/bulk_edit.py:580 dcim/forms/bulk_edit.py:627 +#: dcim/forms/bulk_edit.py:780 dcim/forms/bulk_import.py:189 #: dcim/forms/bulk_import.py:263 dcim/forms/bulk_import.py:491 #: dcim/forms/bulk_import.py:1268 dcim/forms/bulk_import.py:1302 -#: dcim/forms/filtersets.py:92 dcim/forms/filtersets.py:245 -#: dcim/forms/filtersets.py:278 dcim/forms/filtersets.py:330 -#: dcim/forms/filtersets.py:381 dcim/forms/filtersets.py:650 -#: dcim/forms/filtersets.py:689 dcim/forms/filtersets.py:890 -#: dcim/forms/filtersets.py:919 dcim/forms/filtersets.py:939 -#: dcim/forms/filtersets.py:1003 dcim/forms/filtersets.py:1033 -#: dcim/forms/filtersets.py:1042 dcim/forms/filtersets.py:1153 -#: dcim/forms/filtersets.py:1175 dcim/forms/filtersets.py:1197 -#: dcim/forms/filtersets.py:1214 dcim/forms/filtersets.py:1234 -#: dcim/forms/filtersets.py:1342 dcim/forms/filtersets.py:1364 -#: dcim/forms/filtersets.py:1385 dcim/forms/filtersets.py:1400 -#: dcim/forms/filtersets.py:1411 dcim/forms/model_forms.py:182 -#: dcim/forms/model_forms.py:216 dcim/forms/model_forms.py:406 -#: dcim/forms/model_forms.py:642 dcim/tables/devices.py:190 +#: dcim/forms/filtersets.py:93 dcim/forms/filtersets.py:246 +#: dcim/forms/filtersets.py:279 dcim/forms/filtersets.py:331 +#: dcim/forms/filtersets.py:382 dcim/forms/filtersets.py:649 +#: dcim/forms/filtersets.py:690 dcim/forms/filtersets.py:888 +#: dcim/forms/filtersets.py:917 dcim/forms/filtersets.py:937 +#: dcim/forms/filtersets.py:1001 dcim/forms/filtersets.py:1031 +#: dcim/forms/filtersets.py:1040 dcim/forms/filtersets.py:1151 +#: dcim/forms/filtersets.py:1173 dcim/forms/filtersets.py:1195 +#: dcim/forms/filtersets.py:1212 dcim/forms/filtersets.py:1232 +#: dcim/forms/filtersets.py:1340 dcim/forms/filtersets.py:1362 +#: dcim/forms/filtersets.py:1383 dcim/forms/filtersets.py:1398 +#: dcim/forms/filtersets.py:1412 dcim/forms/model_forms.py:179 +#: dcim/forms/model_forms.py:211 dcim/forms/model_forms.py:411 +#: dcim/forms/model_forms.py:673 dcim/tables/devices.py:162 #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 -#: extras/filtersets.py:441 extras/forms/filtersets.py:328 -#: ipam/forms/bulk_edit.py:456 ipam/forms/filtersets.py:168 -#: ipam/forms/filtersets.py:400 ipam/forms/filtersets.py:422 -#: ipam/forms/filtersets.py:448 ipam/forms/model_forms.py:564 -#: templates/dcim/device.html:26 templates/dcim/device_edit.html:30 -#: templates/dcim/inc/cable_termination.html:12 templates/dcim/location.html:27 -#: templates/dcim/powerpanel.html:27 templates/dcim/rack.html:29 -#: templates/dcim/rackreservation.html:35 virtualization/forms/filtersets.py:45 -#: virtualization/forms/filtersets.py:99 wireless/forms/model_forms.py:88 -#: wireless/forms/model_forms.py:128 +#: extras/filtersets.py:488 extras/forms/filtersets.py:329 +#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172 +#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429 +#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590 +#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30 +#: templates/dcim/inc/cable_termination.html:12 templates/dcim/location.html:26 +#: templates/dcim/powerpanel.html:26 templates/dcim/rack.html:26 +#: templates/dcim/rackreservation.html:32 virtualization/forms/filtersets.py:46 +#: virtualization/forms/filtersets.py:100 wireless/forms/model_forms.py:87 +#: wireless/forms/model_forms.py:129 msgid "Location" msgstr "" -#: circuits/forms/filtersets.py:28 circuits/forms/filtersets.py:116 -#: dcim/forms/filtersets.py:136 dcim/forms/filtersets.py:150 -#: dcim/forms/filtersets.py:166 dcim/forms/filtersets.py:198 -#: dcim/forms/filtersets.py:249 dcim/forms/filtersets.py:334 -#: dcim/forms/filtersets.py:408 dcim/forms/filtersets.py:654 -#: dcim/forms/filtersets.py:1004 netbox/navigation/menu.py:45 -#: netbox/navigation/menu.py:47 tenancy/tables/columns.py:70 -#: tenancy/tables/contacts.py:25 tenancy/views.py:18 -#: virtualization/forms/filtersets.py:36 virtualization/forms/filtersets.py:47 -#: virtualization/forms/filtersets.py:102 +#: circuits/forms/filtersets.py:29 circuits/forms/filtersets.py:117 +#: dcim/forms/filtersets.py:137 dcim/forms/filtersets.py:151 +#: dcim/forms/filtersets.py:167 dcim/forms/filtersets.py:199 +#: dcim/forms/filtersets.py:250 dcim/forms/filtersets.py:335 +#: dcim/forms/filtersets.py:406 dcim/forms/filtersets.py:653 +#: dcim/forms/filtersets.py:1002 netbox/navigation/menu.py:44 +#: netbox/navigation/menu.py:46 tenancy/forms/filtersets.py:42 +#: tenancy/tables/columns.py:70 tenancy/tables/contacts.py:25 +#: tenancy/views.py:19 virtualization/forms/filtersets.py:37 +#: virtualization/forms/filtersets.py:48 virtualization/forms/filtersets.py:106 msgid "Contacts" msgstr "" -#: circuits/forms/filtersets.py:33 circuits/forms/filtersets.py:153 -#: dcim/forms/bulk_edit.py:110 dcim/forms/bulk_edit.py:222 -#: dcim/forms/bulk_edit.py:747 dcim/forms/bulk_import.py:92 -#: dcim/forms/filtersets.py:70 dcim/forms/filtersets.py:177 -#: dcim/forms/filtersets.py:203 dcim/forms/filtersets.py:256 -#: dcim/forms/filtersets.py:359 dcim/forms/filtersets.py:666 -#: dcim/forms/filtersets.py:896 dcim/forms/filtersets.py:926 -#: dcim/forms/filtersets.py:1010 dcim/forms/filtersets.py:1049 +#: circuits/forms/filtersets.py:34 circuits/forms/filtersets.py:154 +#: dcim/forms/bulk_edit.py:111 dcim/forms/bulk_edit.py:223 +#: dcim/forms/bulk_edit.py:755 dcim/forms/bulk_import.py:92 +#: dcim/forms/filtersets.py:71 dcim/forms/filtersets.py:178 +#: dcim/forms/filtersets.py:204 dcim/forms/filtersets.py:257 +#: dcim/forms/filtersets.py:360 dcim/forms/filtersets.py:667 +#: dcim/forms/filtersets.py:894 dcim/forms/filtersets.py:924 +#: dcim/forms/filtersets.py:1008 dcim/forms/filtersets.py:1047 #: dcim/forms/filtersets.py:1460 dcim/forms/filtersets.py:1484 -#: dcim/forms/filtersets.py:1508 dcim/forms/model_forms.py:80 -#: dcim/forms/model_forms.py:115 dcim/forms/object_create.py:374 -#: dcim/tables/devices.py:176 dcim/tables/sites.py:85 extras/filtersets.py:408 -#: ipam/forms/bulk_edit.py:205 ipam/forms/bulk_edit.py:437 -#: ipam/forms/bulk_edit.py:509 ipam/forms/filtersets.py:212 -#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:456 -#: ipam/forms/model_forms.py:536 templates/dcim/device.html:18 -#: templates/dcim/rack.html:19 templates/dcim/rackreservation.html:25 -#: templates/dcim/region.html:26 templates/dcim/site.html:31 -#: templates/ipam/prefix.html:50 templates/ipam/vlan.html:19 -#: virtualization/forms/bulk_edit.py:80 virtualization/forms/filtersets.py:58 -#: virtualization/forms/filtersets.py:129 -#: virtualization/forms/model_forms.py:95 vpn/forms/filtersets.py:253 +#: dcim/forms/filtersets.py:1508 dcim/forms/model_forms.py:111 +#: dcim/forms/object_create.py:375 dcim/tables/devices.py:148 +#: dcim/tables/sites.py:85 extras/filtersets.py:455 ipam/forms/bulk_edit.py:206 +#: ipam/forms/bulk_edit.py:438 ipam/forms/bulk_edit.py:512 +#: ipam/forms/filtersets.py:216 ipam/forms/filtersets.py:414 +#: ipam/forms/filtersets.py:463 ipam/forms/model_forms.py:562 +#: templates/dcim/device.html:17 templates/dcim/rack.html:16 +#: templates/dcim/rackreservation.html:22 templates/dcim/region.html:26 +#: templates/dcim/site.html:30 templates/ipam/prefix.html:49 +#: templates/ipam/vlan.html:16 virtualization/forms/bulk_edit.py:81 +#: virtualization/forms/filtersets.py:59 virtualization/forms/filtersets.py:133 +#: virtualization/forms/model_forms.py:92 vpn/forms/filtersets.py:257 msgid "Region" msgstr "" -#: circuits/forms/filtersets.py:38 circuits/forms/filtersets.py:158 -#: dcim/forms/bulk_edit.py:230 dcim/forms/bulk_edit.py:755 -#: dcim/forms/filtersets.py:75 dcim/forms/filtersets.py:182 -#: dcim/forms/filtersets.py:208 dcim/forms/filtersets.py:269 -#: dcim/forms/filtersets.py:364 dcim/forms/filtersets.py:671 -#: dcim/forms/filtersets.py:901 dcim/forms/filtersets.py:1015 -#: dcim/forms/filtersets.py:1054 dcim/forms/object_create.py:382 -#: extras/filtersets.py:425 ipam/forms/bulk_edit.py:210 -#: ipam/forms/bulk_edit.py:444 ipam/forms/bulk_edit.py:514 -#: ipam/forms/filtersets.py:217 ipam/forms/filtersets.py:412 -#: ipam/forms/filtersets.py:461 ipam/forms/model_forms.py:549 -#: virtualization/forms/bulk_edit.py:85 virtualization/forms/filtersets.py:68 -#: virtualization/forms/filtersets.py:134 -#: virtualization/forms/model_forms.py:101 +#: circuits/forms/filtersets.py:39 circuits/forms/filtersets.py:159 +#: dcim/forms/bulk_edit.py:231 dcim/forms/bulk_edit.py:763 +#: dcim/forms/filtersets.py:76 dcim/forms/filtersets.py:183 +#: dcim/forms/filtersets.py:209 dcim/forms/filtersets.py:270 +#: dcim/forms/filtersets.py:365 dcim/forms/filtersets.py:672 +#: dcim/forms/filtersets.py:899 dcim/forms/filtersets.py:1013 +#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383 +#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211 +#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517 +#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419 +#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575 +#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69 +#: virtualization/forms/filtersets.py:138 +#: virtualization/forms/model_forms.py:98 msgid "Site group" msgstr "" -#: circuits/forms/filtersets.py:61 circuits/forms/filtersets.py:79 -#: circuits/forms/filtersets.py:98 circuits/forms/filtersets.py:113 -#: core/forms/filtersets.py:63 dcim/forms/bulk_edit.py:718 -#: dcim/forms/filtersets.py:164 dcim/forms/filtersets.py:196 -#: dcim/forms/filtersets.py:825 dcim/forms/filtersets.py:920 -#: dcim/forms/filtersets.py:1044 dcim/forms/filtersets.py:1152 -#: dcim/forms/filtersets.py:1174 dcim/forms/filtersets.py:1196 -#: dcim/forms/filtersets.py:1213 dcim/forms/filtersets.py:1230 -#: dcim/forms/filtersets.py:1341 dcim/forms/filtersets.py:1363 -#: dcim/forms/filtersets.py:1384 dcim/forms/filtersets.py:1399 -#: dcim/forms/filtersets.py:1410 extras/forms/filtersets.py:40 -#: extras/forms/filtersets.py:111 extras/forms/filtersets.py:142 -#: extras/forms/filtersets.py:182 extras/forms/filtersets.py:198 -#: extras/forms/filtersets.py:229 extras/forms/filtersets.py:253 -#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:491 -#: ipam/forms/filtersets.py:98 ipam/forms/filtersets.py:255 -#: ipam/forms/filtersets.py:294 ipam/forms/filtersets.py:368 -#: ipam/forms/filtersets.py:449 ipam/forms/filtersets.py:508 -#: ipam/forms/filtersets.py:526 netbox/tables/tables.py:250 -#: virtualization/forms/filtersets.py:44 virtualization/forms/filtersets.py:100 -#: virtualization/forms/filtersets.py:190 -#: virtualization/forms/filtersets.py:235 vpn/forms/filtersets.py:210 -#: wireless/forms/filtersets.py:33 wireless/forms/filtersets.py:73 +#: circuits/forms/filtersets.py:62 circuits/forms/filtersets.py:80 +#: circuits/forms/filtersets.py:99 circuits/forms/filtersets.py:114 +#: core/forms/filtersets.py:64 dcim/forms/bulk_edit.py:726 +#: dcim/forms/filtersets.py:165 dcim/forms/filtersets.py:197 +#: dcim/forms/filtersets.py:826 dcim/forms/filtersets.py:918 +#: dcim/forms/filtersets.py:1042 dcim/forms/filtersets.py:1150 +#: dcim/forms/filtersets.py:1172 dcim/forms/filtersets.py:1194 +#: dcim/forms/filtersets.py:1211 dcim/forms/filtersets.py:1228 +#: dcim/forms/filtersets.py:1339 dcim/forms/filtersets.py:1361 +#: dcim/forms/filtersets.py:1382 dcim/forms/filtersets.py:1397 +#: dcim/forms/filtersets.py:1410 extras/forms/filtersets.py:43 +#: extras/forms/filtersets.py:112 extras/forms/filtersets.py:143 +#: extras/forms/filtersets.py:183 extras/forms/filtersets.py:199 +#: extras/forms/filtersets.py:230 extras/forms/filtersets.py:254 +#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488 +#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259 +#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375 +#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515 +#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252 +#: virtualization/forms/filtersets.py:45 virtualization/forms/filtersets.py:103 +#: virtualization/forms/filtersets.py:194 +#: virtualization/forms/filtersets.py:239 vpn/forms/filtersets.py:213 +#: wireless/forms/filtersets.py:34 wireless/forms/filtersets.py:74 msgid "Attributes" msgstr "" -#: circuits/forms/filtersets.py:69 circuits/tables/circuits.py:60 -#: circuits/tables/providers.py:66 templates/circuits/circuit.html:23 -#: templates/circuits/provideraccount.html:25 +#: circuits/forms/filtersets.py:70 circuits/tables/circuits.py:60 +#: circuits/tables/providers.py:66 templates/circuits/circuit.html:22 +#: templates/circuits/provideraccount.html:24 msgid "Account" msgstr "" -#: circuits/forms/model_forms.py:64 -#: templates/circuits/circuittermination_edit.html:23 -#: templates/circuits/inc/circuit_termination.html:89 -#: templates/circuits/providernetwork.html:18 +#: circuits/forms/model_forms.py:153 +#: templates/circuits/inc/circuit_termination.html:88 +#: templates/circuits/providernetwork.html:17 msgid "Provider Network" msgstr "" -#: circuits/forms/model_forms.py:78 templates/circuits/circuittype.html:20 -msgid "Circuit Type" +#: circuits/forms/model_forms.py:155 +#: templates/circuits/inc/circuit_termination.html:80 +#: templates/dcim/frontport.html:121 templates/dcim/interface.html:193 +#: templates/dcim/rearport.html:111 +msgid "Circuit Termination" +msgstr "" + +#: circuits/forms/model_forms.py:157 +msgid "Termination Details" msgstr "" #: circuits/models/circuits.py:25 dcim/models/cables.py:67 @@ -780,7 +797,7 @@ msgstr "" #: dcim/models/device_component_templates.py:591 #: dcim/models/device_components.py:976 dcim/models/device_components.py:1050 #: dcim/models/device_components.py:1166 dcim/models/devices.py:469 -#: dcim/models/racks.py:43 extras/models/tags.py:28 +#: dcim/models/racks.py:44 extras/models/tags.py:28 msgid "color" msgstr "" @@ -802,12 +819,12 @@ msgstr "" #: circuits/models/circuits.py:67 core/models/data.py:55 core/models/jobs.py:85 #: dcim/models/cables.py:49 dcim/models/devices.py:643 -#: dcim/models/devices.py:1170 dcim/models/devices.py:1379 -#: dcim/models/power.py:95 dcim/models/racks.py:97 dcim/models/sites.py:154 +#: dcim/models/devices.py:1155 dcim/models/devices.py:1364 +#: dcim/models/power.py:96 dcim/models/racks.py:98 dcim/models/sites.py:154 #: dcim/models/sites.py:266 ipam/models/ip.py:252 ipam/models/ip.py:521 #: ipam/models/ip.py:729 ipam/models/vlans.py:175 #: virtualization/models/clusters.py:74 -#: virtualization/models/virtualmachines.py:82 vpn/models/tunnels.py:40 +#: virtualization/models/virtualmachines.py:84 vpn/models/tunnels.py:40 #: wireless/models.py:94 wireless/models.py:158 msgid "status" msgstr "" @@ -873,15 +890,15 @@ msgid "Patch panel ID and port number(s)" msgstr "" #: circuits/models/circuits.py:210 dcim/models/device_component_templates.py:61 -#: dcim/models/device_components.py:69 dcim/models/racks.py:537 +#: dcim/models/device_components.py:69 dcim/models/racks.py:538 #: extras/models/configs.py:45 extras/models/configs.py:219 -#: extras/models/customfields.py:122 extras/models/models.py:58 -#: extras/models/models.py:188 extras/models/models.py:426 -#: extras/models/models.py:541 extras/models/staging.py:31 +#: extras/models/customfields.py:123 extras/models/models.py:60 +#: extras/models/models.py:186 extras/models/models.py:424 +#: extras/models/models.py:539 extras/models/staging.py:31 #: extras/models/tags.py:32 netbox/models/__init__.py:109 #: netbox/models/__init__.py:144 netbox/models/__init__.py:190 -#: users/models.py:274 users/models.py:353 -#: virtualization/models/virtualmachines.py:282 +#: users/models/permissions.py:24 users/models/tokens.py:58 +#: users/models/users.py:33 virtualization/models/virtualmachines.py:284 msgid "description" msgstr "" @@ -907,22 +924,23 @@ msgstr "" #: circuits/models/providers.py:104 core/models/data.py:42 #: core/models/jobs.py:46 dcim/models/device_component_templates.py:43 #: dcim/models/device_components.py:54 dcim/models/devices.py:583 -#: dcim/models/devices.py:1310 dcim/models/devices.py:1375 -#: dcim/models/power.py:39 dcim/models/power.py:91 dcim/models/racks.py:62 +#: dcim/models/devices.py:1295 dcim/models/devices.py:1360 +#: dcim/models/power.py:39 dcim/models/power.py:92 dcim/models/racks.py:63 #: dcim/models/sites.py:138 extras/models/configs.py:36 -#: extras/models/configs.py:215 extras/models/customfields.py:89 -#: extras/models/models.py:53 extras/models/models.py:183 -#: extras/models/models.py:326 extras/models/models.py:422 -#: extras/models/models.py:531 extras/models/models.py:626 -#: extras/models/staging.py:26 ipam/models/asns.py:18 ipam/models/fhrp.py:25 -#: ipam/models/services.py:52 ipam/models/services.py:88 -#: ipam/models/vlans.py:26 ipam/models/vlans.py:164 ipam/models/vrfs.py:22 -#: ipam/models/vrfs.py:79 netbox/models/__init__.py:136 +#: extras/models/configs.py:215 extras/models/customfields.py:90 +#: extras/models/models.py:55 extras/models/models.py:181 +#: extras/models/models.py:324 extras/models/models.py:420 +#: extras/models/models.py:529 extras/models/models.py:624 +#: extras/models/scripts.py:30 extras/models/staging.py:26 +#: ipam/models/asns.py:18 ipam/models/fhrp.py:25 ipam/models/services.py:51 +#: ipam/models/services.py:87 ipam/models/vlans.py:26 ipam/models/vlans.py:164 +#: ipam/models/vrfs.py:22 ipam/models/vrfs.py:79 netbox/models/__init__.py:136 #: netbox/models/__init__.py:180 tenancy/models/contacts.py:64 #: tenancy/models/tenants.py:20 tenancy/models/tenants.py:45 -#: users/models.py:349 virtualization/models/clusters.py:57 -#: virtualization/models/virtualmachines.py:70 -#: virtualization/models/virtualmachines.py:272 vpn/models/crypto.py:24 +#: users/models/permissions.py:20 users/models/users.py:28 +#: virtualization/models/clusters.py:57 +#: virtualization/models/virtualmachines.py:72 +#: virtualization/models/virtualmachines.py:274 vpn/models/crypto.py:24 #: vpn/models/crypto.py:71 vpn/models/crypto.py:131 vpn/models/crypto.py:183 #: vpn/models/crypto.py:221 vpn/models/l2vpn.py:22 vpn/models/tunnels.py:35 #: wireless/models.py:50 @@ -934,7 +952,7 @@ msgid "Full name of the provider" msgstr "" #: circuits/models/providers.py:28 dcim/models/devices.py:86 -#: dcim/models/sites.py:149 extras/models/models.py:536 ipam/models/asns.py:23 +#: dcim/models/sites.py:149 extras/models/models.py:534 ipam/models/asns.py:23 #: ipam/models/vlans.py:30 netbox/models/__init__.py:140 #: netbox/models/__init__.py:185 tenancy/models/tenants.py:25 #: tenancy/models/tenants.py:49 vpn/models/l2vpn.py:27 wireless/models.py:55 @@ -975,74 +993,74 @@ msgstr "" #: circuits/tables/circuits.py:29 circuits/tables/providers.py:18 #: circuits/tables/providers.py:69 circuits/tables/providers.py:99 -#: core/tables/data.py:16 core/tables/jobs.py:14 dcim/forms/filtersets.py:60 -#: dcim/forms/object_create.py:42 dcim/tables/devices.py:88 -#: dcim/tables/devices.py:125 dcim/tables/devices.py:167 -#: dcim/tables/devices.py:322 dcim/tables/devices.py:404 -#: dcim/tables/devices.py:448 dcim/tables/devices.py:500 -#: dcim/tables/devices.py:552 dcim/tables/devices.py:672 -#: dcim/tables/devices.py:753 dcim/tables/devices.py:803 -#: dcim/tables/devices.py:869 dcim/tables/devices.py:984 -#: dcim/tables/devices.py:1004 dcim/tables/devices.py:1033 -#: dcim/tables/devices.py:1063 dcim/tables/devicetypes.py:32 +#: core/tables/data.py:16 core/tables/jobs.py:14 core/tables/plugins.py:13 +#: core/tables/tasks.py:11 core/tables/tasks.py:115 dcim/forms/filtersets.py:61 +#: dcim/forms/object_create.py:43 dcim/tables/devices.py:60 +#: dcim/tables/devices.py:97 dcim/tables/devices.py:139 +#: dcim/tables/devices.py:294 dcim/tables/devices.py:376 +#: dcim/tables/devices.py:420 dcim/tables/devices.py:472 +#: dcim/tables/devices.py:524 dcim/tables/devices.py:644 +#: dcim/tables/devices.py:726 dcim/tables/devices.py:776 +#: dcim/tables/devices.py:842 dcim/tables/devices.py:957 +#: dcim/tables/devices.py:977 dcim/tables/devices.py:1006 +#: dcim/tables/devices.py:1036 dcim/tables/devicetypes.py:32 #: dcim/tables/power.py:22 dcim/tables/power.py:62 dcim/tables/racks.py:23 #: dcim/tables/racks.py:53 dcim/tables/sites.py:24 dcim/tables/sites.py:51 #: dcim/tables/sites.py:78 dcim/tables/sites.py:125 -#: extras/forms/filtersets.py:190 extras/tables/tables.py:40 -#: extras/tables/tables.py:83 extras/tables/tables.py:115 -#: extras/tables/tables.py:139 extras/tables/tables.py:204 -#: extras/tables/tables.py:251 extras/tables/tables.py:274 -#: extras/tables/tables.py:324 extras/tables/tables.py:376 -#: extras/tables/tables.py:399 ipam/forms/bulk_edit.py:390 -#: ipam/forms/filtersets.py:372 ipam/tables/asn.py:16 ipam/tables/ip.py:85 +#: extras/forms/filtersets.py:191 extras/tables/tables.py:42 +#: extras/tables/tables.py:88 extras/tables/tables.py:120 +#: extras/tables/tables.py:144 extras/tables/tables.py:209 +#: extras/tables/tables.py:256 extras/tables/tables.py:279 +#: extras/tables/tables.py:329 extras/tables/tables.py:381 +#: extras/tables/tables.py:404 ipam/forms/bulk_edit.py:391 +#: ipam/forms/filtersets.py:379 ipam/tables/asn.py:16 ipam/tables/ip.py:85 #: ipam/tables/ip.py:159 ipam/tables/services.py:15 ipam/tables/services.py:40 #: ipam/tables/vlans.py:64 ipam/tables/vlans.py:110 ipam/tables/vrfs.py:26 -#: ipam/tables/vrfs.py:67 templates/circuits/circuittype.html:25 -#: templates/circuits/provideraccount.html:29 -#: templates/circuits/providernetwork.html:27 templates/core/datasource.html:35 -#: templates/core/job.html:31 templates/dcim/consoleport.html:31 -#: templates/dcim/consoleserverport.html:31 templates/dcim/devicebay.html:27 -#: templates/dcim/devicerole.html:29 templates/dcim/frontport.html:31 +#: ipam/tables/vrfs.py:67 templates/circuits/circuittype.html:22 +#: templates/circuits/provideraccount.html:28 +#: templates/circuits/providernetwork.html:24 templates/core/datasource.html:34 +#: templates/core/job.html:26 templates/core/rq_worker.html:43 +#: templates/dcim/consoleport.html:28 templates/dcim/consoleserverport.html:28 +#: templates/dcim/devicebay.html:24 templates/dcim/devicerole.html:26 +#: templates/dcim/frontport.html:28 #: templates/dcim/inc/interface_vlans_table.html:5 -#: templates/dcim/inc/panels/inventory_items.html:10 -#: templates/dcim/interface.html:39 templates/dcim/interface.html:171 -#: templates/dcim/inventoryitem.html:29 -#: templates/dcim/inventoryitemrole.html:19 templates/dcim/location.html:32 -#: templates/dcim/manufacturer.html:39 templates/dcim/modulebay.html:27 -#: templates/dcim/platform.html:32 templates/dcim/poweroutlet.html:31 -#: templates/dcim/powerport.html:31 templates/dcim/rackrole.html:25 -#: templates/dcim/rearport.html:31 templates/dcim/region.html:30 -#: templates/dcim/sitegroup.html:30 templates/dcim/virtualdevicecontext.html:21 -#: templates/extras/admin/plugins_list.html:22 -#: templates/extras/configcontext.html:14 -#: templates/extras/configtemplate.html:14 templates/extras/customfield.html:16 -#: templates/extras/customlink.html:14 templates/extras/eventrule.html:16 -#: templates/extras/exporttemplate.html:21 templates/extras/report_list.html:46 -#: templates/extras/savedfilter.html:14 templates/extras/script_list.html:52 -#: templates/extras/tag.html:17 templates/extras/webhook.html:16 -#: templates/ipam/asnrange.html:16 templates/ipam/fhrpgroup.html:31 -#: templates/ipam/rir.html:25 templates/ipam/role.html:25 -#: templates/ipam/routetarget.html:14 templates/ipam/service.html:27 -#: templates/ipam/servicetemplate.html:16 templates/ipam/vlan.html:38 -#: templates/ipam/vlangroup.html:31 templates/tenancy/contact.html:26 -#: templates/tenancy/contactgroup.html:24 templates/tenancy/contactrole.html:19 -#: templates/tenancy/tenantgroup.html:32 templates/users/group.html:18 -#: templates/users/objectpermission.html:18 -#: templates/virtualization/cluster.html:16 -#: templates/virtualization/clustergroup.html:25 -#: templates/virtualization/clustertype.html:25 -#: templates/virtualization/virtualdisk.html:26 -#: templates/virtualization/virtualmachine.html:18 -#: templates/virtualization/vminterface.html:28 templates/vpn/ikepolicy.html:14 -#: templates/vpn/ikeproposal.html:14 templates/vpn/ipsecpolicy.html:14 -#: templates/vpn/ipsecprofile.html:14 templates/vpn/ipsecprofile.html:39 -#: templates/vpn/ipsecprofile.html:74 templates/vpn/ipsecproposal.html:14 -#: templates/vpn/l2vpn.html:15 templates/vpn/tunnel.html:22 -#: templates/vpn/tunnelgroup.html:29 -#: templates/wireless/wirelesslangroup.html:30 tenancy/tables/contacts.py:19 +#: templates/dcim/inc/panels/inventory_items.html:18 +#: templates/dcim/interface.html:38 templates/dcim/interface.html:165 +#: templates/dcim/inventoryitem.html:28 +#: templates/dcim/inventoryitemrole.html:18 templates/dcim/location.html:29 +#: templates/dcim/manufacturer.html:36 templates/dcim/modulebay.html:26 +#: templates/dcim/platform.html:29 templates/dcim/poweroutlet.html:28 +#: templates/dcim/powerport.html:28 templates/dcim/rackrole.html:22 +#: templates/dcim/rearport.html:28 templates/dcim/region.html:29 +#: templates/dcim/sitegroup.html:29 templates/dcim/virtualdevicecontext.html:18 +#: templates/extras/configcontext.html:13 +#: templates/extras/configtemplate.html:13 templates/extras/customfield.html:13 +#: templates/extras/customlink.html:13 templates/extras/eventrule.html:13 +#: templates/extras/exporttemplate.html:15 templates/extras/savedfilter.html:13 +#: templates/extras/script_list.html:46 templates/extras/tag.html:14 +#: templates/extras/webhook.html:13 templates/ipam/asnrange.html:15 +#: templates/ipam/fhrpgroup.html:30 templates/ipam/rir.html:22 +#: templates/ipam/role.html:22 templates/ipam/routetarget.html:13 +#: templates/ipam/service.html:24 templates/ipam/servicetemplate.html:15 +#: templates/ipam/vlan.html:35 templates/ipam/vlangroup.html:30 +#: templates/tenancy/contact.html:25 templates/tenancy/contactgroup.html:21 +#: templates/tenancy/contactrole.html:18 templates/tenancy/tenantgroup.html:29 +#: templates/users/group.html:17 templates/users/objectpermission.html:17 +#: templates/virtualization/cluster.html:13 +#: templates/virtualization/clustergroup.html:22 +#: templates/virtualization/clustertype.html:22 +#: templates/virtualization/virtualdisk.html:25 +#: templates/virtualization/virtualmachine.html:15 +#: templates/virtualization/vminterface.html:25 templates/vpn/ikepolicy.html:13 +#: templates/vpn/ikeproposal.html:13 templates/vpn/ipsecpolicy.html:13 +#: templates/vpn/ipsecprofile.html:13 templates/vpn/ipsecprofile.html:36 +#: templates/vpn/ipsecprofile.html:69 templates/vpn/ipsecproposal.html:13 +#: templates/vpn/l2vpn.html:14 templates/vpn/tunnel.html:21 +#: templates/vpn/tunnelgroup.html:26 +#: templates/wireless/wirelesslangroup.html:29 tenancy/tables/contacts.py:19 #: tenancy/tables/contacts.py:41 tenancy/tables/contacts.py:56 #: tenancy/tables/tenants.py:16 tenancy/tables/tenants.py:38 users/tables.py:62 -#: users/tables.py:79 virtualization/forms/bulk_create.py:20 +#: users/tables.py:76 virtualization/forms/bulk_create.py:20 #: virtualization/forms/object_create.py:13 #: virtualization/forms/object_create.py:23 #: virtualization/tables/clusters.py:17 virtualization/tables/clusters.py:39 @@ -1058,19 +1076,19 @@ msgid "Name" msgstr "" #: circuits/tables/circuits.py:38 circuits/tables/providers.py:45 -#: circuits/tables/providers.py:79 netbox/navigation/menu.py:254 -#: netbox/navigation/menu.py:258 netbox/navigation/menu.py:260 -#: templates/circuits/provider.html:61 -#: templates/circuits/provideraccount.html:46 -#: templates/circuits/providernetwork.html:54 +#: circuits/tables/providers.py:79 netbox/navigation/menu.py:253 +#: netbox/navigation/menu.py:257 netbox/navigation/menu.py:259 +#: templates/circuits/provider.html:57 +#: templates/circuits/provideraccount.html:44 +#: templates/circuits/providernetwork.html:50 msgid "Circuits" msgstr "" -#: circuits/tables/circuits.py:52 templates/circuits/circuit.html:27 +#: circuits/tables/circuits.py:52 templates/circuits/circuit.html:26 msgid "Circuit ID" msgstr "" -#: circuits/tables/circuits.py:65 wireless/forms/model_forms.py:157 +#: circuits/tables/circuits.py:65 wireless/forms/model_forms.py:160 msgid "Side A" msgstr "" @@ -1078,24 +1096,23 @@ msgstr "" msgid "Side Z" msgstr "" -#: circuits/tables/circuits.py:72 templates/circuits/circuit.html:56 +#: circuits/tables/circuits.py:72 templates/circuits/circuit.html:55 msgid "Commit Rate" msgstr "" #: circuits/tables/circuits.py:75 circuits/tables/providers.py:48 #: circuits/tables/providers.py:82 circuits/tables/providers.py:107 -#: dcim/tables/devices.py:1046 dcim/tables/devicetypes.py:92 +#: dcim/tables/devices.py:1019 dcim/tables/devicetypes.py:92 #: dcim/tables/modules.py:29 dcim/tables/modules.py:72 dcim/tables/power.py:39 #: dcim/tables/power.py:96 dcim/tables/racks.py:76 dcim/tables/racks.py:156 -#: dcim/tables/sites.py:103 extras/forms/bulk_edit.py:320 -#: extras/tables/tables.py:490 ipam/tables/asn.py:69 ipam/tables/fhrp.py:34 -#: ipam/tables/ip.py:135 ipam/tables/ip.py:272 ipam/tables/ip.py:325 -#: ipam/tables/ip.py:392 ipam/tables/services.py:24 ipam/tables/services.py:54 -#: ipam/tables/vlans.py:141 ipam/tables/vrfs.py:46 ipam/tables/vrfs.py:71 -#: templates/dcim/cable_edit.html:85 templates/generic/bulk_edit.html:102 -#: templates/inc/panels/comments.html:6 tenancy/tables/contacts.py:68 -#: tenancy/tables/tenants.py:46 utilities/forms/fields/fields.py:29 -#: virtualization/tables/clusters.py:91 +#: dcim/tables/sites.py:103 extras/tables/tables.py:515 ipam/tables/asn.py:69 +#: ipam/tables/fhrp.py:34 ipam/tables/ip.py:135 ipam/tables/ip.py:272 +#: ipam/tables/ip.py:325 ipam/tables/ip.py:392 ipam/tables/services.py:24 +#: ipam/tables/services.py:54 ipam/tables/vlans.py:141 ipam/tables/vrfs.py:46 +#: ipam/tables/vrfs.py:71 templates/dcim/htmx/cable_edit.html:89 +#: templates/generic/bulk_edit.html:86 templates/inc/panels/comments.html:6 +#: tenancy/tables/contacts.py:68 tenancy/tables/tenants.py:46 +#: utilities/forms/fields/fields.py:29 virtualization/tables/clusters.py:91 #: virtualization/tables/virtualmachines.py:81 vpn/tables/crypto.py:37 #: vpn/tables/crypto.py:74 vpn/tables/crypto.py:109 vpn/tables/crypto.py:140 #: vpn/tables/crypto.py:173 vpn/tables/l2vpn.py:37 vpn/tables/tunnels.py:61 @@ -1115,7 +1132,7 @@ msgstr "" msgid "ASN Count" msgstr "" -#: core/api/views.py:39 +#: core/api/views.py:36 msgid "This user does not have permission to synchronize this data source." msgstr "" @@ -1123,7 +1140,8 @@ msgstr "" msgid "New" msgstr "" -#: core/choices.py:19 +#: core/choices.py:19 core/constants.py:18 core/tables/tasks.py:15 +#: templates/core/rq_task.html:77 msgid "Queued" msgstr "" @@ -1132,51 +1150,71 @@ msgid "Syncing" msgstr "" #: core/choices.py:21 core/choices.py:57 core/tables/jobs.py:41 -#: extras/choices.py:210 templates/core/job.html:75 +#: extras/choices.py:224 templates/core/job.html:68 msgid "Completed" msgstr "" -#: core/choices.py:22 core/choices.py:59 dcim/choices.py:176 -#: dcim/choices.py:222 dcim/choices.py:1502 extras/choices.py:212 -#: virtualization/choices.py:47 +#: core/choices.py:22 core/choices.py:59 core/constants.py:20 +#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222 +#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47 msgid "Failed" msgstr "" -#: core/choices.py:35 netbox/navigation/menu.py:330 -#: templates/extras/script/base.html:14 templates/extras/script_list.html:6 -#: templates/extras/script_list.html:20 templates/extras/script_result.html:18 +#: core/choices.py:35 netbox/navigation/menu.py:319 +#: netbox/navigation/menu.py:323 templates/extras/script/base.html:14 +#: templates/extras/script_list.html:7 templates/extras/script_list.html:12 +#: templates/extras/script_result.html:17 msgid "Scripts" msgstr "" -#: core/choices.py:36 netbox/navigation/menu.py:324 -#: templates/extras/report/base.html:13 templates/extras/report_list.html:7 -#: templates/extras/report_list.html:12 +#: core/choices.py:36 templates/extras/report/base.html:13 msgid "Reports" msgstr "" -#: core/choices.py:54 extras/choices.py:207 +#: core/choices.py:54 extras/choices.py:221 msgid "Pending" msgstr "" -#: core/choices.py:55 core/tables/jobs.py:32 extras/choices.py:208 -#: templates/core/job.html:62 +#: core/choices.py:55 core/constants.py:23 core/tables/jobs.py:32 +#: core/tables/tasks.py:38 extras/choices.py:222 templates/core/job.html:55 msgid "Scheduled" msgstr "" -#: core/choices.py:56 extras/choices.py:209 +#: core/choices.py:56 extras/choices.py:223 msgid "Running" msgstr "" -#: core/choices.py:58 extras/choices.py:211 +#: core/choices.py:58 extras/choices.py:225 msgid "Errored" msgstr "" -#: core/data_backends.py:29 templates/dcim/interface.html:224 +#: core/constants.py:19 core/tables/tasks.py:30 +msgid "Finished" +msgstr "" + +#: core/constants.py:21 core/tables/jobs.py:38 templates/core/job.html:64 +#: templates/extras/htmx/script_result.html:8 +msgid "Started" +msgstr "" + +#: core/constants.py:22 core/tables/tasks.py:26 +msgid "Deferred" +msgstr "" + +#: core/constants.py:24 +msgid "Stopped" +msgstr "" + +#: core/constants.py:25 +msgid "Cancelled" +msgstr "" + +#: core/data_backends.py:29 templates/dcim/interface.html:216 msgid "Local" msgstr "" -#: core/data_backends.py:47 extras/tables/tables.py:436 -#: templates/account/profile.html:16 templates/users/user.html:18 +#: core/data_backends.py:47 extras/tables/tables.py:461 +#: templates/account/profile.html:15 templates/users/user.html:17 #: users/tables.py:31 msgid "Username" msgstr "" @@ -1186,7 +1224,7 @@ msgid "Only used for cloning with HTTP(S)" msgstr "" #: core/data_backends.py:53 templates/account/base.html:17 -#: templates/account/password.html:11 users/forms/model_forms.py:172 +#: templates/account/password.html:11 users/forms/model_forms.py:174 msgid "Password" msgstr "" @@ -1207,8 +1245,8 @@ msgstr "" msgid "AWS secret access key" msgstr "" -#: core/filtersets.py:49 extras/filtersets.py:203 extras/filtersets.py:538 -#: extras/filtersets.py:566 +#: core/filtersets.py:49 extras/filtersets.py:245 extras/filtersets.py:585 +#: extras/filtersets.py:617 msgid "Data source (ID)" msgstr "" @@ -1216,205 +1254,205 @@ msgstr "" msgid "Data source (name)" msgstr "" -#: core/forms/bulk_edit.py:24 core/forms/filtersets.py:39 -#: core/tables/data.py:26 dcim/forms/bulk_edit.py:1012 -#: dcim/forms/bulk_edit.py:1285 dcim/forms/filtersets.py:1270 -#: dcim/tables/devices.py:577 dcim/tables/devicetypes.py:221 -#: extras/forms/bulk_edit.py:97 extras/forms/bulk_edit.py:161 -#: extras/forms/bulk_edit.py:220 extras/forms/filtersets.py:119 -#: extras/forms/filtersets.py:206 extras/forms/filtersets.py:267 -#: extras/tables/tables.py:122 extras/tables/tables.py:211 -#: extras/tables/tables.py:288 templates/core/datasource.html:43 -#: templates/dcim/interface.html:62 templates/extras/customlink.html:18 -#: templates/extras/eventrule.html:20 templates/extras/savedfilter.html:26 -#: templates/users/objectpermission.html:26 -#: templates/virtualization/vminterface.html:32 users/forms/bulk_edit.py:69 -#: users/forms/filtersets.py:71 users/tables.py:86 -#: virtualization/forms/bulk_edit.py:216 virtualization/forms/filtersets.py:207 +#: core/forms/bulk_edit.py:25 core/forms/filtersets.py:40 +#: core/tables/data.py:26 dcim/forms/bulk_edit.py:1020 +#: dcim/forms/bulk_edit.py:1293 dcim/forms/filtersets.py:1268 +#: dcim/tables/devices.py:549 dcim/tables/devicetypes.py:221 +#: extras/forms/bulk_edit.py:98 extras/forms/bulk_edit.py:162 +#: extras/forms/bulk_edit.py:221 extras/forms/filtersets.py:120 +#: extras/forms/filtersets.py:207 extras/forms/filtersets.py:268 +#: extras/tables/tables.py:127 extras/tables/tables.py:216 +#: extras/tables/tables.py:293 netbox/preferences.py:22 +#: templates/core/datasource.html:42 templates/dcim/interface.html:61 +#: templates/extras/customlink.html:17 templates/extras/eventrule.html:17 +#: templates/extras/savedfilter.html:25 +#: templates/users/objectpermission.html:25 +#: templates/virtualization/vminterface.html:29 users/forms/bulk_edit.py:89 +#: users/forms/filtersets.py:71 users/tables.py:83 +#: virtualization/forms/bulk_edit.py:217 virtualization/forms/filtersets.py:211 msgid "Enabled" msgstr "" -#: core/forms/bulk_edit.py:33 extras/forms/model_forms.py:204 -#: templates/extras/savedfilter.html:57 vpn/forms/filtersets.py:95 -#: vpn/forms/filtersets.py:124 vpn/forms/filtersets.py:148 -#: vpn/forms/filtersets.py:167 vpn/forms/model_forms.py:300 -#: vpn/forms/model_forms.py:321 vpn/forms/model_forms.py:335 -#: vpn/forms/model_forms.py:356 vpn/forms/model_forms.py:379 +#: core/forms/bulk_edit.py:34 extras/forms/model_forms.py:211 +#: templates/extras/savedfilter.html:53 vpn/forms/filtersets.py:97 +#: vpn/forms/filtersets.py:127 vpn/forms/filtersets.py:151 +#: vpn/forms/filtersets.py:170 vpn/forms/model_forms.py:301 +#: vpn/forms/model_forms.py:321 vpn/forms/model_forms.py:337 +#: vpn/forms/model_forms.py:357 vpn/forms/model_forms.py:380 msgid "Parameters" msgstr "" -#: core/forms/bulk_edit.py:37 templates/core/datasource.html:69 +#: core/forms/bulk_edit.py:38 templates/core/datasource.html:68 msgid "Ignore rules" msgstr "" -#: core/forms/filtersets.py:26 core/forms/model_forms.py:96 -#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:465 -#: extras/forms/model_forms.py:518 extras/tables/tables.py:149 -#: extras/tables/tables.py:368 extras/tables/tables.py:403 +#: core/forms/filtersets.py:27 core/forms/model_forms.py:97 +#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457 +#: extras/forms/model_forms.py:511 extras/tables/tables.py:154 +#: extras/tables/tables.py:373 extras/tables/tables.py:408 #: templates/core/datasource.html:31 -#: templates/dcim/device/render_config.html:19 -#: templates/extras/configcontext.html:30 -#: templates/extras/configtemplate.html:22 -#: templates/extras/exporttemplate.html:41 -#: templates/virtualization/virtualmachine/render_config.html:19 +#: templates/dcim/device/render_config.html:18 +#: templates/extras/configcontext.html:29 +#: templates/extras/configtemplate.html:21 +#: templates/extras/exporttemplate.html:35 +#: templates/virtualization/virtualmachine/render_config.html:18 msgid "Data Source" msgstr "" -#: core/forms/filtersets.py:51 core/forms/mixins.py:21 +#: core/forms/filtersets.py:52 core/forms/mixins.py:21 msgid "File" msgstr "" -#: core/forms/filtersets.py:56 core/forms/mixins.py:16 -#: extras/forms/filtersets.py:147 extras/forms/filtersets.py:336 +#: core/forms/filtersets.py:57 core/forms/mixins.py:16 +#: extras/forms/filtersets.py:148 extras/forms/filtersets.py:337 #: extras/forms/filtersets.py:422 msgid "Data source" msgstr "" -#: core/forms/filtersets.py:64 extras/forms/filtersets.py:449 +#: core/forms/filtersets.py:67 extras/forms/filtersets.py:449 msgid "Creation" msgstr "" -#: core/forms/filtersets.py:70 extras/forms/filtersets.py:473 -#: extras/forms/filtersets.py:519 extras/tables/tables.py:479 -#: templates/core/job.html:25 templates/extras/objectchange.html:56 -#: tenancy/tables/contacts.py:90 vpn/tables/l2vpn.py:59 +#: core/forms/filtersets.py:71 extras/forms/filtersets.py:470 +#: extras/forms/filtersets.py:513 extras/tables/tables.py:183 +#: extras/tables/tables.py:504 templates/core/job.html:20 +#: templates/extras/objectchange.html:51 tenancy/tables/contacts.py:90 +#: vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "" -#: core/forms/filtersets.py:80 +#: core/forms/filtersets.py:81 msgid "Created after" msgstr "" -#: core/forms/filtersets.py:85 +#: core/forms/filtersets.py:86 msgid "Created before" msgstr "" -#: core/forms/filtersets.py:90 +#: core/forms/filtersets.py:91 msgid "Scheduled after" msgstr "" -#: core/forms/filtersets.py:95 +#: core/forms/filtersets.py:96 msgid "Scheduled before" msgstr "" -#: core/forms/filtersets.py:100 +#: core/forms/filtersets.py:101 msgid "Started after" msgstr "" -#: core/forms/filtersets.py:105 +#: core/forms/filtersets.py:106 msgid "Started before" msgstr "" -#: core/forms/filtersets.py:110 +#: core/forms/filtersets.py:111 msgid "Completed after" msgstr "" -#: core/forms/filtersets.py:115 +#: core/forms/filtersets.py:116 msgid "Completed before" msgstr "" -#: core/forms/filtersets.py:122 dcim/forms/bulk_edit.py:359 -#: dcim/forms/filtersets.py:352 dcim/forms/filtersets.py:396 -#: dcim/forms/model_forms.py:251 extras/forms/filtersets.py:465 -#: extras/forms/filtersets.py:511 templates/dcim/rackreservation.html:65 -#: templates/extras/objectchange.html:40 templates/extras/savedfilter.html:22 -#: templates/users/token.html:22 templates/users/user.html:6 -#: templates/users/user.html:14 users/filtersets.py:74 users/filtersets.py:134 -#: users/forms/filtersets.py:85 users/forms/filtersets.py:126 -#: users/forms/model_forms.py:157 users/forms/model_forms.py:195 -#: users/tables.py:19 +#: core/forms/filtersets.py:123 dcim/forms/bulk_edit.py:361 +#: dcim/forms/filtersets.py:353 dcim/forms/filtersets.py:397 +#: dcim/forms/model_forms.py:258 extras/forms/filtersets.py:465 +#: extras/forms/filtersets.py:508 templates/dcim/rackreservation.html:58 +#: templates/extras/objectchange.html:35 templates/extras/savedfilter.html:21 +#: templates/inc/user_menu.html:15 templates/users/token.html:21 +#: templates/users/user.html:6 templates/users/user.html:14 +#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85 +#: users/forms/filtersets.py:126 users/forms/model_forms.py:159 +#: users/forms/model_forms.py:196 users/tables.py:19 msgid "User" msgstr "" -#: core/forms/model_forms.py:53 core/tables/data.py:46 -#: templates/core/datafile.html:36 templates/extras/report/base.html:33 -#: templates/extras/script/base.html:32 templates/extras/script_result.html:45 +#: core/forms/model_forms.py:54 core/tables/data.py:46 +#: templates/core/datafile.html:27 templates/extras/report/base.html:33 +#: templates/extras/script/base.html:32 msgid "Source" msgstr "" -#: core/forms/model_forms.py:57 +#: core/forms/model_forms.py:58 msgid "Backend Parameters" msgstr "" -#: core/forms/model_forms.py:95 +#: core/forms/model_forms.py:96 msgid "File Upload" msgstr "" -#: core/forms/model_forms.py:107 +#: core/forms/model_forms.py:108 msgid "Cannot upload a file and sync from an existing file" msgstr "" -#: core/forms/model_forms.py:109 +#: core/forms/model_forms.py:110 msgid "Must upload a file or select a data file to sync" msgstr "" -#: core/forms/model_forms.py:151 templates/core/configrevision.html:43 -#: templates/dcim/rack_elevation_list.html:6 +#: core/forms/model_forms.py:153 templates/dcim/rack_elevation_list.html:6 msgid "Rack Elevations" msgstr "" -#: core/forms/model_forms.py:152 dcim/choices.py:1413 -#: dcim/forms/bulk_edit.py:859 dcim/forms/bulk_edit.py:1242 -#: dcim/forms/bulk_edit.py:1260 dcim/tables/racks.py:89 -#: netbox/navigation/menu.py:276 netbox/navigation/menu.py:280 +#: core/forms/model_forms.py:157 dcim/choices.py:1413 +#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250 +#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89 +#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279 msgid "Power" msgstr "" -#: core/forms/model_forms.py:153 netbox/navigation/menu.py:142 -#: templates/core/configrevision.html:79 +#: core/forms/model_forms.py:159 netbox/navigation/menu.py:141 +#: templates/core/inc/config_data.html:37 msgid "IPAM" msgstr "" -#: core/forms/model_forms.py:154 netbox/navigation/menu.py:218 -#: templates/core/configrevision.html:95 vpn/forms/bulk_edit.py:76 -#: vpn/forms/filtersets.py:42 vpn/forms/model_forms.py:60 -#: vpn/forms/model_forms.py:145 +#: core/forms/model_forms.py:160 netbox/navigation/menu.py:217 +#: templates/core/inc/config_data.html:50 vpn/forms/bulk_edit.py:77 +#: vpn/forms/filtersets.py:43 vpn/forms/model_forms.py:61 +#: vpn/forms/model_forms.py:146 msgid "Security" msgstr "" -#: core/forms/model_forms.py:155 templates/core/configrevision.html:107 +#: core/forms/model_forms.py:161 templates/core/inc/config_data.html:59 msgid "Banners" msgstr "" -#: core/forms/model_forms.py:156 templates/core/configrevision.html:131 +#: core/forms/model_forms.py:162 templates/core/inc/config_data.html:80 msgid "Pagination" msgstr "" -#: core/forms/model_forms.py:157 extras/forms/model_forms.py:63 -#: templates/core/configrevision.html:147 +#: core/forms/model_forms.py:163 extras/forms/model_forms.py:67 +#: templates/core/inc/config_data.html:93 msgid "Validation" msgstr "" -#: core/forms/model_forms.py:158 templates/account/preferences.html:6 -#: templates/core/configrevision.html:175 +#: core/forms/model_forms.py:164 templates/account/preferences.html:6 msgid "User Preferences" msgstr "" -#: core/forms/model_forms.py:159 dcim/forms/filtersets.py:658 -#: templates/core/configrevision.html:193 users/forms/model_forms.py:64 +#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660 +#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68 msgid "Miscellaneous" msgstr "" -#: core/forms/model_forms.py:162 +#: core/forms/model_forms.py:169 msgid "Config Revision" msgstr "" -#: core/forms/model_forms.py:201 +#: core/forms/model_forms.py:208 msgid "This parameter has been defined statically and cannot be modified." msgstr "" -#: core/forms/model_forms.py:209 +#: core/forms/model_forms.py:216 #, python-brace-format msgid "Current value: {value}" msgstr "" -#: core/forms/model_forms.py:211 +#: core/forms/model_forms.py:218 msgid " (default)" msgstr "" #: core/models/config.py:18 core/models/data.py:282 core/models/files.py:27 -#: core/models/jobs.py:50 extras/models/models.py:760 -#: netbox/models/features.py:52 users/models.py:249 +#: core/models/jobs.py:50 extras/models/models.py:758 +#: netbox/models/features.py:51 users/models/tokens.py:33 msgid "created" msgstr "" @@ -1458,21 +1496,22 @@ msgstr "" #: dcim/models/device_components.py:284 dcim/models/device_components.py:313 #: dcim/models/device_components.py:346 dcim/models/device_components.py:464 #: dcim/models/device_components.py:606 dcim/models/device_components.py:971 -#: dcim/models/device_components.py:1045 dcim/models/power.py:101 -#: dcim/models/racks.py:127 extras/models/customfields.py:75 -#: extras/models/search.py:43 virtualization/models/clusters.py:61 +#: dcim/models/device_components.py:1045 dcim/models/power.py:102 +#: dcim/models/racks.py:128 extras/models/customfields.py:76 +#: extras/models/search.py:41 virtualization/models/clusters.py:61 #: vpn/models/l2vpn.py:32 msgid "type" msgstr "" -#: core/models/data.py:52 extras/choices.py:34 extras/models/models.py:194 -#: templates/core/datasource.html:59 +#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192 +#: extras/tables/tables.py:582 templates/core/datasource.html:58 msgid "URL" msgstr "" #: core/models/data.py:62 dcim/models/device_component_templates.py:392 -#: dcim/models/device_components.py:513 extras/models/models.py:88 -#: extras/models/models.py:331 extras/models/models.py:556 users/models.py:358 +#: dcim/models/device_components.py:513 extras/models/models.py:90 +#: extras/models/models.py:329 extras/models/models.py:554 +#: users/models/permissions.py:29 msgid "enabled" msgstr "" @@ -1484,7 +1523,7 @@ msgstr "" msgid "Patterns (one per line) matching files to ignore when syncing" msgstr "" -#: core/models/data.py:71 extras/models/models.py:564 +#: core/models/data.py:71 extras/models/models.py:562 msgid "parameters" msgstr "" @@ -1515,11 +1554,11 @@ msgid "" "installed: " msgstr "" -#: core/models/data.py:286 core/models/files.py:31 netbox/models/features.py:58 +#: core/models/data.py:286 core/models/files.py:31 netbox/models/features.py:57 msgid "last updated" msgstr "" -#: core/models/data.py:296 dcim/models/cables.py:438 +#: core/models/data.py:296 dcim/models/cables.py:442 msgid "path" msgstr "" @@ -1551,11 +1590,11 @@ msgstr "" msgid "data files" msgstr "" -#: core/models/data.py:416 +#: core/models/data.py:417 msgid "auto sync record" msgstr "" -#: core/models/data.py:417 +#: core/models/data.py:418 msgid "auto sync records" msgstr "" @@ -1599,7 +1638,7 @@ msgstr "" msgid "completed" msgstr "" -#: core/models/jobs.py:91 extras/models/models.py:123 +#: core/models/jobs.py:91 extras/models/models.py:121 #: extras/models/staging.py:87 msgid "data" msgstr "" @@ -1634,7 +1673,7 @@ msgstr "" msgid "Is Active" msgstr "" -#: core/tables/data.py:50 templates/core/datafile.html:40 +#: core/tables/data.py:50 templates/core/datafile.html:31 msgid "Path" msgstr "" @@ -1642,20 +1681,21 @@ msgstr "" msgid "Last updated" msgstr "" -#: core/tables/jobs.py:10 dcim/tables/devicetypes.py:161 -#: extras/tables/tables.py:174 extras/tables/tables.py:345 -#: netbox/tables/tables.py:184 templates/dcim/virtualchassis_edit.html:53 -#: utilities/forms/forms.py:74 wireless/tables/wirelesslink.py:16 +#: core/tables/jobs.py:10 core/tables/tasks.py:76 +#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179 +#: extras/tables/tables.py:350 netbox/tables/tables.py:186 +#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73 +#: wireless/tables/wirelesslink.py:16 msgid "ID" msgstr "" -#: core/tables/jobs.py:21 extras/choices.py:38 extras/tables/tables.py:236 -#: extras/tables/tables.py:282 extras/tables/tables.py:355 -#: extras/tables/tables.py:453 extras/tables/tables.py:484 -#: netbox/tables/tables.py:238 templates/extras/eventrule.html:99 -#: templates/extras/htmx/report_result.html:45 -#: templates/extras/journalentry.html:21 templates/extras/objectchange.html:62 -#: tenancy/tables/contacts.py:93 vpn/tables/l2vpn.py:64 +#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241 +#: extras/tables/tables.py:287 extras/tables/tables.py:360 +#: extras/tables/tables.py:478 extras/tables/tables.py:509 +#: extras/tables/tables.py:579 netbox/tables/tables.py:240 +#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18 +#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93 +#: vpn/tables/l2vpn.py:64 msgid "Object" msgstr "" @@ -1663,22 +1703,100 @@ msgstr "" msgid "Interval" msgstr "" -#: core/tables/jobs.py:38 templates/core/job.html:71 -#: templates/extras/htmx/report_result.html:7 -#: templates/extras/htmx/script_result.html:8 -msgid "Started" +#: core/tables/plugins.py:16 templates/vpn/ipsecprofile.html:44 +#: vpn/forms/bulk_edit.py:141 vpn/forms/bulk_import.py:172 +#: vpn/tables/crypto.py:61 +msgid "Version" msgstr "" -#: dcim/api/serializers.py:205 templates/dcim/rack.html:33 -msgid "Facility ID" +#: core/tables/plugins.py:20 +msgid "Package" msgstr "" -#: dcim/api/serializers.py:321 dcim/api/serializers.py:682 +#: core/tables/plugins.py:23 +msgid "Author" +msgstr "" + +#: core/tables/plugins.py:26 +msgid "Author Email" +msgstr "" + +#: core/tables/plugins.py:33 +msgid "No plugins found" +msgstr "" + +#: core/tables/tasks.py:18 +msgid "Oldest Task" +msgstr "" + +#: core/tables/tasks.py:42 templates/core/rq_worker_list.html:34 +msgid "Workers" +msgstr "" + +#: core/tables/tasks.py:46 vpn/tables/tunnels.py:88 +msgid "Host" +msgstr "" + +#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523 +msgid "Port" +msgstr "" + +#: core/tables/tasks.py:54 +msgid "DB" +msgstr "" + +#: core/tables/tasks.py:58 +msgid "Scheduler PID" +msgstr "" + +#: core/tables/tasks.py:62 +msgid "No queues found" +msgstr "" + +#: core/tables/tasks.py:82 +msgid "Enqueued" +msgstr "" + +#: core/tables/tasks.py:85 +msgid "Ended" +msgstr "" + +#: core/tables/tasks.py:93 templates/core/rq_task.html:85 +msgid "Callable" +msgstr "" + +#: core/tables/tasks.py:97 +msgid "No tasks found" +msgstr "" + +#: core/tables/tasks.py:118 templates/core/rq_worker.html:47 +msgid "State" +msgstr "" + +#: core/tables/tasks.py:121 templates/core/rq_worker.html:51 +msgid "Birth" +msgstr "" + +#: core/tables/tasks.py:124 templates/core/rq_worker.html:59 +msgid "PID" +msgstr "" + +#: core/tables/tasks.py:128 +msgid "No workers found" +msgstr "" + +#: core/views.py:335 core/views.py:378 core/views.py:401 core/views.py:419 +#: core/views.py:454 +#, python-brace-format +msgid "Job {job_id} not found" +msgstr "" + +#: dcim/api/serializers_/devices.py:50 dcim/api/serializers_/devicetypes.py:26 msgid "Position (U)" msgstr "" -#: dcim/api/serializers.py:671 -msgid "Deprecated in v3.6 in favor of `role`." +#: dcim/api/serializers_/racks.py:45 templates/dcim/rack.html:30 +msgid "Facility ID" msgstr "" #: dcim/choices.py:21 virtualization/choices.py:21 @@ -1733,7 +1851,7 @@ msgstr "" msgid "Reserved" msgstr "" -#: dcim/choices.py:101 templates/dcim/device.html:262 +#: dcim/choices.py:101 templates/dcim/device.html:251 msgid "Available" msgstr "" @@ -1742,7 +1860,7 @@ msgstr "" msgid "Deprecated" msgstr "" -#: dcim/choices.py:114 templates/dcim/rack.html:128 +#: dcim/choices.py:114 templates/dcim/rack.html:123 msgid "Millimeters" msgstr "" @@ -1750,29 +1868,29 @@ msgstr "" msgid "Inches" msgstr "" -#: dcim/choices.py:140 dcim/forms/bulk_edit.py:66 dcim/forms/bulk_edit.py:85 -#: dcim/forms/bulk_edit.py:171 dcim/forms/bulk_edit.py:1290 +#: dcim/choices.py:140 dcim/forms/bulk_edit.py:67 dcim/forms/bulk_edit.py:86 +#: dcim/forms/bulk_edit.py:172 dcim/forms/bulk_edit.py:1298 #: dcim/forms/bulk_import.py:59 dcim/forms/bulk_import.py:73 #: dcim/forms/bulk_import.py:136 dcim/forms/bulk_import.py:511 #: dcim/forms/bulk_import.py:778 dcim/forms/bulk_import.py:1033 -#: dcim/forms/filtersets.py:226 dcim/forms/model_forms.py:73 -#: dcim/forms/model_forms.py:94 dcim/forms/model_forms.py:172 -#: dcim/forms/model_forms.py:962 dcim/forms/model_forms.py:1392 -#: dcim/forms/object_import.py:181 dcim/tables/devices.py:680 -#: dcim/tables/devices.py:964 extras/tables/tables.py:181 +#: dcim/forms/filtersets.py:227 dcim/forms/model_forms.py:73 +#: dcim/forms/model_forms.py:92 dcim/forms/model_forms.py:169 +#: dcim/forms/model_forms.py:1007 dcim/forms/model_forms.py:1446 +#: dcim/forms/object_import.py:176 dcim/tables/devices.py:652 +#: dcim/tables/devices.py:937 extras/tables/tables.py:186 #: ipam/tables/fhrp.py:59 ipam/tables/ip.py:374 ipam/tables/services.py:44 -#: templates/dcim/interface.html:105 templates/dcim/interface.html:321 -#: templates/dcim/location.html:44 templates/dcim/region.html:38 -#: templates/dcim/sitegroup.html:38 templates/ipam/service.html:31 -#: templates/tenancy/contactgroup.html:32 templates/tenancy/tenantgroup.html:40 -#: templates/virtualization/vminterface.html:42 -#: templates/wireless/wirelesslangroup.html:38 tenancy/forms/bulk_edit.py:26 -#: tenancy/forms/bulk_edit.py:60 tenancy/forms/bulk_import.py:24 -#: tenancy/forms/bulk_import.py:58 tenancy/forms/model_forms.py:24 -#: tenancy/forms/model_forms.py:69 virtualization/forms/bulk_edit.py:206 +#: templates/dcim/interface.html:102 templates/dcim/interface.html:309 +#: templates/dcim/location.html:41 templates/dcim/region.html:37 +#: templates/dcim/sitegroup.html:37 templates/ipam/service.html:28 +#: templates/tenancy/contactgroup.html:29 templates/tenancy/tenantgroup.html:37 +#: templates/virtualization/vminterface.html:39 +#: templates/wireless/wirelesslangroup.html:37 tenancy/forms/bulk_edit.py:27 +#: tenancy/forms/bulk_edit.py:61 tenancy/forms/bulk_import.py:24 +#: tenancy/forms/bulk_import.py:58 tenancy/forms/model_forms.py:25 +#: tenancy/forms/model_forms.py:68 virtualization/forms/bulk_edit.py:207 #: virtualization/forms/bulk_import.py:151 -#: virtualization/tables/virtualmachines.py:155 wireless/forms/bulk_edit.py:23 -#: wireless/forms/bulk_import.py:21 wireless/forms/model_forms.py:20 +#: virtualization/tables/virtualmachines.py:155 wireless/forms/bulk_edit.py:24 +#: wireless/forms/bulk_import.py:21 wireless/forms/model_forms.py:21 msgid "Parent" msgstr "" @@ -1780,15 +1898,15 @@ msgstr "" msgid "Child" msgstr "" -#: dcim/choices.py:155 templates/dcim/device.html:345 -#: templates/dcim/rack.html:181 templates/dcim/rack_elevation_list.html:22 -#: templates/dcim/rackreservation.html:84 +#: dcim/choices.py:155 templates/dcim/device.html:331 +#: templates/dcim/rack.html:175 templates/dcim/rack_elevation_list.html:20 +#: templates/dcim/rackreservation.html:76 msgid "Front" msgstr "" -#: dcim/choices.py:156 templates/dcim/device.html:351 -#: templates/dcim/rack.html:187 templates/dcim/rack_elevation_list.html:23 -#: templates/dcim/rackreservation.html:90 +#: dcim/choices.py:156 templates/dcim/device.html:337 +#: templates/dcim/rack.html:181 templates/dcim/rack_elevation_list.html:21 +#: templates/dcim/rackreservation.html:82 msgid "Rear" msgstr "" @@ -1850,7 +1968,7 @@ msgstr "" #: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137 #: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346 -#: netbox/navigation/menu.py:188 +#: netbox/navigation/menu.py:187 msgid "Other" msgstr "" @@ -1866,10 +1984,10 @@ msgstr "" msgid "Virtual" msgstr "" -#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1398 -#: dcim/forms/filtersets.py:1233 dcim/forms/model_forms.py:888 -#: dcim/forms/model_forms.py:1286 netbox/navigation/menu.py:128 -#: netbox/navigation/menu.py:132 templates/dcim/interface.html:217 +#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408 +#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933 +#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127 +#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210 msgid "Wireless" msgstr "" @@ -1877,11 +1995,11 @@ msgstr "" msgid "Virtual interfaces" msgstr "" -#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1295 -#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:876 -#: dcim/tables/devices.py:684 templates/dcim/interface.html:109 -#: templates/virtualization/vminterface.html:46 -#: virtualization/forms/bulk_edit.py:211 +#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303 +#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919 +#: dcim/tables/devices.py:656 templates/dcim/interface.html:106 +#: templates/virtualization/vminterface.html:43 +#: virtualization/forms/bulk_edit.py:212 #: virtualization/forms/bulk_import.py:158 #: virtualization/tables/virtualmachines.py:159 msgid "Bridge" @@ -1907,10 +2025,10 @@ msgstr "" msgid "Cellular" msgstr "" -#: dcim/choices.py:1086 dcim/forms/filtersets.py:302 -#: dcim/forms/filtersets.py:736 dcim/forms/filtersets.py:876 -#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:53 -#: templates/dcim/virtualchassis_edit.html:55 +#: dcim/choices.py:1086 dcim/forms/filtersets.py:303 +#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874 +#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52 +#: templates/dcim/virtualchassis_edit.html:54 msgid "Serial" msgstr "" @@ -1930,7 +2048,7 @@ msgstr "" msgid "Full" msgstr "" -#: dcim/choices.py:1170 netbox/preferences.py:29 wireless/choices.py:480 +#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480 msgid "Auto" msgstr "" @@ -1979,7 +2097,7 @@ msgstr "" msgid "Fiber" msgstr "" -#: dcim/choices.py:1424 dcim/forms/filtersets.py:1140 +#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138 msgid "Connected" msgstr "" @@ -1987,7 +2105,7 @@ msgstr "" msgid "Kilometers" msgstr "" -#: dcim/choices.py:1444 templates/dcim/cable_trace.html:62 +#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65 msgid "Meters" msgstr "" @@ -1999,12 +2117,12 @@ msgstr "" msgid "Miles" msgstr "" -#: dcim/choices.py:1447 templates/dcim/cable_trace.html:63 +#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66 msgid "Feet" msgstr "" -#: dcim/choices.py:1463 templates/dcim/device.html:332 -#: templates/dcim/rack.html:157 +#: dcim/choices.py:1463 templates/dcim/device.html:319 +#: templates/dcim/rack.html:152 msgid "Kilograms" msgstr "" @@ -2012,7 +2130,7 @@ msgstr "" msgid "Grams" msgstr "" -#: dcim/choices.py:1465 templates/dcim/rack.html:158 +#: dcim/choices.py:1465 templates/dcim/rack.html:153 msgid "Pounds" msgstr "" @@ -2046,405 +2164,469 @@ msgstr "" msgid "Invalid WWN format: {value}" msgstr "" -#: dcim/filtersets.py:84 +#: dcim/filtersets.py:85 msgid "Parent region (ID)" msgstr "" -#: dcim/filtersets.py:90 +#: dcim/filtersets.py:91 msgid "Parent region (slug)" msgstr "" -#: dcim/filtersets.py:101 +#: dcim/filtersets.py:115 msgid "Parent site group (ID)" msgstr "" -#: dcim/filtersets.py:107 +#: dcim/filtersets.py:121 msgid "Parent site group (slug)" msgstr "" -#: dcim/filtersets.py:136 ipam/filtersets.py:797 ipam/filtersets.py:930 +#: dcim/filtersets.py:163 ipam/filtersets.py:841 ipam/filtersets.py:979 msgid "Group (ID)" msgstr "" -#: dcim/filtersets.py:142 +#: dcim/filtersets.py:169 msgid "Group (slug)" msgstr "" -#: dcim/filtersets.py:148 dcim/filtersets.py:153 +#: dcim/filtersets.py:175 dcim/filtersets.py:180 msgid "AS (ID)" msgstr "" -#: dcim/filtersets.py:221 dcim/filtersets.py:296 dcim/filtersets.py:395 -#: dcim/filtersets.py:939 dcim/filtersets.py:1243 dcim/filtersets.py:1981 +#: dcim/filtersets.py:245 +msgid "Parent location (ID)" +msgstr "" + +#: dcim/filtersets.py:251 +msgid "Parent location (slug)" +msgstr "" + +#: dcim/filtersets.py:257 dcim/filtersets.py:333 dcim/filtersets.py:432 +#: dcim/filtersets.py:1005 dcim/filtersets.py:1331 dcim/filtersets.py:2101 msgid "Location (ID)" msgstr "" -#: dcim/filtersets.py:228 dcim/filtersets.py:303 dcim/filtersets.py:402 -#: dcim/filtersets.py:1249 extras/filtersets.py:447 +#: dcim/filtersets.py:264 dcim/filtersets.py:340 dcim/filtersets.py:439 +#: dcim/filtersets.py:1337 extras/filtersets.py:494 msgid "Location (slug)" msgstr "" -#: dcim/filtersets.py:317 dcim/filtersets.py:774 dcim/filtersets.py:876 -#: dcim/filtersets.py:1649 ipam/filtersets.py:347 ipam/filtersets.py:459 -#: ipam/filtersets.py:940 virtualization/filtersets.py:210 +#: dcim/filtersets.py:354 dcim/filtersets.py:840 dcim/filtersets.py:942 +#: dcim/filtersets.py:1769 ipam/filtersets.py:381 ipam/filtersets.py:493 +#: ipam/filtersets.py:989 virtualization/filtersets.py:210 msgid "Role (ID)" msgstr "" -#: dcim/filtersets.py:323 dcim/filtersets.py:780 dcim/filtersets.py:882 -#: dcim/filtersets.py:1655 extras/filtersets.py:463 ipam/filtersets.py:353 -#: ipam/filtersets.py:465 ipam/filtersets.py:946 +#: dcim/filtersets.py:360 dcim/filtersets.py:846 dcim/filtersets.py:948 +#: dcim/filtersets.py:1775 extras/filtersets.py:510 ipam/filtersets.py:387 +#: ipam/filtersets.py:499 ipam/filtersets.py:995 #: virtualization/filtersets.py:216 msgid "Role (slug)" msgstr "" -#: dcim/filtersets.py:352 dcim/filtersets.py:944 dcim/filtersets.py:1254 -#: dcim/filtersets.py:2043 +#: dcim/filtersets.py:389 dcim/filtersets.py:1010 dcim/filtersets.py:1342 +#: dcim/filtersets.py:2163 msgid "Rack (ID)" msgstr "" -#: dcim/filtersets.py:406 extras/filtersets.py:234 extras/filtersets.py:278 -#: extras/filtersets.py:318 extras/filtersets.py:613 +#: dcim/filtersets.py:443 extras/filtersets.py:282 extras/filtersets.py:326 +#: extras/filtersets.py:365 extras/filtersets.py:664 users/filtersets.py:28 msgid "User (ID)" msgstr "" -#: dcim/filtersets.py:412 extras/filtersets.py:240 extras/filtersets.py:284 -#: extras/filtersets.py:324 users/filtersets.py:80 users/filtersets.py:140 +#: dcim/filtersets.py:449 extras/filtersets.py:288 extras/filtersets.py:332 +#: extras/filtersets.py:371 users/filtersets.py:103 users/filtersets.py:170 msgid "User (name)" msgstr "" -#: dcim/filtersets.py:440 dcim/filtersets.py:567 dcim/filtersets.py:764 -#: dcim/filtersets.py:815 dcim/filtersets.py:855 dcim/filtersets.py:1145 -#: dcim/filtersets.py:1639 +#: dcim/filtersets.py:481 dcim/filtersets.py:620 dcim/filtersets.py:830 +#: dcim/filtersets.py:881 dcim/filtersets.py:921 dcim/filtersets.py:1233 +#: dcim/filtersets.py:1759 msgid "Manufacturer (ID)" msgstr "" -#: dcim/filtersets.py:446 dcim/filtersets.py:573 dcim/filtersets.py:770 -#: dcim/filtersets.py:821 dcim/filtersets.py:861 dcim/filtersets.py:1151 -#: dcim/filtersets.py:1645 +#: dcim/filtersets.py:487 dcim/filtersets.py:626 dcim/filtersets.py:836 +#: dcim/filtersets.py:887 dcim/filtersets.py:927 dcim/filtersets.py:1239 +#: dcim/filtersets.py:1765 msgid "Manufacturer (slug)" msgstr "" -#: dcim/filtersets.py:450 +#: dcim/filtersets.py:491 msgid "Default platform (ID)" msgstr "" -#: dcim/filtersets.py:456 +#: dcim/filtersets.py:497 msgid "Default platform (slug)" msgstr "" -#: dcim/filtersets.py:459 dcim/forms/filtersets.py:452 +#: dcim/filtersets.py:500 dcim/forms/filtersets.py:452 msgid "Has a front image" msgstr "" -#: dcim/filtersets.py:463 dcim/forms/filtersets.py:459 +#: dcim/filtersets.py:504 dcim/forms/filtersets.py:459 msgid "Has a rear image" msgstr "" -#: dcim/filtersets.py:468 dcim/filtersets.py:577 dcim/filtersets.py:997 -#: dcim/forms/filtersets.py:466 dcim/forms/filtersets.py:563 -#: dcim/forms/filtersets.py:775 +#: dcim/filtersets.py:509 dcim/filtersets.py:630 dcim/filtersets.py:1068 +#: dcim/forms/filtersets.py:466 dcim/forms/filtersets.py:562 +#: dcim/forms/filtersets.py:776 msgid "Has console ports" msgstr "" -#: dcim/filtersets.py:472 dcim/filtersets.py:581 dcim/filtersets.py:1001 -#: dcim/forms/filtersets.py:473 dcim/forms/filtersets.py:570 -#: dcim/forms/filtersets.py:782 +#: dcim/filtersets.py:513 dcim/filtersets.py:634 dcim/filtersets.py:1072 +#: dcim/forms/filtersets.py:473 dcim/forms/filtersets.py:569 +#: dcim/forms/filtersets.py:783 msgid "Has console server ports" msgstr "" -#: dcim/filtersets.py:476 dcim/filtersets.py:585 dcim/filtersets.py:1005 -#: dcim/forms/filtersets.py:480 dcim/forms/filtersets.py:577 -#: dcim/forms/filtersets.py:789 +#: dcim/filtersets.py:517 dcim/filtersets.py:638 dcim/filtersets.py:1076 +#: dcim/forms/filtersets.py:480 dcim/forms/filtersets.py:576 +#: dcim/forms/filtersets.py:790 msgid "Has power ports" msgstr "" -#: dcim/filtersets.py:480 dcim/filtersets.py:589 dcim/filtersets.py:1009 -#: dcim/forms/filtersets.py:487 dcim/forms/filtersets.py:584 -#: dcim/forms/filtersets.py:796 +#: dcim/filtersets.py:521 dcim/filtersets.py:642 dcim/filtersets.py:1080 +#: dcim/forms/filtersets.py:487 dcim/forms/filtersets.py:583 +#: dcim/forms/filtersets.py:797 msgid "Has power outlets" msgstr "" -#: dcim/filtersets.py:484 dcim/filtersets.py:593 dcim/filtersets.py:1013 -#: dcim/forms/filtersets.py:494 dcim/forms/filtersets.py:591 -#: dcim/forms/filtersets.py:803 +#: dcim/filtersets.py:525 dcim/filtersets.py:646 dcim/filtersets.py:1084 +#: dcim/forms/filtersets.py:494 dcim/forms/filtersets.py:590 +#: dcim/forms/filtersets.py:804 msgid "Has interfaces" msgstr "" -#: dcim/filtersets.py:488 dcim/filtersets.py:597 dcim/filtersets.py:1017 -#: dcim/forms/filtersets.py:501 dcim/forms/filtersets.py:598 -#: dcim/forms/filtersets.py:810 +#: dcim/filtersets.py:529 dcim/filtersets.py:650 dcim/filtersets.py:1088 +#: dcim/forms/filtersets.py:501 dcim/forms/filtersets.py:597 +#: dcim/forms/filtersets.py:811 msgid "Has pass-through ports" msgstr "" -#: dcim/filtersets.py:492 dcim/filtersets.py:1021 dcim/forms/filtersets.py:515 +#: dcim/filtersets.py:533 dcim/filtersets.py:1092 dcim/forms/filtersets.py:515 msgid "Has module bays" msgstr "" -#: dcim/filtersets.py:496 dcim/filtersets.py:1025 dcim/forms/filtersets.py:508 +#: dcim/filtersets.py:537 dcim/filtersets.py:1096 dcim/forms/filtersets.py:508 msgid "Has device bays" msgstr "" -#: dcim/filtersets.py:500 dcim/forms/filtersets.py:522 +#: dcim/filtersets.py:541 dcim/forms/filtersets.py:522 msgid "Has inventory items" msgstr "" -#: dcim/filtersets.py:645 dcim/filtersets.py:871 dcim/filtersets.py:1275 +#: dcim/filtersets.py:698 dcim/filtersets.py:937 dcim/filtersets.py:1363 msgid "Device type (ID)" msgstr "" -#: dcim/filtersets.py:661 dcim/filtersets.py:1156 +#: dcim/filtersets.py:717 dcim/filtersets.py:1244 msgid "Module type (ID)" msgstr "" -#: dcim/filtersets.py:760 dcim/filtersets.py:1635 +#: dcim/filtersets.py:752 dcim/filtersets.py:1514 +msgid "Power port (ID)" +msgstr "" + +#: dcim/filtersets.py:826 dcim/filtersets.py:1755 msgid "Parent inventory item (ID)" msgstr "" -#: dcim/filtersets.py:803 dcim/filtersets.py:829 dcim/filtersets.py:993 +#: dcim/filtersets.py:869 dcim/filtersets.py:895 dcim/filtersets.py:1064 #: virtualization/filtersets.py:238 msgid "Config template (ID)" msgstr "" -#: dcim/filtersets.py:867 +#: dcim/filtersets.py:933 msgid "Device type (slug)" msgstr "" -#: dcim/filtersets.py:887 +#: dcim/filtersets.py:953 msgid "Parent Device (ID)" msgstr "" -#: dcim/filtersets.py:891 virtualization/filtersets.py:220 +#: dcim/filtersets.py:957 virtualization/filtersets.py:220 msgid "Platform (ID)" msgstr "" -#: dcim/filtersets.py:897 extras/filtersets.py:474 +#: dcim/filtersets.py:963 extras/filtersets.py:521 #: virtualization/filtersets.py:226 msgid "Platform (slug)" msgstr "" -#: dcim/filtersets.py:933 dcim/filtersets.py:1238 dcim/filtersets.py:1733 -#: dcim/filtersets.py:1975 dcim/filtersets.py:2034 +#: dcim/filtersets.py:999 dcim/filtersets.py:1326 dcim/filtersets.py:1853 +#: dcim/filtersets.py:2095 dcim/filtersets.py:2154 msgid "Site name (slug)" msgstr "" -#: dcim/filtersets.py:948 +#: dcim/filtersets.py:1015 +msgid "Parent bay (ID)" +msgstr "" + +#: dcim/filtersets.py:1019 msgid "VM cluster (ID)" msgstr "" -#: dcim/filtersets.py:954 +#: dcim/filtersets.py:1025 msgid "Device model (slug)" msgstr "" -#: dcim/filtersets.py:965 dcim/forms/bulk_edit.py:421 +#: dcim/filtersets.py:1036 dcim/forms/bulk_edit.py:423 msgid "Is full depth" msgstr "" -#: dcim/filtersets.py:969 dcim/forms/common.py:18 dcim/forms/filtersets.py:745 -#: dcim/forms/filtersets.py:1285 dcim/models/device_components.py:519 +#: dcim/filtersets.py:1040 dcim/forms/common.py:18 dcim/forms/filtersets.py:746 +#: dcim/forms/filtersets.py:1283 dcim/models/device_components.py:519 #: virtualization/filtersets.py:230 virtualization/filtersets.py:297 -#: virtualization/forms/filtersets.py:168 -#: virtualization/forms/filtersets.py:215 +#: virtualization/forms/filtersets.py:172 +#: virtualization/forms/filtersets.py:219 msgid "MAC address" msgstr "" -#: dcim/filtersets.py:976 dcim/forms/filtersets.py:754 +#: dcim/filtersets.py:1047 dcim/filtersets.py:1201 dcim/forms/filtersets.py:755 #: dcim/forms/filtersets.py:841 virtualization/filtersets.py:234 -#: virtualization/forms/filtersets.py:172 +#: virtualization/forms/filtersets.py:176 msgid "Has a primary IP" msgstr "" -#: dcim/filtersets.py:980 +#: dcim/filtersets.py:1051 msgid "Has an out-of-band IP" msgstr "" -#: dcim/filtersets.py:985 +#: dcim/filtersets.py:1056 msgid "Virtual chassis (ID)" msgstr "" -#: dcim/filtersets.py:989 +#: dcim/filtersets.py:1060 msgid "Is a virtual chassis member" msgstr "" -#: dcim/filtersets.py:1030 +#: dcim/filtersets.py:1101 msgid "OOB IP (ID)" msgstr "" -#: dcim/filtersets.py:1162 +#: dcim/filtersets.py:1184 +msgid "VDC (ID)" +msgstr "" + +#: dcim/filtersets.py:1189 +msgid "Device model" +msgstr "" + +#: dcim/filtersets.py:1194 ipam/filtersets.py:632 vpn/filtersets.py:102 +#: vpn/filtersets.py:420 +msgid "Interface (ID)" +msgstr "" + +#: dcim/filtersets.py:1250 msgid "Module type (model)" msgstr "" -#: dcim/filtersets.py:1168 +#: dcim/filtersets.py:1256 msgid "Module Bay (ID)" msgstr "" -#: dcim/filtersets.py:1172 dcim/filtersets.py:1264 ipam/filtersets.py:577 -#: ipam/filtersets.py:807 ipam/filtersets.py:1026 -#: virtualization/filtersets.py:161 vpn/filtersets.py:362 +#: dcim/filtersets.py:1260 dcim/filtersets.py:1352 ipam/filtersets.py:611 +#: ipam/filtersets.py:851 ipam/filtersets.py:1075 +#: virtualization/filtersets.py:161 vpn/filtersets.py:398 msgid "Device (ID)" msgstr "" -#: dcim/filtersets.py:1260 +#: dcim/filtersets.py:1348 msgid "Rack (name)" msgstr "" -#: dcim/filtersets.py:1270 ipam/filtersets.py:572 ipam/filtersets.py:802 -#: ipam/filtersets.py:1032 vpn/filtersets.py:357 +#: dcim/filtersets.py:1358 ipam/filtersets.py:606 ipam/filtersets.py:846 +#: ipam/filtersets.py:1081 vpn/filtersets.py:393 msgid "Device (name)" msgstr "" -#: dcim/filtersets.py:1281 +#: dcim/filtersets.py:1369 msgid "Device type (model)" msgstr "" -#: dcim/filtersets.py:1286 dcim/filtersets.py:1309 +#: dcim/filtersets.py:1374 msgid "Device role (ID)" msgstr "" -#: dcim/filtersets.py:1292 dcim/filtersets.py:1315 +#: dcim/filtersets.py:1380 msgid "Device role (slug)" msgstr "" -#: dcim/filtersets.py:1297 +#: dcim/filtersets.py:1385 msgid "Virtual Chassis (ID)" msgstr "" -#: dcim/filtersets.py:1303 dcim/forms/filtersets.py:106 -#: dcim/tables/devices.py:239 netbox/navigation/menu.py:67 -#: templates/dcim/device.html:123 templates/dcim/device_edit.html:93 +#: dcim/filtersets.py:1391 dcim/forms/filtersets.py:107 +#: dcim/tables/devices.py:211 netbox/navigation/menu.py:66 +#: templates/dcim/device.html:119 templates/dcim/device_edit.html:93 #: templates/dcim/virtualchassis.html:20 #: templates/dcim/virtualchassis_add.html:8 -#: templates/dcim/virtualchassis_edit.html:25 +#: templates/dcim/virtualchassis_edit.html:24 msgid "Virtual Chassis" msgstr "" -#: dcim/filtersets.py:1335 +#: dcim/filtersets.py:1411 msgid "Module (ID)" msgstr "" -#: dcim/filtersets.py:1439 ipam/forms/bulk_import.py:188 +#: dcim/filtersets.py:1418 +msgid "Cable (ID)" +msgstr "" + +#: dcim/filtersets.py:1527 ipam/forms/bulk_import.py:188 #: vpn/forms/bulk_import.py:308 msgid "Assigned VLAN" msgstr "" -#: dcim/filtersets.py:1443 +#: dcim/filtersets.py:1531 msgid "Assigned VID" msgstr "" -#: dcim/filtersets.py:1448 dcim/forms/bulk_edit.py:1374 -#: dcim/forms/bulk_import.py:836 dcim/forms/filtersets.py:1328 -#: dcim/forms/model_forms.py:1271 dcim/models/device_components.py:712 -#: dcim/tables/devices.py:646 ipam/filtersets.py:282 ipam/filtersets.py:293 -#: ipam/filtersets.py:449 ipam/filtersets.py:550 ipam/filtersets.py:561 -#: ipam/forms/bulk_edit.py:226 ipam/forms/bulk_edit.py:281 -#: ipam/forms/bulk_edit.py:323 ipam/forms/bulk_import.py:156 +#: dcim/filtersets.py:1536 dcim/forms/bulk_edit.py:1382 +#: dcim/forms/bulk_import.py:836 dcim/forms/filtersets.py:1326 +#: dcim/forms/model_forms.py:1322 dcim/models/device_components.py:712 +#: dcim/tables/devices.py:618 ipam/filtersets.py:316 ipam/filtersets.py:327 +#: ipam/filtersets.py:483 ipam/filtersets.py:584 ipam/filtersets.py:595 +#: ipam/forms/bulk_edit.py:227 ipam/forms/bulk_edit.py:282 +#: ipam/forms/bulk_edit.py:324 ipam/forms/bulk_import.py:156 #: ipam/forms/bulk_import.py:242 ipam/forms/bulk_import.py:278 -#: ipam/forms/filtersets.py:66 ipam/forms/filtersets.py:167 -#: ipam/forms/filtersets.py:295 ipam/forms/model_forms.py:59 -#: ipam/forms/model_forms.py:203 ipam/forms/model_forms.py:246 -#: ipam/forms/model_forms.py:290 ipam/forms/model_forms.py:398 -#: ipam/forms/model_forms.py:412 ipam/forms/model_forms.py:426 +#: ipam/forms/filtersets.py:67 ipam/forms/filtersets.py:171 +#: ipam/forms/filtersets.py:302 ipam/forms/model_forms.py:60 +#: ipam/forms/model_forms.py:200 ipam/forms/model_forms.py:245 +#: ipam/forms/model_forms.py:298 ipam/forms/model_forms.py:420 +#: ipam/forms/model_forms.py:434 ipam/forms/model_forms.py:448 #: ipam/models/ip.py:232 ipam/models/ip.py:511 ipam/models/ip.py:719 #: ipam/models/vrfs.py:62 ipam/tables/ip.py:241 ipam/tables/ip.py:306 #: ipam/tables/ip.py:356 ipam/tables/ip.py:445 -#: templates/dcim/interface.html:138 templates/ipam/ipaddress.html:21 -#: templates/ipam/iprange.html:43 templates/ipam/prefix.html:20 -#: templates/ipam/vrf.html:7 templates/ipam/vrf.html:14 -#: templates/virtualization/vminterface.html:50 -#: virtualization/forms/bulk_edit.py:260 +#: templates/dcim/interface.html:133 templates/ipam/ipaddress.html:18 +#: templates/ipam/iprange.html:40 templates/ipam/prefix.html:19 +#: templates/ipam/vrf.html:7 templates/ipam/vrf.html:13 +#: templates/virtualization/vminterface.html:47 +#: virtualization/forms/bulk_edit.py:261 #: virtualization/forms/bulk_import.py:171 -#: virtualization/forms/filtersets.py:220 -#: virtualization/forms/model_forms.py:347 -#: virtualization/models/virtualmachines.py:348 +#: virtualization/forms/filtersets.py:224 +#: virtualization/forms/model_forms.py:344 +#: virtualization/models/virtualmachines.py:350 #: virtualization/tables/virtualmachines.py:136 msgid "VRF" msgstr "" -#: dcim/filtersets.py:1454 ipam/filtersets.py:288 ipam/filtersets.py:299 -#: ipam/filtersets.py:455 ipam/filtersets.py:556 ipam/filtersets.py:567 +#: dcim/filtersets.py:1542 ipam/filtersets.py:322 ipam/filtersets.py:333 +#: ipam/filtersets.py:489 ipam/filtersets.py:590 ipam/filtersets.py:601 msgid "VRF (RD)" msgstr "" -#: dcim/filtersets.py:1459 ipam/filtersets.py:967 vpn/filtersets.py:325 +#: dcim/filtersets.py:1547 ipam/filtersets.py:1016 vpn/filtersets.py:361 msgid "L2VPN (ID)" msgstr "" -#: dcim/filtersets.py:1465 dcim/forms/filtersets.py:1333 -#: dcim/tables/devices.py:594 ipam/filtersets.py:973 -#: ipam/forms/filtersets.py:499 ipam/tables/vlans.py:133 -#: templates/dcim/interface.html:94 templates/ipam/vlan.html:69 -#: templates/vpn/l2vpntermination.html:15 -#: virtualization/forms/filtersets.py:225 vpn/forms/bulk_import.py:280 -#: vpn/forms/filtersets.py:242 vpn/forms/model_forms.py:408 -#: vpn/forms/model_forms.py:426 vpn/models/l2vpn.py:63 vpn/tables/l2vpn.py:55 +#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331 +#: dcim/tables/devices.py:566 ipam/filtersets.py:1022 +#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133 +#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66 +#: templates/vpn/l2vpntermination.html:12 +#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280 +#: vpn/forms/filtersets.py:246 vpn/forms/model_forms.py:409 +#: vpn/forms/model_forms.py:427 vpn/models/l2vpn.py:63 vpn/tables/l2vpn.py:55 msgid "L2VPN" msgstr "" -#: dcim/filtersets.py:1497 +#: dcim/filtersets.py:1585 msgid "Virtual Chassis Interfaces for Device" msgstr "" -#: dcim/filtersets.py:1502 +#: dcim/filtersets.py:1590 msgid "Virtual Chassis Interfaces for Device (ID)" msgstr "" -#: dcim/filtersets.py:1506 +#: dcim/filtersets.py:1594 msgid "Kind of interface" msgstr "" -#: dcim/filtersets.py:1511 virtualization/filtersets.py:289 +#: dcim/filtersets.py:1599 virtualization/filtersets.py:289 msgid "Parent interface (ID)" msgstr "" -#: dcim/filtersets.py:1516 virtualization/filtersets.py:294 +#: dcim/filtersets.py:1604 virtualization/filtersets.py:294 msgid "Bridged interface (ID)" msgstr "" -#: dcim/filtersets.py:1521 +#: dcim/filtersets.py:1609 msgid "LAG interface (ID)" msgstr "" -#: dcim/filtersets.py:1690 +#: dcim/filtersets.py:1636 dcim/filtersets.py:1648 +#: dcim/forms/filtersets.py:1243 dcim/forms/model_forms.py:1634 +#: templates/dcim/virtualdevicecontext.html:15 +msgid "Virtual Device Context" +msgstr "" + +#: dcim/filtersets.py:1642 +msgid "Virtual Device Context (Identifier)" +msgstr "" + +#: dcim/filtersets.py:1653 templates/wireless/wirelesslan.html:11 +#: wireless/forms/model_forms.py:53 +msgid "Wireless LAN" +msgstr "" + +#: dcim/filtersets.py:1657 dcim/tables/devices.py:605 +msgid "Wireless link" +msgstr "" + +#: dcim/filtersets.py:1727 +msgid "Installed module (ID)" +msgstr "" + +#: dcim/filtersets.py:1738 +msgid "Installed device (ID)" +msgstr "" + +#: dcim/filtersets.py:1744 +msgid "Installed device (name)" +msgstr "" + +#: dcim/filtersets.py:1810 msgid "Master (ID)" msgstr "" -#: dcim/filtersets.py:1696 +#: dcim/filtersets.py:1816 msgid "Master (name)" msgstr "" -#: dcim/filtersets.py:1738 tenancy/filtersets.py:221 +#: dcim/filtersets.py:1858 tenancy/filtersets.py:246 msgid "Tenant (ID)" msgstr "" -#: dcim/filtersets.py:1744 extras/filtersets.py:523 tenancy/filtersets.py:227 +#: dcim/filtersets.py:1864 extras/filtersets.py:570 tenancy/filtersets.py:252 msgid "Tenant (slug)" msgstr "" -#: dcim/filtersets.py:1780 dcim/forms/filtersets.py:990 +#: dcim/filtersets.py:1900 dcim/forms/filtersets.py:988 msgid "Unterminated" msgstr "" -#: dcim/filtersets.py:2038 +#: dcim/filtersets.py:2158 msgid "Power panel (ID)" msgstr "" #: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 -#: extras/forms/model_forms.py:454 extras/forms/model_forms.py:505 -#: netbox/forms/base.py:77 netbox/forms/mixins.py:81 -#: netbox/tables/columns.py:448 -#: templates/circuits/inc/circuit_termination.html:119 -#: templates/generic/bulk_edit.html:81 templates/inc/panels/tags.html:5 +#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498 +#: netbox/forms/base.py:84 netbox/forms/mixins.py:81 +#: netbox/tables/columns.py:458 +#: templates/circuits/inc/circuit_termination.html:118 +#: templates/generic/bulk_edit.html:65 templates/inc/panels/tags.html:5 #: utilities/forms/fields/fields.py:81 msgid "Tags" msgstr "" -#: dcim/forms/bulk_create.py:112 dcim/forms/filtersets.py:1390 -#: dcim/forms/model_forms.py:426 dcim/forms/model_forms.py:475 -#: dcim/forms/object_create.py:196 dcim/forms/object_create.py:352 -#: dcim/tables/devices.py:198 dcim/tables/devices.py:729 -#: dcim/tables/devicetypes.py:242 templates/dcim/device.html:45 -#: templates/dcim/device.html:129 templates/dcim/modulebay.html:35 -#: templates/dcim/virtualchassis.html:59 -#: templates/dcim/virtualchassis_edit.html:56 +#: dcim/forms/bulk_create.py:112 dcim/forms/filtersets.py:1388 +#: dcim/forms/model_forms.py:431 dcim/forms/model_forms.py:486 +#: dcim/forms/object_create.py:197 dcim/forms/object_create.py:353 +#: dcim/tables/devices.py:170 dcim/tables/devices.py:702 +#: dcim/tables/devicetypes.py:242 templates/dcim/device.html:42 +#: templates/dcim/device.html:129 templates/dcim/modulebay.html:34 +#: templates/dcim/virtualchassis.html:66 +#: templates/dcim/virtualchassis_edit.html:55 msgid "Position" msgstr "" @@ -2454,596 +2636,590 @@ msgid "" "created.)" msgstr "" -#: dcim/forms/bulk_edit.py:115 dcim/forms/bulk_import.py:99 -#: dcim/forms/model_forms.py:120 dcim/tables/sites.py:89 ipam/filtersets.py:936 -#: ipam/forms/bulk_edit.py:528 ipam/forms/bulk_import.py:444 -#: ipam/forms/model_forms.py:495 ipam/tables/fhrp.py:67 +#: dcim/forms/bulk_edit.py:116 dcim/forms/bulk_import.py:99 +#: dcim/forms/model_forms.py:116 dcim/tables/sites.py:89 ipam/filtersets.py:985 +#: ipam/forms/bulk_edit.py:531 ipam/forms/bulk_import.py:444 +#: ipam/forms/model_forms.py:517 ipam/tables/fhrp.py:67 #: ipam/tables/vlans.py:118 ipam/tables/vlans.py:221 -#: templates/dcim/interface.html:294 templates/dcim/site.html:37 -#: templates/ipam/inc/panels/fhrp_groups.html:10 templates/ipam/vlan.html:30 -#: templates/tenancy/contact.html:22 templates/tenancy/tenant.html:21 +#: templates/dcim/interface.html:284 templates/dcim/site.html:36 +#: templates/ipam/inc/panels/fhrp_groups.html:23 templates/ipam/vlan.html:27 +#: templates/tenancy/contact.html:21 templates/tenancy/tenant.html:20 #: templates/users/group.html:6 templates/users/group.html:14 -#: templates/virtualization/cluster.html:32 templates/vpn/tunnel.html:30 -#: templates/wireless/wirelesslan.html:19 tenancy/forms/bulk_edit.py:42 -#: tenancy/forms/bulk_edit.py:93 tenancy/forms/bulk_import.py:40 -#: tenancy/forms/bulk_import.py:81 tenancy/forms/filtersets.py:47 -#: tenancy/forms/filtersets.py:77 tenancy/forms/filtersets.py:96 -#: tenancy/forms/model_forms.py:46 tenancy/forms/model_forms.py:102 -#: tenancy/forms/model_forms.py:124 tenancy/tables/contacts.py:60 +#: templates/virtualization/cluster.html:29 templates/vpn/tunnel.html:29 +#: templates/wireless/wirelesslan.html:18 tenancy/forms/bulk_edit.py:43 +#: tenancy/forms/bulk_edit.py:94 tenancy/forms/bulk_import.py:40 +#: tenancy/forms/bulk_import.py:81 tenancy/forms/filtersets.py:48 +#: tenancy/forms/filtersets.py:78 tenancy/forms/filtersets.py:97 +#: tenancy/forms/model_forms.py:45 tenancy/forms/model_forms.py:97 +#: tenancy/forms/model_forms.py:122 tenancy/tables/contacts.py:60 #: tenancy/tables/contacts.py:107 tenancy/tables/tenants.py:42 -#: users/filtersets.py:42 users/filtersets.py:145 users/forms/filtersets.py:32 +#: users/filtersets.py:57 users/filtersets.py:175 users/forms/filtersets.py:32 #: users/forms/filtersets.py:38 users/forms/filtersets.py:80 -#: virtualization/forms/bulk_edit.py:64 virtualization/forms/bulk_import.py:47 -#: virtualization/forms/filtersets.py:84 virtualization/forms/model_forms.py:69 -#: virtualization/tables/clusters.py:70 vpn/forms/bulk_edit.py:111 -#: vpn/forms/bulk_import.py:158 vpn/forms/filtersets.py:113 +#: virtualization/forms/bulk_edit.py:65 virtualization/forms/bulk_import.py:47 +#: virtualization/forms/filtersets.py:85 virtualization/forms/model_forms.py:66 +#: virtualization/tables/clusters.py:70 vpn/forms/bulk_edit.py:112 +#: vpn/forms/bulk_import.py:158 vpn/forms/filtersets.py:116 #: vpn/tables/crypto.py:31 vpn/tables/tunnels.py:44 -#: wireless/forms/bulk_edit.py:47 wireless/forms/bulk_import.py:36 -#: wireless/forms/filtersets.py:45 wireless/forms/model_forms.py:41 +#: wireless/forms/bulk_edit.py:48 wireless/forms/bulk_import.py:36 +#: wireless/forms/filtersets.py:46 wireless/forms/model_forms.py:40 #: wireless/tables/wirelesslan.py:48 msgid "Group" msgstr "" -#: dcim/forms/bulk_edit.py:130 +#: dcim/forms/bulk_edit.py:131 msgid "Contact name" msgstr "" -#: dcim/forms/bulk_edit.py:135 +#: dcim/forms/bulk_edit.py:136 msgid "Contact phone" msgstr "" -#: dcim/forms/bulk_edit.py:141 +#: dcim/forms/bulk_edit.py:142 msgid "Contact E-mail" msgstr "" -#: dcim/forms/bulk_edit.py:144 dcim/forms/bulk_import.py:122 -#: dcim/forms/model_forms.py:131 +#: dcim/forms/bulk_edit.py:145 dcim/forms/bulk_import.py:122 +#: dcim/forms/model_forms.py:127 msgid "Time zone" msgstr "" -#: dcim/forms/bulk_edit.py:266 dcim/forms/bulk_edit.py:1152 -#: dcim/forms/bulk_edit.py:1539 dcim/forms/bulk_import.py:207 -#: dcim/forms/bulk_import.py:1021 dcim/forms/filtersets.py:299 -#: dcim/forms/filtersets.py:704 dcim/forms/filtersets.py:1417 -#: dcim/forms/model_forms.py:224 dcim/forms/model_forms.py:970 -#: dcim/forms/model_forms.py:1400 dcim/forms/object_import.py:186 -#: dcim/tables/devices.py:202 dcim/tables/devices.py:837 -#: dcim/tables/devices.py:948 dcim/tables/devicetypes.py:300 -#: dcim/tables/racks.py:69 extras/filtersets.py:457 ipam/forms/bulk_edit.py:245 -#: ipam/forms/bulk_edit.py:294 ipam/forms/bulk_edit.py:342 -#: ipam/forms/bulk_edit.py:546 ipam/forms/bulk_import.py:196 +#: dcim/forms/bulk_edit.py:267 dcim/forms/bulk_edit.py:1160 +#: dcim/forms/bulk_edit.py:1548 dcim/forms/bulk_import.py:207 +#: dcim/forms/bulk_import.py:1021 dcim/forms/filtersets.py:300 +#: dcim/forms/filtersets.py:705 dcim/forms/filtersets.py:1418 +#: dcim/forms/model_forms.py:219 dcim/forms/model_forms.py:1015 +#: dcim/forms/model_forms.py:1454 dcim/forms/object_import.py:181 +#: dcim/tables/devices.py:174 dcim/tables/devices.py:810 +#: dcim/tables/devices.py:921 dcim/tables/devicetypes.py:300 +#: dcim/tables/racks.py:69 extras/filtersets.py:504 ipam/forms/bulk_edit.py:246 +#: ipam/forms/bulk_edit.py:295 ipam/forms/bulk_edit.py:343 +#: ipam/forms/bulk_edit.py:549 ipam/forms/bulk_import.py:196 #: ipam/forms/bulk_import.py:261 ipam/forms/bulk_import.py:297 -#: ipam/forms/bulk_import.py:463 ipam/forms/filtersets.py:232 -#: ipam/forms/filtersets.py:278 ipam/forms/filtersets.py:346 -#: ipam/forms/filtersets.py:490 ipam/forms/model_forms.py:187 -#: ipam/forms/model_forms.py:222 ipam/forms/model_forms.py:249 -#: ipam/forms/model_forms.py:651 ipam/tables/ip.py:257 ipam/tables/ip.py:313 +#: ipam/forms/bulk_import.py:463 ipam/forms/filtersets.py:236 +#: ipam/forms/filtersets.py:282 ipam/forms/filtersets.py:353 +#: ipam/forms/filtersets.py:497 ipam/forms/model_forms.py:186 +#: ipam/forms/model_forms.py:219 ipam/forms/model_forms.py:248 +#: ipam/forms/model_forms.py:680 ipam/tables/ip.py:257 ipam/tables/ip.py:313 #: ipam/tables/ip.py:363 ipam/tables/vlans.py:126 ipam/tables/vlans.py:230 -#: templates/dcim/device.html:187 -#: templates/dcim/inc/panels/inventory_items.html:12 -#: templates/dcim/interface.html:231 templates/dcim/inventoryitem.html:37 -#: templates/dcim/rack.html:50 templates/ipam/ipaddress.html:44 -#: templates/ipam/iprange.html:53 templates/ipam/prefix.html:78 -#: templates/ipam/role.html:20 templates/ipam/vlan.html:55 -#: templates/virtualization/virtualmachine.html:26 -#: templates/vpn/tunneltermination.html:18 +#: templates/dcim/device.html:179 +#: templates/dcim/inc/panels/inventory_items.html:20 +#: templates/dcim/interface.html:223 templates/dcim/inventoryitem.html:36 +#: templates/dcim/rack.html:47 templates/ipam/ipaddress.html:41 +#: templates/ipam/iprange.html:50 templates/ipam/prefix.html:77 +#: templates/ipam/role.html:19 templates/ipam/vlan.html:52 +#: templates/virtualization/virtualmachine.html:23 +#: templates/vpn/tunneltermination.html:17 #: templates/wireless/inc/wirelesslink_interface.html:20 -#: tenancy/forms/bulk_edit.py:141 tenancy/forms/filtersets.py:106 -#: tenancy/forms/model_forms.py:139 tenancy/tables/contacts.py:102 -#: virtualization/forms/bulk_edit.py:144 +#: tenancy/forms/bulk_edit.py:142 tenancy/forms/filtersets.py:107 +#: tenancy/forms/model_forms.py:137 tenancy/tables/contacts.py:102 +#: virtualization/forms/bulk_edit.py:145 #: virtualization/forms/bulk_import.py:106 -#: virtualization/forms/filtersets.py:153 -#: virtualization/forms/model_forms.py:198 -#: virtualization/tables/virtualmachines.py:74 vpn/forms/bulk_edit.py:86 -#: vpn/forms/bulk_import.py:81 vpn/forms/filtersets.py:84 -#: vpn/forms/model_forms.py:77 vpn/forms/model_forms.py:112 +#: virtualization/forms/filtersets.py:157 +#: virtualization/forms/model_forms.py:195 +#: virtualization/tables/virtualmachines.py:74 vpn/forms/bulk_edit.py:87 +#: vpn/forms/bulk_import.py:81 vpn/forms/filtersets.py:85 +#: vpn/forms/model_forms.py:78 vpn/forms/model_forms.py:113 #: vpn/tables/tunnels.py:82 msgid "Role" msgstr "" -#: dcim/forms/bulk_edit.py:273 dcim/forms/bulk_edit.py:605 -#: dcim/forms/bulk_edit.py:654 templates/dcim/device.html:106 -#: templates/dcim/module.html:75 templates/dcim/modulebay.html:69 -#: templates/dcim/rack.html:58 +#: dcim/forms/bulk_edit.py:274 dcim/forms/bulk_edit.py:610 +#: dcim/forms/bulk_edit.py:662 templates/dcim/device.html:103 +#: templates/dcim/module.html:74 templates/dcim/modulebay.html:66 +#: templates/dcim/rack.html:55 msgid "Serial Number" msgstr "" -#: dcim/forms/bulk_edit.py:276 dcim/forms/filtersets.py:306 -#: dcim/forms/filtersets.py:740 dcim/forms/filtersets.py:880 +#: dcim/forms/bulk_edit.py:277 dcim/forms/filtersets.py:307 +#: dcim/forms/filtersets.py:741 dcim/forms/filtersets.py:878 #: dcim/forms/filtersets.py:1430 msgid "Asset tag" msgstr "" -#: dcim/forms/bulk_edit.py:286 dcim/forms/bulk_import.py:220 -#: dcim/forms/filtersets.py:291 templates/dcim/rack.html:91 -#: templates/dcim/rack_edit.html:48 +#: dcim/forms/bulk_edit.py:287 dcim/forms/bulk_import.py:220 +#: dcim/forms/filtersets.py:292 templates/dcim/rack.html:86 msgid "Width" msgstr "" -#: dcim/forms/bulk_edit.py:292 +#: dcim/forms/bulk_edit.py:293 templates/dcim/devicetype.html:37 msgid "Height (U)" msgstr "" -#: dcim/forms/bulk_edit.py:297 +#: dcim/forms/bulk_edit.py:298 msgid "Descending units" msgstr "" -#: dcim/forms/bulk_edit.py:300 +#: dcim/forms/bulk_edit.py:301 msgid "Outer width" msgstr "" -#: dcim/forms/bulk_edit.py:305 +#: dcim/forms/bulk_edit.py:306 msgid "Outer depth" msgstr "" -#: dcim/forms/bulk_edit.py:310 dcim/forms/bulk_import.py:225 +#: dcim/forms/bulk_edit.py:311 dcim/forms/bulk_import.py:225 msgid "Outer unit" msgstr "" -#: dcim/forms/bulk_edit.py:315 +#: dcim/forms/bulk_edit.py:316 msgid "Mounting depth" msgstr "" -#: dcim/forms/bulk_edit.py:320 dcim/forms/bulk_edit.py:349 -#: dcim/forms/bulk_edit.py:434 dcim/forms/bulk_edit.py:457 -#: dcim/forms/bulk_edit.py:473 dcim/forms/bulk_edit.py:493 +#: dcim/forms/bulk_edit.py:321 dcim/forms/bulk_edit.py:351 +#: dcim/forms/bulk_edit.py:436 dcim/forms/bulk_edit.py:459 +#: dcim/forms/bulk_edit.py:475 dcim/forms/bulk_edit.py:495 #: dcim/forms/bulk_import.py:332 dcim/forms/bulk_import.py:358 -#: dcim/forms/filtersets.py:250 dcim/forms/filtersets.py:311 -#: dcim/forms/filtersets.py:335 dcim/forms/filtersets.py:423 +#: dcim/forms/filtersets.py:251 dcim/forms/filtersets.py:312 +#: dcim/forms/filtersets.py:336 dcim/forms/filtersets.py:423 #: dcim/forms/filtersets.py:529 dcim/forms/filtersets.py:548 -#: dcim/forms/filtersets.py:605 dcim/forms/model_forms.py:341 -#: dcim/tables/devicetypes.py:103 dcim/tables/modules.py:35 -#: dcim/tables/racks.py:103 extras/forms/bulk_edit.py:45 -#: extras/forms/bulk_edit.py:107 extras/forms/bulk_edit.py:157 -#: extras/forms/bulk_edit.py:277 extras/forms/filtersets.py:60 -#: extras/forms/filtersets.py:133 extras/forms/filtersets.py:220 -#: ipam/forms/bulk_edit.py:187 templates/dcim/device.html:329 -#: templates/dcim/devicetype.html:52 templates/dcim/moduletype.html:31 -#: templates/dcim/rack_edit.html:60 templates/dcim/rack_edit.html:63 -#: templates/extras/configcontext.html:18 templates/extras/customlink.html:26 -#: templates/extras/savedfilter.html:34 templates/ipam/role.html:33 +#: dcim/forms/filtersets.py:604 dcim/forms/model_forms.py:232 +#: dcim/forms/model_forms.py:346 dcim/tables/devicetypes.py:103 +#: dcim/tables/modules.py:35 dcim/tables/racks.py:103 +#: extras/forms/bulk_edit.py:45 extras/forms/bulk_edit.py:108 +#: extras/forms/bulk_edit.py:158 extras/forms/bulk_edit.py:278 +#: extras/forms/filtersets.py:61 extras/forms/filtersets.py:134 +#: extras/forms/filtersets.py:221 ipam/forms/bulk_edit.py:188 +#: templates/dcim/device.html:316 templates/dcim/devicetype.html:49 +#: templates/dcim/moduletype.html:30 templates/extras/configcontext.html:17 +#: templates/extras/customlink.html:25 templates/extras/savedfilter.html:33 +#: templates/ipam/role.html:30 msgid "Weight" msgstr "" -#: dcim/forms/bulk_edit.py:325 dcim/forms/filtersets.py:316 +#: dcim/forms/bulk_edit.py:326 dcim/forms/filtersets.py:317 msgid "Max weight" msgstr "" -#: dcim/forms/bulk_edit.py:330 dcim/forms/bulk_edit.py:439 -#: dcim/forms/bulk_edit.py:478 dcim/forms/bulk_import.py:231 +#: dcim/forms/bulk_edit.py:331 dcim/forms/bulk_edit.py:441 +#: dcim/forms/bulk_edit.py:480 dcim/forms/bulk_import.py:231 #: dcim/forms/bulk_import.py:337 dcim/forms/bulk_import.py:363 -#: dcim/forms/filtersets.py:321 dcim/forms/filtersets.py:533 -#: dcim/forms/filtersets.py:609 +#: dcim/forms/filtersets.py:322 dcim/forms/filtersets.py:533 +#: dcim/forms/filtersets.py:608 msgid "Weight unit" msgstr "" -#: dcim/forms/bulk_edit.py:344 dcim/forms/bulk_edit.py:800 +#: dcim/forms/bulk_edit.py:345 dcim/forms/bulk_edit.py:808 #: dcim/forms/bulk_import.py:270 dcim/forms/bulk_import.py:273 #: dcim/forms/bulk_import.py:498 dcim/forms/bulk_import.py:1309 -#: dcim/forms/bulk_import.py:1313 dcim/forms/filtersets.py:101 -#: dcim/forms/filtersets.py:339 dcim/forms/filtersets.py:353 -#: dcim/forms/filtersets.py:391 dcim/forms/filtersets.py:699 -#: dcim/forms/filtersets.py:948 dcim/forms/filtersets.py:1080 -#: dcim/forms/model_forms.py:241 dcim/forms/model_forms.py:417 -#: dcim/forms/model_forms.py:669 dcim/forms/object_create.py:399 -#: dcim/tables/devices.py:194 dcim/tables/power.py:70 dcim/tables/racks.py:148 -#: ipam/forms/bulk_edit.py:464 ipam/forms/filtersets.py:427 -#: ipam/forms/model_forms.py:575 templates/dcim/device.html:30 -#: templates/dcim/inc/cable_termination.html:16 -#: templates/dcim/powerfeed.html:31 templates/dcim/rack.html:14 -#: templates/dcim/rack/base.html:4 templates/dcim/rack_edit.html:8 -#: templates/dcim/rackreservation.html:20 -#: templates/dcim/rackreservation.html:39 -#: virtualization/forms/model_forms.py:116 +#: dcim/forms/bulk_import.py:1313 dcim/forms/filtersets.py:102 +#: dcim/forms/filtersets.py:340 dcim/forms/filtersets.py:354 +#: dcim/forms/filtersets.py:392 dcim/forms/filtersets.py:700 +#: dcim/forms/filtersets.py:946 dcim/forms/filtersets.py:1078 +#: dcim/forms/model_forms.py:226 dcim/forms/model_forms.py:248 +#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700 +#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166 +#: dcim/tables/power.py:70 dcim/tables/racks.py:148 ipam/forms/bulk_edit.py:465 +#: ipam/forms/filtersets.py:434 ipam/forms/model_forms.py:601 +#: templates/dcim/device.html:29 templates/dcim/inc/cable_termination.html:16 +#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13 +#: templates/dcim/rack/base.html:4 templates/dcim/rackreservation.html:19 +#: templates/dcim/rackreservation.html:36 +#: virtualization/forms/model_forms.py:113 msgid "Rack" msgstr "" -#: dcim/forms/bulk_edit.py:346 dcim/forms/bulk_edit.py:623 -#: dcim/forms/filtersets.py:247 dcim/forms/filtersets.py:332 -#: dcim/forms/filtersets.py:417 dcim/forms/filtersets.py:543 -#: dcim/forms/filtersets.py:652 dcim/forms/filtersets.py:853 -#: dcim/forms/model_forms.py:596 dcim/forms/model_forms.py:1470 -#: templates/dcim/device_edit.html:20 templates/dcim/inventoryitem_edit.html:23 -#: templates/dcim/inventoryitemtemplate_edit.html:22 +#: dcim/forms/bulk_edit.py:349 dcim/forms/bulk_edit.py:628 +#: dcim/forms/filtersets.py:248 dcim/forms/filtersets.py:333 +#: dcim/forms/filtersets.py:416 dcim/forms/filtersets.py:543 +#: dcim/forms/filtersets.py:651 dcim/forms/filtersets.py:853 +#: dcim/forms/model_forms.py:610 dcim/forms/model_forms.py:1524 +#: templates/dcim/device_edit.html:20 msgid "Hardware" msgstr "" -#: dcim/forms/bulk_edit.py:400 dcim/forms/bulk_edit.py:464 -#: dcim/forms/bulk_edit.py:528 dcim/forms/bulk_edit.py:552 -#: dcim/forms/bulk_edit.py:633 dcim/forms/bulk_edit.py:1157 -#: dcim/forms/bulk_edit.py:1544 dcim/forms/bulk_import.py:319 +#: dcim/forms/bulk_edit.py:402 dcim/forms/bulk_edit.py:466 +#: dcim/forms/bulk_edit.py:530 dcim/forms/bulk_edit.py:554 +#: dcim/forms/bulk_edit.py:638 dcim/forms/bulk_edit.py:1165 +#: dcim/forms/bulk_edit.py:1553 dcim/forms/bulk_import.py:319 #: dcim/forms/bulk_import.py:353 dcim/forms/bulk_import.py:395 #: dcim/forms/bulk_import.py:431 dcim/forms/bulk_import.py:1027 #: dcim/forms/filtersets.py:429 dcim/forms/filtersets.py:554 -#: dcim/forms/filtersets.py:631 dcim/forms/filtersets.py:709 +#: dcim/forms/filtersets.py:630 dcim/forms/filtersets.py:710 #: dcim/forms/filtersets.py:858 dcim/forms/filtersets.py:1423 -#: dcim/forms/model_forms.py:274 dcim/forms/model_forms.py:288 -#: dcim/forms/model_forms.py:334 dcim/forms/model_forms.py:374 -#: dcim/forms/model_forms.py:975 dcim/forms/model_forms.py:1405 -#: dcim/forms/object_import.py:192 dcim/tables/devices.py:129 -#: dcim/tables/devices.py:205 dcim/tables/devices.py:951 +#: dcim/forms/model_forms.py:281 dcim/forms/model_forms.py:293 +#: dcim/forms/model_forms.py:339 dcim/forms/model_forms.py:379 +#: dcim/forms/model_forms.py:1020 dcim/forms/model_forms.py:1459 +#: dcim/forms/object_import.py:187 dcim/tables/devices.py:101 +#: dcim/tables/devices.py:177 dcim/tables/devices.py:924 #: dcim/tables/devicetypes.py:81 dcim/tables/devicetypes.py:304 #: dcim/tables/modules.py:20 dcim/tables/modules.py:60 -#: templates/dcim/devicetype.html:17 templates/dcim/inventoryitem.html:45 -#: templates/dcim/manufacturer.html:34 templates/dcim/modulebay.html:61 -#: templates/dcim/moduletype.html:15 templates/dcim/platform.html:40 +#: templates/dcim/devicetype.html:14 templates/dcim/inventoryitem.html:44 +#: templates/dcim/manufacturer.html:33 templates/dcim/modulebay.html:58 +#: templates/dcim/moduletype.html:14 templates/dcim/platform.html:37 msgid "Manufacturer" msgstr "" -#: dcim/forms/bulk_edit.py:405 dcim/forms/bulk_import.py:325 -#: dcim/forms/filtersets.py:434 dcim/forms/model_forms.py:292 +#: dcim/forms/bulk_edit.py:407 dcim/forms/bulk_import.py:325 +#: dcim/forms/filtersets.py:434 dcim/forms/model_forms.py:297 msgid "Default platform" msgstr "" -#: dcim/forms/bulk_edit.py:410 dcim/forms/bulk_edit.py:469 -#: dcim/forms/filtersets.py:437 dcim/forms/filtersets.py:558 +#: dcim/forms/bulk_edit.py:412 dcim/forms/bulk_edit.py:471 +#: dcim/forms/filtersets.py:437 dcim/forms/filtersets.py:557 msgid "Part number" msgstr "" -#: dcim/forms/bulk_edit.py:414 +#: dcim/forms/bulk_edit.py:416 msgid "U height" msgstr "" -#: dcim/forms/bulk_edit.py:426 +#: dcim/forms/bulk_edit.py:428 msgid "Exclude from utilization" msgstr "" -#: dcim/forms/bulk_edit.py:429 dcim/forms/bulk_edit.py:598 +#: dcim/forms/bulk_edit.py:431 dcim/forms/bulk_edit.py:603 #: dcim/forms/bulk_import.py:525 dcim/forms/filtersets.py:446 -#: dcim/forms/filtersets.py:731 templates/dcim/device.html:100 -#: templates/dcim/devicetype.html:68 +#: dcim/forms/filtersets.py:732 templates/dcim/device.html:97 +#: templates/dcim/devicetype.html:65 msgid "Airflow" msgstr "" -#: dcim/forms/bulk_edit.py:453 dcim/forms/model_forms.py:307 -#: dcim/tables/devicetypes.py:78 templates/dcim/device.html:90 -#: templates/dcim/devicebay.html:59 templates/dcim/module.html:59 +#: dcim/forms/bulk_edit.py:457 dcim/forms/model_forms.py:312 +#: dcim/tables/devicetypes.py:78 templates/dcim/device.html:87 +#: templates/dcim/devicebay.html:52 templates/dcim/module.html:58 msgid "Device Type" msgstr "" -#: dcim/forms/bulk_edit.py:492 dcim/forms/model_forms.py:340 +#: dcim/forms/bulk_edit.py:494 dcim/forms/model_forms.py:345 #: dcim/tables/modules.py:17 dcim/tables/modules.py:65 -#: templates/dcim/module.html:63 templates/dcim/modulebay.html:65 +#: templates/dcim/module.html:62 templates/dcim/modulebay.html:62 #: templates/dcim/moduletype.html:11 msgid "Module Type" msgstr "" -#: dcim/forms/bulk_edit.py:506 dcim/models/devices.py:474 +#: dcim/forms/bulk_edit.py:508 dcim/models/devices.py:474 msgid "VM role" msgstr "" -#: dcim/forms/bulk_edit.py:509 dcim/forms/bulk_edit.py:533 -#: dcim/forms/bulk_edit.py:613 dcim/forms/bulk_import.py:376 +#: dcim/forms/bulk_edit.py:511 dcim/forms/bulk_edit.py:535 +#: dcim/forms/bulk_edit.py:618 dcim/forms/bulk_import.py:376 #: dcim/forms/bulk_import.py:380 dcim/forms/bulk_import.py:402 #: dcim/forms/bulk_import.py:406 dcim/forms/bulk_import.py:531 -#: dcim/forms/bulk_import.py:535 dcim/forms/filtersets.py:620 -#: dcim/forms/filtersets.py:636 dcim/forms/filtersets.py:750 -#: dcim/forms/model_forms.py:353 dcim/forms/model_forms.py:379 -#: dcim/forms/model_forms.py:484 virtualization/forms/bulk_import.py:132 +#: dcim/forms/bulk_import.py:535 dcim/forms/filtersets.py:619 +#: dcim/forms/filtersets.py:635 dcim/forms/filtersets.py:751 +#: dcim/forms/model_forms.py:358 dcim/forms/model_forms.py:384 +#: dcim/forms/model_forms.py:495 virtualization/forms/bulk_import.py:132 #: virtualization/forms/bulk_import.py:133 -#: virtualization/forms/filtersets.py:180 -#: virtualization/forms/model_forms.py:218 +#: virtualization/forms/filtersets.py:184 +#: virtualization/forms/model_forms.py:215 msgid "Config template" msgstr "" -#: dcim/forms/bulk_edit.py:557 dcim/forms/bulk_edit.py:951 -#: dcim/forms/bulk_import.py:437 dcim/forms/filtersets.py:111 -#: dcim/forms/model_forms.py:439 dcim/forms/model_forms.py:783 -#: dcim/forms/model_forms.py:797 extras/filtersets.py:452 +#: dcim/forms/bulk_edit.py:559 dcim/forms/bulk_edit.py:959 +#: dcim/forms/bulk_import.py:437 dcim/forms/filtersets.py:112 +#: dcim/forms/model_forms.py:444 dcim/forms/model_forms.py:817 +#: dcim/forms/model_forms.py:834 extras/filtersets.py:499 msgid "Device type" msgstr "" -#: dcim/forms/bulk_edit.py:565 dcim/forms/bulk_import.py:418 -#: dcim/forms/filtersets.py:116 dcim/forms/model_forms.py:444 +#: dcim/forms/bulk_edit.py:570 dcim/forms/bulk_import.py:418 +#: dcim/forms/filtersets.py:117 dcim/forms/model_forms.py:452 msgid "Device role" msgstr "" -#: dcim/forms/bulk_edit.py:588 dcim/forms/bulk_import.py:443 -#: dcim/forms/filtersets.py:723 dcim/forms/model_forms.py:389 -#: dcim/forms/model_forms.py:448 dcim/tables/devices.py:215 -#: extras/filtersets.py:468 templates/dcim/device.html:191 -#: templates/dcim/platform.html:27 -#: templates/virtualization/virtualmachine.html:30 -#: virtualization/forms/bulk_edit.py:159 +#: dcim/forms/bulk_edit.py:593 dcim/forms/bulk_import.py:443 +#: dcim/forms/filtersets.py:724 dcim/forms/model_forms.py:394 +#: dcim/forms/model_forms.py:456 dcim/tables/devices.py:187 +#: extras/filtersets.py:515 templates/dcim/device.html:183 +#: templates/dcim/platform.html:26 +#: templates/virtualization/virtualmachine.html:27 +#: virtualization/forms/bulk_edit.py:160 #: virtualization/forms/bulk_import.py:122 -#: virtualization/forms/filtersets.py:164 -#: virtualization/forms/model_forms.py:206 +#: virtualization/forms/filtersets.py:168 +#: virtualization/forms/model_forms.py:203 #: virtualization/tables/virtualmachines.py:78 msgid "Platform" msgstr "" -#: dcim/forms/bulk_edit.py:621 dcim/forms/bulk_edit.py:1171 -#: dcim/forms/bulk_edit.py:1534 dcim/forms/bulk_edit.py:1580 +#: dcim/forms/bulk_edit.py:626 dcim/forms/bulk_edit.py:1179 +#: dcim/forms/bulk_edit.py:1543 dcim/forms/bulk_edit.py:1589 #: dcim/forms/bulk_import.py:586 dcim/forms/bulk_import.py:648 #: dcim/forms/bulk_import.py:674 dcim/forms/bulk_import.py:700 #: dcim/forms/bulk_import.py:720 dcim/forms/bulk_import.py:773 #: dcim/forms/bulk_import.py:891 dcim/forms/bulk_import.py:939 #: dcim/forms/bulk_import.py:956 dcim/forms/bulk_import.py:968 #: dcim/forms/bulk_import.py:1016 dcim/forms/bulk_import.py:1373 -#: dcim/forms/connections.py:23 dcim/forms/filtersets.py:128 -#: dcim/forms/filtersets.py:831 dcim/forms/filtersets.py:964 -#: dcim/forms/filtersets.py:1154 dcim/forms/filtersets.py:1176 -#: dcim/forms/filtersets.py:1198 dcim/forms/filtersets.py:1215 -#: dcim/forms/filtersets.py:1235 dcim/forms/filtersets.py:1343 -#: dcim/forms/filtersets.py:1365 dcim/forms/filtersets.py:1386 -#: dcim/forms/filtersets.py:1401 dcim/forms/filtersets.py:1412 +#: dcim/forms/connections.py:24 dcim/forms/filtersets.py:129 +#: dcim/forms/filtersets.py:832 dcim/forms/filtersets.py:962 +#: dcim/forms/filtersets.py:1152 dcim/forms/filtersets.py:1174 +#: dcim/forms/filtersets.py:1196 dcim/forms/filtersets.py:1213 +#: dcim/forms/filtersets.py:1233 dcim/forms/filtersets.py:1341 +#: dcim/forms/filtersets.py:1363 dcim/forms/filtersets.py:1384 +#: dcim/forms/filtersets.py:1399 dcim/forms/filtersets.py:1413 #: dcim/forms/filtersets.py:1476 dcim/forms/filtersets.py:1500 -#: dcim/forms/filtersets.py:1524 dcim/forms/model_forms.py:562 -#: dcim/forms/model_forms.py:760 dcim/forms/model_forms.py:1100 -#: dcim/forms/model_forms.py:1549 dcim/forms/object_create.py:256 +#: dcim/forms/filtersets.py:1524 dcim/forms/model_forms.py:573 +#: dcim/forms/model_forms.py:794 dcim/forms/model_forms.py:1153 +#: dcim/forms/model_forms.py:1608 dcim/forms/object_create.py:257 #: dcim/tables/connections.py:22 dcim/tables/connections.py:41 -#: dcim/tables/connections.py:60 dcim/tables/devices.py:318 -#: dcim/tables/devices.py:383 dcim/tables/devices.py:427 -#: dcim/tables/devices.py:472 dcim/tables/devices.py:526 -#: dcim/tables/devices.py:618 dcim/tables/devices.py:719 -#: dcim/tables/devices.py:779 dcim/tables/devices.py:829 -#: dcim/tables/devices.py:889 dcim/tables/devices.py:941 -#: dcim/tables/devices.py:1067 dcim/tables/modules.py:52 -#: extras/forms/filtersets.py:329 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:532 -#: ipam/forms/model_forms.py:689 ipam/tables/vlans.py:176 -#: templates/dcim/consoleport.html:23 templates/dcim/consoleserverport.html:23 -#: templates/dcim/device.html:14 templates/dcim/device.html:128 -#: templates/dcim/device_edit.html:10 templates/dcim/devicebay.html:23 -#: templates/dcim/devicebay.html:55 templates/dcim/frontport.html:23 -#: templates/dcim/interface.html:31 templates/dcim/interface.html:167 -#: templates/dcim/inventoryitem.html:21 templates/dcim/module.html:55 -#: templates/dcim/modulebay.html:21 templates/dcim/poweroutlet.html:23 -#: templates/dcim/powerport.html:23 templates/dcim/rearport.html:23 -#: templates/dcim/virtualchassis.html:58 -#: templates/dcim/virtualchassis_edit.html:52 -#: templates/dcim/virtualdevicecontext.html:25 -#: templates/ipam/ipaddress_edit.html:42 templates/ipam/service_create.html:17 -#: templates/ipam/service_edit.html:16 -#: templates/virtualization/virtualmachine.html:115 -#: templates/vpn/l2vpntermination_edit.html:22 -#: templates/vpn/tunneltermination.html:24 +#: dcim/tables/connections.py:60 dcim/tables/devices.py:290 +#: dcim/tables/devices.py:355 dcim/tables/devices.py:399 +#: dcim/tables/devices.py:444 dcim/tables/devices.py:498 +#: dcim/tables/devices.py:590 dcim/tables/devices.py:692 +#: dcim/tables/devices.py:752 dcim/tables/devices.py:802 +#: dcim/tables/devices.py:862 dcim/tables/devices.py:914 +#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52 +#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303 +#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539 +#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716 +#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775 +#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20 +#: templates/dcim/consoleserverport.html:20 templates/dcim/device.html:14 +#: templates/dcim/device.html:128 templates/dcim/device_edit.html:10 +#: templates/dcim/devicebay.html:20 templates/dcim/devicebay.html:48 +#: templates/dcim/frontport.html:20 templates/dcim/interface.html:30 +#: templates/dcim/interface.html:161 templates/dcim/inventoryitem.html:20 +#: templates/dcim/module.html:54 templates/dcim/modulebay.html:20 +#: templates/dcim/poweroutlet.html:20 templates/dcim/powerport.html:20 +#: templates/dcim/rearport.html:20 templates/dcim/virtualchassis.html:65 +#: templates/dcim/virtualchassis_edit.html:51 +#: templates/dcim/virtualdevicecontext.html:22 +#: templates/virtualization/virtualmachine.html:110 +#: templates/vpn/tunneltermination.html:23 #: templates/wireless/inc/wirelesslink_interface.html:6 -#: virtualization/filtersets.py:167 virtualization/forms/bulk_edit.py:136 +#: virtualization/filtersets.py:167 virtualization/forms/bulk_edit.py:137 #: virtualization/forms/bulk_import.py:99 -#: virtualization/forms/filtersets.py:124 -#: virtualization/forms/model_forms.py:188 +#: virtualization/forms/filtersets.py:128 +#: virtualization/forms/model_forms.py:185 #: virtualization/tables/virtualmachines.py:70 vpn/choices.py:44 #: vpn/forms/bulk_import.py:86 vpn/forms/bulk_import.py:283 -#: vpn/forms/filtersets.py:271 vpn/forms/model_forms.py:89 -#: vpn/forms/model_forms.py:124 vpn/forms/model_forms.py:237 -#: wireless/forms/model_forms.py:100 wireless/forms/model_forms.py:140 -#: wireless/tables/wirelesslan.py:75 +#: vpn/forms/filtersets.py:275 vpn/forms/model_forms.py:90 +#: vpn/forms/model_forms.py:125 vpn/forms/model_forms.py:236 +#: vpn/forms/model_forms.py:453 wireless/forms/model_forms.py:99 +#: wireless/forms/model_forms.py:141 wireless/tables/wirelesslan.py:75 msgid "Device" msgstr "" -#: dcim/forms/bulk_edit.py:624 netbox/navigation/menu.py:441 -#: templates/extras/dashboard/widget_config.html:7 +#: dcim/forms/bulk_edit.py:629 templates/extras/dashboard/widget_config.html:7 +#: virtualization/forms/bulk_edit.py:191 msgid "Configuration" msgstr "" -#: dcim/forms/bulk_edit.py:638 dcim/forms/bulk_import.py:598 -#: dcim/forms/model_forms.py:576 dcim/forms/model_forms.py:802 +#: dcim/forms/bulk_edit.py:643 dcim/forms/bulk_import.py:598 +#: dcim/forms/model_forms.py:587 dcim/forms/model_forms.py:842 msgid "Module type" msgstr "" -#: dcim/forms/bulk_edit.py:689 dcim/forms/bulk_edit.py:874 -#: dcim/forms/bulk_edit.py:893 dcim/forms/bulk_edit.py:916 -#: dcim/forms/bulk_edit.py:958 dcim/forms/bulk_edit.py:1002 -#: dcim/forms/bulk_edit.py:1053 dcim/forms/bulk_edit.py:1080 -#: dcim/forms/bulk_edit.py:1107 dcim/forms/bulk_edit.py:1125 -#: dcim/forms/bulk_edit.py:1143 dcim/forms/filtersets.py:64 -#: dcim/forms/object_create.py:45 templates/dcim/cable.html:33 -#: templates/dcim/consoleport.html:35 templates/dcim/consoleserverport.html:35 -#: templates/dcim/devicebay.html:31 templates/dcim/frontport.html:35 -#: templates/dcim/inc/panels/inventory_items.html:11 -#: templates/dcim/interface.html:43 templates/dcim/inventoryitem.html:33 -#: templates/dcim/modulebay.html:31 templates/dcim/poweroutlet.html:35 -#: templates/dcim/powerport.html:35 templates/dcim/rearport.html:35 -#: templates/extras/customfield.html:27 templates/generic/bulk_import.html:155 +#: dcim/forms/bulk_edit.py:697 dcim/forms/bulk_edit.py:882 +#: dcim/forms/bulk_edit.py:901 dcim/forms/bulk_edit.py:924 +#: dcim/forms/bulk_edit.py:966 dcim/forms/bulk_edit.py:1010 +#: dcim/forms/bulk_edit.py:1061 dcim/forms/bulk_edit.py:1088 +#: dcim/forms/bulk_edit.py:1115 dcim/forms/bulk_edit.py:1133 +#: dcim/forms/bulk_edit.py:1151 dcim/forms/filtersets.py:65 +#: dcim/forms/object_create.py:46 templates/dcim/cable.html:32 +#: templates/dcim/consoleport.html:32 templates/dcim/consoleserverport.html:32 +#: templates/dcim/devicebay.html:28 templates/dcim/frontport.html:32 +#: templates/dcim/inc/panels/inventory_items.html:19 +#: templates/dcim/interface.html:42 templates/dcim/inventoryitem.html:32 +#: templates/dcim/modulebay.html:30 templates/dcim/poweroutlet.html:32 +#: templates/dcim/powerport.html:32 templates/dcim/rearport.html:32 +#: templates/extras/customfield.html:26 templates/generic/bulk_import.html:162 msgid "Label" msgstr "" -#: dcim/forms/bulk_edit.py:698 dcim/forms/filtersets.py:981 -#: templates/dcim/cable.html:51 +#: dcim/forms/bulk_edit.py:706 dcim/forms/filtersets.py:979 +#: templates/dcim/cable.html:50 msgid "Length" msgstr "" -#: dcim/forms/bulk_edit.py:703 dcim/forms/bulk_import.py:1174 -#: dcim/forms/bulk_import.py:1177 dcim/forms/filtersets.py:985 +#: dcim/forms/bulk_edit.py:711 dcim/forms/bulk_import.py:1174 +#: dcim/forms/bulk_import.py:1177 dcim/forms/filtersets.py:983 msgid "Length unit" msgstr "" -#: dcim/forms/bulk_edit.py:727 templates/dcim/virtualchassis.html:24 +#: dcim/forms/bulk_edit.py:735 templates/dcim/virtualchassis.html:23 msgid "Domain" msgstr "" -#: dcim/forms/bulk_edit.py:795 dcim/forms/bulk_import.py:1296 -#: dcim/forms/filtersets.py:1071 dcim/forms/model_forms.py:664 +#: dcim/forms/bulk_edit.py:803 dcim/forms/bulk_import.py:1296 +#: dcim/forms/filtersets.py:1069 dcim/forms/model_forms.py:695 msgid "Power panel" msgstr "" -#: dcim/forms/bulk_edit.py:817 dcim/forms/bulk_import.py:1332 -#: dcim/forms/filtersets.py:1093 templates/dcim/powerfeed.html:90 +#: dcim/forms/bulk_edit.py:825 dcim/forms/bulk_import.py:1332 +#: dcim/forms/filtersets.py:1091 templates/dcim/powerfeed.html:83 msgid "Supply" msgstr "" -#: dcim/forms/bulk_edit.py:823 dcim/forms/bulk_import.py:1337 -#: dcim/forms/filtersets.py:1098 templates/dcim/powerfeed.html:102 +#: dcim/forms/bulk_edit.py:831 dcim/forms/bulk_import.py:1337 +#: dcim/forms/filtersets.py:1096 templates/dcim/powerfeed.html:95 msgid "Phase" msgstr "" -#: dcim/forms/bulk_edit.py:829 dcim/forms/filtersets.py:1103 -#: templates/dcim/powerfeed.html:94 +#: dcim/forms/bulk_edit.py:837 dcim/forms/filtersets.py:1101 +#: templates/dcim/powerfeed.html:87 msgid "Voltage" msgstr "" -#: dcim/forms/bulk_edit.py:833 dcim/forms/filtersets.py:1107 -#: templates/dcim/powerfeed.html:98 +#: dcim/forms/bulk_edit.py:841 dcim/forms/filtersets.py:1105 +#: templates/dcim/powerfeed.html:91 msgid "Amperage" msgstr "" -#: dcim/forms/bulk_edit.py:837 dcim/forms/filtersets.py:1111 +#: dcim/forms/bulk_edit.py:845 dcim/forms/filtersets.py:1109 msgid "Max utilization" msgstr "" -#: dcim/forms/bulk_edit.py:841 dcim/forms/bulk_edit.py:1200 -#: dcim/forms/bulk_edit.py:1217 dcim/forms/bulk_edit.py:1234 -#: dcim/forms/bulk_edit.py:1252 dcim/forms/bulk_edit.py:1340 -#: dcim/forms/bulk_edit.py:1478 dcim/forms/bulk_edit.py:1495 +#: dcim/forms/bulk_edit.py:849 dcim/forms/bulk_edit.py:1208 +#: dcim/forms/bulk_edit.py:1225 dcim/forms/bulk_edit.py:1242 +#: dcim/forms/bulk_edit.py:1260 dcim/forms/bulk_edit.py:1348 +#: dcim/forms/bulk_edit.py:1487 dcim/forms/bulk_edit.py:1504 msgid "Mark connected" msgstr "" -#: dcim/forms/bulk_edit.py:926 +#: dcim/forms/bulk_edit.py:934 msgid "Maximum draw" msgstr "" -#: dcim/forms/bulk_edit.py:929 dcim/models/device_component_templates.py:256 +#: dcim/forms/bulk_edit.py:937 dcim/models/device_component_templates.py:256 #: dcim/models/device_components.py:357 msgid "Maximum power draw (watts)" msgstr "" -#: dcim/forms/bulk_edit.py:932 +#: dcim/forms/bulk_edit.py:940 msgid "Allocated draw" msgstr "" -#: dcim/forms/bulk_edit.py:935 dcim/models/device_component_templates.py:263 +#: dcim/forms/bulk_edit.py:943 dcim/models/device_component_templates.py:263 #: dcim/models/device_components.py:364 msgid "Allocated power draw (watts)" msgstr "" -#: dcim/forms/bulk_edit.py:968 dcim/forms/bulk_import.py:731 -#: dcim/forms/model_forms.py:855 dcim/forms/model_forms.py:1172 -#: dcim/forms/model_forms.py:1457 dcim/forms/object_import.py:60 +#: dcim/forms/bulk_edit.py:976 dcim/forms/bulk_import.py:731 +#: dcim/forms/model_forms.py:898 dcim/forms/model_forms.py:1223 +#: dcim/forms/model_forms.py:1511 dcim/forms/object_import.py:55 msgid "Power port" msgstr "" -#: dcim/forms/bulk_edit.py:973 dcim/forms/bulk_import.py:738 +#: dcim/forms/bulk_edit.py:981 dcim/forms/bulk_import.py:738 msgid "Feed leg" msgstr "" -#: dcim/forms/bulk_edit.py:1019 dcim/forms/bulk_edit.py:1325 +#: dcim/forms/bulk_edit.py:1027 dcim/forms/bulk_edit.py:1333 msgid "Management only" msgstr "" -#: dcim/forms/bulk_edit.py:1029 dcim/forms/bulk_edit.py:1331 -#: dcim/forms/bulk_import.py:821 dcim/forms/filtersets.py:1294 -#: dcim/forms/object_import.py:95 dcim/models/device_component_templates.py:411 +#: dcim/forms/bulk_edit.py:1037 dcim/forms/bulk_edit.py:1339 +#: dcim/forms/bulk_import.py:821 dcim/forms/filtersets.py:1292 +#: dcim/forms/object_import.py:90 dcim/models/device_component_templates.py:411 #: dcim/models/device_components.py:671 msgid "PoE mode" msgstr "" -#: dcim/forms/bulk_edit.py:1035 dcim/forms/bulk_edit.py:1337 -#: dcim/forms/bulk_import.py:827 dcim/forms/filtersets.py:1299 -#: dcim/forms/object_import.py:100 -#: dcim/models/device_component_templates.py:417 +#: dcim/forms/bulk_edit.py:1043 dcim/forms/bulk_edit.py:1345 +#: dcim/forms/bulk_import.py:827 dcim/forms/filtersets.py:1297 +#: dcim/forms/object_import.py:95 dcim/models/device_component_templates.py:417 #: dcim/models/device_components.py:677 msgid "PoE type" msgstr "" -#: dcim/forms/bulk_edit.py:1041 dcim/forms/filtersets.py:1304 -#: dcim/forms/object_import.py:105 +#: dcim/forms/bulk_edit.py:1049 dcim/forms/filtersets.py:1302 +#: dcim/forms/object_import.py:100 msgid "Wireless role" msgstr "" -#: dcim/forms/bulk_edit.py:1178 dcim/forms/model_forms.py:595 -#: dcim/forms/model_forms.py:1115 dcim/tables/devices.py:341 -#: templates/dcim/consoleport.html:27 templates/dcim/consoleserverport.html:27 -#: templates/dcim/frontport.html:27 templates/dcim/interface.html:35 -#: templates/dcim/module.html:51 templates/dcim/modulebay.html:57 -#: templates/dcim/poweroutlet.html:27 templates/dcim/powerport.html:27 -#: templates/dcim/rearport.html:27 +#: dcim/forms/bulk_edit.py:1186 dcim/forms/model_forms.py:609 +#: dcim/forms/model_forms.py:1168 dcim/tables/devices.py:313 +#: templates/dcim/consoleport.html:24 templates/dcim/consoleserverport.html:24 +#: templates/dcim/frontport.html:24 templates/dcim/interface.html:34 +#: templates/dcim/module.html:51 templates/dcim/modulebay.html:54 +#: templates/dcim/poweroutlet.html:24 templates/dcim/powerport.html:24 +#: templates/dcim/rearport.html:24 msgid "Module" msgstr "" -#: dcim/forms/bulk_edit.py:1305 dcim/tables/devices.py:689 -#: templates/dcim/interface.html:113 +#: dcim/forms/bulk_edit.py:1313 dcim/tables/devices.py:661 +#: templates/dcim/interface.html:110 msgid "LAG" msgstr "" -#: dcim/forms/bulk_edit.py:1310 dcim/forms/model_forms.py:1199 +#: dcim/forms/bulk_edit.py:1318 dcim/forms/model_forms.py:1250 msgid "Virtual device contexts" msgstr "" -#: dcim/forms/bulk_edit.py:1316 dcim/forms/bulk_import.py:659 -#: dcim/forms/bulk_import.py:685 dcim/forms/filtersets.py:1163 -#: dcim/forms/filtersets.py:1185 dcim/forms/filtersets.py:1258 -#: dcim/tables/devices.py:630 -#: templates/circuits/inc/circuit_termination.html:94 -#: templates/dcim/consoleport.html:43 templates/dcim/consoleserverport.html:43 +#: dcim/forms/bulk_edit.py:1324 dcim/forms/bulk_import.py:659 +#: dcim/forms/bulk_import.py:685 dcim/forms/filtersets.py:1161 +#: dcim/forms/filtersets.py:1183 dcim/forms/filtersets.py:1256 +#: dcim/tables/devices.py:602 +#: templates/circuits/inc/circuit_termination.html:93 +#: templates/dcim/consoleport.html:40 templates/dcim/consoleserverport.html:40 msgid "Speed" msgstr "" -#: dcim/forms/bulk_edit.py:1345 dcim/forms/bulk_import.py:830 -#: templates/vpn/ikepolicy.html:26 templates/vpn/ipsecprofile.html:22 -#: templates/vpn/ipsecprofile.html:51 virtualization/forms/bulk_edit.py:232 -#: virtualization/forms/bulk_import.py:165 vpn/forms/bulk_edit.py:145 -#: vpn/forms/bulk_edit.py:233 vpn/forms/bulk_import.py:176 -#: vpn/forms/bulk_import.py:234 vpn/forms/filtersets.py:132 -#: vpn/forms/filtersets.py:175 vpn/forms/filtersets.py:189 +#: dcim/forms/bulk_edit.py:1353 dcim/forms/bulk_import.py:830 +#: templates/vpn/ikepolicy.html:25 templates/vpn/ipsecprofile.html:21 +#: templates/vpn/ipsecprofile.html:48 virtualization/forms/bulk_edit.py:233 +#: virtualization/forms/bulk_import.py:165 vpn/forms/bulk_edit.py:146 +#: vpn/forms/bulk_edit.py:232 vpn/forms/bulk_import.py:176 +#: vpn/forms/bulk_import.py:234 vpn/forms/filtersets.py:135 +#: vpn/forms/filtersets.py:178 vpn/forms/filtersets.py:192 #: vpn/tables/crypto.py:64 vpn/tables/crypto.py:162 msgid "Mode" msgstr "" -#: dcim/forms/bulk_edit.py:1353 dcim/forms/model_forms.py:1248 -#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:479 -#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:239 -#: virtualization/forms/model_forms.py:324 +#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299 +#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486 +#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240 +#: virtualization/forms/model_forms.py:321 msgid "VLAN group" msgstr "" -#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1253 -#: dcim/tables/devices.py:603 virtualization/forms/bulk_edit.py:247 -#: virtualization/forms/model_forms.py:329 +#: dcim/forms/bulk_edit.py:1369 dcim/forms/model_forms.py:1304 +#: dcim/tables/devices.py:575 virtualization/forms/bulk_edit.py:248 +#: virtualization/forms/model_forms.py:326 msgid "Untagged VLAN" msgstr "" -#: dcim/forms/bulk_edit.py:1369 dcim/forms/model_forms.py:1262 -#: dcim/tables/devices.py:609 virtualization/forms/bulk_edit.py:255 -#: virtualization/forms/model_forms.py:338 +#: dcim/forms/bulk_edit.py:1377 dcim/forms/model_forms.py:1313 +#: dcim/tables/devices.py:581 virtualization/forms/bulk_edit.py:256 +#: virtualization/forms/model_forms.py:335 msgid "Tagged VLANs" msgstr "" -#: dcim/forms/bulk_edit.py:1379 dcim/forms/model_forms.py:1235 +#: dcim/forms/bulk_edit.py:1387 dcim/forms/model_forms.py:1286 msgid "Wireless LAN group" msgstr "" -#: dcim/forms/bulk_edit.py:1384 dcim/forms/model_forms.py:1240 -#: dcim/tables/devices.py:639 netbox/navigation/menu.py:134 -#: templates/dcim/interface.html:289 wireless/tables/wirelesslan.py:24 +#: dcim/forms/bulk_edit.py:1392 dcim/forms/model_forms.py:1291 +#: dcim/tables/devices.py:611 netbox/navigation/menu.py:133 +#: templates/dcim/interface.html:280 wireless/tables/wirelesslan.py:24 msgid "Wireless LANs" msgstr "" -#: dcim/forms/bulk_edit.py:1393 dcim/forms/filtersets.py:1231 -#: dcim/forms/model_forms.py:1281 ipam/forms/bulk_edit.py:270 -#: ipam/forms/bulk_edit.py:361 ipam/forms/filtersets.py:166 -#: templates/dcim/interface.html:126 templates/ipam/prefix.html:96 -#: virtualization/forms/model_forms.py:352 +#: dcim/forms/bulk_edit.py:1401 dcim/forms/filtersets.py:1229 +#: dcim/forms/model_forms.py:1334 ipam/forms/bulk_edit.py:271 +#: ipam/forms/bulk_edit.py:362 ipam/forms/filtersets.py:169 +#: templates/dcim/interface.html:122 templates/ipam/prefix.html:95 +#: virtualization/forms/model_forms.py:349 msgid "Addressing" msgstr "" -#: dcim/forms/bulk_edit.py:1394 dcim/forms/filtersets.py:651 -#: dcim/forms/model_forms.py:1282 virtualization/forms/model_forms.py:353 +#: dcim/forms/bulk_edit.py:1402 dcim/forms/filtersets.py:650 +#: dcim/forms/model_forms.py:1335 virtualization/forms/model_forms.py:350 msgid "Operation" msgstr "" -#: dcim/forms/bulk_edit.py:1395 dcim/forms/filtersets.py:1232 -#: dcim/forms/model_forms.py:887 dcim/forms/model_forms.py:1284 +#: dcim/forms/bulk_edit.py:1403 dcim/forms/filtersets.py:1230 +#: dcim/forms/model_forms.py:932 dcim/forms/model_forms.py:1337 msgid "PoE" msgstr "" -#: dcim/forms/bulk_edit.py:1396 dcim/forms/model_forms.py:1283 -#: templates/dcim/interface.html:101 virtualization/forms/bulk_edit.py:266 -#: virtualization/forms/model_forms.py:354 +#: dcim/forms/bulk_edit.py:1404 dcim/forms/model_forms.py:1336 +#: templates/dcim/interface.html:99 virtualization/forms/bulk_edit.py:267 +#: virtualization/forms/model_forms.py:351 msgid "Related Interfaces" msgstr "" -#: dcim/forms/bulk_edit.py:1397 dcim/forms/model_forms.py:1285 -#: virtualization/forms/bulk_edit.py:267 -#: virtualization/forms/model_forms.py:355 +#: dcim/forms/bulk_edit.py:1405 dcim/forms/model_forms.py:1338 +#: virtualization/forms/bulk_edit.py:268 +#: virtualization/forms/model_forms.py:352 msgid "802.1Q Switching" msgstr "" -#: dcim/forms/bulk_edit.py:1458 dcim/forms/bulk_edit.py:1460 +#: dcim/forms/bulk_edit.py:1467 dcim/forms/bulk_edit.py:1469 msgid "Interface mode must be specified to assign VLANs" msgstr "" -#: dcim/forms/bulk_edit.py:1465 dcim/forms/common.py:50 +#: dcim/forms/bulk_edit.py:1474 dcim/forms/common.py:50 msgid "An access interface cannot have tagged VLANs assigned." msgstr "" @@ -3115,9 +3291,9 @@ msgstr "" msgid "Rack's location (if any)" msgstr "" -#: dcim/forms/bulk_import.py:276 dcim/forms/model_forms.py:246 +#: dcim/forms/bulk_import.py:276 dcim/forms/model_forms.py:253 #: dcim/tables/racks.py:153 templates/dcim/rackreservation.html:12 -#: templates/dcim/rackreservation.html:52 +#: templates/dcim/rackreservation.html:45 msgid "Units" msgstr "" @@ -3171,23 +3347,23 @@ msgid "Assigned platform" msgstr "" #: dcim/forms/bulk_import.py:455 dcim/forms/bulk_import.py:459 -#: dcim/forms/model_forms.py:468 +#: dcim/forms/model_forms.py:476 msgid "Virtual chassis" msgstr "" -#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:457 -#: dcim/tables/devices.py:235 extras/filtersets.py:501 -#: extras/forms/filtersets.py:330 ipam/forms/bulk_edit.py:478 -#: ipam/forms/model_forms.py:592 templates/dcim/device.html:239 -#: templates/virtualization/cluster.html:11 -#: templates/virtualization/virtualmachine.html:92 -#: templates/virtualization/virtualmachine.html:102 +#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465 +#: dcim/tables/devices.py:207 extras/filtersets.py:548 +#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479 +#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231 +#: templates/virtualization/cluster.html:10 +#: templates/virtualization/virtualmachine.html:88 +#: templates/virtualization/virtualmachine.html:97 #: virtualization/filtersets.py:157 virtualization/filtersets.py:273 -#: virtualization/forms/bulk_edit.py:128 virtualization/forms/bulk_import.py:92 -#: virtualization/forms/filtersets.py:98 virtualization/forms/filtersets.py:119 -#: virtualization/forms/filtersets.py:196 -#: virtualization/forms/model_forms.py:82 -#: virtualization/forms/model_forms.py:179 +#: virtualization/forms/bulk_edit.py:129 virtualization/forms/bulk_import.py:92 +#: virtualization/forms/filtersets.py:99 virtualization/forms/filtersets.py:123 +#: virtualization/forms/filtersets.py:200 +#: virtualization/forms/model_forms.py:79 +#: virtualization/forms/model_forms.py:176 #: virtualization/tables/virtualmachines.py:66 msgid "Cluster" msgstr "" @@ -3232,7 +3408,7 @@ msgstr "" msgid "The device in which this module is installed" msgstr "" -#: dcim/forms/bulk_import.py:592 dcim/forms/model_forms.py:569 +#: dcim/forms/bulk_import.py:592 dcim/forms/model_forms.py:580 msgid "Module bay" msgstr "" @@ -3244,7 +3420,7 @@ msgstr "" msgid "The type of module" msgstr "" -#: dcim/forms/bulk_import.py:609 dcim/forms/model_forms.py:582 +#: dcim/forms/bulk_import.py:609 dcim/forms/model_forms.py:596 msgid "Replicate components" msgstr "" @@ -3254,11 +3430,11 @@ msgid "" "by default)" msgstr "" -#: dcim/forms/bulk_import.py:614 dcim/forms/model_forms.py:588 +#: dcim/forms/bulk_import.py:614 dcim/forms/model_forms.py:602 msgid "Adopt components" msgstr "" -#: dcim/forms/bulk_import.py:616 dcim/forms/model_forms.py:591 +#: dcim/forms/bulk_import.py:616 dcim/forms/model_forms.py:605 msgid "Adopt already existing components" msgstr "" @@ -3283,15 +3459,15 @@ msgstr "" msgid "Electrical phase (for three-phase circuits)" msgstr "" -#: dcim/forms/bulk_import.py:782 dcim/forms/model_forms.py:1210 +#: dcim/forms/bulk_import.py:782 dcim/forms/model_forms.py:1261 #: virtualization/forms/bulk_import.py:155 -#: virtualization/forms/model_forms.py:308 +#: virtualization/forms/model_forms.py:305 msgid "Parent interface" msgstr "" -#: dcim/forms/bulk_import.py:789 dcim/forms/model_forms.py:1218 +#: dcim/forms/bulk_import.py:789 dcim/forms/model_forms.py:1269 #: virtualization/forms/bulk_import.py:162 -#: virtualization/forms/model_forms.py:316 +#: virtualization/forms/model_forms.py:313 msgid "Bridged interface" msgstr "" @@ -3315,7 +3491,7 @@ msgstr "" msgid "Physical medium" msgstr "" -#: dcim/forms/bulk_import.py:813 dcim/forms/filtersets.py:1265 +#: dcim/forms/bulk_import.py:813 dcim/forms/filtersets.py:1263 msgid "Duplex" msgstr "" @@ -3333,8 +3509,8 @@ msgstr "" #: dcim/forms/bulk_import.py:840 ipam/forms/bulk_import.py:160 #: ipam/forms/bulk_import.py:246 ipam/forms/bulk_import.py:282 -#: ipam/forms/filtersets.py:196 ipam/forms/filtersets.py:266 -#: ipam/forms/filtersets.py:322 virtualization/forms/bulk_import.py:175 +#: ipam/forms/filtersets.py:200 ipam/forms/filtersets.py:270 +#: ipam/forms/filtersets.py:329 virtualization/forms/bulk_import.py:175 msgid "Assigned VRF" msgstr "" @@ -3351,8 +3527,8 @@ msgstr "" msgid "VDC {vdc} is not assigned to device {device}" msgstr "" -#: dcim/forms/bulk_import.py:896 dcim/forms/model_forms.py:900 -#: dcim/forms/model_forms.py:1465 dcim/forms/object_import.py:122 +#: dcim/forms/bulk_import.py:896 dcim/forms/model_forms.py:945 +#: dcim/forms/model_forms.py:1519 dcim/forms/object_import.py:117 msgid "Rear port" msgstr "" @@ -3365,7 +3541,7 @@ msgstr "" msgid "Physical medium classification" msgstr "" -#: dcim/forms/bulk_import.py:973 dcim/tables/devices.py:850 +#: dcim/forms/bulk_import.py:973 dcim/tables/devices.py:823 msgid "Installed device" msgstr "" @@ -3452,9 +3628,9 @@ msgstr "" msgid "{side_upper} side termination not found: {device} {name}" msgstr "" -#: dcim/forms/bulk_import.py:1244 dcim/forms/model_forms.py:696 -#: dcim/tables/devices.py:1037 templates/dcim/device.html:130 -#: templates/dcim/virtualchassis.html:28 templates/dcim/virtualchassis.html:60 +#: dcim/forms/bulk_import.py:1244 dcim/forms/model_forms.py:730 +#: dcim/tables/devices.py:1010 templates/dcim/device.html:130 +#: templates/dcim/virtualchassis.html:27 templates/dcim/virtualchassis.html:67 msgid "Master" msgstr "" @@ -3483,9 +3659,9 @@ msgid "Single or three-phase" msgstr "" #: dcim/forms/common.py:24 dcim/models/device_components.py:528 -#: templates/dcim/interface.html:58 -#: templates/virtualization/vminterface.html:58 -#: virtualization/forms/bulk_edit.py:224 +#: templates/dcim/interface.html:57 +#: templates/virtualization/vminterface.html:55 +#: virtualization/forms/bulk_edit.py:225 msgid "MTU" msgstr "" @@ -3512,44 +3688,44 @@ msgstr "" msgid "A {model} named {name} already exists" msgstr "" -#: dcim/forms/connections.py:45 dcim/tables/power.py:66 -#: templates/dcim/inc/cable_termination.html:37 -#: templates/dcim/powerfeed.html:27 templates/dcim/powerpanel.html:19 +#: dcim/forms/connections.py:48 dcim/forms/model_forms.py:683 +#: dcim/tables/power.py:66 templates/dcim/inc/cable_termination.html:37 +#: templates/dcim/powerfeed.html:24 templates/dcim/powerpanel.html:19 #: templates/dcim/trace/powerpanel.html:4 msgid "Power Panel" msgstr "" -#: dcim/forms/connections.py:54 dcim/forms/model_forms.py:677 -#: templates/dcim/powerfeed.html:22 templates/dcim/powerport.html:84 +#: dcim/forms/connections.py:57 dcim/forms/model_forms.py:710 +#: templates/dcim/powerfeed.html:21 templates/dcim/powerport.html:80 msgid "Power Feed" msgstr "" -#: dcim/forms/connections.py:74 +#: dcim/forms/connections.py:79 msgid "Side" msgstr "" -#: dcim/forms/filtersets.py:141 +#: dcim/forms/filtersets.py:142 msgid "Parent region" msgstr "" -#: dcim/forms/filtersets.py:155 tenancy/forms/bulk_import.py:28 -#: tenancy/forms/bulk_import.py:62 tenancy/forms/filtersets.py:32 -#: tenancy/forms/filtersets.py:61 wireless/forms/bulk_import.py:25 -#: wireless/forms/filtersets.py:24 +#: dcim/forms/filtersets.py:156 tenancy/forms/bulk_import.py:28 +#: tenancy/forms/bulk_import.py:62 tenancy/forms/filtersets.py:33 +#: tenancy/forms/filtersets.py:62 wireless/forms/bulk_import.py:25 +#: wireless/forms/filtersets.py:25 msgid "Parent group" msgstr "" -#: dcim/forms/filtersets.py:246 dcim/forms/filtersets.py:331 +#: dcim/forms/filtersets.py:247 dcim/forms/filtersets.py:332 msgid "Function" msgstr "" -#: dcim/forms/filtersets.py:418 dcim/forms/model_forms.py:312 -#: templates/inc/panels/image_attachments.html:5 +#: dcim/forms/filtersets.py:418 dcim/forms/model_forms.py:317 +#: templates/inc/panels/image_attachments.html:6 msgid "Images" msgstr "" -#: dcim/forms/filtersets.py:419 dcim/forms/filtersets.py:544 -#: dcim/forms/filtersets.py:655 +#: dcim/forms/filtersets.py:421 dcim/forms/filtersets.py:546 +#: dcim/forms/filtersets.py:656 msgid "Components" msgstr "" @@ -3557,79 +3733,78 @@ msgstr "" msgid "Subdevice role" msgstr "" -#: dcim/forms/filtersets.py:717 +#: dcim/forms/filtersets.py:718 msgid "Model" msgstr "" -#: dcim/forms/filtersets.py:768 +#: dcim/forms/filtersets.py:762 +msgid "Has an OOB IP" +msgstr "" + +#: dcim/forms/filtersets.py:769 msgid "Virtual chassis member" msgstr "" -#: dcim/forms/filtersets.py:1123 +#: dcim/forms/filtersets.py:1121 msgid "Cabled" msgstr "" -#: dcim/forms/filtersets.py:1130 +#: dcim/forms/filtersets.py:1128 msgid "Occupied" msgstr "" -#: dcim/forms/filtersets.py:1155 dcim/forms/filtersets.py:1177 -#: dcim/forms/filtersets.py:1199 dcim/forms/filtersets.py:1216 -#: dcim/forms/filtersets.py:1236 dcim/tables/devices.py:376 -#: templates/dcim/consoleport.html:59 templates/dcim/consoleserverport.html:59 -#: templates/dcim/frontport.html:74 templates/dcim/interface.html:146 -#: templates/dcim/powerfeed.html:118 templates/dcim/poweroutlet.html:63 -#: templates/dcim/powerport.html:63 templates/dcim/rearport.html:70 +#: dcim/forms/filtersets.py:1153 dcim/forms/filtersets.py:1175 +#: dcim/forms/filtersets.py:1197 dcim/forms/filtersets.py:1214 +#: dcim/forms/filtersets.py:1234 dcim/tables/devices.py:348 +#: templates/dcim/consoleport.html:55 templates/dcim/consoleserverport.html:55 +#: templates/dcim/frontport.html:69 templates/dcim/interface.html:140 +#: templates/dcim/powerfeed.html:110 templates/dcim/poweroutlet.html:59 +#: templates/dcim/powerport.html:59 templates/dcim/rearport.html:65 msgid "Connection" msgstr "" -#: dcim/forms/filtersets.py:1245 dcim/forms/model_forms.py:1573 -#: templates/dcim/virtualdevicecontext.html:16 -msgid "Virtual Device Context" -msgstr "" - -#: dcim/forms/filtersets.py:1248 extras/forms/bulk_edit.py:315 -#: extras/forms/bulk_import.py:245 extras/forms/filtersets.py:479 -#: extras/forms/model_forms.py:558 extras/tables/tables.py:487 -#: templates/extras/journalentry.html:33 +#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316 +#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476 +#: extras/forms/model_forms.py:554 extras/tables/tables.py:512 +#: templates/extras/journalentry.html:30 msgid "Kind" msgstr "" -#: dcim/forms/filtersets.py:1277 +#: dcim/forms/filtersets.py:1275 msgid "Mgmt only" msgstr "" -#: dcim/forms/filtersets.py:1289 dcim/forms/model_forms.py:1276 -#: dcim/models/device_components.py:630 templates/dcim/interface.html:134 +#: dcim/forms/filtersets.py:1287 dcim/forms/model_forms.py:1327 +#: dcim/models/device_components.py:630 templates/dcim/interface.html:129 msgid "WWN" msgstr "" -#: dcim/forms/filtersets.py:1309 +#: dcim/forms/filtersets.py:1307 msgid "Wireless channel" msgstr "" -#: dcim/forms/filtersets.py:1313 +#: dcim/forms/filtersets.py:1311 msgid "Channel frequency (MHz)" msgstr "" -#: dcim/forms/filtersets.py:1317 +#: dcim/forms/filtersets.py:1315 msgid "Channel width (MHz)" msgstr "" -#: dcim/forms/filtersets.py:1321 templates/dcim/interface.html:86 +#: dcim/forms/filtersets.py:1319 templates/dcim/interface.html:85 msgid "Transmit power (dBm)" msgstr "" -#: dcim/forms/filtersets.py:1344 dcim/forms/filtersets.py:1366 -#: dcim/tables/devices.py:348 templates/dcim/cable.html:12 -#: templates/dcim/cable_edit.html:46 templates/dcim/cable_trace.html:43 -#: templates/dcim/frontport.html:84 +#: dcim/forms/filtersets.py:1342 dcim/forms/filtersets.py:1364 +#: dcim/tables/devices.py:320 templates/dcim/cable.html:12 +#: templates/dcim/cable_trace.html:46 templates/dcim/frontport.html:77 +#: templates/dcim/htmx/cable_edit.html:50 #: templates/dcim/inc/connection_endpoints.html:4 -#: templates/dcim/rearport.html:80 templates/dcim/trace/cable.html:7 +#: templates/dcim/rearport.html:73 templates/dcim/trace/cable.html:7 msgid "Cable" msgstr "" -#: dcim/forms/filtersets.py:1434 dcim/tables/devices.py:960 +#: dcim/forms/filtersets.py:1434 dcim/tables/devices.py:933 msgid "Discovered" msgstr "" @@ -3638,246 +3813,295 @@ msgstr "" msgid "A virtual chassis member already exists in position {vc_position}." msgstr "" -#: dcim/forms/model_forms.py:101 dcim/tables/devices.py:183 -#: templates/dcim/sitegroup.html:26 -msgid "Site Group" -msgstr "" - -#: dcim/forms/model_forms.py:142 +#: dcim/forms/model_forms.py:139 msgid "Contact Info" msgstr "" -#: dcim/forms/model_forms.py:197 templates/dcim/rackrole.html:20 +#: dcim/forms/model_forms.py:194 templates/dcim/rackrole.html:19 msgid "Rack Role" msgstr "" -#: dcim/forms/model_forms.py:248 +#: dcim/forms/model_forms.py:227 +msgid "Inventory Control" +msgstr "" + +#: dcim/forms/model_forms.py:231 +msgid "Outer Dimensions" +msgstr "" + +#: dcim/forms/model_forms.py:233 templates/dcim/device.html:307 +#: templates/dcim/rack.html:73 +msgid "Dimensions" +msgstr "" + +#: dcim/forms/model_forms.py:255 msgid "" "Comma-separated list of numeric unit IDs. A range may be specified using a " "hyphen." msgstr "" -#: dcim/forms/model_forms.py:259 dcim/tables/racks.py:133 +#: dcim/forms/model_forms.py:266 dcim/tables/racks.py:133 msgid "Reservation" msgstr "" -#: dcim/forms/model_forms.py:301 dcim/forms/model_forms.py:384 +#: dcim/forms/model_forms.py:306 dcim/forms/model_forms.py:389 #: utilities/forms/fields/fields.py:47 msgid "Slug" msgstr "" -#: dcim/forms/model_forms.py:308 templates/dcim/devicetype.html:12 +#: dcim/forms/model_forms.py:315 templates/dcim/devicetype.html:11 msgid "Chassis" msgstr "" -#: dcim/forms/model_forms.py:360 templates/dcim/devicerole.html:24 +#: dcim/forms/model_forms.py:366 templates/dcim/devicerole.html:23 msgid "Device Role" msgstr "" -#: dcim/forms/model_forms.py:428 dcim/models/devices.py:634 +#: dcim/forms/model_forms.py:433 dcim/models/devices.py:634 msgid "The lowest-numbered unit occupied by the device" msgstr "" -#: dcim/forms/model_forms.py:476 +#: dcim/forms/model_forms.py:487 msgid "The position in the virtual chassis this device is identified by" msgstr "" -#: dcim/forms/model_forms.py:480 templates/dcim/device.html:131 -#: templates/dcim/virtualchassis.html:61 -#: templates/dcim/virtualchassis_edit.html:57 -#: templates/ipam/inc/panels/fhrp_groups.html:13 tenancy/forms/bulk_edit.py:146 -#: tenancy/forms/filtersets.py:109 +#: dcim/forms/model_forms.py:491 templates/dcim/device.html:131 +#: templates/dcim/virtualchassis.html:68 +#: templates/dcim/virtualchassis_edit.html:56 +#: templates/ipam/inc/panels/fhrp_groups.html:26 tenancy/forms/bulk_edit.py:147 +#: tenancy/forms/filtersets.py:110 msgid "Priority" msgstr "" -#: dcim/forms/model_forms.py:481 +#: dcim/forms/model_forms.py:492 msgid "The priority of the device in the virtual chassis" msgstr "" -#: dcim/forms/model_forms.py:585 +#: dcim/forms/model_forms.py:599 msgid "Automatically populate components associated with this module type" msgstr "" -#: dcim/forms/model_forms.py:630 +#: dcim/forms/model_forms.py:661 msgid "Maximum length is 32767 (any unit)" msgstr "" -#: dcim/forms/model_forms.py:678 +#: dcim/forms/model_forms.py:712 msgid "Characteristics" msgstr "" -#: dcim/forms/model_forms.py:986 +#: dcim/forms/model_forms.py:1032 msgid "Console port template" msgstr "" -#: dcim/forms/model_forms.py:994 +#: dcim/forms/model_forms.py:1040 msgid "Console server port template" msgstr "" -#: dcim/forms/model_forms.py:1002 +#: dcim/forms/model_forms.py:1048 msgid "Front port template" msgstr "" -#: dcim/forms/model_forms.py:1010 +#: dcim/forms/model_forms.py:1056 msgid "Interface template" msgstr "" -#: dcim/forms/model_forms.py:1018 +#: dcim/forms/model_forms.py:1064 msgid "Power outlet template" msgstr "" -#: dcim/forms/model_forms.py:1026 +#: dcim/forms/model_forms.py:1072 msgid "Power port template" msgstr "" -#: dcim/forms/model_forms.py:1034 +#: dcim/forms/model_forms.py:1080 msgid "Rear port template" msgstr "" -#: dcim/forms/model_forms.py:1087 dcim/forms/model_forms.py:1521 -msgid "An InventoryItem can only be assigned to a single component." -msgstr "" - -#: dcim/forms/model_forms.py:1226 -msgid "LAG interface" -msgstr "" - -#: dcim/forms/model_forms.py:1280 dcim/forms/model_forms.py:1441 +#: dcim/forms/model_forms.py:1089 dcim/forms/model_forms.py:1332 +#: dcim/forms/model_forms.py:1495 dcim/forms/model_forms.py:1527 #: dcim/tables/connections.py:65 ipam/forms/bulk_import.py:317 -#: ipam/forms/model_forms.py:270 ipam/forms/model_forms.py:279 +#: ipam/forms/model_forms.py:278 ipam/forms/model_forms.py:287 #: ipam/tables/fhrp.py:64 ipam/tables/ip.py:368 ipam/tables/vlans.py:165 -#: templates/circuits/inc/circuit_termination.html:78 -#: templates/dcim/frontport.html:113 templates/dcim/interface.html:27 -#: templates/dcim/interface.html:190 templates/dcim/interface.html:322 -#: templates/dcim/inventoryitem_edit.html:54 -#: templates/dcim/inventoryitemtemplate_edit.html:51 -#: templates/dcim/rearport.html:109 -#: templates/ipam/fhrpgroupassignment_edit.html:11 -#: templates/virtualization/vminterface.html:19 -#: templates/vpn/tunneltermination.html:32 +#: templates/circuits/inc/circuit_termination.html:77 +#: templates/dcim/frontport.html:106 templates/dcim/interface.html:27 +#: templates/dcim/interface.html:184 templates/dcim/interface.html:310 +#: templates/dcim/rearport.html:102 +#: templates/virtualization/vminterface.html:18 +#: templates/vpn/tunneltermination.html:31 #: templates/wireless/inc/wirelesslink_interface.html:10 #: templates/wireless/wirelesslink.html:10 -#: templates/wireless/wirelesslink.html:49 -#: virtualization/forms/model_forms.py:351 vpn/forms/bulk_import.py:297 +#: templates/wireless/wirelesslink.html:45 +#: virtualization/forms/model_forms.py:348 vpn/forms/bulk_import.py:297 #: vpn/forms/model_forms.py:436 vpn/forms/model_forms.py:445 -#: wireless/forms/model_forms.py:112 wireless/forms/model_forms.py:152 +#: wireless/forms/model_forms.py:113 wireless/forms/model_forms.py:155 msgid "Interface" msgstr "" -#: dcim/forms/model_forms.py:1374 +#: dcim/forms/model_forms.py:1090 dcim/forms/model_forms.py:1528 +#: dcim/tables/connections.py:27 templates/dcim/consoleport.html:17 +#: templates/dcim/consoleserverport.html:74 templates/dcim/frontport.html:112 +msgid "Console Port" +msgstr "" + +#: dcim/forms/model_forms.py:1091 dcim/forms/model_forms.py:1529 +#: templates/dcim/consoleport.html:73 templates/dcim/consoleserverport.html:17 +#: templates/dcim/frontport.html:109 +msgid "Console Server Port" +msgstr "" + +#: dcim/forms/model_forms.py:1092 dcim/forms/model_forms.py:1530 +#: templates/circuits/inc/circuit_termination.html:78 +#: templates/dcim/consoleport.html:76 templates/dcim/consoleserverport.html:77 +#: templates/dcim/frontport.html:17 templates/dcim/frontport.html:115 +#: templates/dcim/interface.html:187 templates/dcim/rearport.html:105 +msgid "Front Port" +msgstr "" + +#: dcim/forms/model_forms.py:1093 dcim/forms/model_forms.py:1531 +#: dcim/tables/devices.py:705 +#: templates/circuits/inc/circuit_termination.html:79 +#: templates/dcim/consoleport.html:79 templates/dcim/consoleserverport.html:80 +#: templates/dcim/frontport.html:50 templates/dcim/frontport.html:118 +#: templates/dcim/interface.html:190 templates/dcim/rearport.html:17 +#: templates/dcim/rearport.html:108 +msgid "Rear Port" +msgstr "" + +#: dcim/forms/model_forms.py:1094 dcim/forms/model_forms.py:1532 +#: dcim/tables/connections.py:46 dcim/tables/devices.py:505 +#: templates/dcim/poweroutlet.html:44 templates/dcim/powerport.html:17 +msgid "Power Port" +msgstr "" + +#: dcim/forms/model_forms.py:1095 dcim/forms/model_forms.py:1533 +#: templates/dcim/poweroutlet.html:17 templates/dcim/powerport.html:77 +msgid "Power Outlet" +msgstr "" + +#: dcim/forms/model_forms.py:1097 dcim/forms/model_forms.py:1535 +msgid "Component Assignment" +msgstr "" + +#: dcim/forms/model_forms.py:1140 dcim/forms/model_forms.py:1582 +msgid "An InventoryItem can only be assigned to a single component." +msgstr "" + +#: dcim/forms/model_forms.py:1277 +msgid "LAG interface" +msgstr "" + +#: dcim/forms/model_forms.py:1428 msgid "Child Device" msgstr "" -#: dcim/forms/model_forms.py:1375 +#: dcim/forms/model_forms.py:1429 msgid "" "Child devices must first be created and assigned to the site and rack of the " "parent device." msgstr "" -#: dcim/forms/model_forms.py:1417 +#: dcim/forms/model_forms.py:1471 msgid "Console port" msgstr "" -#: dcim/forms/model_forms.py:1425 +#: dcim/forms/model_forms.py:1479 msgid "Console server port" msgstr "" -#: dcim/forms/model_forms.py:1433 +#: dcim/forms/model_forms.py:1487 msgid "Front port" msgstr "" -#: dcim/forms/model_forms.py:1449 +#: dcim/forms/model_forms.py:1503 msgid "Power outlet" msgstr "" -#: dcim/forms/model_forms.py:1469 templates/dcim/inventoryitem.html:17 -#: templates/dcim/inventoryitem_edit.html:10 -#: templates/dcim/inventoryitemtemplate_edit.html:10 +#: dcim/forms/model_forms.py:1523 templates/dcim/inventoryitem.html:17 msgid "Inventory Item" msgstr "" -#: dcim/forms/model_forms.py:1535 templates/dcim/inventoryitemrole.html:15 +#: dcim/forms/model_forms.py:1596 templates/dcim/inventoryitemrole.html:15 msgid "Inventory Item Role" msgstr "" -#: dcim/forms/model_forms.py:1555 templates/dcim/device.html:195 -#: templates/dcim/virtualdevicecontext.html:33 -#: templates/virtualization/virtualmachine.html:51 +#: dcim/forms/model_forms.py:1614 templates/dcim/device.html:187 +#: templates/dcim/virtualdevicecontext.html:30 +#: templates/virtualization/virtualmachine.html:48 msgid "Primary IPv4" msgstr "" -#: dcim/forms/model_forms.py:1564 templates/dcim/device.html:211 -#: templates/dcim/virtualdevicecontext.html:44 -#: templates/virtualization/virtualmachine.html:67 +#: dcim/forms/model_forms.py:1623 templates/dcim/device.html:203 +#: templates/dcim/virtualdevicecontext.html:41 +#: templates/virtualization/virtualmachine.html:64 msgid "Primary IPv6" msgstr "" -#: dcim/forms/object_create.py:47 dcim/forms/object_create.py:198 -#: dcim/forms/object_create.py:354 +#: dcim/forms/object_create.py:48 dcim/forms/object_create.py:199 +#: dcim/forms/object_create.py:355 msgid "" "Alphanumeric ranges are supported. (Must match the number of objects being " "created.)" msgstr "" -#: dcim/forms/object_create.py:67 +#: dcim/forms/object_create.py:68 #, python-brace-format msgid "" "The provided pattern specifies {value_count} values, but {pattern_count} are " "expected." msgstr "" -#: dcim/forms/object_create.py:109 dcim/forms/object_create.py:270 -#: dcim/tables/devices.py:285 +#: dcim/forms/object_create.py:110 dcim/forms/object_create.py:271 +#: dcim/tables/devices.py:257 msgid "Rear ports" msgstr "" -#: dcim/forms/object_create.py:110 dcim/forms/object_create.py:271 +#: dcim/forms/object_create.py:111 dcim/forms/object_create.py:272 msgid "Select one rear port assignment for each front port being created." msgstr "" -#: dcim/forms/object_create.py:163 +#: dcim/forms/object_create.py:164 #, python-brace-format msgid "" "The number of front port templates to be created ({frontport_count}) must " "match the selected number of rear port positions ({rearport_count})." msgstr "" -#: dcim/forms/object_create.py:250 +#: dcim/forms/object_create.py:251 #, python-brace-format msgid "" "The string {module} will be replaced with the position of the " "assigned module, if any." msgstr "" -#: dcim/forms/object_create.py:319 +#: dcim/forms/object_create.py:320 #, python-brace-format msgid "" "The number of front ports to be created ({frontport_count}) must match the " "selected number of rear port positions ({rearport_count})." msgstr "" -#: dcim/forms/object_create.py:408 dcim/tables/devices.py:1043 -#: ipam/tables/fhrp.py:31 templates/dcim/virtualchassis.html:54 -#: templates/dcim/virtualchassis_edit.html:48 templates/ipam/fhrpgroup.html:39 +#: dcim/forms/object_create.py:409 dcim/tables/devices.py:1016 +#: ipam/tables/fhrp.py:31 templates/dcim/virtualchassis.html:53 +#: templates/dcim/virtualchassis_edit.html:47 templates/ipam/fhrpgroup.html:38 msgid "Members" msgstr "" -#: dcim/forms/object_create.py:417 +#: dcim/forms/object_create.py:418 msgid "Initial position" msgstr "" -#: dcim/forms/object_create.py:420 +#: dcim/forms/object_create.py:421 msgid "" "Position of the first member device. Increases by one for each additional " "member." msgstr "" -#: dcim/forms/object_create.py:434 +#: dcim/forms/object_create.py:435 msgid "A position must be specified for the first VC member." msgstr "" #: dcim/models/cables.py:62 dcim/models/device_component_templates.py:55 -#: dcim/models/device_components.py:63 extras/models/customfields.py:108 +#: dcim/models/device_components.py:63 extras/models/customfields.py:109 msgid "label" msgstr "" @@ -3930,39 +4154,39 @@ msgstr "" msgid "cable terminations" msgstr "" -#: dcim/models/cables.py:327 +#: dcim/models/cables.py:331 #, python-brace-format msgid "" "Duplicate termination found for {app_label}.{model} {termination_id}: cable " "{cable_pk}" msgstr "" -#: dcim/models/cables.py:337 +#: dcim/models/cables.py:341 #, python-brace-format msgid "Cables cannot be terminated to {type_display} interfaces" msgstr "" -#: dcim/models/cables.py:344 +#: dcim/models/cables.py:348 msgid "Circuit terminations attached to a provider network may not be cabled." msgstr "" -#: dcim/models/cables.py:442 extras/models/configs.py:50 +#: dcim/models/cables.py:446 extras/models/configs.py:50 msgid "is active" msgstr "" -#: dcim/models/cables.py:446 +#: dcim/models/cables.py:450 msgid "is complete" msgstr "" -#: dcim/models/cables.py:450 +#: dcim/models/cables.py:454 msgid "is split" msgstr "" -#: dcim/models/cables.py:458 +#: dcim/models/cables.py:462 msgid "cable path" msgstr "" -#: dcim/models/cables.py:459 +#: dcim/models/cables.py:463 msgid "cable paths" msgstr "" @@ -4087,7 +4311,7 @@ msgstr "" #: dcim/models/device_component_templates.py:437 #: dcim/models/device_components.py:805 -#: virtualization/models/virtualmachines.py:398 +#: virtualization/models/virtualmachines.py:400 msgid "An interface cannot be bridged to itself." msgstr "" @@ -4327,22 +4551,22 @@ msgid "wireless LANs" msgstr "" #: dcim/models/device_components.py:698 -#: virtualization/models/virtualmachines.py:328 +#: virtualization/models/virtualmachines.py:330 msgid "untagged VLAN" msgstr "" #: dcim/models/device_components.py:704 -#: virtualization/models/virtualmachines.py:334 +#: virtualization/models/virtualmachines.py:336 msgid "tagged VLANs" msgstr "" #: dcim/models/device_components.py:746 -#: virtualization/models/virtualmachines.py:370 +#: virtualization/models/virtualmachines.py:372 msgid "interface" msgstr "" #: dcim/models/device_components.py:747 -#: virtualization/models/virtualmachines.py:371 +#: virtualization/models/virtualmachines.py:373 msgid "interfaces" msgstr "" @@ -4357,7 +4581,7 @@ msgid "{display_type} interfaces cannot be marked as connected." msgstr "" #: dcim/models/device_components.py:775 -#: virtualization/models/virtualmachines.py:383 +#: virtualization/models/virtualmachines.py:385 msgid "An interface cannot be its own parent." msgstr "" @@ -4540,12 +4764,12 @@ msgid "inventory item roles" msgstr "" #: dcim/models/device_components.py:1230 dcim/models/devices.py:597 -#: dcim/models/devices.py:1178 dcim/models/racks.py:113 +#: dcim/models/devices.py:1163 dcim/models/racks.py:114 msgid "serial number" msgstr "" #: dcim/models/device_components.py:1238 dcim/models/devices.py:605 -#: dcim/models/devices.py:1185 dcim/models/racks.py:120 +#: dcim/models/devices.py:1170 dcim/models/racks.py:121 msgid "asset tag" msgstr "" @@ -4609,7 +4833,7 @@ msgstr "" msgid "Discrete part number (optional)" msgstr "" -#: dcim/models/devices.py:107 dcim/models/racks.py:137 +#: dcim/models/devices.py:107 dcim/models/racks.py:138 msgid "height (U)" msgstr "" @@ -4719,7 +4943,7 @@ msgstr "" msgid "Chassis serial number, assigned by the manufacturer" msgstr "" -#: dcim/models/devices.py:606 dcim/models/devices.py:1186 +#: dcim/models/devices.py:606 dcim/models/devices.py:1171 msgid "A unique tag used to identify this device" msgstr "" @@ -4731,13 +4955,13 @@ msgstr "" msgid "rack face" msgstr "" -#: dcim/models/devices.py:660 dcim/models/devices.py:1395 -#: virtualization/models/virtualmachines.py:98 +#: dcim/models/devices.py:660 dcim/models/devices.py:1380 +#: virtualization/models/virtualmachines.py:100 msgid "primary IPv4" msgstr "" -#: dcim/models/devices.py:668 dcim/models/devices.py:1403 -#: virtualization/models/virtualmachines.py:106 +#: dcim/models/devices.py:668 dcim/models/devices.py:1388 +#: virtualization/models/virtualmachines.py:108 msgid "primary IPv6" msgstr "" @@ -4749,197 +4973,198 @@ msgstr "" msgid "VC position" msgstr "" -#: dcim/models/devices.py:697 +#: dcim/models/devices.py:696 msgid "Virtual chassis position" msgstr "" -#: dcim/models/devices.py:700 +#: dcim/models/devices.py:699 msgid "VC priority" msgstr "" -#: dcim/models/devices.py:704 +#: dcim/models/devices.py:703 msgid "Virtual chassis master election priority" msgstr "" -#: dcim/models/devices.py:707 dcim/models/sites.py:207 +#: dcim/models/devices.py:706 dcim/models/sites.py:207 msgid "latitude" msgstr "" -#: dcim/models/devices.py:712 dcim/models/devices.py:720 +#: dcim/models/devices.py:711 dcim/models/devices.py:719 #: dcim/models/sites.py:212 dcim/models/sites.py:220 msgid "GPS coordinate in decimal format (xx.yyyyyy)" msgstr "" -#: dcim/models/devices.py:715 dcim/models/sites.py:215 +#: dcim/models/devices.py:714 dcim/models/sites.py:215 msgid "longitude" msgstr "" -#: dcim/models/devices.py:788 +#: dcim/models/devices.py:787 msgid "Device name must be unique per site." msgstr "" -#: dcim/models/devices.py:799 ipam/models/services.py:75 +#: dcim/models/devices.py:798 ipam/models/services.py:74 msgid "device" msgstr "" -#: dcim/models/devices.py:800 +#: dcim/models/devices.py:799 msgid "devices" msgstr "" -#: dcim/models/devices.py:840 +#: dcim/models/devices.py:825 #, python-brace-format msgid "Rack {rack} does not belong to site {site}." msgstr "" -#: dcim/models/devices.py:845 +#: dcim/models/devices.py:830 #, python-brace-format msgid "Location {location} does not belong to site {site}." msgstr "" -#: dcim/models/devices.py:851 +#: dcim/models/devices.py:836 #, python-brace-format msgid "Rack {rack} does not belong to location {location}." msgstr "" -#: dcim/models/devices.py:858 +#: dcim/models/devices.py:843 msgid "Cannot select a rack face without assigning a rack." msgstr "" -#: dcim/models/devices.py:862 +#: dcim/models/devices.py:847 msgid "Cannot select a rack position without assigning a rack." msgstr "" -#: dcim/models/devices.py:868 +#: dcim/models/devices.py:853 msgid "Position must be in increments of 0.5 rack units." msgstr "" -#: dcim/models/devices.py:872 +#: dcim/models/devices.py:857 msgid "Must specify rack face when defining rack position." msgstr "" -#: dcim/models/devices.py:880 +#: dcim/models/devices.py:865 #, python-brace-format msgid "A 0U device type ({device_type}) cannot be assigned to a rack position." msgstr "" -#: dcim/models/devices.py:891 +#: dcim/models/devices.py:876 msgid "" "Child device types cannot be assigned to a rack face. This is an attribute " "of the parent device." msgstr "" -#: dcim/models/devices.py:898 +#: dcim/models/devices.py:883 msgid "" "Child device types cannot be assigned to a rack position. This is an " "attribute of the parent device." msgstr "" -#: dcim/models/devices.py:912 +#: dcim/models/devices.py:897 #, python-brace-format msgid "" "U{position} is already occupied or does not have sufficient space to " "accommodate this device type: {device_type} ({u_height}U)" msgstr "" -#: dcim/models/devices.py:927 +#: dcim/models/devices.py:912 #, python-brace-format msgid "{ip} is not an IPv4 address." msgstr "" -#: dcim/models/devices.py:936 dcim/models/devices.py:951 +#: dcim/models/devices.py:921 dcim/models/devices.py:936 #, python-brace-format msgid "The specified IP address ({ip}) is not assigned to this device." msgstr "" -#: dcim/models/devices.py:942 +#: dcim/models/devices.py:927 #, python-brace-format msgid "{ip} is not an IPv6 address." msgstr "" -#: dcim/models/devices.py:969 +#: dcim/models/devices.py:954 #, python-brace-format msgid "" "The assigned platform is limited to {platform_manufacturer} device types, " "but this device's type belongs to {devicetype_manufacturer}." msgstr "" -#: dcim/models/devices.py:980 +#: dcim/models/devices.py:965 #, python-brace-format msgid "The assigned cluster belongs to a different site ({site})" msgstr "" -#: dcim/models/devices.py:988 +#: dcim/models/devices.py:973 msgid "A device assigned to a virtual chassis must have its position defined." msgstr "" -#: dcim/models/devices.py:1193 +#: dcim/models/devices.py:1178 msgid "module" msgstr "" -#: dcim/models/devices.py:1194 +#: dcim/models/devices.py:1179 msgid "modules" msgstr "" -#: dcim/models/devices.py:1210 +#: dcim/models/devices.py:1195 #, python-brace-format msgid "" "Module must be installed within a module bay belonging to the assigned " "device ({device})." msgstr "" -#: dcim/models/devices.py:1314 +#: dcim/models/devices.py:1299 msgid "domain" msgstr "" -#: dcim/models/devices.py:1327 dcim/models/devices.py:1328 +#: dcim/models/devices.py:1312 dcim/models/devices.py:1313 msgid "virtual chassis" msgstr "" -#: dcim/models/devices.py:1343 +#: dcim/models/devices.py:1328 #, python-brace-format msgid "The selected master ({master}) is not assigned to this virtual chassis." msgstr "" -#: dcim/models/devices.py:1359 +#: dcim/models/devices.py:1344 #, python-brace-format msgid "" "Unable to delete virtual chassis {self}. There are member interfaces which " "form a cross-chassis LAG interfaces." msgstr "" -#: dcim/models/devices.py:1384 vpn/models/l2vpn.py:37 +#: dcim/models/devices.py:1369 vpn/models/l2vpn.py:37 msgid "identifier" msgstr "" -#: dcim/models/devices.py:1385 +#: dcim/models/devices.py:1370 msgid "Numeric identifier unique to the parent device" msgstr "" -#: dcim/models/devices.py:1413 extras/models/models.py:129 -#: extras/models/models.py:724 netbox/models/__init__.py:114 +#: dcim/models/devices.py:1398 extras/models/customfields.py:210 +#: extras/models/models.py:127 extras/models/models.py:722 +#: netbox/models/__init__.py:114 msgid "comments" msgstr "" -#: dcim/models/devices.py:1429 +#: dcim/models/devices.py:1414 msgid "virtual device context" msgstr "" -#: dcim/models/devices.py:1430 +#: dcim/models/devices.py:1415 msgid "virtual device contexts" msgstr "" -#: dcim/models/devices.py:1462 +#: dcim/models/devices.py:1447 #, python-brace-format msgid "{ip} is not an IPv{family} address." msgstr "" -#: dcim/models/devices.py:1468 +#: dcim/models/devices.py:1453 msgid "Primary IP address must belong to an interface on the assigned device." msgstr "" #: dcim/models/mixins.py:15 extras/models/configs.py:41 -#: extras/models/models.py:343 extras/models/models.py:552 -#: extras/models/search.py:50 ipam/models/ip.py:193 +#: extras/models/models.py:341 extras/models/models.py:550 +#: extras/models/search.py:48 ipam/models/ip.py:193 msgid "weight" msgstr "" @@ -4965,203 +5190,203 @@ msgid "" "Location {location} ({location_site}) is in a different site than {site}" msgstr "" -#: dcim/models/power.py:107 +#: dcim/models/power.py:108 msgid "supply" msgstr "" -#: dcim/models/power.py:113 +#: dcim/models/power.py:114 msgid "phase" msgstr "" -#: dcim/models/power.py:119 +#: dcim/models/power.py:120 msgid "voltage" msgstr "" -#: dcim/models/power.py:124 +#: dcim/models/power.py:125 msgid "amperage" msgstr "" -#: dcim/models/power.py:129 +#: dcim/models/power.py:130 msgid "max utilization" msgstr "" -#: dcim/models/power.py:132 +#: dcim/models/power.py:133 msgid "Maximum permissible draw (percentage)" msgstr "" -#: dcim/models/power.py:135 +#: dcim/models/power.py:136 msgid "available power" msgstr "" -#: dcim/models/power.py:163 +#: dcim/models/power.py:164 msgid "power feed" msgstr "" -#: dcim/models/power.py:164 +#: dcim/models/power.py:165 msgid "power feeds" msgstr "" -#: dcim/models/power.py:178 +#: dcim/models/power.py:179 #, python-brace-format msgid "" "Rack {rack} ({rack_site}) and power panel {powerpanel} ({powerpanel_site}) " "are in different sites." msgstr "" -#: dcim/models/power.py:189 +#: dcim/models/power.py:190 msgid "Voltage cannot be negative for AC supply" msgstr "" -#: dcim/models/racks.py:49 +#: dcim/models/racks.py:50 msgid "rack role" msgstr "" -#: dcim/models/racks.py:50 +#: dcim/models/racks.py:51 msgid "rack roles" msgstr "" -#: dcim/models/racks.py:74 +#: dcim/models/racks.py:75 msgid "facility ID" msgstr "" -#: dcim/models/racks.py:75 +#: dcim/models/racks.py:76 msgid "Locally-assigned identifier" msgstr "" -#: dcim/models/racks.py:108 ipam/forms/bulk_import.py:200 +#: dcim/models/racks.py:109 ipam/forms/bulk_import.py:200 #: ipam/forms/bulk_import.py:265 ipam/forms/bulk_import.py:300 #: ipam/forms/bulk_import.py:467 virtualization/forms/bulk_import.py:112 msgid "Functional role" msgstr "" -#: dcim/models/racks.py:121 +#: dcim/models/racks.py:122 msgid "A unique tag used to identify this rack" msgstr "" -#: dcim/models/racks.py:132 +#: dcim/models/racks.py:133 msgid "width" msgstr "" -#: dcim/models/racks.py:133 +#: dcim/models/racks.py:134 msgid "Rail-to-rail width" msgstr "" -#: dcim/models/racks.py:139 +#: dcim/models/racks.py:140 msgid "Height in rack units" msgstr "" -#: dcim/models/racks.py:143 +#: dcim/models/racks.py:144 msgid "starting unit" msgstr "" -#: dcim/models/racks.py:145 +#: dcim/models/racks.py:146 msgid "Starting unit for rack" msgstr "" -#: dcim/models/racks.py:149 +#: dcim/models/racks.py:150 msgid "descending units" msgstr "" -#: dcim/models/racks.py:150 +#: dcim/models/racks.py:151 msgid "Units are numbered top-to-bottom" msgstr "" -#: dcim/models/racks.py:153 +#: dcim/models/racks.py:154 msgid "outer width" msgstr "" -#: dcim/models/racks.py:156 +#: dcim/models/racks.py:157 msgid "Outer dimension of rack (width)" msgstr "" -#: dcim/models/racks.py:159 +#: dcim/models/racks.py:160 msgid "outer depth" msgstr "" -#: dcim/models/racks.py:162 +#: dcim/models/racks.py:163 msgid "Outer dimension of rack (depth)" msgstr "" -#: dcim/models/racks.py:165 +#: dcim/models/racks.py:166 msgid "outer unit" msgstr "" -#: dcim/models/racks.py:171 +#: dcim/models/racks.py:172 msgid "max weight" msgstr "" -#: dcim/models/racks.py:174 +#: dcim/models/racks.py:175 msgid "Maximum load capacity for the rack" msgstr "" -#: dcim/models/racks.py:182 +#: dcim/models/racks.py:183 msgid "mounting depth" msgstr "" -#: dcim/models/racks.py:186 +#: dcim/models/racks.py:187 msgid "" "Maximum depth of a mounted device, in millimeters. For four-post racks, this " "is the distance between the front and rear rails." msgstr "" -#: dcim/models/racks.py:220 +#: dcim/models/racks.py:221 msgid "rack" msgstr "" -#: dcim/models/racks.py:221 +#: dcim/models/racks.py:222 msgid "racks" msgstr "" -#: dcim/models/racks.py:236 +#: dcim/models/racks.py:237 #, python-brace-format msgid "Assigned location must belong to parent site ({site})." msgstr "" -#: dcim/models/racks.py:240 +#: dcim/models/racks.py:241 msgid "Must specify a unit when setting an outer width/depth" msgstr "" -#: dcim/models/racks.py:244 +#: dcim/models/racks.py:245 msgid "Must specify a unit when setting a maximum weight" msgstr "" -#: dcim/models/racks.py:254 +#: dcim/models/racks.py:255 #, python-brace-format msgid "" "Rack must be at least {min_height}U tall to house currently installed " "devices." msgstr "" -#: dcim/models/racks.py:261 +#: dcim/models/racks.py:262 #, python-brace-format msgid "" "Rack unit numbering must begin at {position} or less to house currently " "installed devices." msgstr "" -#: dcim/models/racks.py:269 +#: dcim/models/racks.py:270 #, python-brace-format msgid "Location must be from the same site, {site}." msgstr "" -#: dcim/models/racks.py:522 +#: dcim/models/racks.py:523 msgid "units" msgstr "" -#: dcim/models/racks.py:548 +#: dcim/models/racks.py:549 msgid "rack reservation" msgstr "" -#: dcim/models/racks.py:549 +#: dcim/models/racks.py:550 msgid "rack reservations" msgstr "" -#: dcim/models/racks.py:566 +#: dcim/models/racks.py:567 #, python-brace-format msgid "Invalid unit(s) for {height}U rack: {unit_list}" msgstr "" -#: dcim/models/racks.py:579 +#: dcim/models/racks.py:580 #, python-brace-format msgid "The following units have already been reserved: {unit_list}" msgstr "" @@ -5202,11 +5427,11 @@ msgstr "" msgid "Full name of the site" msgstr "" -#: dcim/models/sites.py:181 +#: dcim/models/sites.py:181 dcim/models/sites.py:279 msgid "facility" msgstr "" -#: dcim/models/sites.py:184 +#: dcim/models/sites.py:184 dcim/models/sites.py:282 msgid "Local facility ID or description" msgstr "" @@ -5234,23 +5459,23 @@ msgstr "" msgid "sites" msgstr "" -#: dcim/models/sites.py:303 +#: dcim/models/sites.py:309 msgid "A location with this name already exists within the specified site." msgstr "" -#: dcim/models/sites.py:313 +#: dcim/models/sites.py:319 msgid "A location with this slug already exists within the specified site." msgstr "" -#: dcim/models/sites.py:316 +#: dcim/models/sites.py:322 msgid "location" msgstr "" -#: dcim/models/sites.py:317 +#: dcim/models/sites.py:323 msgid "locations" msgstr "" -#: dcim/models/sites.py:331 +#: dcim/models/sites.py:337 #, python-brace-format msgid "Parent location ({parent}) must belong to the same site ({site})." msgstr "" @@ -5295,111 +5520,101 @@ msgstr "" msgid "Site B" msgstr "" -#: dcim/tables/connections.py:27 templates/dcim/consoleport.html:18 -#: templates/dcim/consoleserverport.html:75 templates/dcim/frontport.html:119 -#: templates/dcim/inventoryitem_edit.html:39 -#: templates/dcim/inventoryitemtemplate_edit.html:36 -msgid "Console Port" -msgstr "" - #: dcim/tables/connections.py:31 dcim/tables/connections.py:50 #: dcim/tables/connections.py:71 #: templates/dcim/inc/connection_endpoints.html:16 msgid "Reachable" msgstr "" -#: dcim/tables/connections.py:46 dcim/tables/devices.py:533 -#: templates/dcim/inventoryitem_edit.html:64 -#: templates/dcim/inventoryitemtemplate_edit.html:61 -#: templates/dcim/poweroutlet.html:47 templates/dcim/powerport.html:18 -msgid "Power Port" -msgstr "" - -#: dcim/tables/devices.py:94 dcim/tables/devices.py:139 dcim/tables/racks.py:81 -#: dcim/tables/sites.py:143 netbox/navigation/menu.py:57 -#: netbox/navigation/menu.py:61 netbox/navigation/menu.py:63 -#: virtualization/forms/model_forms.py:125 virtualization/tables/clusters.py:83 -#: virtualization/views.py:211 +#: dcim/tables/devices.py:66 dcim/tables/devices.py:111 dcim/tables/racks.py:81 +#: dcim/tables/sites.py:143 extras/tables/tables.py:435 +#: netbox/navigation/menu.py:56 netbox/navigation/menu.py:60 +#: netbox/navigation/menu.py:62 virtualization/forms/model_forms.py:122 +#: virtualization/tables/clusters.py:83 virtualization/views.py:211 msgid "Devices" msgstr "" -#: dcim/tables/devices.py:99 dcim/tables/devices.py:144 +#: dcim/tables/devices.py:71 dcim/tables/devices.py:116 #: virtualization/tables/clusters.py:88 msgid "VMs" msgstr "" -#: dcim/tables/devices.py:133 dcim/tables/devices.py:249 -#: extras/forms/model_forms.py:516 templates/dcim/device.html:114 +#: dcim/tables/devices.py:105 dcim/tables/devices.py:221 +#: extras/forms/model_forms.py:509 templates/dcim/device.html:111 #: templates/dcim/device/render_config.html:11 -#: templates/dcim/device/render_config.html:15 -#: templates/dcim/devicerole.html:47 templates/dcim/platform.html:44 +#: templates/dcim/device/render_config.html:14 +#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41 #: templates/extras/configtemplate.html:10 -#: templates/virtualization/virtualmachine.html:47 +#: templates/virtualization/virtualmachine.html:44 #: templates/virtualization/virtualmachine/render_config.html:11 -#: templates/virtualization/virtualmachine/render_config.html:15 +#: templates/virtualization/virtualmachine/render_config.html:14 #: virtualization/tables/virtualmachines.py:106 msgid "Config Template" msgstr "" -#: dcim/tables/devices.py:220 dcim/tables/devices.py:1078 -#: ipam/forms/bulk_import.py:511 ipam/forms/model_forms.py:296 -#: ipam/tables/ip.py:352 ipam/tables/ip.py:418 ipam/tables/ip.py:441 -#: templates/ipam/ipaddress.html:12 templates/ipam/ipaddress_edit.html:14 +#: dcim/tables/devices.py:155 templates/dcim/sitegroup.html:26 +msgid "Site Group" +msgstr "" + +#: dcim/tables/devices.py:192 dcim/tables/devices.py:1051 +#: ipam/forms/bulk_import.py:511 ipam/forms/model_forms.py:304 +#: ipam/forms/model_forms.py:313 ipam/tables/ip.py:352 ipam/tables/ip.py:418 +#: ipam/tables/ip.py:441 templates/ipam/ipaddress.html:11 #: virtualization/tables/virtualmachines.py:94 msgid "IP Address" msgstr "" -#: dcim/tables/devices.py:224 dcim/tables/devices.py:1082 +#: dcim/tables/devices.py:196 dcim/tables/devices.py:1055 #: virtualization/tables/virtualmachines.py:85 msgid "IPv4 Address" msgstr "" -#: dcim/tables/devices.py:228 dcim/tables/devices.py:1086 +#: dcim/tables/devices.py:200 dcim/tables/devices.py:1059 #: virtualization/tables/virtualmachines.py:89 msgid "IPv6 Address" msgstr "" -#: dcim/tables/devices.py:243 +#: dcim/tables/devices.py:215 msgid "VC Position" msgstr "" -#: dcim/tables/devices.py:246 +#: dcim/tables/devices.py:218 msgid "VC Priority" msgstr "" -#: dcim/tables/devices.py:253 templates/dcim/device_edit.html:38 +#: dcim/tables/devices.py:225 templates/dcim/device_edit.html:38 #: templates/dcim/devicebay_populate.html:16 msgid "Parent Device" msgstr "" -#: dcim/tables/devices.py:258 +#: dcim/tables/devices.py:230 msgid "Position (Device Bay)" msgstr "" -#: dcim/tables/devices.py:267 +#: dcim/tables/devices.py:239 msgid "Console ports" msgstr "" -#: dcim/tables/devices.py:270 +#: dcim/tables/devices.py:242 msgid "Console server ports" msgstr "" -#: dcim/tables/devices.py:273 +#: dcim/tables/devices.py:245 msgid "Power ports" msgstr "" -#: dcim/tables/devices.py:276 +#: dcim/tables/devices.py:248 msgid "Power outlets" msgstr "" -#: dcim/tables/devices.py:279 dcim/tables/devices.py:1091 -#: dcim/tables/devicetypes.py:125 dcim/views.py:1005 dcim/views.py:1244 -#: dcim/views.py:1932 netbox/navigation/menu.py:82 -#: netbox/navigation/menu.py:238 templates/dcim/device/base.html:37 +#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064 +#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243 +#: dcim/views.py:1929 netbox/navigation/menu.py:81 +#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37 #: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34 #: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34 -#: templates/dcim/virtualdevicecontext.html:64 -#: templates/dcim/virtualdevicecontext.html:85 +#: templates/dcim/virtualdevicecontext.html:61 +#: templates/dcim/virtualdevicecontext.html:81 #: templates/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 #: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368 @@ -5407,146 +5622,133 @@ msgstr "" msgid "Interfaces" msgstr "" -#: dcim/tables/devices.py:282 +#: dcim/tables/devices.py:254 msgid "Front ports" msgstr "" -#: dcim/tables/devices.py:288 +#: dcim/tables/devices.py:260 msgid "Device bays" msgstr "" -#: dcim/tables/devices.py:291 +#: dcim/tables/devices.py:263 msgid "Module bays" msgstr "" -#: dcim/tables/devices.py:294 +#: dcim/tables/devices.py:266 msgid "Inventory items" msgstr "" -#: dcim/tables/devices.py:333 dcim/tables/modules.py:56 +#: dcim/tables/devices.py:305 dcim/tables/modules.py:56 #: templates/dcim/modulebay.html:17 msgid "Module Bay" msgstr "" -#: dcim/tables/devices.py:354 +#: dcim/tables/devices.py:326 msgid "Cable Color" msgstr "" -#: dcim/tables/devices.py:360 +#: dcim/tables/devices.py:332 msgid "Link Peers" msgstr "" -#: dcim/tables/devices.py:363 +#: dcim/tables/devices.py:335 msgid "Mark Connected" msgstr "" -#: dcim/tables/devices.py:479 +#: dcim/tables/devices.py:451 msgid "Maximum draw (W)" msgstr "" -#: dcim/tables/devices.py:482 +#: dcim/tables/devices.py:454 msgid "Allocated draw (W)" msgstr "" -#: dcim/tables/devices.py:582 ipam/forms/model_forms.py:711 +#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738 #: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691 -#: netbox/navigation/menu.py:146 netbox/navigation/menu.py:148 -#: templates/dcim/interface.html:351 templates/ipam/ipaddress_bulk_add.html:15 -#: templates/ipam/service.html:43 templates/virtualization/vminterface.html:88 +#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147 +#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15 +#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85 #: vpn/tables/tunnels.py:98 msgid "IP Addresses" msgstr "" -#: dcim/tables/devices.py:588 netbox/navigation/menu.py:190 -#: templates/ipam/inc/panels/fhrp_groups.html:5 +#: dcim/tables/devices.py:560 netbox/navigation/menu.py:189 +#: templates/ipam/inc/panels/fhrp_groups.html:6 msgid "FHRP Groups" msgstr "" -#: dcim/tables/devices.py:600 templates/dcim/interface.html:90 -#: templates/virtualization/vminterface.html:70 templates/vpn/tunnel.html:18 -#: templates/vpn/tunneltermination.html:14 vpn/forms/bulk_edit.py:75 -#: vpn/forms/bulk_import.py:76 vpn/forms/filtersets.py:41 -#: vpn/forms/filtersets.py:81 vpn/forms/model_forms.py:59 -#: vpn/forms/model_forms.py:144 vpn/tables/tunnels.py:78 +#: dcim/tables/devices.py:572 templates/dcim/interface.html:89 +#: templates/virtualization/vminterface.html:67 templates/vpn/tunnel.html:18 +#: templates/vpn/tunneltermination.html:13 vpn/forms/bulk_edit.py:76 +#: vpn/forms/bulk_import.py:76 vpn/forms/filtersets.py:42 +#: vpn/forms/filtersets.py:82 vpn/forms/model_forms.py:60 +#: vpn/forms/model_forms.py:145 vpn/tables/tunnels.py:78 msgid "Tunnel" msgstr "" -#: dcim/tables/devices.py:625 dcim/tables/devicetypes.py:224 -#: templates/dcim/interface.html:66 +#: dcim/tables/devices.py:597 dcim/tables/devicetypes.py:224 +#: templates/dcim/interface.html:65 msgid "Management Only" msgstr "" -#: dcim/tables/devices.py:633 -msgid "Wireless link" -msgstr "" - -#: dcim/tables/devices.py:643 +#: dcim/tables/devices.py:615 msgid "VDCs" msgstr "" -#: dcim/tables/devices.py:651 dcim/tables/devicetypes.py:48 -#: dcim/tables/devicetypes.py:140 dcim/views.py:1080 dcim/views.py:2025 -#: netbox/navigation/menu.py:91 templates/dcim/device/base.html:52 +#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022 +#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52 #: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49 -#: templates/dcim/inc/panels/inventory_items.html:5 -#: templates/dcim/inventoryitemrole.html:33 +#: templates/dcim/inc/panels/inventory_items.html:6 +#: templates/dcim/inventoryitemrole.html:32 msgid "Inventory Items" msgstr "" -#: dcim/tables/devices.py:732 -#: templates/circuits/inc/circuit_termination.html:80 -#: templates/dcim/consoleport.html:81 templates/dcim/consoleserverport.html:81 -#: templates/dcim/frontport.html:53 templates/dcim/frontport.html:125 -#: templates/dcim/interface.html:196 templates/dcim/inventoryitem_edit.html:69 -#: templates/dcim/inventoryitemtemplate_edit.html:66 -#: templates/dcim/rearport.html:18 templates/dcim/rearport.html:115 -msgid "Rear Port" -msgstr "" - -#: dcim/tables/devices.py:897 templates/dcim/modulebay.html:51 +#: dcim/tables/devices.py:870 templates/dcim/modulebay.html:49 msgid "Installed Module" msgstr "" -#: dcim/tables/devices.py:900 +#: dcim/tables/devices.py:873 msgid "Module Serial" msgstr "" -#: dcim/tables/devices.py:904 +#: dcim/tables/devices.py:877 msgid "Module Asset Tag" msgstr "" -#: dcim/tables/devices.py:913 +#: dcim/tables/devices.py:886 msgid "Module Status" msgstr "" -#: dcim/tables/devices.py:955 dcim/tables/devicetypes.py:308 -#: templates/dcim/inventoryitem.html:41 +#: dcim/tables/devices.py:928 dcim/tables/devicetypes.py:308 +#: templates/dcim/inventoryitem.html:40 msgid "Component" msgstr "" -#: dcim/tables/devices.py:1010 +#: dcim/tables/devices.py:983 msgid "Items" msgstr "" -#: dcim/tables/devicetypes.py:38 netbox/navigation/menu.py:72 -#: netbox/navigation/menu.py:74 +#: dcim/tables/devicetypes.py:38 netbox/navigation/menu.py:71 +#: netbox/navigation/menu.py:73 msgid "Device Types" msgstr "" -#: dcim/tables/devicetypes.py:43 netbox/navigation/menu.py:75 +#: dcim/tables/devicetypes.py:43 netbox/navigation/menu.py:74 msgid "Module Types" msgstr "" -#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:379 -#: extras/forms/model_forms.py:424 netbox/navigation/menu.py:66 +#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380 +#: extras/forms/model_forms.py:416 extras/tables/tables.py:430 +#: netbox/navigation/menu.py:65 msgid "Platforms" msgstr "" -#: dcim/tables/devicetypes.py:85 templates/dcim/devicetype.html:32 +#: dcim/tables/devicetypes.py:85 templates/dcim/devicetype.html:29 msgid "Default Platform" msgstr "" -#: dcim/tables/devicetypes.py:89 templates/dcim/devicetype.html:48 +#: dcim/tables/devicetypes.py:89 templates/dcim/devicetype.html:45 msgid "Full Depth" msgstr "" @@ -5558,71 +5760,71 @@ msgstr "" msgid "Instances" msgstr "" -#: dcim/tables/devicetypes.py:113 dcim/views.py:945 dcim/views.py:1184 -#: dcim/views.py:1872 netbox/navigation/menu.py:85 +#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183 +#: dcim/views.py:1869 netbox/navigation/menu.py:84 #: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15 #: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22 #: templates/dcim/moduletype/base.html:22 msgid "Console Ports" msgstr "" -#: dcim/tables/devicetypes.py:116 dcim/views.py:960 dcim/views.py:1199 -#: dcim/views.py:1887 netbox/navigation/menu.py:86 +#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198 +#: dcim/views.py:1884 netbox/navigation/menu.py:85 #: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22 #: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25 #: templates/dcim/moduletype/base.html:25 msgid "Console Server Ports" msgstr "" -#: dcim/tables/devicetypes.py:119 dcim/views.py:975 dcim/views.py:1214 -#: dcim/views.py:1902 netbox/navigation/menu.py:87 +#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213 +#: dcim/views.py:1899 netbox/navigation/menu.py:86 #: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29 #: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28 #: templates/dcim/moduletype/base.html:28 msgid "Power Ports" msgstr "" -#: dcim/tables/devicetypes.py:122 dcim/views.py:990 dcim/views.py:1229 -#: dcim/views.py:1917 netbox/navigation/menu.py:88 +#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228 +#: dcim/views.py:1914 netbox/navigation/menu.py:87 #: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36 #: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31 #: templates/dcim/moduletype/base.html:31 msgid "Power Outlets" msgstr "" -#: dcim/tables/devicetypes.py:128 dcim/views.py:1020 dcim/views.py:1259 -#: dcim/views.py:1953 netbox/navigation/menu.py:83 +#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258 +#: dcim/views.py:1950 netbox/navigation/menu.py:82 #: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37 #: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37 msgid "Front Ports" msgstr "" -#: dcim/tables/devicetypes.py:131 dcim/views.py:1035 dcim/views.py:1274 -#: dcim/views.py:1968 netbox/navigation/menu.py:84 +#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273 +#: dcim/views.py:1965 netbox/navigation/menu.py:83 #: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50 #: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40 #: templates/dcim/moduletype/base.html:40 msgid "Rear Ports" msgstr "" -#: dcim/tables/devicetypes.py:134 dcim/views.py:1065 dcim/views.py:2006 -#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:49 +#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003 +#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49 #: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "" -#: dcim/tables/devicetypes.py:137 dcim/views.py:1050 dcim/views.py:1987 -#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:46 +#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984 +#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46 #: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43 msgid "Module Bays" msgstr "" -#: dcim/tables/power.py:36 netbox/navigation/menu.py:282 -#: templates/core/configrevision.html:59 templates/dcim/powerpanel.html:53 +#: dcim/tables/power.py:36 netbox/navigation/menu.py:281 +#: templates/dcim/powerpanel.html:51 msgid "Power Feeds" msgstr "" -#: dcim/tables/power.py:80 templates/dcim/powerfeed.html:106 +#: dcim/tables/power.py:80 templates/dcim/powerfeed.html:99 msgid "Max Utilization" msgstr "" @@ -5631,12 +5833,12 @@ msgid "Available Power (VA)" msgstr "" #: dcim/tables/racks.py:29 dcim/tables/sites.py:138 -#: netbox/navigation/menu.py:25 netbox/navigation/menu.py:27 +#: netbox/navigation/menu.py:24 netbox/navigation/menu.py:26 msgid "Racks" msgstr "" -#: dcim/tables/racks.py:73 templates/dcim/device.html:323 -#: templates/dcim/rack.html:95 +#: dcim/tables/racks.py:73 templates/dcim/device.html:310 +#: templates/dcim/rack.html:90 msgid "Height" msgstr "" @@ -5644,11 +5846,11 @@ msgstr "" msgid "Space" msgstr "" -#: dcim/tables/racks.py:96 templates/dcim/rack.html:105 +#: dcim/tables/racks.py:96 templates/dcim/rack.html:100 msgid "Outer Width" msgstr "" -#: dcim/tables/racks.py:100 templates/dcim/rack.html:115 +#: dcim/tables/racks.py:100 templates/dcim/rack.html:110 msgid "Outer Depth" msgstr "" @@ -5657,10 +5859,10 @@ msgid "Max Weight" msgstr "" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:359 extras/forms/model_forms.py:404 -#: ipam/forms/bulk_edit.py:128 ipam/forms/model_forms.py:152 -#: ipam/tables/asn.py:66 netbox/navigation/menu.py:16 -#: netbox/navigation/menu.py:18 +#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396 +#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151 +#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15 +#: netbox/navigation/menu.py:17 msgid "Sites" msgstr "" @@ -5673,273 +5875,276 @@ msgstr "" msgid "Disconnected {count} {type}" msgstr "" -#: dcim/views.py:696 netbox/navigation/menu.py:29 +#: dcim/views.py:696 netbox/navigation/menu.py:28 msgid "Reservations" msgstr "" -#: dcim/views.py:714 +#: dcim/views.py:714 templates/dcim/location.html:90 +#: templates/dcim/site.html:139 msgid "Non-Racked Devices" msgstr "" -#: dcim/views.py:2038 extras/forms/model_forms.py:464 +#: dcim/views.py:2035 extras/forms/model_forms.py:456 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:228 virtualization/views.py:408 +#: virtualization/forms/model_forms.py:225 virtualization/views.py:408 msgid "Config Context" msgstr "" -#: dcim/views.py:2048 virtualization/views.py:418 +#: dcim/views.py:2045 virtualization/views.py:418 msgid "Render Config" msgstr "" -#: dcim/views.py:2976 ipam/tables/ip.py:233 +#: dcim/views.py:2970 ipam/tables/ip.py:233 msgid "Children" msgstr "" -#: extras/api/customfields.py:92 +#: extras/api/customfields.py:88 #, python-brace-format msgid "Unknown related object(s): {name}" msgstr "" -#: extras/api/serializers.py:154 +#: extras/api/serializers_/customfields.py:74 msgid "Changing the type of custom fields is not supported." msgstr "" -#: extras/api/serializers.py:549 extras/api/serializers.py:554 -msgid "Scheduling is not enabled for this report." -msgstr "" - -#: extras/api/serializers.py:599 extras/api/serializers.py:604 +#: extras/api/serializers_/scripts.py:71 extras/api/serializers_/scripts.py:76 msgid "Scheduling is not enabled for this script." msgstr "" -#: extras/choices.py:27 extras/forms/misc.py:14 +#: extras/choices.py:30 extras/forms/misc.py:14 msgid "Text" msgstr "" -#: extras/choices.py:28 +#: extras/choices.py:31 msgid "Text (long)" msgstr "" -#: extras/choices.py:29 +#: extras/choices.py:32 msgid "Integer" msgstr "" -#: extras/choices.py:30 +#: extras/choices.py:33 msgid "Decimal" msgstr "" -#: extras/choices.py:31 +#: extras/choices.py:34 msgid "Boolean (true/false)" msgstr "" -#: extras/choices.py:32 +#: extras/choices.py:35 msgid "Date" msgstr "" -#: extras/choices.py:33 +#: extras/choices.py:36 msgid "Date & time" msgstr "" -#: extras/choices.py:35 +#: extras/choices.py:38 msgid "JSON" msgstr "" -#: extras/choices.py:36 +#: extras/choices.py:39 msgid "Selection" msgstr "" -#: extras/choices.py:37 +#: extras/choices.py:40 msgid "Multiple selection" msgstr "" -#: extras/choices.py:39 +#: extras/choices.py:42 msgid "Multiple objects" msgstr "" -#: extras/choices.py:50 templates/extras/customfield.html:69 vpn/choices.py:20 +#: extras/choices.py:53 netbox/preferences.py:21 +#: templates/extras/customfield.html:66 vpn/choices.py:20 #: wireless/choices.py:27 msgid "Disabled" msgstr "" -#: extras/choices.py:51 +#: extras/choices.py:54 msgid "Loose" msgstr "" -#: extras/choices.py:52 +#: extras/choices.py:55 msgid "Exact" msgstr "" -#: extras/choices.py:63 +#: extras/choices.py:66 msgid "Always" msgstr "" -#: extras/choices.py:64 +#: extras/choices.py:67 msgid "If set" msgstr "" -#: extras/choices.py:65 extras/choices.py:78 +#: extras/choices.py:68 extras/choices.py:81 msgid "Hidden" msgstr "" -#: extras/choices.py:76 +#: extras/choices.py:79 msgid "Yes" msgstr "" -#: extras/choices.py:77 +#: extras/choices.py:80 msgid "No" msgstr "" -#: extras/choices.py:105 templates/tenancy/contact.html:58 -#: tenancy/forms/bulk_edit.py:117 wireless/forms/model_forms.py:159 +#: extras/choices.py:108 templates/tenancy/contact.html:57 +#: tenancy/forms/bulk_edit.py:118 wireless/forms/model_forms.py:162 msgid "Link" msgstr "" -#: extras/choices.py:119 +#: extras/choices.py:122 msgid "Newest" msgstr "" -#: extras/choices.py:120 +#: extras/choices.py:123 msgid "Oldest" msgstr "" -#: extras/choices.py:136 templates/generic/object.html:51 +#: extras/choices.py:139 templates/generic/object.html:61 msgid "Updated" msgstr "" -#: extras/choices.py:137 +#: extras/choices.py:140 msgid "Deleted" msgstr "" -#: extras/choices.py:154 extras/choices.py:176 +#: extras/choices.py:157 extras/choices.py:181 msgid "Info" msgstr "" -#: extras/choices.py:155 extras/choices.py:175 +#: extras/choices.py:158 extras/choices.py:180 msgid "Success" msgstr "" -#: extras/choices.py:156 extras/choices.py:177 +#: extras/choices.py:159 extras/choices.py:182 msgid "Warning" msgstr "" -#: extras/choices.py:157 +#: extras/choices.py:160 msgid "Danger" msgstr "" -#: extras/choices.py:174 utilities/choices.py:190 +#: extras/choices.py:178 +msgid "Debug" +msgstr "" + +#: extras/choices.py:179 netbox/choices.py:104 msgid "Default" msgstr "" -#: extras/choices.py:178 +#: extras/choices.py:183 msgid "Failure" msgstr "" -#: extras/choices.py:185 +#: extras/choices.py:199 msgid "Hourly" msgstr "" -#: extras/choices.py:186 +#: extras/choices.py:200 msgid "12 hours" msgstr "" -#: extras/choices.py:187 +#: extras/choices.py:201 msgid "Daily" msgstr "" -#: extras/choices.py:188 +#: extras/choices.py:202 msgid "Weekly" msgstr "" -#: extras/choices.py:189 +#: extras/choices.py:203 msgid "30 days" msgstr "" -#: extras/choices.py:254 extras/tables/tables.py:291 -#: templates/dcim/virtualchassis_edit.html:108 -#: templates/extras/eventrule.html:51 -#: templates/generic/bulk_add_component.html:56 -#: templates/generic/object_edit.html:29 templates/generic/object_edit.html:70 +#: extras/choices.py:268 extras/tables/tables.py:296 +#: templates/dcim/virtualchassis_edit.html:107 +#: templates/extras/eventrule.html:40 +#: templates/generic/bulk_add_component.html:68 +#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80 #: templates/ipam/inc/ipaddress_edit_header.html:10 msgid "Create" msgstr "" -#: extras/choices.py:255 extras/tables/tables.py:294 -#: templates/extras/eventrule.html:55 +#: extras/choices.py:269 extras/tables/tables.py:299 +#: templates/extras/eventrule.html:44 msgid "Update" msgstr "" -#: extras/choices.py:256 extras/tables/tables.py:297 -#: templates/circuits/inc/circuit_termination.html:22 -#: templates/dcim/inc/panels/inventory_items.html:29 -#: templates/dcim/moduletype/component_templates.html:24 -#: templates/dcim/powerpanel.html:71 templates/extras/eventrule.html:59 -#: templates/extras/report_list.html:34 templates/extras/script_list.html:33 -#: templates/generic/bulk_delete.html:18 templates/generic/bulk_delete.html:45 -#: templates/generic/object_delete.html:15 templates/htmx/delete_form.html:57 -#: templates/ipam/inc/panels/fhrp_groups.html:35 -#: templates/users/objectpermission.html:49 -#: utilities/templates/buttons/delete.html:9 +#: extras/choices.py:270 extras/tables/tables.py:302 +#: templates/circuits/inc/circuit_termination.html:23 +#: templates/dcim/inc/panels/inventory_items.html:37 +#: templates/dcim/moduletype/component_templates.html:23 +#: templates/dcim/powerpanel.html:66 templates/extras/eventrule.html:48 +#: templates/extras/script_list.html:37 templates/generic/bulk_delete.html:20 +#: templates/generic/bulk_delete.html:66 +#: templates/generic/object_delete.html:19 templates/htmx/delete_form.html:57 +#: templates/ipam/inc/panels/fhrp_groups.html:48 +#: templates/users/objectpermission.html:46 +#: utilities/templates/buttons/delete.html:11 msgid "Delete" msgstr "" -#: extras/choices.py:280 utilities/choices.py:143 utilities/choices.py:191 +#: extras/choices.py:294 netbox/choices.py:57 netbox/choices.py:105 msgid "Blue" msgstr "" -#: extras/choices.py:281 utilities/choices.py:142 utilities/choices.py:192 +#: extras/choices.py:295 netbox/choices.py:56 netbox/choices.py:106 msgid "Indigo" msgstr "" -#: extras/choices.py:282 utilities/choices.py:140 utilities/choices.py:193 +#: extras/choices.py:296 netbox/choices.py:54 netbox/choices.py:107 msgid "Purple" msgstr "" -#: extras/choices.py:283 utilities/choices.py:137 utilities/choices.py:194 +#: extras/choices.py:297 netbox/choices.py:51 netbox/choices.py:108 msgid "Pink" msgstr "" -#: extras/choices.py:284 utilities/choices.py:136 utilities/choices.py:195 +#: extras/choices.py:298 netbox/choices.py:50 netbox/choices.py:109 msgid "Red" msgstr "" -#: extras/choices.py:285 utilities/choices.py:154 utilities/choices.py:196 +#: extras/choices.py:299 netbox/choices.py:68 netbox/choices.py:110 msgid "Orange" msgstr "" -#: extras/choices.py:286 utilities/choices.py:152 utilities/choices.py:197 +#: extras/choices.py:300 netbox/choices.py:66 netbox/choices.py:111 msgid "Yellow" msgstr "" -#: extras/choices.py:287 utilities/choices.py:149 utilities/choices.py:198 +#: extras/choices.py:301 netbox/choices.py:63 netbox/choices.py:112 msgid "Green" msgstr "" -#: extras/choices.py:288 utilities/choices.py:146 utilities/choices.py:199 +#: extras/choices.py:302 netbox/choices.py:60 netbox/choices.py:113 msgid "Teal" msgstr "" -#: extras/choices.py:289 utilities/choices.py:145 utilities/choices.py:200 +#: extras/choices.py:303 netbox/choices.py:59 netbox/choices.py:114 msgid "Cyan" msgstr "" -#: extras/choices.py:290 utilities/choices.py:201 +#: extras/choices.py:304 netbox/choices.py:115 msgid "Gray" msgstr "" -#: extras/choices.py:291 utilities/choices.py:160 utilities/choices.py:202 +#: extras/choices.py:305 netbox/choices.py:74 netbox/choices.py:116 msgid "Black" msgstr "" -#: extras/choices.py:292 utilities/choices.py:161 utilities/choices.py:203 +#: extras/choices.py:306 netbox/choices.py:75 netbox/choices.py:117 msgid "White" msgstr "" -#: extras/choices.py:306 extras/forms/model_forms.py:235 -#: extras/forms/model_forms.py:322 templates/extras/webhook.html:11 +#: extras/choices.py:320 extras/forms/model_forms.py:242 +#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10 msgid "Webhook" msgstr "" -#: extras/choices.py:307 templates/extras/script/base.html:29 +#: extras/choices.py:321 extras/forms/model_forms.py:315 +#: templates/extras/script/base.html:29 msgid "Script" msgstr "" @@ -5982,242 +6187,247 @@ msgstr "" msgid "Unregistered widget class: {name}" msgstr "" -#: extras/dashboard/widgets.py:115 +#: extras/dashboard/widgets.py:126 #, python-brace-format msgid "{class_name} must define a render() method." msgstr "" -#: extras/dashboard/widgets.py:150 +#: extras/dashboard/widgets.py:161 msgid "Note" msgstr "" -#: extras/dashboard/widgets.py:151 +#: extras/dashboard/widgets.py:162 msgid "Display some arbitrary custom content. Markdown is supported." msgstr "" -#: extras/dashboard/widgets.py:164 +#: extras/dashboard/widgets.py:175 msgid "Object Counts" msgstr "" -#: extras/dashboard/widgets.py:165 +#: extras/dashboard/widgets.py:176 msgid "" "Display a set of NetBox models and the number of objects created for each " "type." msgstr "" -#: extras/dashboard/widgets.py:175 +#: extras/dashboard/widgets.py:186 msgid "Filters to apply when counting the number of objects" msgstr "" -#: extras/dashboard/widgets.py:183 +#: extras/dashboard/widgets.py:194 msgid "Invalid format. Object filters must be passed as a dictionary." msgstr "" -#: extras/dashboard/widgets.py:211 +#: extras/dashboard/widgets.py:222 msgid "Object List" msgstr "" -#: extras/dashboard/widgets.py:212 +#: extras/dashboard/widgets.py:223 msgid "Display an arbitrary list of objects." msgstr "" -#: extras/dashboard/widgets.py:225 +#: extras/dashboard/widgets.py:236 msgid "The default number of objects to display" msgstr "" -#: extras/dashboard/widgets.py:237 +#: extras/dashboard/widgets.py:248 msgid "Invalid format. URL parameters must be passed as a dictionary." msgstr "" -#: extras/dashboard/widgets.py:272 +#: extras/dashboard/widgets.py:283 msgid "RSS Feed" msgstr "" -#: extras/dashboard/widgets.py:277 +#: extras/dashboard/widgets.py:288 msgid "Embed an RSS feed from an external website." msgstr "" -#: extras/dashboard/widgets.py:284 +#: extras/dashboard/widgets.py:295 msgid "Feed URL" msgstr "" -#: extras/dashboard/widgets.py:289 +#: extras/dashboard/widgets.py:300 msgid "The maximum number of objects to display" msgstr "" -#: extras/dashboard/widgets.py:294 +#: extras/dashboard/widgets.py:305 msgid "How long to stored the cached content (in seconds)" msgstr "" -#: extras/dashboard/widgets.py:346 templates/account/base.html:10 -#: templates/account/bookmarks.html:7 templates/inc/profile_button.html:29 +#: extras/dashboard/widgets.py:357 templates/account/base.html:10 +#: templates/account/bookmarks.html:7 templates/inc/user_menu.html:30 msgid "Bookmarks" msgstr "" -#: extras/dashboard/widgets.py:350 +#: extras/dashboard/widgets.py:361 msgid "Show your personal bookmarks" msgstr "" -#: extras/events.py:133 +#: extras/events.py:128 #, python-brace-format msgid "Unknown action type for an event rule: {action_type}" msgstr "" -#: extras/events.py:181 +#: extras/events.py:176 #, python-brace-format msgid "Cannot import events pipeline {name} error: {error}" msgstr "" -#: extras/filtersets.py:207 extras/filtersets.py:542 extras/filtersets.py:570 +#: extras/filtersets.py:45 +msgid "Script module (ID)" +msgstr "" + +#: extras/filtersets.py:249 extras/filtersets.py:589 extras/filtersets.py:621 msgid "Data file (ID)" msgstr "" -#: extras/filtersets.py:479 virtualization/forms/filtersets.py:114 +#: extras/filtersets.py:526 virtualization/forms/filtersets.py:118 msgid "Cluster type" msgstr "" -#: extras/filtersets.py:485 virtualization/filtersets.py:95 +#: extras/filtersets.py:532 virtualization/filtersets.py:95 #: virtualization/filtersets.py:147 msgid "Cluster type (slug)" msgstr "" -#: extras/filtersets.py:490 ipam/forms/bulk_edit.py:475 -#: ipam/forms/model_forms.py:589 virtualization/forms/filtersets.py:108 +#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476 +#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112 msgid "Cluster group" msgstr "" -#: extras/filtersets.py:496 virtualization/filtersets.py:136 +#: extras/filtersets.py:543 virtualization/filtersets.py:136 msgid "Cluster group (slug)" msgstr "" -#: extras/filtersets.py:506 tenancy/forms/forms.py:16 tenancy/forms/forms.py:39 +#: extras/filtersets.py:553 tenancy/forms/forms.py:16 tenancy/forms/forms.py:39 msgid "Tenant group" msgstr "" -#: extras/filtersets.py:512 tenancy/filtersets.py:164 tenancy/filtersets.py:184 +#: extras/filtersets.py:559 tenancy/filtersets.py:189 tenancy/filtersets.py:209 msgid "Tenant group (slug)" msgstr "" -#: extras/filtersets.py:528 templates/extras/tag.html:12 +#: extras/filtersets.py:575 extras/forms/model_forms.py:374 +#: templates/extras/tag.html:11 msgid "Tag" msgstr "" -#: extras/filtersets.py:534 +#: extras/filtersets.py:581 msgid "Tag (slug)" msgstr "" -#: extras/filtersets.py:594 extras/forms/filtersets.py:438 +#: extras/filtersets.py:645 extras/forms/filtersets.py:438 msgid "Has local config context data" msgstr "" -#: extras/filtersets.py:619 +#: extras/filtersets.py:670 msgid "User name" msgstr "" -#: extras/forms/bulk_edit.py:32 extras/forms/filtersets.py:56 +#: extras/forms/bulk_edit.py:32 extras/forms/filtersets.py:57 msgid "Group name" msgstr "" -#: extras/forms/bulk_edit.py:40 extras/forms/filtersets.py:64 -#: extras/tables/tables.py:47 templates/extras/customfield.html:39 -#: templates/generic/bulk_import.html:116 +#: extras/forms/bulk_edit.py:40 extras/forms/filtersets.py:65 +#: extras/tables/tables.py:49 templates/extras/customfield.html:38 +#: templates/generic/bulk_import.html:118 msgid "Required" msgstr "" #: extras/forms/bulk_edit.py:53 extras/forms/bulk_import.py:57 -#: extras/forms/filtersets.py:78 extras/models/customfields.py:193 +#: extras/forms/filtersets.py:79 extras/models/customfields.py:194 msgid "UI visible" msgstr "" #: extras/forms/bulk_edit.py:58 extras/forms/bulk_import.py:63 -#: extras/forms/filtersets.py:83 extras/models/customfields.py:200 +#: extras/forms/filtersets.py:84 extras/models/customfields.py:201 msgid "UI editable" msgstr "" -#: extras/forms/bulk_edit.py:63 extras/forms/filtersets.py:86 +#: extras/forms/bulk_edit.py:63 extras/forms/filtersets.py:87 msgid "Is cloneable" msgstr "" -#: extras/forms/bulk_edit.py:102 extras/forms/filtersets.py:126 +#: extras/forms/bulk_edit.py:103 extras/forms/filtersets.py:127 msgid "New window" msgstr "" -#: extras/forms/bulk_edit.py:111 +#: extras/forms/bulk_edit.py:112 msgid "Button class" msgstr "" -#: extras/forms/bulk_edit.py:128 extras/forms/filtersets.py:164 -#: extras/models/models.py:439 +#: extras/forms/bulk_edit.py:129 extras/forms/filtersets.py:165 +#: extras/models/models.py:437 msgid "MIME type" msgstr "" -#: extras/forms/bulk_edit.py:133 extras/forms/filtersets.py:167 +#: extras/forms/bulk_edit.py:134 extras/forms/filtersets.py:168 msgid "File extension" msgstr "" -#: extras/forms/bulk_edit.py:138 extras/forms/filtersets.py:171 +#: extras/forms/bulk_edit.py:139 extras/forms/filtersets.py:172 msgid "As attachment" msgstr "" -#: extras/forms/bulk_edit.py:166 extras/forms/filtersets.py:213 -#: extras/tables/tables.py:214 templates/extras/savedfilter.html:30 +#: extras/forms/bulk_edit.py:167 extras/forms/filtersets.py:214 +#: extras/tables/tables.py:219 templates/extras/savedfilter.html:29 msgid "Shared" msgstr "" -#: extras/forms/bulk_edit.py:189 extras/forms/filtersets.py:242 -#: extras/models/models.py:204 +#: extras/forms/bulk_edit.py:190 extras/forms/filtersets.py:243 +#: extras/models/models.py:202 msgid "HTTP method" msgstr "" -#: extras/forms/bulk_edit.py:193 extras/forms/filtersets.py:236 -#: templates/extras/webhook.html:37 +#: extras/forms/bulk_edit.py:194 extras/forms/filtersets.py:237 +#: templates/extras/webhook.html:30 msgid "Payload URL" msgstr "" -#: extras/forms/bulk_edit.py:198 extras/models/models.py:244 +#: extras/forms/bulk_edit.py:199 extras/models/models.py:242 msgid "SSL verification" msgstr "" -#: extras/forms/bulk_edit.py:201 templates/extras/webhook.html:45 +#: extras/forms/bulk_edit.py:202 templates/extras/webhook.html:38 msgid "Secret" msgstr "" -#: extras/forms/bulk_edit.py:206 +#: extras/forms/bulk_edit.py:207 msgid "CA file path" msgstr "" -#: extras/forms/bulk_edit.py:225 +#: extras/forms/bulk_edit.py:226 msgid "On create" msgstr "" -#: extras/forms/bulk_edit.py:230 +#: extras/forms/bulk_edit.py:231 msgid "On update" msgstr "" -#: extras/forms/bulk_edit.py:235 +#: extras/forms/bulk_edit.py:236 msgid "On delete" msgstr "" -#: extras/forms/bulk_edit.py:240 +#: extras/forms/bulk_edit.py:241 msgid "On job start" msgstr "" -#: extras/forms/bulk_edit.py:245 +#: extras/forms/bulk_edit.py:246 msgid "On job end" msgstr "" -#: extras/forms/bulk_edit.py:282 +#: extras/forms/bulk_edit.py:283 msgid "Is active" msgstr "" #: extras/forms/bulk_import.py:34 extras/forms/bulk_import.py:115 #: extras/forms/bulk_import.py:136 extras/forms/bulk_import.py:159 -#: extras/forms/bulk_import.py:183 extras/forms/filtersets.py:114 -#: extras/forms/filtersets.py:160 extras/forms/filtersets.py:201 -#: extras/forms/model_forms.py:43 extras/forms/model_forms.py:127 -#: extras/forms/model_forms.py:156 extras/forms/model_forms.py:197 -#: extras/forms/model_forms.py:253 -msgid "Content types" +#: extras/forms/bulk_import.py:183 extras/forms/filtersets.py:115 +#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43 +#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163 +#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261 +#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276 +msgid "Object types" msgstr "" #: extras/forms/bulk_import.py:36 extras/forms/bulk_import.py:117 @@ -6230,9 +6440,9 @@ msgstr "" msgid "Field data type (e.g. text, integer, etc.)" msgstr "" -#: extras/forms/bulk_import.py:44 extras/forms/filtersets.py:48 -#: extras/forms/filtersets.py:259 extras/forms/model_forms.py:47 -#: extras/forms/model_forms.py:223 tenancy/forms/filtersets.py:91 +#: extras/forms/bulk_import.py:44 extras/forms/filtersets.py:186 +#: extras/forms/filtersets.py:260 extras/forms/model_forms.py:230 +#: tenancy/forms/filtersets.py:92 msgid "Object type" msgstr "" @@ -6240,7 +6450,7 @@ msgstr "" msgid "Object type (for object or multi-object fields)" msgstr "" -#: extras/forms/bulk_import.py:50 extras/forms/filtersets.py:73 +#: extras/forms/bulk_import.py:50 extras/forms/filtersets.py:74 msgid "Choice set" msgstr "" @@ -6266,11 +6476,11 @@ msgid "" "separated by colon: \"choice1:First Choice,choice2:Second Choice\"" msgstr "" -#: extras/forms/bulk_import.py:120 extras/models/models.py:353 +#: extras/forms/bulk_import.py:120 extras/models/models.py:351 msgid "button class" msgstr "" -#: extras/forms/bulk_import.py:123 extras/models/models.py:357 +#: extras/forms/bulk_import.py:123 extras/models/models.py:355 msgid "" "The class of the first link in a group will be used for the dropdown button" msgstr "" @@ -6293,139 +6503,143 @@ msgstr "" msgid "Script {name} not found" msgstr "" -#: extras/forms/bulk_import.py:242 +#: extras/forms/bulk_import.py:239 msgid "Assigned object type" msgstr "" -#: extras/forms/bulk_import.py:247 +#: extras/forms/bulk_import.py:244 msgid "The classification of entry" msgstr "" -#: extras/forms/filtersets.py:53 +#: extras/forms/filtersets.py:49 extras/forms/model_forms.py:47 +msgid "Related object type" +msgstr "" + +#: extras/forms/filtersets.py:54 msgid "Field type" msgstr "" -#: extras/forms/filtersets.py:97 extras/tables/tables.py:65 -#: templates/generic/bulk_import.html:148 +#: extras/forms/filtersets.py:98 extras/tables/tables.py:70 +#: templates/generic/bulk_import.html:154 msgid "Choices" msgstr "" -#: extras/forms/filtersets.py:141 extras/forms/filtersets.py:327 -#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:459 -#: templates/core/job.html:86 templates/extras/configcontext.html:86 -#: templates/extras/eventrule.html:111 +#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451 +#: templates/core/job.html:78 templates/extras/configcontext.html:82 +#: templates/extras/eventrule.html:90 msgid "Data" msgstr "" -#: extras/forms/filtersets.py:152 extras/forms/filtersets.py:341 -#: extras/forms/filtersets.py:427 utilities/choices.py:219 -#: utilities/forms/bulk_import.py:27 +#: extras/forms/filtersets.py:153 extras/forms/filtersets.py:342 +#: extras/forms/filtersets.py:427 netbox/choices.py:133 +#: utilities/forms/bulk_import.py:26 msgid "Data file" msgstr "" -#: extras/forms/filtersets.py:185 -msgid "Content type" +#: extras/forms/filtersets.py:161 +msgid "Content types" msgstr "" -#: extras/forms/filtersets.py:232 extras/models/models.py:209 +#: extras/forms/filtersets.py:233 extras/models/models.py:207 msgid "HTTP content type" msgstr "" -#: extras/forms/filtersets.py:254 extras/forms/model_forms.py:272 -#: templates/extras/eventrule.html:46 +#: extras/forms/filtersets.py:255 extras/forms/model_forms.py:280 +#: templates/extras/eventrule.html:37 msgid "Events" msgstr "" -#: extras/forms/filtersets.py:264 +#: extras/forms/filtersets.py:265 msgid "Action type" msgstr "" -#: extras/forms/filtersets.py:278 +#: extras/forms/filtersets.py:279 msgid "Object creations" msgstr "" -#: extras/forms/filtersets.py:285 +#: extras/forms/filtersets.py:286 msgid "Object updates" msgstr "" -#: extras/forms/filtersets.py:292 +#: extras/forms/filtersets.py:293 msgid "Object deletions" msgstr "" -#: extras/forms/filtersets.py:299 +#: extras/forms/filtersets.py:300 msgid "Job starts" msgstr "" -#: extras/forms/filtersets.py:306 extras/forms/model_forms.py:291 +#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300 msgid "Job terminations" msgstr "" -#: extras/forms/filtersets.py:315 +#: extras/forms/filtersets.py:316 msgid "Tagged object type" msgstr "" -#: extras/forms/filtersets.py:320 +#: extras/forms/filtersets.py:321 msgid "Allowed object type" msgstr "" -#: extras/forms/filtersets.py:349 extras/forms/model_forms.py:394 -#: netbox/navigation/menu.py:19 +#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386 +#: netbox/navigation/menu.py:18 msgid "Regions" msgstr "" -#: extras/forms/filtersets.py:354 extras/forms/model_forms.py:399 +#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391 msgid "Site groups" msgstr "" -#: extras/forms/filtersets.py:364 extras/forms/model_forms.py:409 -#: netbox/navigation/menu.py:21 +#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401 +#: netbox/navigation/menu.py:20 templates/dcim/site.html:126 msgid "Locations" msgstr "" -#: extras/forms/filtersets.py:369 extras/forms/model_forms.py:414 +#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406 msgid "Device types" msgstr "" -#: extras/forms/filtersets.py:374 extras/forms/model_forms.py:419 +#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411 msgid "Roles" msgstr "" -#: extras/forms/filtersets.py:384 extras/forms/model_forms.py:429 +#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421 msgid "Cluster types" msgstr "" -#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:434 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426 msgid "Cluster groups" msgstr "" -#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:439 -#: netbox/navigation/menu.py:243 netbox/navigation/menu.py:245 -#: templates/virtualization/clustertype.html:33 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431 +#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244 +#: templates/virtualization/clustertype.html:30 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "" -#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:444 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436 msgid "Tenant groups" msgstr "" -#: extras/forms/filtersets.py:454 extras/forms/filtersets.py:495 +#: extras/forms/filtersets.py:454 extras/forms/filtersets.py:492 msgid "After" msgstr "" -#: extras/forms/filtersets.py:459 extras/forms/filtersets.py:500 +#: extras/forms/filtersets.py:459 extras/forms/filtersets.py:497 msgid "Before" msgstr "" -#: extras/forms/filtersets.py:490 extras/tables/tables.py:431 -#: templates/extras/htmx/report_result.html:43 -#: templates/extras/objectchange.html:34 +#: extras/forms/filtersets.py:487 extras/tables/tables.py:456 +#: extras/tables/tables.py:542 extras/tables/tables.py:567 +#: templates/extras/objectchange.html:31 msgid "Time" msgstr "" -#: extras/forms/filtersets.py:504 extras/forms/model_forms.py:274 -#: extras/tables/tables.py:445 templates/extras/eventrule.html:90 -#: templates/extras/objectchange.html:50 +#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284 +#: extras/tables/tables.py:470 templates/extras/eventrule.html:77 +#: templates/extras/objectchange.html:45 msgid "Action" msgstr "" @@ -6433,194 +6647,191 @@ msgstr "" msgid "Type of the related object (for object/multi-object fields only)" msgstr "" -#: extras/forms/model_forms.py:58 templates/extras/customfield.html:11 +#: extras/forms/model_forms.py:61 templates/extras/customfield.html:10 msgid "Custom Field" msgstr "" -#: extras/forms/model_forms.py:61 templates/extras/customfield.html:60 +#: extras/forms/model_forms.py:64 templates/extras/customfield.html:58 msgid "Behavior" msgstr "" -#: extras/forms/model_forms.py:62 +#: extras/forms/model_forms.py:66 msgid "Values" msgstr "" -#: extras/forms/model_forms.py:71 +#: extras/forms/model_forms.py:75 msgid "" "The type of data stored in this field. For object/multi-object fields, " "select the related object type below." msgstr "" -#: extras/forms/model_forms.py:74 +#: extras/forms/model_forms.py:78 msgid "" "This will be displayed as help text for the form field. Markdown is " "supported." msgstr "" -#: extras/forms/model_forms.py:91 +#: extras/forms/model_forms.py:95 msgid "" "Enter one choice per line. An optional label may be specified for each " "choice by appending it with a colon. Example:" msgstr "" -#: extras/forms/model_forms.py:132 templates/extras/customlink.html:10 +#: extras/forms/model_forms.py:138 templates/extras/customlink.html:10 msgid "Custom Link" msgstr "" -#: extras/forms/model_forms.py:133 +#: extras/forms/model_forms.py:140 msgid "Templates" msgstr "" -#: extras/forms/model_forms.py:145 +#: extras/forms/model_forms.py:152 #, python-brace-format msgid "" "Jinja2 template code for the link text. Reference the object as {example}. " "Links which render as empty text will not be displayed." msgstr "" -#: extras/forms/model_forms.py:149 +#: extras/forms/model_forms.py:156 #, python-brace-format msgid "" "Jinja2 template code for the link URL. Reference the object as {example}." msgstr "" -#: extras/forms/model_forms.py:160 extras/forms/model_forms.py:510 +#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503 msgid "Template code" msgstr "" -#: extras/forms/model_forms.py:166 templates/extras/exporttemplate.html:17 +#: extras/forms/model_forms.py:173 templates/extras/exporttemplate.html:12 msgid "Export Template" msgstr "" -#: extras/forms/model_forms.py:168 +#: extras/forms/model_forms.py:175 msgid "Rendering" msgstr "" -#: extras/forms/model_forms.py:182 extras/forms/model_forms.py:535 +#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528 msgid "Template content is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:542 +#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535 msgid "Must specify either local content or a data file" msgstr "" -#: extras/forms/model_forms.py:203 netbox/forms/mixins.py:70 +#: extras/forms/model_forms.py:210 netbox/forms/mixins.py:70 #: templates/extras/savedfilter.html:10 msgid "Saved Filter" msgstr "" -#: extras/forms/model_forms.py:236 templates/extras/webhook.html:28 +#: extras/forms/model_forms.py:245 templates/extras/webhook.html:23 msgid "HTTP Request" msgstr "" -#: extras/forms/model_forms.py:239 templates/extras/webhook.html:53 +#: extras/forms/model_forms.py:247 templates/extras/webhook.html:44 msgid "SSL" msgstr "" -#: extras/forms/model_forms.py:257 +#: extras/forms/model_forms.py:265 msgid "Action choice" msgstr "" -#: extras/forms/model_forms.py:262 +#: extras/forms/model_forms.py:270 msgid "Enter conditions in JSON format." msgstr "" -#: extras/forms/model_forms.py:266 +#: extras/forms/model_forms.py:274 msgid "" "Enter parameters to pass to the action in JSON format." msgstr "" -#: extras/forms/model_forms.py:271 templates/extras/eventrule.html:11 +#: extras/forms/model_forms.py:279 templates/extras/eventrule.html:10 msgid "Event Rule" msgstr "" -#: extras/forms/model_forms.py:273 templates/extras/eventrule.html:78 +#: extras/forms/model_forms.py:281 templates/extras/eventrule.html:66 msgid "Conditions" msgstr "" -#: extras/forms/model_forms.py:287 +#: extras/forms/model_forms.py:296 msgid "Creations" msgstr "" -#: extras/forms/model_forms.py:288 +#: extras/forms/model_forms.py:297 msgid "Updates" msgstr "" -#: extras/forms/model_forms.py:289 +#: extras/forms/model_forms.py:298 msgid "Deletions" msgstr "" -#: extras/forms/model_forms.py:290 +#: extras/forms/model_forms.py:299 msgid "Job executions" msgstr "" -#: extras/forms/model_forms.py:376 users/forms/model_forms.py:286 -msgid "Object types" -msgstr "" - -#: extras/forms/model_forms.py:449 netbox/navigation/menu.py:40 +#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "" -#: extras/forms/model_forms.py:466 ipam/forms/filtersets.py:141 -#: ipam/forms/filtersets.py:527 templates/extras/configcontext.html:62 -#: templates/ipam/ipaddress.html:62 templates/ipam/vlan_edit.html:30 -#: tenancy/forms/filtersets.py:86 users/forms/model_forms.py:324 +#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142 +#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321 +#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59 +#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 +#: users/forms/model_forms.py:314 msgid "Assignment" msgstr "" -#: extras/forms/model_forms.py:492 +#: extras/forms/model_forms.py:485 msgid "Data is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:498 +#: extras/forms/model_forms.py:491 msgid "Must specify either local data or a data file" msgstr "" -#: extras/forms/model_forms.py:517 templates/core/datafile.html:65 +#: extras/forms/model_forms.py:510 templates/core/datafile.html:55 msgid "Content" msgstr "" -#: extras/forms/reports.py:18 extras/forms/scripts.py:24 +#: extras/forms/reports.py:17 extras/forms/scripts.py:23 msgid "Schedule at" msgstr "" -#: extras/forms/reports.py:19 +#: extras/forms/reports.py:18 msgid "Schedule execution of report to a set time" msgstr "" -#: extras/forms/reports.py:24 extras/forms/scripts.py:30 +#: extras/forms/reports.py:23 extras/forms/scripts.py:29 msgid "Recurs every" msgstr "" -#: extras/forms/reports.py:28 +#: extras/forms/reports.py:27 msgid "Interval at which this report is re-run (in minutes)" msgstr "" -#: extras/forms/reports.py:36 extras/forms/scripts.py:42 +#: extras/forms/reports.py:35 extras/forms/scripts.py:41 #, python-brace-format msgid " (current time: {now})" msgstr "" -#: extras/forms/reports.py:46 extras/forms/scripts.py:52 +#: extras/forms/reports.py:45 extras/forms/scripts.py:51 msgid "Scheduled time must be in the future." msgstr "" -#: extras/forms/scripts.py:18 +#: extras/forms/scripts.py:17 msgid "Commit changes" msgstr "" -#: extras/forms/scripts.py:19 +#: extras/forms/scripts.py:18 msgid "Commit changes to the database (uncheck for a dry-run)" msgstr "" -#: extras/forms/scripts.py:25 +#: extras/forms/scripts.py:24 msgid "Schedule execution of script to a set time" msgstr "" -#: extras/forms/scripts.py:34 +#: extras/forms/scripts.py:33 msgid "Interval at which this script is re-run (in minutes)" msgstr "" @@ -6710,112 +6921,112 @@ msgstr "" msgid "config templates" msgstr "" -#: extras/models/customfields.py:72 +#: extras/models/customfields.py:73 msgid "The object(s) to which this field applies." msgstr "" -#: extras/models/customfields.py:79 +#: extras/models/customfields.py:80 msgid "The type of data this custom field holds" msgstr "" -#: extras/models/customfields.py:86 +#: extras/models/customfields.py:87 msgid "The type of NetBox object this field maps to (for object fields)" msgstr "" -#: extras/models/customfields.py:92 +#: extras/models/customfields.py:93 msgid "Internal field name" msgstr "" -#: extras/models/customfields.py:96 +#: extras/models/customfields.py:97 msgid "Only alphanumeric characters and underscores are allowed." msgstr "" -#: extras/models/customfields.py:101 +#: extras/models/customfields.py:102 msgid "Double underscores are not permitted in custom field names." msgstr "" -#: extras/models/customfields.py:112 +#: extras/models/customfields.py:113 msgid "" "Name of the field as displayed to users (if not provided, 'the field's name " "will be used)" msgstr "" -#: extras/models/customfields.py:116 extras/models/models.py:347 +#: extras/models/customfields.py:117 extras/models/models.py:345 msgid "group name" msgstr "" -#: extras/models/customfields.py:119 +#: extras/models/customfields.py:120 msgid "Custom fields within the same group will be displayed together" msgstr "" -#: extras/models/customfields.py:127 +#: extras/models/customfields.py:128 msgid "required" msgstr "" -#: extras/models/customfields.py:129 +#: extras/models/customfields.py:130 msgid "" "If true, this field is required when creating new objects or editing an " "existing object." msgstr "" -#: extras/models/customfields.py:132 +#: extras/models/customfields.py:133 msgid "search weight" msgstr "" -#: extras/models/customfields.py:135 +#: extras/models/customfields.py:136 msgid "" "Weighting for search. Lower values are considered more important. Fields " "with a search weight of zero will be ignored." msgstr "" -#: extras/models/customfields.py:140 +#: extras/models/customfields.py:141 msgid "filter logic" msgstr "" -#: extras/models/customfields.py:144 +#: extras/models/customfields.py:145 msgid "" "Loose matches any instance of a given string; exact matches the entire field." msgstr "" -#: extras/models/customfields.py:147 +#: extras/models/customfields.py:148 msgid "default" msgstr "" -#: extras/models/customfields.py:151 +#: extras/models/customfields.py:152 msgid "" "Default value for the field (must be a JSON value). Encapsulate strings with " "double quotes (e.g. \"Foo\")." msgstr "" -#: extras/models/customfields.py:156 +#: extras/models/customfields.py:157 msgid "display weight" msgstr "" -#: extras/models/customfields.py:157 +#: extras/models/customfields.py:158 msgid "Fields with higher weights appear lower in a form." msgstr "" -#: extras/models/customfields.py:162 +#: extras/models/customfields.py:163 msgid "minimum value" msgstr "" -#: extras/models/customfields.py:163 +#: extras/models/customfields.py:164 msgid "Minimum allowed value (for numeric fields)" msgstr "" -#: extras/models/customfields.py:168 +#: extras/models/customfields.py:169 msgid "maximum value" msgstr "" -#: extras/models/customfields.py:169 +#: extras/models/customfields.py:170 msgid "Maximum allowed value (for numeric fields)" msgstr "" -#: extras/models/customfields.py:175 +#: extras/models/customfields.py:176 msgid "validation regex" msgstr "" -#: extras/models/customfields.py:177 +#: extras/models/customfields.py:178 #, python-brace-format msgid "" "Regular expression to enforce on text field values. Use ^ and $ to force " @@ -6823,166 +7034,166 @@ msgid "" "values to exactly three uppercase letters." msgstr "" -#: extras/models/customfields.py:185 +#: extras/models/customfields.py:186 msgid "choice set" msgstr "" -#: extras/models/customfields.py:194 +#: extras/models/customfields.py:195 msgid "Specifies whether the custom field is displayed in the UI" msgstr "" -#: extras/models/customfields.py:201 +#: extras/models/customfields.py:202 msgid "Specifies whether the custom field value can be edited in the UI" msgstr "" -#: extras/models/customfields.py:205 +#: extras/models/customfields.py:206 msgid "is cloneable" msgstr "" -#: extras/models/customfields.py:206 +#: extras/models/customfields.py:207 msgid "Replicate this value when cloning objects" msgstr "" -#: extras/models/customfields.py:219 +#: extras/models/customfields.py:224 msgid "custom field" msgstr "" -#: extras/models/customfields.py:220 +#: extras/models/customfields.py:225 msgid "custom fields" msgstr "" -#: extras/models/customfields.py:309 +#: extras/models/customfields.py:314 #, python-brace-format msgid "Invalid default value \"{value}\": {error}" msgstr "" -#: extras/models/customfields.py:316 +#: extras/models/customfields.py:321 msgid "A minimum value may be set only for numeric fields" msgstr "" -#: extras/models/customfields.py:318 +#: extras/models/customfields.py:323 msgid "A maximum value may be set only for numeric fields" msgstr "" -#: extras/models/customfields.py:328 +#: extras/models/customfields.py:333 msgid "Regular expression validation is supported only for text and URL fields" msgstr "" -#: extras/models/customfields.py:338 +#: extras/models/customfields.py:343 msgid "Selection fields must specify a set of choices." msgstr "" -#: extras/models/customfields.py:342 +#: extras/models/customfields.py:347 msgid "Choices may be set only on selection fields." msgstr "" -#: extras/models/customfields.py:349 +#: extras/models/customfields.py:354 msgid "Object fields must define an object type." msgstr "" -#: extras/models/customfields.py:354 +#: extras/models/customfields.py:359 #, python-brace-format msgid "{type} fields may not define an object type." msgstr "" -#: extras/models/customfields.py:434 +#: extras/models/customfields.py:439 msgid "True" msgstr "" -#: extras/models/customfields.py:435 +#: extras/models/customfields.py:440 msgid "False" msgstr "" -#: extras/models/customfields.py:517 +#: extras/models/customfields.py:522 #, python-brace-format msgid "Values must match this regex: {regex}" msgstr "" -#: extras/models/customfields.py:611 +#: extras/models/customfields.py:616 msgid "Value must be a string." msgstr "" -#: extras/models/customfields.py:613 +#: extras/models/customfields.py:618 #, python-brace-format msgid "Value must match regex '{regex}'" msgstr "" -#: extras/models/customfields.py:618 +#: extras/models/customfields.py:623 msgid "Value must be an integer." msgstr "" -#: extras/models/customfields.py:621 extras/models/customfields.py:636 +#: extras/models/customfields.py:626 extras/models/customfields.py:641 #, python-brace-format msgid "Value must be at least {minimum}" msgstr "" -#: extras/models/customfields.py:625 extras/models/customfields.py:640 +#: extras/models/customfields.py:630 extras/models/customfields.py:645 #, python-brace-format msgid "Value must not exceed {maximum}" msgstr "" -#: extras/models/customfields.py:633 +#: extras/models/customfields.py:638 msgid "Value must be a decimal." msgstr "" -#: extras/models/customfields.py:645 +#: extras/models/customfields.py:650 msgid "Value must be true or false." msgstr "" -#: extras/models/customfields.py:653 +#: extras/models/customfields.py:658 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)." msgstr "" -#: extras/models/customfields.py:662 +#: extras/models/customfields.py:667 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)." msgstr "" -#: extras/models/customfields.py:669 +#: extras/models/customfields.py:674 #, python-brace-format msgid "Invalid choice ({value}) for choice set {choiceset}." msgstr "" -#: extras/models/customfields.py:679 +#: extras/models/customfields.py:684 #, python-brace-format msgid "Invalid choice(s) ({value}) for choice set {choiceset}." msgstr "" -#: extras/models/customfields.py:688 +#: extras/models/customfields.py:693 #, python-brace-format msgid "Value must be an object ID, not {type}" msgstr "" -#: extras/models/customfields.py:694 +#: extras/models/customfields.py:699 #, python-brace-format msgid "Value must be a list of object IDs, not {type}" msgstr "" -#: extras/models/customfields.py:698 +#: extras/models/customfields.py:703 #, python-brace-format msgid "Found invalid object ID: {id}" msgstr "" -#: extras/models/customfields.py:701 +#: extras/models/customfields.py:706 msgid "Required field cannot be empty." msgstr "" -#: extras/models/customfields.py:720 +#: extras/models/customfields.py:725 msgid "Base set of predefined choices (optional)" msgstr "" -#: extras/models/customfields.py:732 +#: extras/models/customfields.py:737 msgid "Choices are automatically ordered alphabetically" msgstr "" -#: extras/models/customfields.py:739 +#: extras/models/customfields.py:744 msgid "custom field choice set" msgstr "" -#: extras/models/customfields.py:740 +#: extras/models/customfields.py:745 msgid "custom field choice sets" msgstr "" -#: extras/models/customfields.py:776 +#: extras/models/customfields.py:781 msgid "Must define base or extra choices." msgstr "" @@ -7002,103 +7213,103 @@ msgstr "" msgid "dashboards" msgstr "" -#: extras/models/models.py:49 +#: extras/models/models.py:51 msgid "object types" msgstr "" -#: extras/models/models.py:50 +#: extras/models/models.py:52 msgid "The object(s) to which this rule applies." msgstr "" -#: extras/models/models.py:63 +#: extras/models/models.py:65 msgid "on create" msgstr "" -#: extras/models/models.py:65 +#: extras/models/models.py:67 msgid "Triggers when a matching object is created." msgstr "" -#: extras/models/models.py:68 +#: extras/models/models.py:70 msgid "on update" msgstr "" -#: extras/models/models.py:70 +#: extras/models/models.py:72 msgid "Triggers when a matching object is updated." msgstr "" -#: extras/models/models.py:73 +#: extras/models/models.py:75 msgid "on delete" msgstr "" -#: extras/models/models.py:75 +#: extras/models/models.py:77 msgid "Triggers when a matching object is deleted." msgstr "" -#: extras/models/models.py:78 +#: extras/models/models.py:80 msgid "on job start" msgstr "" -#: extras/models/models.py:80 +#: extras/models/models.py:82 msgid "Triggers when a job for a matching object is started." msgstr "" -#: extras/models/models.py:83 +#: extras/models/models.py:85 msgid "on job end" msgstr "" -#: extras/models/models.py:85 +#: extras/models/models.py:87 msgid "Triggers when a job for a matching object terminates." msgstr "" -#: extras/models/models.py:92 +#: extras/models/models.py:94 msgid "conditions" msgstr "" -#: extras/models/models.py:95 +#: extras/models/models.py:97 msgid "" "A set of conditions which determine whether the event will be generated." msgstr "" -#: extras/models/models.py:103 +#: extras/models/models.py:105 msgid "action type" msgstr "" -#: extras/models/models.py:126 +#: extras/models/models.py:124 msgid "Additional data to pass to the action object" msgstr "" -#: extras/models/models.py:138 +#: extras/models/models.py:136 msgid "event rule" msgstr "" -#: extras/models/models.py:139 +#: extras/models/models.py:137 msgid "event rules" msgstr "" -#: extras/models/models.py:155 +#: extras/models/models.py:153 msgid "" "At least one event type must be selected: create, update, delete, job start, " "and/or job end." msgstr "" -#: extras/models/models.py:196 +#: extras/models/models.py:194 msgid "" "This URL will be called using the HTTP method defined when the webhook is " "called. Jinja2 template processing is supported with the same context as the " "request body." msgstr "" -#: extras/models/models.py:211 +#: extras/models/models.py:209 msgid "" "The complete list of official content types is available here." msgstr "" -#: extras/models/models.py:216 +#: extras/models/models.py:214 msgid "additional headers" msgstr "" -#: extras/models/models.py:219 +#: extras/models/models.py:217 msgid "" "User-supplied HTTP headers to be sent with the request in addition to the " "HTTP content type. Headers should be defined in the format Name: " @@ -7106,11 +7317,11 @@ msgid "" "as the request body (below)." msgstr "" -#: extras/models/models.py:225 +#: extras/models/models.py:223 msgid "body template" msgstr "" -#: extras/models/models.py:228 +#: extras/models/models.py:226 msgid "" "Jinja2 template for a custom request body. If blank, a JSON object " "representing the change will be included. Available context data includes: " @@ -7118,230 +7329,234 @@ msgid "" "username, request_id, and data." msgstr "" -#: extras/models/models.py:234 +#: extras/models/models.py:232 msgid "secret" msgstr "" -#: extras/models/models.py:238 +#: extras/models/models.py:236 msgid "" "When provided, the request will include a X-Hook-Signature " "header containing a HMAC hex digest of the payload body using the secret as " "the key. The secret is not transmitted in the request." msgstr "" -#: extras/models/models.py:245 +#: extras/models/models.py:243 msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" -#: extras/models/models.py:251 templates/extras/webhook.html:62 +#: extras/models/models.py:249 templates/extras/webhook.html:51 msgid "CA File Path" msgstr "" -#: extras/models/models.py:253 +#: extras/models/models.py:251 msgid "" "The specific CA certificate file to use for SSL verification. Leave blank to " "use the system defaults." msgstr "" -#: extras/models/models.py:264 +#: extras/models/models.py:262 msgid "webhook" msgstr "" -#: extras/models/models.py:265 +#: extras/models/models.py:263 msgid "webhooks" msgstr "" -#: extras/models/models.py:283 +#: extras/models/models.py:281 msgid "Do not specify a CA certificate file if SSL verification is disabled." msgstr "" -#: extras/models/models.py:323 +#: extras/models/models.py:321 msgid "The object type(s) to which this link applies." msgstr "" -#: extras/models/models.py:335 +#: extras/models/models.py:333 msgid "link text" msgstr "" -#: extras/models/models.py:336 +#: extras/models/models.py:334 msgid "Jinja2 template code for link text" msgstr "" -#: extras/models/models.py:339 +#: extras/models/models.py:337 msgid "link URL" msgstr "" -#: extras/models/models.py:340 +#: extras/models/models.py:338 msgid "Jinja2 template code for link URL" msgstr "" -#: extras/models/models.py:350 +#: extras/models/models.py:348 msgid "Links with the same group will appear as a dropdown menu" msgstr "" -#: extras/models/models.py:360 +#: extras/models/models.py:358 msgid "new window" msgstr "" -#: extras/models/models.py:362 +#: extras/models/models.py:360 msgid "Force link to open in a new window" msgstr "" -#: extras/models/models.py:371 +#: extras/models/models.py:369 msgid "custom link" msgstr "" -#: extras/models/models.py:372 +#: extras/models/models.py:370 msgid "custom links" msgstr "" -#: extras/models/models.py:419 +#: extras/models/models.py:417 msgid "The object type(s) to which this template applies." msgstr "" -#: extras/models/models.py:432 +#: extras/models/models.py:430 msgid "" "Jinja2 template code. The list of objects being exported is passed as a " "context variable named queryset." msgstr "" -#: extras/models/models.py:440 +#: extras/models/models.py:438 msgid "Defaults to text/plain; charset=utf-8" msgstr "" -#: extras/models/models.py:443 +#: extras/models/models.py:441 msgid "file extension" msgstr "" -#: extras/models/models.py:446 +#: extras/models/models.py:444 msgid "Extension to append to the rendered filename" msgstr "" -#: extras/models/models.py:449 +#: extras/models/models.py:447 msgid "as attachment" msgstr "" -#: extras/models/models.py:451 +#: extras/models/models.py:449 msgid "Download file as attachment" msgstr "" -#: extras/models/models.py:460 +#: extras/models/models.py:458 msgid "export template" msgstr "" -#: extras/models/models.py:461 +#: extras/models/models.py:459 msgid "export templates" msgstr "" -#: extras/models/models.py:478 +#: extras/models/models.py:476 #, python-brace-format msgid "\"{name}\" is a reserved name. Please choose a different name." msgstr "" -#: extras/models/models.py:528 +#: extras/models/models.py:526 msgid "The object type(s) to which this filter applies." msgstr "" -#: extras/models/models.py:560 +#: extras/models/models.py:558 msgid "shared" msgstr "" -#: extras/models/models.py:573 +#: extras/models/models.py:571 msgid "saved filter" msgstr "" -#: extras/models/models.py:574 +#: extras/models/models.py:572 msgid "saved filters" msgstr "" -#: extras/models/models.py:592 +#: extras/models/models.py:590 msgid "Filter parameters must be stored as a dictionary of keyword arguments." msgstr "" -#: extras/models/models.py:620 +#: extras/models/models.py:618 msgid "image height" msgstr "" -#: extras/models/models.py:623 +#: extras/models/models.py:621 msgid "image width" msgstr "" -#: extras/models/models.py:640 +#: extras/models/models.py:638 msgid "image attachment" msgstr "" -#: extras/models/models.py:641 +#: extras/models/models.py:639 msgid "image attachments" msgstr "" -#: extras/models/models.py:655 +#: extras/models/models.py:653 #, python-brace-format msgid "Image attachments cannot be assigned to this object type ({type})." msgstr "" -#: extras/models/models.py:718 +#: extras/models/models.py:716 msgid "kind" msgstr "" -#: extras/models/models.py:732 +#: extras/models/models.py:730 msgid "journal entry" msgstr "" -#: extras/models/models.py:733 +#: extras/models/models.py:731 msgid "journal entries" msgstr "" -#: extras/models/models.py:748 +#: extras/models/models.py:746 #, python-brace-format msgid "Journaling is not supported for this object type ({type})." msgstr "" -#: extras/models/models.py:790 +#: extras/models/models.py:788 msgid "bookmark" msgstr "" -#: extras/models/models.py:791 +#: extras/models/models.py:789 msgid "bookmarks" msgstr "" -#: extras/models/models.py:804 +#: extras/models/models.py:802 #, python-brace-format msgid "Bookmarks cannot be assigned to this object type ({type})." msgstr "" -#: extras/models/reports.py:46 -msgid "report module" +#: extras/models/scripts.py:42 +msgid "is executable" msgstr "" -#: extras/models/reports.py:47 -msgid "report modules" +#: extras/models/scripts.py:64 +msgid "script" msgstr "" -#: extras/models/scripts.py:46 +#: extras/models/scripts.py:65 +msgid "scripts" +msgstr "" + +#: extras/models/scripts.py:110 msgid "script module" msgstr "" -#: extras/models/scripts.py:47 +#: extras/models/scripts.py:111 msgid "script modules" msgstr "" -#: extras/models/search.py:24 +#: extras/models/search.py:22 msgid "timestamp" msgstr "" -#: extras/models/search.py:39 +#: extras/models/search.py:37 msgid "field" msgstr "" -#: extras/models/search.py:47 +#: extras/models/search.py:45 msgid "value" msgstr "" -#: extras/models/search.py:58 +#: extras/models/search.py:56 msgid "cached value" msgstr "" -#: extras/models/search.py:59 +#: extras/models/search.py:57 msgid "cached values" msgstr "" @@ -7381,147 +7596,222 @@ msgstr "" msgid "tagged items" msgstr "" -#: extras/scripts.py:360 -msgid "The script must define a run() method." -msgstr "" - -#: extras/scripts.py:371 +#: extras/scripts.py:439 msgid "Script Data" msgstr "" -#: extras/scripts.py:375 +#: extras/scripts.py:443 msgid "Script Execution Parameters" msgstr "" -#: extras/signals.py:121 +#: extras/scripts.py:662 +msgid "Database changes have been reverted automatically." +msgstr "" + +#: extras/scripts.py:675 +msgid "Script aborted with error: " +msgstr "" + +#: extras/scripts.py:685 +msgid "An exception occurred: " +msgstr "" + +#: extras/scripts.py:688 +msgid "Database changes have been reverted due to error." +msgstr "" + +#: extras/signals.py:146 #, python-brace-format msgid "Deletion is prevented by a protection rule: {message}" msgstr "" -#: extras/tables/tables.py:44 extras/tables/tables.py:119 -#: extras/tables/tables.py:143 extras/tables/tables.py:208 -#: extras/tables/tables.py:285 -msgid "Content Types" -msgstr "" - -#: extras/tables/tables.py:50 -msgid "Visible" -msgstr "" - -#: extras/tables/tables.py:53 -msgid "Editable" -msgstr "" - -#: extras/tables/tables.py:60 templates/extras/customfield.html:48 -msgid "Choice Set" -msgstr "" - -#: extras/tables/tables.py:68 -msgid "Is Cloneable" -msgstr "" - -#: extras/tables/tables.py:98 -msgid "Count" -msgstr "" - -#: extras/tables/tables.py:101 -msgid "Order Alphabetically" -msgstr "" - -#: extras/tables/tables.py:125 templates/extras/customlink.html:34 -msgid "New Window" -msgstr "" - -#: extras/tables/tables.py:146 -msgid "As Attachment" -msgstr "" - -#: extras/tables/tables.py:153 extras/tables/tables.py:372 -#: extras/tables/tables.py:407 templates/core/datafile.html:32 -#: templates/dcim/device/render_config.html:23 -#: templates/extras/configcontext.html:40 -#: templates/extras/configtemplate.html:32 -#: templates/extras/exporttemplate.html:51 -#: templates/generic/bulk_import.html:30 -#: templates/virtualization/virtualmachine/render_config.html:23 -msgid "Data File" -msgstr "" - -#: extras/tables/tables.py:158 extras/tables/tables.py:384 -#: extras/tables/tables.py:412 -msgid "Synced" -msgstr "" - -#: extras/tables/tables.py:178 -msgid "Content Type" -msgstr "" - -#: extras/tables/tables.py:185 -msgid "Image" -msgstr "" - -#: extras/tables/tables.py:190 -msgid "Size (Bytes)" -msgstr "" - -#: extras/tables/tables.py:233 extras/tables/tables.py:331 -#: templates/extras/customfield.html:96 templates/extras/eventrule.html:32 -#: templates/users/objectpermission.html:68 users/tables.py:83 +#: extras/tables/tables.py:46 extras/tables/tables.py:124 +#: extras/tables/tables.py:148 extras/tables/tables.py:213 +#: extras/tables/tables.py:238 extras/tables/tables.py:290 +#: extras/tables/tables.py:336 templates/extras/customfield.html:93 +#: templates/extras/eventrule.html:27 templates/users/objectpermission.html:64 +#: users/tables.py:80 msgid "Object Types" msgstr "" -#: extras/tables/tables.py:255 +#: extras/tables/tables.py:52 +msgid "Visible" +msgstr "" + +#: extras/tables/tables.py:55 +msgid "Editable" +msgstr "" + +#: extras/tables/tables.py:61 +msgid "Related Object Type" +msgstr "" + +#: extras/tables/tables.py:65 templates/extras/customfield.html:47 +msgid "Choice Set" +msgstr "" + +#: extras/tables/tables.py:73 +msgid "Is Cloneable" +msgstr "" + +#: extras/tables/tables.py:103 +msgid "Count" +msgstr "" + +#: extras/tables/tables.py:106 +msgid "Order Alphabetically" +msgstr "" + +#: extras/tables/tables.py:130 templates/extras/customlink.html:33 +msgid "New Window" +msgstr "" + +#: extras/tables/tables.py:151 +msgid "As Attachment" +msgstr "" + +#: extras/tables/tables.py:158 extras/tables/tables.py:377 +#: extras/tables/tables.py:412 templates/core/datafile.html:24 +#: templates/dcim/device/render_config.html:22 +#: templates/extras/configcontext.html:39 +#: templates/extras/configtemplate.html:31 +#: templates/extras/exporttemplate.html:45 +#: templates/generic/bulk_import.html:35 +#: templates/virtualization/virtualmachine/render_config.html:22 +msgid "Data File" +msgstr "" + +#: extras/tables/tables.py:163 extras/tables/tables.py:389 +#: extras/tables/tables.py:417 +msgid "Synced" +msgstr "" + +#: extras/tables/tables.py:190 +msgid "Image" +msgstr "" + +#: extras/tables/tables.py:195 +msgid "Size (Bytes)" +msgstr "" + +#: extras/tables/tables.py:260 msgid "SSL Validation" msgstr "" -#: extras/tables/tables.py:300 +#: extras/tables/tables.py:305 msgid "Job Start" msgstr "" -#: extras/tables/tables.py:303 +#: extras/tables/tables.py:308 msgid "Job End" msgstr "" -#: extras/tables/tables.py:441 templates/account/profile.html:20 -#: templates/users/user.html:22 +#: extras/tables/tables.py:425 netbox/navigation/menu.py:64 +#: templates/dcim/devicerole.html:8 +msgid "Device Roles" +msgstr "" + +#: extras/tables/tables.py:440 netbox/navigation/menu.py:234 +#: netbox/navigation/menu.py:236 virtualization/views.py:186 +msgid "Virtual Machines" +msgstr "" + +#: extras/tables/tables.py:466 templates/account/profile.html:19 +#: templates/users/user.html:21 msgid "Full Name" msgstr "" -#: extras/tables/tables.py:458 templates/extras/objectchange.html:72 +#: extras/tables/tables.py:483 templates/extras/objectchange.html:67 msgid "Request ID" msgstr "" -#: extras/tables/tables.py:495 +#: extras/tables/tables.py:520 msgid "Comments (Short)" msgstr "" -#: extras/validators.py:15 +#: extras/tables/tables.py:539 extras/tables/tables.py:561 +msgid "Line" +msgstr "" + +#: extras/tables/tables.py:546 extras/tables/tables.py:571 +#: extras/tables/tables.py:575 +msgid "Level" +msgstr "" + +#: extras/tables/tables.py:549 extras/tables/tables.py:585 +msgid "Message" +msgstr "" + +#: extras/tables/tables.py:553 extras/tables/tables.py:589 +#: netbox/tables/tables.py:261 +msgid "No results found" +msgstr "" + +#: extras/tables/tables.py:564 +msgid "Method" +msgstr "" + +#: extras/validators.py:16 #, python-format msgid "Ensure this value is equal to %(limit_value)s." msgstr "" -#: extras/validators.py:26 +#: extras/validators.py:27 #, python-format msgid "Ensure this value does not equal %(limit_value)s." msgstr "" -#: extras/validators.py:37 +#: extras/validators.py:38 msgid "This field must be empty." msgstr "" -#: extras/validators.py:52 +#: extras/validators.py:53 msgid "This field must not be empty." msgstr "" -#: extras/validators.py:121 +#: extras/validators.py:95 +msgid "Validation rules must be passed as a dictionary" +msgstr "" + +#: extras/validators.py:120 +#, python-brace-format +msgid "Custom validation failed for {attribute}: {exception}" +msgstr "" + +#: extras/validators.py:140 +#, python-brace-format +msgid "Invalid attribute \"{name}\" for request" +msgstr "" + +#: extras/validators.py:157 #, python-brace-format msgid "Invalid attribute \"{name}\" for {model}" msgstr "" -#: extras/views.py:880 +#: extras/views.py:889 msgid "Your dashboard has been reset." msgstr "" +#: extras/views.py:935 +msgid "Added widget: " +msgstr "" + +#: extras/views.py:976 +msgid "Updated widget: " +msgstr "" + +#: extras/views.py:1012 +msgid "Deleted widget: " +msgstr "" + +#: extras/views.py:1014 +msgid "Error deleting widget: " +msgstr "" + +#: extras/views.py:1081 +msgid "Unable to run script: RQ worker process not running." +msgstr "" + #: ipam/api/field_serializers.py:17 msgid "Enter a valid IPv4 or IPv6 address with optional mask." msgstr "" @@ -7540,7 +7830,7 @@ msgstr "" msgid "Invalid IP prefix format: {data}" msgstr "" -#: ipam/api/views.py:383 +#: ipam/api/views.py:358 msgid "" "Insufficient space is available to accommodate the requested prefix size(s)" msgstr "" @@ -7590,142 +7880,162 @@ msgstr "" msgid "Invalid IP address format: {address}" msgstr "" -#: ipam/filtersets.py:47 vpn/filtersets.py:287 +#: ipam/filtersets.py:48 vpn/filtersets.py:323 msgid "Import target" msgstr "" -#: ipam/filtersets.py:53 vpn/filtersets.py:293 +#: ipam/filtersets.py:54 vpn/filtersets.py:329 msgid "Import target (name)" msgstr "" -#: ipam/filtersets.py:58 vpn/filtersets.py:298 +#: ipam/filtersets.py:59 vpn/filtersets.py:334 msgid "Export target" msgstr "" -#: ipam/filtersets.py:64 vpn/filtersets.py:304 +#: ipam/filtersets.py:65 vpn/filtersets.py:340 msgid "Export target (name)" msgstr "" -#: ipam/filtersets.py:85 +#: ipam/filtersets.py:86 msgid "Importing VRF" msgstr "" -#: ipam/filtersets.py:91 +#: ipam/filtersets.py:92 msgid "Import VRF (RD)" msgstr "" -#: ipam/filtersets.py:96 +#: ipam/filtersets.py:97 msgid "Exporting VRF" msgstr "" -#: ipam/filtersets.py:102 +#: ipam/filtersets.py:103 msgid "Export VRF (RD)" msgstr "" -#: ipam/filtersets.py:132 ipam/filtersets.py:247 ipam/forms/model_forms.py:229 +#: ipam/filtersets.py:108 +msgid "Importing L2VPN" +msgstr "" + +#: ipam/filtersets.py:114 +msgid "Importing L2VPN (identifier)" +msgstr "" + +#: ipam/filtersets.py:119 +msgid "Exporting L2VPN" +msgstr "" + +#: ipam/filtersets.py:125 +msgid "Exporting L2VPN (identifier)" +msgstr "" + +#: ipam/filtersets.py:155 ipam/filtersets.py:281 ipam/forms/model_forms.py:227 #: ipam/tables/ip.py:211 templates/ipam/prefix.html:12 msgid "Prefix" msgstr "" -#: ipam/filtersets.py:136 ipam/filtersets.py:175 ipam/filtersets.py:198 +#: ipam/filtersets.py:159 ipam/filtersets.py:198 ipam/filtersets.py:221 msgid "RIR (ID)" msgstr "" -#: ipam/filtersets.py:142 ipam/filtersets.py:181 ipam/filtersets.py:204 +#: ipam/filtersets.py:165 ipam/filtersets.py:204 ipam/filtersets.py:227 msgid "RIR (slug)" msgstr "" -#: ipam/filtersets.py:251 +#: ipam/filtersets.py:285 msgid "Within prefix" msgstr "" -#: ipam/filtersets.py:255 +#: ipam/filtersets.py:289 msgid "Within and including prefix" msgstr "" -#: ipam/filtersets.py:259 +#: ipam/filtersets.py:293 msgid "Prefixes which contain this prefix or IP" msgstr "" -#: ipam/filtersets.py:270 ipam/filtersets.py:538 ipam/forms/bulk_edit.py:326 -#: ipam/forms/filtersets.py:191 ipam/forms/filtersets.py:317 +#: ipam/filtersets.py:304 ipam/filtersets.py:572 ipam/forms/bulk_edit.py:327 +#: ipam/forms/filtersets.py:195 ipam/forms/filtersets.py:324 msgid "Mask length" msgstr "" -#: ipam/filtersets.py:339 vpn/filtersets.py:410 +#: ipam/filtersets.py:373 vpn/filtersets.py:446 msgid "VLAN (ID)" msgstr "" -#: ipam/filtersets.py:343 vpn/filtersets.py:405 +#: ipam/filtersets.py:377 vpn/filtersets.py:441 msgid "VLAN number (1-4094)" msgstr "" -#: ipam/filtersets.py:437 ipam/filtersets.py:441 ipam/filtersets.py:533 -#: ipam/forms/model_forms.py:430 templates/tenancy/contact.html:54 -#: tenancy/forms/bulk_edit.py:112 +#: ipam/filtersets.py:471 ipam/filtersets.py:475 ipam/filtersets.py:567 +#: ipam/forms/model_forms.py:452 templates/tenancy/contact.html:53 +#: tenancy/forms/bulk_edit.py:113 msgid "Address" msgstr "" -#: ipam/filtersets.py:445 +#: ipam/filtersets.py:479 msgid "Ranges which contain this prefix or IP" msgstr "" -#: ipam/filtersets.py:473 ipam/filtersets.py:529 +#: ipam/filtersets.py:507 ipam/filtersets.py:563 msgid "Parent prefix" msgstr "" -#: ipam/filtersets.py:582 ipam/filtersets.py:812 ipam/filtersets.py:1042 -#: vpn/filtersets.py:368 +#: ipam/filtersets.py:616 ipam/filtersets.py:856 ipam/filtersets.py:1091 +#: vpn/filtersets.py:404 msgid "Virtual machine (name)" msgstr "" -#: ipam/filtersets.py:587 ipam/filtersets.py:817 ipam/filtersets.py:1036 +#: ipam/filtersets.py:621 ipam/filtersets.py:861 ipam/filtersets.py:1085 #: virtualization/filtersets.py:278 virtualization/filtersets.py:317 -#: vpn/filtersets.py:373 +#: vpn/filtersets.py:409 msgid "Virtual machine (ID)" msgstr "" -#: ipam/filtersets.py:593 vpn/filtersets.py:97 vpn/filtersets.py:379 +#: ipam/filtersets.py:627 vpn/filtersets.py:97 vpn/filtersets.py:415 msgid "Interface (name)" msgstr "" -#: ipam/filtersets.py:598 vpn/filtersets.py:102 vpn/filtersets.py:384 -msgid "Interface (ID)" -msgstr "" - -#: ipam/filtersets.py:604 vpn/filtersets.py:108 vpn/filtersets.py:390 +#: ipam/filtersets.py:638 vpn/filtersets.py:108 vpn/filtersets.py:426 msgid "VM interface (name)" msgstr "" -#: ipam/filtersets.py:609 vpn/filtersets.py:113 +#: ipam/filtersets.py:643 vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "" -#: ipam/filtersets.py:614 +#: ipam/filtersets.py:648 msgid "FHRP group (ID)" msgstr "" -#: ipam/filtersets.py:618 +#: ipam/filtersets.py:652 msgid "Is assigned to an interface" msgstr "" -#: ipam/filtersets.py:622 +#: ipam/filtersets.py:656 msgid "Is assigned" msgstr "" -#: ipam/filtersets.py:1047 +#: ipam/filtersets.py:668 +msgid "Service (ID)" +msgstr "" + +#: ipam/filtersets.py:673 +msgid "NAT inside IP address (ID)" +msgstr "" + +#: ipam/filtersets.py:1096 msgid "IP address (ID)" msgstr "" -#: ipam/filtersets.py:1053 ipam/models/ip.py:787 +#: ipam/filtersets.py:1102 ipam/models/ip.py:787 msgid "IP address" msgstr "" -#: ipam/filtersets.py:1079 +#: ipam/filtersets.py:1131 msgid "Primary IPv4 (ID)" msgstr "" -#: ipam/filtersets.py:1084 +#: ipam/filtersets.py:1136 msgid "Primary IPv6 (ID)" msgstr "" @@ -7754,116 +8064,116 @@ msgstr "" msgid "CIDR mask (e.g. /24) is required." msgstr "" -#: ipam/forms/bulk_create.py:14 +#: ipam/forms/bulk_create.py:13 msgid "Address pattern" msgstr "" -#: ipam/forms/bulk_edit.py:47 +#: ipam/forms/bulk_edit.py:48 msgid "Enforce unique space" msgstr "" -#: ipam/forms/bulk_edit.py:85 +#: ipam/forms/bulk_edit.py:86 msgid "Is private" msgstr "" -#: ipam/forms/bulk_edit.py:106 ipam/forms/bulk_edit.py:135 -#: ipam/forms/bulk_edit.py:160 ipam/forms/bulk_import.py:88 +#: ipam/forms/bulk_edit.py:107 ipam/forms/bulk_edit.py:136 +#: ipam/forms/bulk_edit.py:161 ipam/forms/bulk_import.py:88 #: ipam/forms/bulk_import.py:108 ipam/forms/bulk_import.py:128 -#: ipam/forms/filtersets.py:109 ipam/forms/filtersets.py:124 -#: ipam/forms/filtersets.py:147 ipam/forms/model_forms.py:93 -#: ipam/forms/model_forms.py:108 ipam/forms/model_forms.py:130 -#: ipam/forms/model_forms.py:148 ipam/models/asns.py:31 ipam/models/asns.py:103 +#: ipam/forms/filtersets.py:110 ipam/forms/filtersets.py:125 +#: ipam/forms/filtersets.py:148 ipam/forms/model_forms.py:94 +#: ipam/forms/model_forms.py:107 ipam/forms/model_forms.py:129 +#: ipam/forms/model_forms.py:147 ipam/models/asns.py:31 ipam/models/asns.py:103 #: ipam/models/ip.py:70 ipam/models/ip.py:89 ipam/tables/asn.py:20 -#: ipam/tables/asn.py:45 templates/ipam/aggregate.html:19 -#: templates/ipam/asn.html:28 templates/ipam/asnrange.html:20 -#: templates/ipam/rir.html:20 +#: ipam/tables/asn.py:45 templates/ipam/aggregate.html:18 +#: templates/ipam/asn.html:27 templates/ipam/asnrange.html:19 +#: templates/ipam/rir.html:19 msgid "RIR" msgstr "" -#: ipam/forms/bulk_edit.py:168 +#: ipam/forms/bulk_edit.py:169 msgid "Date added" msgstr "" -#: ipam/forms/bulk_edit.py:229 +#: ipam/forms/bulk_edit.py:230 msgid "Prefix length" msgstr "" -#: ipam/forms/bulk_edit.py:252 ipam/forms/filtersets.py:236 -#: templates/ipam/prefix.html:86 +#: ipam/forms/bulk_edit.py:253 ipam/forms/filtersets.py:240 +#: templates/ipam/prefix.html:85 msgid "Is a pool" msgstr "" -#: ipam/forms/bulk_edit.py:257 ipam/forms/bulk_edit.py:301 -#: ipam/forms/filtersets.py:243 ipam/forms/filtersets.py:282 +#: ipam/forms/bulk_edit.py:258 ipam/forms/bulk_edit.py:302 +#: ipam/forms/filtersets.py:247 ipam/forms/filtersets.py:286 #: ipam/models/ip.py:271 ipam/models/ip.py:538 msgid "Treat as fully utilized" msgstr "" -#: ipam/forms/bulk_edit.py:349 ipam/models/ip.py:771 +#: ipam/forms/bulk_edit.py:350 ipam/models/ip.py:771 msgid "DNS name" msgstr "" -#: ipam/forms/bulk_edit.py:370 ipam/forms/bulk_edit.py:569 +#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572 #: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477 -#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:376 -#: ipam/forms/filtersets.py:511 templates/ipam/fhrpgroup.html:23 -#: templates/ipam/inc/panels/fhrp_groups.html:11 templates/ipam/service.html:35 -#: templates/ipam/servicetemplate.html:20 +#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383 +#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22 +#: templates/ipam/inc/panels/fhrp_groups.html:24 templates/ipam/service.html:32 +#: templates/ipam/servicetemplate.html:19 msgid "Protocol" msgstr "" -#: ipam/forms/bulk_edit.py:377 ipam/forms/filtersets.py:383 -#: ipam/tables/fhrp.py:22 templates/ipam/fhrpgroup.html:27 +#: ipam/forms/bulk_edit.py:378 ipam/forms/filtersets.py:390 +#: ipam/tables/fhrp.py:22 templates/ipam/fhrpgroup.html:26 msgid "Group ID" msgstr "" -#: ipam/forms/bulk_edit.py:382 ipam/forms/filtersets.py:388 -#: wireless/forms/bulk_edit.py:67 wireless/forms/bulk_edit.py:114 +#: ipam/forms/bulk_edit.py:383 ipam/forms/filtersets.py:395 +#: wireless/forms/bulk_edit.py:68 wireless/forms/bulk_edit.py:115 #: wireless/forms/bulk_import.py:62 wireless/forms/bulk_import.py:65 #: wireless/forms/bulk_import.py:104 wireless/forms/bulk_import.py:107 -#: wireless/forms/filtersets.py:53 wireless/forms/filtersets.py:87 +#: wireless/forms/filtersets.py:54 wireless/forms/filtersets.py:88 msgid "Authentication type" msgstr "" -#: ipam/forms/bulk_edit.py:387 ipam/forms/filtersets.py:392 +#: ipam/forms/bulk_edit.py:388 ipam/forms/filtersets.py:399 msgid "Authentication key" msgstr "" -#: ipam/forms/bulk_edit.py:404 ipam/forms/filtersets.py:369 -#: ipam/forms/model_forms.py:441 netbox/navigation/menu.py:376 -#: templates/ipam/fhrpgroup.html:51 +#: ipam/forms/bulk_edit.py:405 ipam/forms/filtersets.py:376 +#: ipam/forms/model_forms.py:463 netbox/navigation/menu.py:369 +#: templates/ipam/fhrpgroup.html:49 #: templates/wireless/inc/authentication_attrs.html:5 -#: wireless/forms/bulk_edit.py:90 wireless/forms/bulk_edit.py:137 -#: wireless/forms/filtersets.py:35 wireless/forms/filtersets.py:75 -#: wireless/forms/model_forms.py:56 wireless/forms/model_forms.py:161 +#: wireless/forms/bulk_edit.py:91 wireless/forms/bulk_edit.py:138 +#: wireless/forms/filtersets.py:36 wireless/forms/filtersets.py:76 +#: wireless/forms/model_forms.py:55 wireless/forms/model_forms.py:164 msgid "Authentication" msgstr "" -#: ipam/forms/bulk_edit.py:414 +#: ipam/forms/bulk_edit.py:415 msgid "Minimum child VLAN VID" msgstr "" -#: ipam/forms/bulk_edit.py:420 +#: ipam/forms/bulk_edit.py:421 msgid "Maximum child VLAN VID" msgstr "" -#: ipam/forms/bulk_edit.py:428 ipam/forms/model_forms.py:531 +#: ipam/forms/bulk_edit.py:429 ipam/forms/model_forms.py:557 msgid "Scope type" msgstr "" -#: ipam/forms/bulk_edit.py:489 ipam/forms/model_forms.py:604 -#: ipam/tables/vlans.py:71 templates/ipam/vlangroup.html:39 +#: ipam/forms/bulk_edit.py:491 ipam/forms/model_forms.py:632 +#: ipam/tables/vlans.py:71 templates/ipam/vlangroup.html:38 msgid "Scope" msgstr "" -#: ipam/forms/bulk_edit.py:560 +#: ipam/forms/bulk_edit.py:563 msgid "Site & Group" msgstr "" -#: ipam/forms/bulk_edit.py:574 ipam/forms/model_forms.py:667 -#: ipam/forms/model_forms.py:701 ipam/tables/services.py:19 -#: ipam/tables/services.py:49 templates/ipam/service.html:39 -#: templates/ipam/servicetemplate.html:24 +#: ipam/forms/bulk_edit.py:577 ipam/forms/model_forms.py:696 +#: ipam/forms/model_forms.py:728 ipam/tables/services.py:19 +#: ipam/tables/services.py:49 templates/ipam/service.html:36 +#: templates/ipam/servicetemplate.html:23 msgid "Ports" msgstr "" @@ -7884,14 +8194,14 @@ msgstr "" msgid "VLAN's group (if any)" msgstr "" -#: ipam/forms/bulk_import.py:184 ipam/forms/model_forms.py:219 -#: ipam/models/vlans.py:214 ipam/tables/ip.py:254 templates/ipam/prefix.html:61 -#: templates/ipam/vlan.html:13 templates/ipam/vlan/base.html:6 -#: templates/ipam/vlan_edit.html:10 templates/vpn/l2vpntermination_edit.html:17 -#: templates/wireless/wirelesslan.html:31 vpn/forms/bulk_import.py:304 -#: vpn/forms/filtersets.py:280 vpn/forms/model_forms.py:433 -#: wireless/forms/bulk_edit.py:54 wireless/forms/bulk_import.py:48 -#: wireless/forms/model_forms.py:49 wireless/models.py:101 +#: ipam/forms/bulk_import.py:184 ipam/forms/model_forms.py:216 +#: ipam/models/vlans.py:214 ipam/tables/ip.py:254 templates/ipam/prefix.html:60 +#: templates/ipam/vlan.html:12 templates/ipam/vlan/base.html:6 +#: templates/ipam/vlan_edit.html:10 templates/wireless/wirelesslan.html:30 +#: vpn/forms/bulk_import.py:304 vpn/forms/filtersets.py:284 +#: vpn/forms/model_forms.py:433 vpn/forms/model_forms.py:452 +#: wireless/forms/bulk_edit.py:55 wireless/forms/bulk_import.py:48 +#: wireless/forms/model_forms.py:48 wireless/models.py:101 msgid "VLAN" msgstr "" @@ -7900,14 +8210,14 @@ msgid "Parent device of assigned interface (if any)" msgstr "" #: ipam/forms/bulk_import.py:310 ipam/forms/bulk_import.py:496 -#: ipam/forms/model_forms.py:695 virtualization/filtersets.py:284 -#: virtualization/filtersets.py:323 virtualization/forms/bulk_edit.py:199 -#: virtualization/forms/bulk_edit.py:325 +#: ipam/forms/model_forms.py:722 virtualization/filtersets.py:284 +#: virtualization/filtersets.py:323 virtualization/forms/bulk_edit.py:200 +#: virtualization/forms/bulk_edit.py:326 #: virtualization/forms/bulk_import.py:146 #: virtualization/forms/bulk_import.py:207 -#: virtualization/forms/filtersets.py:204 -#: virtualization/forms/filtersets.py:240 -#: virtualization/forms/model_forms.py:291 vpn/forms/bulk_import.py:93 +#: virtualization/forms/filtersets.py:208 +#: virtualization/forms/filtersets.py:244 +#: virtualization/forms/model_forms.py:288 vpn/forms/bulk_import.py:93 #: vpn/forms/bulk_import.py:290 msgid "Virtual machine" msgstr "" @@ -7975,187 +8285,211 @@ msgstr "" msgid "{ip} is not assigned to this device/VM." msgstr "" -#: ipam/forms/filtersets.py:46 ipam/forms/model_forms.py:60 -#: netbox/navigation/menu.py:177 vpn/forms/model_forms.py:409 +#: ipam/forms/filtersets.py:47 ipam/forms/model_forms.py:61 +#: netbox/navigation/menu.py:176 vpn/forms/model_forms.py:410 msgid "Route Targets" msgstr "" -#: ipam/forms/filtersets.py:52 ipam/forms/model_forms.py:47 -#: vpn/forms/filtersets.py:221 vpn/forms/model_forms.py:396 +#: ipam/forms/filtersets.py:53 ipam/forms/model_forms.py:48 +#: vpn/forms/filtersets.py:224 vpn/forms/model_forms.py:397 msgid "Import targets" msgstr "" -#: ipam/forms/filtersets.py:57 ipam/forms/model_forms.py:52 -#: vpn/forms/filtersets.py:226 vpn/forms/model_forms.py:401 +#: ipam/forms/filtersets.py:58 ipam/forms/model_forms.py:53 +#: vpn/forms/filtersets.py:229 vpn/forms/model_forms.py:402 msgid "Export targets" msgstr "" -#: ipam/forms/filtersets.py:72 +#: ipam/forms/filtersets.py:73 msgid "Imported by VRF" msgstr "" -#: ipam/forms/filtersets.py:77 +#: ipam/forms/filtersets.py:78 msgid "Exported by VRF" msgstr "" -#: ipam/forms/filtersets.py:86 ipam/tables/ip.py:89 templates/ipam/rir.html:33 +#: ipam/forms/filtersets.py:87 ipam/tables/ip.py:89 templates/ipam/rir.html:30 msgid "Private" msgstr "" -#: ipam/forms/filtersets.py:104 ipam/forms/filtersets.py:186 -#: ipam/forms/filtersets.py:261 ipam/forms/filtersets.py:312 +#: ipam/forms/filtersets.py:105 ipam/forms/filtersets.py:190 +#: ipam/forms/filtersets.py:265 ipam/forms/filtersets.py:319 msgid "Address family" msgstr "" -#: ipam/forms/filtersets.py:118 templates/ipam/asnrange.html:26 +#: ipam/forms/filtersets.py:119 templates/ipam/asnrange.html:25 msgid "Range" msgstr "" -#: ipam/forms/filtersets.py:127 +#: ipam/forms/filtersets.py:128 msgid "Start" msgstr "" -#: ipam/forms/filtersets.py:131 +#: ipam/forms/filtersets.py:132 msgid "End" msgstr "" -#: ipam/forms/filtersets.py:181 +#: ipam/forms/filtersets.py:185 msgid "Search within" msgstr "" -#: ipam/forms/filtersets.py:202 ipam/forms/filtersets.py:328 +#: ipam/forms/filtersets.py:206 ipam/forms/filtersets.py:335 msgid "Present in VRF" msgstr "" -#: ipam/forms/filtersets.py:297 +#: ipam/forms/filtersets.py:304 msgid "Device/VM" msgstr "" -#: ipam/forms/filtersets.py:333 +#: ipam/forms/filtersets.py:314 +msgid "Parent Prefix" +msgstr "" + +#: ipam/forms/filtersets.py:340 msgid "Assigned Device" msgstr "" -#: ipam/forms/filtersets.py:338 +#: ipam/forms/filtersets.py:345 msgid "Assigned VM" msgstr "" -#: ipam/forms/filtersets.py:352 +#: ipam/forms/filtersets.py:359 msgid "Assigned to an interface" msgstr "" -#: ipam/forms/filtersets.py:359 templates/ipam/ipaddress.html:54 +#: ipam/forms/filtersets.py:366 templates/ipam/ipaddress.html:51 msgid "DNS Name" msgstr "" -#: ipam/forms/filtersets.py:401 ipam/forms/filtersets.py:494 -#: ipam/models/vlans.py:156 templates/ipam/vlan.html:34 +#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501 +#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31 msgid "VLAN ID" msgstr "" -#: ipam/forms/filtersets.py:433 +#: ipam/forms/filtersets.py:440 msgid "Minimum VID" msgstr "" -#: ipam/forms/filtersets.py:439 +#: ipam/forms/filtersets.py:446 msgid "Maximum VID" msgstr "" -#: ipam/forms/filtersets.py:516 -msgid "Port" -msgstr "" - -#: ipam/forms/filtersets.py:537 ipam/tables/vlans.py:191 -#: templates/ipam/ipaddress_edit.html:47 templates/ipam/service_create.html:22 -#: templates/ipam/service_edit.html:21 -#: templates/virtualization/virtualdisk.html:22 -#: templates/virtualization/virtualmachine.html:13 -#: templates/virtualization/vminterface.html:24 -#: templates/vpn/l2vpntermination_edit.html:27 -#: templates/vpn/tunneltermination.html:26 -#: virtualization/forms/filtersets.py:189 -#: virtualization/forms/filtersets.py:234 -#: virtualization/forms/model_forms.py:223 +#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318 +#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776 +#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21 +#: templates/virtualization/virtualmachine.html:12 +#: templates/virtualization/vminterface.html:21 +#: templates/vpn/tunneltermination.html:25 +#: virtualization/forms/filtersets.py:193 +#: virtualization/forms/filtersets.py:238 +#: virtualization/forms/model_forms.py:220 #: virtualization/tables/virtualmachines.py:128 #: virtualization/tables/virtualmachines.py:181 vpn/choices.py:45 -#: vpn/forms/filtersets.py:289 vpn/forms/model_forms.py:161 -#: vpn/forms/model_forms.py:172 vpn/forms/model_forms.py:274 +#: vpn/forms/filtersets.py:293 vpn/forms/model_forms.py:160 +#: vpn/forms/model_forms.py:171 vpn/forms/model_forms.py:273 +#: vpn/forms/model_forms.py:454 msgid "Virtual Machine" msgstr "" -#: ipam/forms/model_forms.py:113 ipam/tables/ip.py:116 -#: templates/ipam/aggregate.html:11 templates/ipam/prefix.html:39 +#: ipam/forms/model_forms.py:78 templates/ipam/routetarget.html:10 +msgid "Route Target" +msgstr "" + +#: ipam/forms/model_forms.py:112 ipam/tables/ip.py:116 +#: templates/ipam/aggregate.html:11 templates/ipam/prefix.html:38 msgid "Aggregate" msgstr "" -#: ipam/forms/model_forms.py:134 templates/ipam/asnrange.html:12 +#: ipam/forms/model_forms.py:133 templates/ipam/asnrange.html:12 msgid "ASN Range" msgstr "" -#: ipam/forms/model_forms.py:230 +#: ipam/forms/model_forms.py:229 msgid "Site/VLAN Assignment" msgstr "" -#: ipam/forms/model_forms.py:256 templates/ipam/iprange.html:11 +#: ipam/forms/model_forms.py:257 templates/ipam/iprange.html:10 msgid "IP Range" msgstr "" -#: ipam/forms/model_forms.py:285 ipam/forms/model_forms.py:440 -#: templates/ipam/fhrpgroup.html:19 templates/ipam/ipaddress_edit.html:52 +#: ipam/forms/model_forms.py:293 ipam/forms/model_forms.py:319 +#: ipam/forms/model_forms.py:462 templates/ipam/fhrpgroup.html:19 msgid "FHRP Group" msgstr "" -#: ipam/forms/model_forms.py:300 +#: ipam/forms/model_forms.py:308 msgid "Make this the primary IP for the device/VM" msgstr "" -#: ipam/forms/model_forms.py:351 +#: ipam/forms/model_forms.py:323 +msgid "NAT IP (Inside)" +msgstr "" + +#: ipam/forms/model_forms.py:373 msgid "An IP address can only be assigned to a single object." msgstr "" -#: ipam/forms/model_forms.py:357 ipam/models/ip.py:896 +#: ipam/forms/model_forms.py:379 ipam/models/ip.py:896 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "" -#: ipam/forms/model_forms.py:367 +#: ipam/forms/model_forms.py:389 msgid "" "Only IP addresses assigned to an interface can be designated as primary IPs." msgstr "" -#: ipam/forms/model_forms.py:442 +#: ipam/forms/model_forms.py:464 msgid "Virtual IP Address" msgstr "" -#: ipam/forms/model_forms.py:523 +#: ipam/forms/model_forms.py:549 msgid "Assignment already exists" msgstr "" -#: ipam/forms/model_forms.py:602 ipam/forms/model_forms.py:641 +#: ipam/forms/model_forms.py:628 ipam/forms/model_forms.py:670 #: ipam/tables/ip.py:250 templates/ipam/vlan_edit.html:37 #: templates/ipam/vlangroup.html:27 msgid "VLAN Group" msgstr "" -#: ipam/forms/model_forms.py:603 +#: ipam/forms/model_forms.py:629 msgid "Child VLANs" msgstr "" -#: ipam/forms/model_forms.py:672 ipam/forms/model_forms.py:706 +#: ipam/forms/model_forms.py:701 ipam/forms/model_forms.py:733 msgid "" "Comma-separated list of one or more port numbers. A range may be specified " "using a hyphen." msgstr "" -#: ipam/forms/model_forms.py:677 templates/ipam/servicetemplate.html:12 +#: ipam/forms/model_forms.py:706 templates/ipam/servicetemplate.html:12 msgid "Service Template" msgstr "" -#: ipam/forms/model_forms.py:728 +#: ipam/forms/model_forms.py:753 +msgid "Port(s)" +msgstr "" + +#: ipam/forms/model_forms.py:754 ipam/forms/model_forms.py:782 +#: templates/ipam/service.html:21 +msgid "Service" +msgstr "" + +#: ipam/forms/model_forms.py:767 msgid "Service template" msgstr "" -#: ipam/forms/model_forms.py:758 +#: ipam/forms/model_forms.py:779 +msgid "From Template" +msgstr "" + +#: ipam/forms/model_forms.py:780 +msgid "Custom" +msgstr "" + +#: ipam/forms/model_forms.py:810 msgid "" "Must specify name, protocol, and port(s) if not using a service template." msgstr "" @@ -8189,7 +8523,7 @@ msgstr "" msgid "group ID" msgstr "" -#: ipam/models/fhrp.py:30 ipam/models/services.py:22 +#: ipam/models/fhrp.py:30 ipam/models/services.py:21 msgid "protocol" msgstr "" @@ -8229,7 +8563,7 @@ msgstr "" msgid "IP space managed by this RIR is considered private" msgstr "" -#: ipam/models/ip.py:71 netbox/navigation/menu.py:170 +#: ipam/models/ip.py:71 netbox/navigation/menu.py:169 msgid "RIRs" msgstr "" @@ -8393,7 +8727,7 @@ msgstr "" msgid "The functional role of this IP" msgstr "" -#: ipam/models/ip.py:764 templates/ipam/ipaddress.html:75 +#: ipam/models/ip.py:764 templates/ipam/ipaddress.html:72 msgid "NAT (inside)" msgstr "" @@ -8405,7 +8739,7 @@ msgstr "" msgid "Hostname or FQDN (not case-sensitive)" msgstr "" -#: ipam/models/ip.py:788 ipam/models/services.py:94 +#: ipam/models/ip.py:788 ipam/models/services.py:93 msgid "IP addresses" msgstr "" @@ -8432,36 +8766,36 @@ msgstr "" msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "" -#: ipam/models/services.py:33 +#: ipam/models/services.py:32 msgid "port numbers" msgstr "" -#: ipam/models/services.py:59 +#: ipam/models/services.py:58 msgid "service template" msgstr "" -#: ipam/models/services.py:60 +#: ipam/models/services.py:59 msgid "service templates" msgstr "" -#: ipam/models/services.py:95 +#: ipam/models/services.py:94 msgid "The specific IP addresses (if any) to which this service is bound" msgstr "" -#: ipam/models/services.py:102 +#: ipam/models/services.py:101 msgid "service" msgstr "" -#: ipam/models/services.py:103 +#: ipam/models/services.py:102 msgid "services" msgstr "" -#: ipam/models/services.py:117 +#: ipam/models/services.py:116 msgid "" "A service cannot be associated with both a device and a virtual machine." msgstr "" -#: ipam/models/services.py:119 +#: ipam/models/services.py:118 msgid "A service must be associated with either a device or a virtual machine." msgstr "" @@ -8518,8 +8852,8 @@ msgid "The primary function of this VLAN" msgstr "" #: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:960 netbox/navigation/menu.py:181 -#: netbox/navigation/menu.py:183 +#: ipam/views.py:959 netbox/navigation/menu.py:180 +#: netbox/navigation/menu.py:182 msgid "VLANs" msgstr "" @@ -8551,8 +8885,8 @@ msgstr "" msgid "Prevent duplicate prefixes/IP addresses within this VRF" msgstr "" -#: ipam/models/vrfs.py:63 netbox/navigation/menu.py:174 -#: netbox/navigation/menu.py:176 +#: ipam/models/vrfs.py:63 netbox/navigation/menu.py:173 +#: netbox/navigation/menu.py:175 msgid "VRFs" msgstr "" @@ -8580,8 +8914,8 @@ msgstr "" msgid "Provider Count" msgstr "" -#: ipam/tables/ip.py:94 netbox/navigation/menu.py:167 -#: netbox/navigation/menu.py:169 +#: ipam/tables/ip.py:94 netbox/navigation/menu.py:166 +#: netbox/navigation/menu.py:168 msgid "Aggregates" msgstr "" @@ -8590,19 +8924,19 @@ msgid "Added" msgstr "" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:349 netbox/navigation/menu.py:153 -#: netbox/navigation/menu.py:155 templates/ipam/vlan.html:87 +#: ipam/views.py:349 netbox/navigation/menu.py:152 +#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84 msgid "Prefixes" msgstr "" #: ipam/tables/ip.py:130 ipam/tables/ip.py:267 ipam/tables/ip.py:320 -#: ipam/tables/vlans.py:82 templates/dcim/device.html:263 -#: templates/ipam/aggregate.html:25 templates/ipam/iprange.html:32 -#: templates/ipam/prefix.html:100 +#: ipam/tables/vlans.py:82 templates/dcim/device.html:252 +#: templates/ipam/aggregate.html:24 templates/ipam/iprange.html:29 +#: templates/ipam/prefix.html:106 msgid "Utilization" msgstr "" -#: ipam/tables/ip.py:170 netbox/navigation/menu.py:149 +#: ipam/tables/ip.py:170 netbox/navigation/menu.py:148 msgid "IP Ranges" msgstr "" @@ -8610,7 +8944,7 @@ msgstr "" msgid "Prefix (Flat)" msgstr "" -#: ipam/tables/ip.py:224 templates/dcim/rack_edit.html:52 +#: ipam/tables/ip.py:224 msgid "Depth" msgstr "" @@ -8638,8 +8972,8 @@ msgstr "" msgid "Assigned" msgstr "" -#: ipam/tables/ip.py:424 templates/vpn/l2vpntermination.html:19 -#: vpn/forms/filtersets.py:235 +#: ipam/tables/ip.py:424 templates/vpn/l2vpntermination.html:16 +#: vpn/forms/filtersets.py:240 msgid "Assigned Object" msgstr "" @@ -8697,75 +9031,137 @@ msgstr "" msgid "Child Ranges" msgstr "" -#: ipam/views.py:888 +#: ipam/views.py:887 msgid "Related IPs" msgstr "" -#: ipam/views.py:1117 +#: ipam/views.py:1115 msgid "Device Interfaces" msgstr "" -#: ipam/views.py:1135 +#: ipam/views.py:1133 msgid "VM Interfaces" msgstr "" -#: netbox/api/fields.py:62 +#: netbox/api/fields.py:63 msgid "This field may not be blank." msgstr "" -#: netbox/api/fields.py:66 +#: netbox/api/fields.py:68 msgid "" "Value must be passed directly (e.g. \"foo\": 123); do not use a dictionary " "or list." msgstr "" -#: netbox/api/fields.py:86 +#: netbox/api/fields.py:89 #, python-brace-format msgid "{value} is not a valid choice." msgstr "" -#: netbox/api/fields.py:99 +#: netbox/api/fields.py:102 #, python-brace-format msgid "Invalid content type: {content_type}" msgstr "" -#: netbox/api/fields.py:100 +#: netbox/api/fields.py:103 msgid "Invalid value. Specify a content type as '.'." msgstr "" -#: netbox/api/serializers/nested.py:35 -#, python-brace-format -msgid "Related object not found using the provided attributes: {params}" -msgstr "" - -#: netbox/api/serializers/nested.py:38 -#, python-brace-format -msgid "Multiple objects match the provided attributes: {params}" -msgstr "" - -#: netbox/api/serializers/nested.py:50 -#, python-brace-format -msgid "" -"Related objects must be referenced by numeric ID or by dictionary of " -"attributes. Received an unrecognized value: {value}" -msgstr "" - -#: netbox/api/serializers/nested.py:59 -#, python-brace-format -msgid "Related object not found using the provided numeric ID: {id}" -msgstr "" - -#: netbox/authentication.py:137 +#: netbox/authentication/__init__.py:138 #, python-brace-format msgid "Invalid permission {permission} for model {model}" msgstr "" +#: netbox/choices.py:49 +msgid "Dark Red" +msgstr "" + +#: netbox/choices.py:52 +msgid "Rose" +msgstr "" + +#: netbox/choices.py:53 +msgid "Fuchsia" +msgstr "" + +#: netbox/choices.py:55 +msgid "Dark Purple" +msgstr "" + +#: netbox/choices.py:58 +msgid "Light Blue" +msgstr "" + +#: netbox/choices.py:61 +msgid "Aqua" +msgstr "" + +#: netbox/choices.py:62 +msgid "Dark Green" +msgstr "" + +#: netbox/choices.py:64 +msgid "Light Green" +msgstr "" + +#: netbox/choices.py:65 +msgid "Lime" +msgstr "" + +#: netbox/choices.py:67 +msgid "Amber" +msgstr "" + +#: netbox/choices.py:69 +msgid "Dark Orange" +msgstr "" + +#: netbox/choices.py:70 +msgid "Brown" +msgstr "" + +#: netbox/choices.py:71 +msgid "Light Grey" +msgstr "" + +#: netbox/choices.py:72 +msgid "Grey" +msgstr "" + +#: netbox/choices.py:73 +msgid "Dark Grey" +msgstr "" + +#: netbox/choices.py:131 +msgid "Direct" +msgstr "" + +#: netbox/choices.py:132 +msgid "Upload" +msgstr "" + +#: netbox/choices.py:144 netbox/choices.py:158 +msgid "Auto-detect" +msgstr "" + +#: netbox/choices.py:159 +msgid "Comma" +msgstr "" + +#: netbox/choices.py:160 +msgid "Semicolon" +msgstr "" + +#: netbox/choices.py:161 +msgid "Tab" +msgstr "" + #: netbox/config/__init__.py:67 #, python-brace-format msgid "Invalid configuration parameter: {item}" msgstr "" -#: netbox/config/parameters.py:22 templates/core/configrevision.html:111 +#: netbox/config/parameters.py:22 templates/core/inc/config_data.html:62 msgid "Login banner" msgstr "" @@ -8773,7 +9169,7 @@ msgstr "" msgid "Additional content to display on the login page" msgstr "" -#: netbox/config/parameters.py:33 templates/core/configrevision.html:115 +#: netbox/config/parameters.py:33 templates/core/inc/config_data.html:66 msgid "Maintenance banner" msgstr "" @@ -8781,7 +9177,7 @@ msgstr "" msgid "Additional content to display when in maintenance mode" msgstr "" -#: netbox/config/parameters.py:44 templates/core/configrevision.html:119 +#: netbox/config/parameters.py:44 templates/core/inc/config_data.html:70 msgid "Top banner" msgstr "" @@ -8789,7 +9185,7 @@ msgstr "" msgid "Additional content to display at the top of every page" msgstr "" -#: netbox/config/parameters.py:55 templates/core/configrevision.html:123 +#: netbox/config/parameters.py:55 templates/core/inc/config_data.html:74 msgid "Bottom banner" msgstr "" @@ -8805,7 +9201,7 @@ msgstr "" msgid "Enforce unique IP addressing within the global table" msgstr "" -#: netbox/config/parameters.py:75 templates/core/configrevision.html:87 +#: netbox/config/parameters.py:75 templates/core/inc/config_data.html:44 msgid "Prefer IPv4" msgstr "" @@ -8853,7 +9249,7 @@ msgstr "" msgid "Default max utilization for powerfeeds" msgstr "" -#: netbox/config/parameters.py:123 templates/core/configrevision.html:99 +#: netbox/config/parameters.py:123 templates/core/inc/config_data.html:53 msgid "Allowed URL schemes" msgstr "" @@ -8869,7 +9265,7 @@ msgstr "" msgid "Maximum page size" msgstr "" -#: netbox/config/parameters.py:150 templates/core/configrevision.html:151 +#: netbox/config/parameters.py:150 templates/core/inc/config_data.html:96 msgid "Custom validators" msgstr "" @@ -8877,7 +9273,7 @@ msgstr "" msgid "Custom validation rules (JSON)" msgstr "" -#: netbox/config/parameters.py:160 templates/core/configrevision.html:161 +#: netbox/config/parameters.py:160 templates/core/inc/config_data.html:104 msgid "Protection rules" msgstr "" @@ -8885,7 +9281,7 @@ msgstr "" msgid "Deletion protection rules (JSON)" msgstr "" -#: netbox/config/parameters.py:172 +#: netbox/config/parameters.py:172 templates/core/inc/config_data.html:117 msgid "Default preferences" msgstr "" @@ -8893,7 +9289,7 @@ msgstr "" msgid "Default preferences for new users" msgstr "" -#: netbox/config/parameters.py:181 templates/core/configrevision.html:197 +#: netbox/config/parameters.py:181 templates/core/inc/config_data.html:129 msgid "Maintenance mode" msgstr "" @@ -8901,7 +9297,7 @@ msgstr "" msgid "Enable maintenance mode" msgstr "" -#: netbox/config/parameters.py:188 templates/core/configrevision.html:201 +#: netbox/config/parameters.py:188 templates/core/inc/config_data.html:133 msgid "GraphQL enabled" msgstr "" @@ -8909,7 +9305,7 @@ msgstr "" msgid "Enable the GraphQL API" msgstr "" -#: netbox/config/parameters.py:195 templates/core/configrevision.html:205 +#: netbox/config/parameters.py:195 templates/core/inc/config_data.html:137 msgid "Changelog retention" msgstr "" @@ -8925,7 +9321,7 @@ msgstr "" msgid "Days to retain job result history (set to zero for unlimited)" msgstr "" -#: netbox/config/parameters.py:209 templates/core/configrevision.html:213 +#: netbox/config/parameters.py:209 templates/core/inc/config_data.html:145 msgid "Maps URL" msgstr "" @@ -8933,41 +9329,41 @@ msgstr "" msgid "Base URL for mapping geographic locations" msgstr "" -#: netbox/forms/__init__.py:13 +#: netbox/forms/__init__.py:12 msgid "Partial match" msgstr "" -#: netbox/forms/__init__.py:14 +#: netbox/forms/__init__.py:13 msgid "Exact match" msgstr "" -#: netbox/forms/__init__.py:15 +#: netbox/forms/__init__.py:14 msgid "Starts with" msgstr "" -#: netbox/forms/__init__.py:16 +#: netbox/forms/__init__.py:15 msgid "Ends with" msgstr "" -#: netbox/forms/__init__.py:17 +#: netbox/forms/__init__.py:16 msgid "Regex" msgstr "" -#: netbox/forms/__init__.py:35 +#: netbox/forms/__init__.py:34 msgid "Object type(s)" msgstr "" -#: netbox/forms/base.py:81 +#: netbox/forms/base.py:88 msgid "" "Tag slugs separated by commas, encased with double quotes (e.g. \"tag1,tag2," "tag3\")" msgstr "" -#: netbox/forms/base.py:111 +#: netbox/forms/base.py:118 msgid "Add tags" msgstr "" -#: netbox/forms/base.py:116 +#: netbox/forms/base.py:123 msgid "Remove tags" msgstr "" @@ -8976,395 +9372,381 @@ msgstr "" msgid "{class_name} must specify a model class." msgstr "" -#: netbox/models/features.py:278 +#: netbox/models/features.py:277 #, python-brace-format msgid "Unknown field name '{name}' in custom field data." msgstr "" -#: netbox/models/features.py:284 +#: netbox/models/features.py:283 #, python-brace-format msgid "Invalid value for custom field '{name}': {error}" msgstr "" -#: netbox/models/features.py:291 +#: netbox/models/features.py:290 #, python-brace-format msgid "Missing required custom field '{name}'." msgstr "" -#: netbox/models/features.py:438 +#: netbox/models/features.py:441 msgid "Remote data source" msgstr "" -#: netbox/models/features.py:448 +#: netbox/models/features.py:451 msgid "data path" msgstr "" -#: netbox/models/features.py:452 +#: netbox/models/features.py:455 msgid "Path to remote file (relative to data source root)" msgstr "" -#: netbox/models/features.py:455 +#: netbox/models/features.py:458 msgid "auto sync enabled" msgstr "" -#: netbox/models/features.py:457 +#: netbox/models/features.py:460 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" -#: netbox/models/features.py:460 +#: netbox/models/features.py:463 msgid "date synced" msgstr "" -#: netbox/models/features.py:554 +#: netbox/models/features.py:557 #, python-brace-format msgid "{class_name} must implement a sync_data() method." msgstr "" -#: netbox/navigation/menu.py:12 +#: netbox/navigation/menu.py:11 msgid "Organization" msgstr "" -#: netbox/navigation/menu.py:20 +#: netbox/navigation/menu.py:19 msgid "Site Groups" msgstr "" -#: netbox/navigation/menu.py:28 +#: netbox/navigation/menu.py:27 msgid "Rack Roles" msgstr "" -#: netbox/navigation/menu.py:32 +#: netbox/navigation/menu.py:31 msgid "Elevations" msgstr "" -#: netbox/navigation/menu.py:41 +#: netbox/navigation/menu.py:40 msgid "Tenant Groups" msgstr "" -#: netbox/navigation/menu.py:48 +#: netbox/navigation/menu.py:47 msgid "Contact Groups" msgstr "" -#: netbox/navigation/menu.py:49 templates/tenancy/contactrole.html:8 +#: netbox/navigation/menu.py:48 templates/tenancy/contactrole.html:8 msgid "Contact Roles" msgstr "" -#: netbox/navigation/menu.py:50 +#: netbox/navigation/menu.py:49 msgid "Contact Assignments" msgstr "" -#: netbox/navigation/menu.py:64 +#: netbox/navigation/menu.py:63 msgid "Modules" msgstr "" -#: netbox/navigation/menu.py:65 templates/dcim/devicerole.html:8 -msgid "Device Roles" -msgstr "" - -#: netbox/navigation/menu.py:68 templates/dcim/device.html:162 +#: netbox/navigation/menu.py:67 templates/dcim/device.html:157 #: templates/dcim/virtualdevicecontext.html:8 msgid "Virtual Device Contexts" msgstr "" -#: netbox/navigation/menu.py:76 +#: netbox/navigation/menu.py:75 msgid "Manufacturers" msgstr "" -#: netbox/navigation/menu.py:80 +#: netbox/navigation/menu.py:79 msgid "Device Components" msgstr "" -#: netbox/navigation/menu.py:92 templates/dcim/inventoryitemrole.html:8 +#: netbox/navigation/menu.py:91 templates/dcim/inventoryitemrole.html:8 msgid "Inventory Item Roles" msgstr "" -#: netbox/navigation/menu.py:99 netbox/navigation/menu.py:103 +#: netbox/navigation/menu.py:98 netbox/navigation/menu.py:102 msgid "Connections" msgstr "" -#: netbox/navigation/menu.py:105 +#: netbox/navigation/menu.py:104 msgid "Cables" msgstr "" -#: netbox/navigation/menu.py:106 +#: netbox/navigation/menu.py:105 msgid "Wireless Links" msgstr "" -#: netbox/navigation/menu.py:109 +#: netbox/navigation/menu.py:108 msgid "Interface Connections" msgstr "" -#: netbox/navigation/menu.py:114 +#: netbox/navigation/menu.py:113 msgid "Console Connections" msgstr "" -#: netbox/navigation/menu.py:119 +#: netbox/navigation/menu.py:118 msgid "Power Connections" msgstr "" -#: netbox/navigation/menu.py:135 +#: netbox/navigation/menu.py:134 msgid "Wireless LAN Groups" msgstr "" -#: netbox/navigation/menu.py:156 +#: netbox/navigation/menu.py:155 msgid "Prefix & VLAN Roles" msgstr "" -#: netbox/navigation/menu.py:162 +#: netbox/navigation/menu.py:161 msgid "ASN Ranges" msgstr "" -#: netbox/navigation/menu.py:184 +#: netbox/navigation/menu.py:183 msgid "VLAN Groups" msgstr "" -#: netbox/navigation/menu.py:191 +#: netbox/navigation/menu.py:190 msgid "Service Templates" msgstr "" -#: netbox/navigation/menu.py:192 templates/dcim/device.html:304 -#: templates/ipam/ipaddress.html:122 -#: templates/virtualization/virtualmachine.html:157 +#: netbox/navigation/menu.py:191 templates/dcim/device.html:294 +#: templates/ipam/ipaddress.html:118 +#: templates/virtualization/virtualmachine.html:150 msgid "Services" msgstr "" -#: netbox/navigation/menu.py:199 +#: netbox/navigation/menu.py:198 msgid "VPN" msgstr "" -#: netbox/navigation/menu.py:203 netbox/navigation/menu.py:205 +#: netbox/navigation/menu.py:202 netbox/navigation/menu.py:204 #: vpn/tables/tunnels.py:24 msgid "Tunnels" msgstr "" -#: netbox/navigation/menu.py:206 templates/vpn/tunnelgroup.html:8 +#: netbox/navigation/menu.py:205 templates/vpn/tunnelgroup.html:8 msgid "Tunnel Groups" msgstr "" -#: netbox/navigation/menu.py:207 +#: netbox/navigation/menu.py:206 msgid "Tunnel Terminations" msgstr "" -#: netbox/navigation/menu.py:211 netbox/navigation/menu.py:213 +#: netbox/navigation/menu.py:210 netbox/navigation/menu.py:212 #: vpn/models/l2vpn.py:64 msgid "L2VPNs" msgstr "" -#: netbox/navigation/menu.py:214 templates/vpn/l2vpn.html:57 -#: templates/vpn/tunnel.html:73 vpn/tables/tunnels.py:58 +#: netbox/navigation/menu.py:213 templates/vpn/l2vpn.html:56 +#: templates/vpn/tunnel.html:72 vpn/tables/tunnels.py:58 msgid "Terminations" msgstr "" -#: netbox/navigation/menu.py:220 +#: netbox/navigation/menu.py:219 msgid "IKE Proposals" msgstr "" -#: netbox/navigation/menu.py:221 templates/vpn/ikeproposal.html:42 +#: netbox/navigation/menu.py:220 templates/vpn/ikeproposal.html:41 msgid "IKE Policies" msgstr "" -#: netbox/navigation/menu.py:222 +#: netbox/navigation/menu.py:221 msgid "IPSec Proposals" msgstr "" -#: netbox/navigation/menu.py:223 templates/vpn/ipsecproposal.html:38 +#: netbox/navigation/menu.py:222 templates/vpn/ipsecproposal.html:37 msgid "IPSec Policies" msgstr "" -#: netbox/navigation/menu.py:224 templates/vpn/ikepolicy.html:39 -#: templates/vpn/ipsecpolicy.html:26 +#: netbox/navigation/menu.py:223 templates/vpn/ikepolicy.html:38 +#: templates/vpn/ipsecpolicy.html:25 msgid "IPSec Profiles" msgstr "" -#: netbox/navigation/menu.py:231 templates/dcim/device_edit.html:78 +#: netbox/navigation/menu.py:230 templates/dcim/device_edit.html:78 msgid "Virtualization" msgstr "" -#: netbox/navigation/menu.py:235 netbox/navigation/menu.py:237 -#: virtualization/views.py:186 -msgid "Virtual Machines" -msgstr "" - -#: netbox/navigation/menu.py:239 -#: templates/virtualization/virtualmachine.html:177 +#: netbox/navigation/menu.py:238 +#: templates/virtualization/virtualmachine.html:170 #: templates/virtualization/virtualmachine/base.html:32 #: templates/virtualization/virtualmachine_list.html:21 #: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389 msgid "Virtual Disks" msgstr "" -#: netbox/navigation/menu.py:246 +#: netbox/navigation/menu.py:245 msgid "Cluster Types" msgstr "" -#: netbox/navigation/menu.py:247 +#: netbox/navigation/menu.py:246 msgid "Cluster Groups" msgstr "" -#: netbox/navigation/menu.py:261 +#: netbox/navigation/menu.py:260 msgid "Circuit Types" msgstr "" -#: netbox/navigation/menu.py:265 netbox/navigation/menu.py:267 +#: netbox/navigation/menu.py:264 netbox/navigation/menu.py:266 msgid "Providers" msgstr "" -#: netbox/navigation/menu.py:268 templates/circuits/provider.html:53 +#: netbox/navigation/menu.py:267 templates/circuits/provider.html:51 msgid "Provider Accounts" msgstr "" -#: netbox/navigation/menu.py:269 +#: netbox/navigation/menu.py:268 msgid "Provider Networks" msgstr "" -#: netbox/navigation/menu.py:283 +#: netbox/navigation/menu.py:282 msgid "Power Panels" msgstr "" -#: netbox/navigation/menu.py:294 +#: netbox/navigation/menu.py:293 msgid "Configurations" msgstr "" -#: netbox/navigation/menu.py:296 +#: netbox/navigation/menu.py:295 msgid "Config Contexts" msgstr "" -#: netbox/navigation/menu.py:297 +#: netbox/navigation/menu.py:296 msgid "Config Templates" msgstr "" -#: netbox/navigation/menu.py:304 netbox/navigation/menu.py:308 +#: netbox/navigation/menu.py:303 netbox/navigation/menu.py:307 msgid "Customization" msgstr "" -#: netbox/navigation/menu.py:310 -#: templates/circuits/circuittermination_edit.html:53 -#: templates/dcim/cable_edit.html:77 templates/dcim/device_edit.html:103 -#: templates/dcim/inventoryitem_edit.html:102 -#: templates/dcim/inventoryitemtemplate_edit.html:99 -#: templates/dcim/rack_edit.html:81 templates/dcim/virtualchassis_add.html:31 -#: templates/dcim/virtualchassis_edit.html:41 -#: templates/generic/bulk_edit.html:92 templates/htmx/form.html:32 -#: templates/inc/panels/custom_fields.html:7 -#: templates/ipam/ipaddress_bulk_add.html:35 -#: templates/ipam/ipaddress_edit.html:88 templates/ipam/service_create.html:75 -#: templates/ipam/service_edit.html:62 templates/ipam/vlan_edit.html:63 -#: templates/tenancy/contactassignment_edit.html:31 -#: templates/vpn/l2vpntermination_edit.html:51 +#: netbox/navigation/menu.py:309 templates/dcim/device_edit.html:103 +#: templates/dcim/htmx/cable_edit.html:81 +#: templates/dcim/virtualchassis_add.html:31 +#: templates/dcim/virtualchassis_edit.html:40 +#: templates/generic/bulk_edit.html:76 templates/htmx/form.html:19 +#: templates/inc/filter_list.html:30 templates/inc/panels/custom_fields.html:7 +#: templates/ipam/ipaddress_bulk_add.html:35 templates/ipam/vlan_edit.html:63 msgid "Custom Fields" msgstr "" -#: netbox/navigation/menu.py:311 +#: netbox/navigation/menu.py:310 msgid "Custom Field Choices" msgstr "" -#: netbox/navigation/menu.py:312 +#: netbox/navigation/menu.py:311 msgid "Custom Links" msgstr "" -#: netbox/navigation/menu.py:313 +#: netbox/navigation/menu.py:312 msgid "Export Templates" msgstr "" -#: netbox/navigation/menu.py:314 +#: netbox/navigation/menu.py:313 msgid "Saved Filters" msgstr "" -#: netbox/navigation/menu.py:316 +#: netbox/navigation/menu.py:315 msgid "Image Attachments" msgstr "" -#: netbox/navigation/menu.py:320 -msgid "Reports & Scripts" -msgstr "" - -#: netbox/navigation/menu.py:340 +#: netbox/navigation/menu.py:333 msgid "Operations" msgstr "" -#: netbox/navigation/menu.py:344 +#: netbox/navigation/menu.py:337 msgid "Integrations" msgstr "" -#: netbox/navigation/menu.py:346 +#: netbox/navigation/menu.py:339 msgid "Data Sources" msgstr "" -#: netbox/navigation/menu.py:347 +#: netbox/navigation/menu.py:340 msgid "Event Rules" msgstr "" -#: netbox/navigation/menu.py:348 +#: netbox/navigation/menu.py:341 msgid "Webhooks" msgstr "" -#: netbox/navigation/menu.py:352 netbox/navigation/menu.py:356 +#: netbox/navigation/menu.py:345 netbox/navigation/menu.py:349 #: netbox/views/generic/feature_views.py:151 #: templates/extras/report/base.html:37 templates/extras/script/base.html:36 msgid "Jobs" msgstr "" -#: netbox/navigation/menu.py:362 +#: netbox/navigation/menu.py:355 msgid "Logging" msgstr "" -#: netbox/navigation/menu.py:364 +#: netbox/navigation/menu.py:357 msgid "Journal Entries" msgstr "" -#: netbox/navigation/menu.py:365 templates/extras/objectchange.html:8 +#: netbox/navigation/menu.py:358 templates/extras/objectchange.html:8 #: templates/extras/objectchange_list.html:4 msgid "Change Log" msgstr "" -#: netbox/navigation/menu.py:372 templates/inc/profile_button.html:18 +#: netbox/navigation/menu.py:365 templates/inc/user_menu.html:11 msgid "Admin" msgstr "" -#: netbox/navigation/menu.py:381 templates/users/group.html:27 -#: users/forms/model_forms.py:243 users/forms/model_forms.py:256 -#: users/forms/model_forms.py:310 users/tables.py:105 +#: netbox/navigation/menu.py:373 templates/users/group.html:29 +#: users/forms/model_forms.py:236 users/forms/model_forms.py:248 +#: users/forms/model_forms.py:300 users/tables.py:102 msgid "Users" msgstr "" -#: netbox/navigation/menu.py:404 users/forms/model_forms.py:183 -#: users/forms/model_forms.py:196 users/forms/model_forms.py:315 -#: users/tables.py:35 users/tables.py:109 +#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185 +#: users/forms/model_forms.py:197 users/forms/model_forms.py:305 +#: users/tables.py:35 users/tables.py:106 msgid "Groups" msgstr "" -#: netbox/navigation/menu.py:426 templates/account/base.html:21 -#: templates/inc/profile_button.html:39 +#: netbox/navigation/menu.py:411 templates/account/base.html:21 +#: templates/inc/user_menu.html:36 msgid "API Tokens" msgstr "" -#: netbox/navigation/menu.py:433 users/forms/model_forms.py:189 -#: users/forms/model_forms.py:198 users/forms/model_forms.py:249 -#: users/forms/model_forms.py:257 +#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191 +#: users/forms/model_forms.py:199 users/forms/model_forms.py:242 +#: users/forms/model_forms.py:249 msgid "Permissions" msgstr "" -#: netbox/navigation/menu.py:445 -msgid "Current Config" +#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428 +#: templates/core/system.html:7 +msgid "System" msgstr "" -#: netbox/navigation/menu.py:451 -msgid "Config Revisions" +#: netbox/navigation/menu.py:432 +msgid "Configuration History" msgstr "" -#: netbox/navigation/menu.py:491 templates/500.html:35 -#: templates/account/preferences.html:29 +#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8 +#: templates/core/rq_task_list.html:22 +msgid "Background Tasks" +msgstr "" + +#: netbox/navigation/menu.py:475 templates/500.html:35 +#: templates/account/preferences.html:22 templates/core/system.html:76 msgid "Plugins" msgstr "" -#: netbox/plugins/navigation.py:46 netbox/plugins/navigation.py:68 +#: netbox/plugins/navigation.py:47 netbox/plugins/navigation.py:69 msgid "Permissions must be passed as a tuple or list." msgstr "" -#: netbox/plugins/navigation.py:50 +#: netbox/plugins/navigation.py:51 msgid "Buttons must be passed as a tuple or list." msgstr "" -#: netbox/plugins/navigation.py:72 +#: netbox/plugins/navigation.py:73 msgid "Button color must be a choice within ButtonColorChoices." msgstr "" @@ -9408,53 +9790,57 @@ msgid "extra_context must be a dictionary" msgstr "" #: netbox/preferences.py:19 -msgid "Color mode" +msgid "HTMX Navigation" msgstr "" -#: netbox/preferences.py:21 -msgid "Light" +#: netbox/preferences.py:24 +msgid "Enable dynamic UI navigation" msgstr "" -#: netbox/preferences.py:22 -msgid "Dark" -msgstr "" - -#: netbox/preferences.py:27 +#: netbox/preferences.py:29 msgid "Language" msgstr "" #: netbox/preferences.py:34 +msgid "Forces UI translation to the specified language." +msgstr "" + +#: netbox/preferences.py:37 msgid "Page length" msgstr "" -#: netbox/preferences.py:36 +#: netbox/preferences.py:39 msgid "The default number of objects to display per page" msgstr "" -#: netbox/preferences.py:40 +#: netbox/preferences.py:43 msgid "Paginator placement" msgstr "" -#: netbox/preferences.py:42 +#: netbox/preferences.py:45 msgid "Bottom" msgstr "" -#: netbox/preferences.py:43 +#: netbox/preferences.py:46 msgid "Top" msgstr "" -#: netbox/preferences.py:44 +#: netbox/preferences.py:47 msgid "Both" msgstr "" -#: netbox/preferences.py:46 +#: netbox/preferences.py:50 msgid "Where the paginator controls will be displayed relative to a table" msgstr "" -#: netbox/preferences.py:52 +#: netbox/preferences.py:55 msgid "Data format" msgstr "" +#: netbox/preferences.py:60 +msgid "The preferred syntax for displaying generic data within the UI" +msgstr "" + #: netbox/registry.py:14 #, python-brace-format msgid "Invalid store: {key}" @@ -9468,63 +9854,59 @@ msgstr "" msgid "Cannot delete stores from registry" msgstr "" -#: netbox/settings.py:727 +#: netbox/settings.py:706 msgid "English" msgstr "" -#: netbox/settings.py:728 +#: netbox/settings.py:707 msgid "Spanish" msgstr "" -#: netbox/settings.py:729 +#: netbox/settings.py:708 msgid "French" msgstr "" -#: netbox/settings.py:730 +#: netbox/settings.py:709 msgid "Japanese" msgstr "" -#: netbox/settings.py:731 +#: netbox/settings.py:710 msgid "Portuguese" msgstr "" -#: netbox/settings.py:732 +#: netbox/settings.py:711 msgid "Russian" msgstr "" -#: netbox/settings.py:733 +#: netbox/settings.py:712 msgid "Turkish" msgstr "" -#: netbox/tables/columns.py:175 +#: netbox/tables/columns.py:185 msgid "Toggle all" msgstr "" -#: netbox/tables/columns.py:277 templates/inc/profile_button.html:56 +#: netbox/tables/columns.py:287 msgid "Toggle Dropdown" msgstr "" -#: netbox/tables/columns.py:542 templates/core/job.html:40 +#: netbox/tables/columns.py:552 templates/core/job.html:35 msgid "Error" msgstr "" -#: netbox/tables/tables.py:243 templates/generic/bulk_import.html:115 +#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117 msgid "Field" msgstr "" -#: netbox/tables/tables.py:246 +#: netbox/tables/tables.py:248 msgid "Value" msgstr "" -#: netbox/tables/tables.py:259 -msgid "No results found" -msgstr "" - #: netbox/tests/dummy_plugin/navigation.py:29 msgid "Dummy Plugin" msgstr "" -#: netbox/views/generic/bulk_views.py:397 +#: netbox/views/generic/bulk_views.py:405 #, python-brace-format msgid "Row {i}: Object with ID {id} does not exist" msgstr "" @@ -9580,7 +9962,7 @@ msgstr "" msgid "Python version" msgstr "" -#: templates/500.html:34 +#: templates/500.html:34 templates/core/system.html:31 msgid "NetBox version" msgstr "" @@ -9604,13 +9986,13 @@ msgstr "" msgid "Home Page" msgstr "" -#: templates/account/base.html:7 templates/inc/profile_button.html:24 -#: vpn/forms/bulk_edit.py:256 vpn/forms/filtersets.py:186 -#: vpn/forms/model_forms.py:378 +#: templates/account/base.html:7 templates/inc/user_menu.html:27 +#: vpn/forms/bulk_edit.py:255 vpn/forms/filtersets.py:189 +#: vpn/forms/model_forms.py:379 msgid "Profile" msgstr "" -#: templates/account/base.html:13 templates/inc/profile_button.html:34 +#: templates/account/base.html:13 templates/inc/user_menu.html:33 msgid "Preferences" msgstr "" @@ -9618,62 +10000,62 @@ msgstr "" msgid "Change Password" msgstr "" -#: templates/account/password.html:17 templates/account/preferences.html:82 -#: templates/core/configrevision_restore.html:80 +#: templates/account/password.html:17 templates/account/preferences.html:77 +#: templates/core/configrevision_restore.html:63 #: templates/dcim/devicebay_populate.html:34 -#: templates/dcim/virtualchassis_add_member.html:24 -#: templates/dcim/virtualchassis_edit.html:104 -#: templates/extras/object_journal.html:26 templates/extras/script.html:36 -#: templates/generic/bulk_add_component.html:55 -#: templates/generic/bulk_delete.html:46 templates/generic/bulk_edit.html:125 -#: templates/generic/bulk_import.html:53 templates/generic/bulk_import.html:75 -#: templates/generic/bulk_import.html:97 templates/generic/bulk_remove.html:42 -#: templates/generic/bulk_rename.html:44 -#: templates/generic/confirmation_form.html:20 -#: templates/generic/object_edit.html:76 templates/htmx/delete_form.html:53 +#: templates/dcim/virtualchassis_add_member.html:26 +#: templates/dcim/virtualchassis_edit.html:103 +#: templates/extras/object_journal.html:26 templates/extras/script.html:37 +#: templates/generic/bulk_add_component.html:67 +#: templates/generic/bulk_delete.html:65 templates/generic/bulk_edit.html:106 +#: templates/generic/bulk_import.html:56 templates/generic/bulk_import.html:78 +#: templates/generic/bulk_import.html:100 templates/generic/bulk_remove.html:62 +#: templates/generic/bulk_rename.html:63 +#: templates/generic/confirmation_form.html:19 +#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53 #: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31 #: templates/virtualization/cluster_add_devices.html:30 msgid "Cancel" msgstr "" -#: templates/account/password.html:18 templates/account/preferences.html:83 +#: templates/account/password.html:18 templates/account/preferences.html:78 #: templates/dcim/devicebay_populate.html:35 -#: templates/dcim/virtualchassis_add_member.html:26 -#: templates/dcim/virtualchassis_edit.html:106 +#: templates/dcim/virtualchassis_add_member.html:28 +#: templates/dcim/virtualchassis_edit.html:105 #: templates/extras/dashboard/widget_add.html:26 #: templates/extras/dashboard/widget_config.html:19 #: templates/extras/object_journal.html:27 -#: templates/generic/object_edit.html:66 +#: templates/generic/object_edit.html:75 #: utilities/templates/helpers/applied_filters.html:16 #: utilities/templates/helpers/table_config_form.html:40 msgid "Save" msgstr "" -#: templates/account/preferences.html:41 +#: templates/account/preferences.html:34 msgid "Table Configurations" msgstr "" -#: templates/account/preferences.html:46 +#: templates/account/preferences.html:39 msgid "Clear table preferences" msgstr "" -#: templates/account/preferences.html:53 +#: templates/account/preferences.html:47 msgid "Toggle All" msgstr "" -#: templates/account/preferences.html:55 +#: templates/account/preferences.html:49 msgid "Table" msgstr "" -#: templates/account/preferences.html:56 +#: templates/account/preferences.html:50 msgid "Ordering" msgstr "" -#: templates/account/preferences.html:57 +#: templates/account/preferences.html:51 msgid "Columns" msgstr "" -#: templates/account/preferences.html:76 templates/dcim/cable_trace.html:113 +#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113 #: templates/extras/object_configcontext.html:55 msgid "None found" msgstr "" @@ -9686,54 +10068,55 @@ msgstr "" msgid "Account Details" msgstr "" -#: templates/account/profile.html:30 templates/tenancy/contact.html:44 -#: templates/users/user.html:26 tenancy/forms/bulk_edit.py:108 +#: templates/account/profile.html:29 templates/tenancy/contact.html:43 +#: templates/users/user.html:25 tenancy/forms/bulk_edit.py:109 msgid "Email" msgstr "" -#: templates/account/profile.html:34 templates/users/user.html:30 +#: templates/account/profile.html:33 templates/users/user.html:29 msgid "Account Created" msgstr "" -#: templates/account/profile.html:38 templates/users/user.html:34 +#: templates/account/profile.html:37 templates/users/user.html:33 msgid "Last Login" msgstr "" -#: templates/account/profile.html:42 templates/users/user.html:46 +#: templates/account/profile.html:41 templates/users/user.html:45 msgid "Superuser" msgstr "" -#: templates/account/profile.html:46 -msgid "Admin Access" +#: templates/account/profile.html:45 templates/inc/user_menu.html:13 +#: templates/users/user.html:41 +msgid "Staff" msgstr "" -#: templates/account/profile.html:55 templates/users/objectpermission.html:86 -#: templates/users/user.html:55 +#: templates/account/profile.html:53 templates/users/objectpermission.html:82 +#: templates/users/user.html:53 msgid "Assigned Groups" msgstr "" -#: templates/account/profile.html:60 +#: templates/account/profile.html:58 #: templates/circuits/circuit_terminations_swap.html:18 #: templates/circuits/circuit_terminations_swap.html:26 #: templates/circuits/inc/circuit_termination.html:154 -#: templates/dcim/devicebay.html:66 -#: templates/dcim/inc/panels/inventory_items.html:37 -#: templates/dcim/interface.html:306 templates/dcim/modulebay.html:79 -#: templates/extras/configcontext.html:73 templates/extras/eventrule.html:84 -#: templates/extras/htmx/script_result.html:54 +#: templates/dcim/devicebay.html:59 +#: templates/dcim/inc/panels/inventory_items.html:45 +#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76 +#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72 +#: templates/extras/htmx/script_result.html:56 #: templates/extras/object_configcontext.html:28 -#: templates/extras/objectchange.html:128 -#: templates/extras/objectchange.html:145 templates/extras/webhook.html:79 -#: templates/extras/webhook.html:91 templates/inc/panel_table.html:12 +#: templates/extras/objectchange.html:123 +#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67 +#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13 #: templates/inc/panels/comments.html:12 -#: templates/ipam/inc/panels/fhrp_groups.html:43 templates/users/group.html:32 -#: templates/users/group.html:42 templates/users/objectpermission.html:81 -#: templates/users/objectpermission.html:91 templates/users/user.html:60 -#: templates/users/user.html:70 +#: templates/ipam/inc/panels/fhrp_groups.html:56 templates/users/group.html:34 +#: templates/users/group.html:44 templates/users/objectpermission.html:77 +#: templates/users/objectpermission.html:87 templates/users/user.html:58 +#: templates/users/user.html:68 msgid "None" msgstr "" -#: templates/account/profile.html:70 templates/users/user.html:80 +#: templates/account/profile.html:68 templates/users/user.html:78 msgid "Recent Activity" msgstr "" @@ -9747,12 +10130,12 @@ msgstr "" msgid "Token" msgstr "" -#: templates/account/token.html:40 templates/users/token.html:32 -#: users/forms/bulk_edit.py:87 +#: templates/account/token.html:39 templates/users/token.html:31 +#: users/forms/bulk_edit.py:107 msgid "Write enabled" msgstr "" -#: templates/account/token.html:52 templates/users/token.html:44 +#: templates/account/token.html:51 templates/users/token.html:43 msgid "Last used" msgstr "" @@ -9760,75 +10143,51 @@ msgstr "" msgid "Add a Token" msgstr "" -#: templates/admin/index.html:10 -msgid "System" -msgstr "" - -#: templates/admin/index.html:14 -msgid "Background Tasks" -msgstr "" - -#: templates/admin/index.html:19 -msgid "Installed plugins" -msgstr "" - -#: templates/base/base.html:28 templates/extras/admin/plugins_list.html:8 -#: templates/home.html:24 +#: templates/base/base.html:18 templates/home.html:27 msgid "Home" msgstr "" -#: templates/base/layout.html:27 templates/base/layout.html:37 -#: templates/login.html:34 -msgid "NetBox logo" -msgstr "" - -#: templates/base/layout.html:76 -msgid "Debug mode is enabled" -msgstr "" - -#: templates/base/layout.html:77 -msgid "" -"Performance may be limited. Debugging should never be enabled on a " -"production system" -msgstr "" - -#: templates/base/layout.html:83 -msgid "Maintenance Mode" -msgstr "" - -#: templates/base/layout.html:134 -msgid "Docs" -msgstr "" - -#: templates/base/layout.html:139 templates/rest_framework/api.html:10 -msgid "REST API" -msgstr "" - -#: templates/base/layout.html:144 -msgid "REST API documentation" -msgstr "" - -#: templates/base/layout.html:150 -msgid "GraphQL API" -msgstr "" - -#: templates/base/layout.html:156 -msgid "Source Code" -msgstr "" - -#: templates/base/layout.html:161 -msgid "Community" -msgstr "" - -#: templates/base/sidenav.html:12 templates/base/sidenav.html:17 +#: templates/base/layout.html:32 msgid "NetBox Logo" msgstr "" -#: templates/circuits/circuit.html:48 +#: templates/base/layout.html:56 +msgid "Enable dark mode" +msgstr "" + +#: templates/base/layout.html:59 +msgid "Enable light mode" +msgstr "" + +#: templates/base/layout.html:145 +msgid "Docs" +msgstr "" + +#: templates/base/layout.html:151 templates/rest_framework/api.html:10 +msgid "REST API" +msgstr "" + +#: templates/base/layout.html:157 +msgid "REST API documentation" +msgstr "" + +#: templates/base/layout.html:164 +msgid "GraphQL API" +msgstr "" + +#: templates/base/layout.html:171 +msgid "Source Code" +msgstr "" + +#: templates/base/layout.html:177 +msgid "Community" +msgstr "" + +#: templates/circuits/circuit.html:47 msgid "Install Date" msgstr "" -#: templates/circuits/circuit.html:52 +#: templates/circuits/circuit.html:51 msgid "Termination Date" msgstr "" @@ -9849,85 +10208,75 @@ msgstr "" msgid "Z side" msgstr "" -#: templates/circuits/circuittermination_edit.html:9 -#: templates/circuits/inc/circuit_termination.html:81 -#: templates/dcim/frontport.html:128 templates/dcim/interface.html:199 -#: templates/dcim/rearport.html:118 -msgid "Circuit Termination" -msgstr "" - -#: templates/circuits/circuittermination_edit.html:41 -msgid "Termination Details" -msgstr "" - #: templates/circuits/circuittype.html:10 msgid "Add Circuit" msgstr "" -#: templates/circuits/inc/circuit_termination.html:9 +#: templates/circuits/circuittype.html:19 +msgid "Circuit Type" +msgstr "" + +#: templates/circuits/inc/circuit_termination.html:6 +#: templates/circuits/inc/circuit_termination.html:41 +#: templates/dcim/cable.html:68 templates/dcim/cable.html:72 +#: vpn/forms/bulk_import.py:100 vpn/forms/filtersets.py:77 +msgid "Termination" +msgstr "" + +#: templates/circuits/inc/circuit_termination.html:10 #: templates/dcim/devicetype/component_templates.html:33 #: templates/dcim/manufacturer.html:11 -#: templates/dcim/moduletype/component_templates.html:30 -#: templates/generic/bulk_add_component.html:8 -#: templates/users/objectpermission.html:41 +#: templates/dcim/moduletype/component_templates.html:29 +#: templates/generic/bulk_add_component.html:22 +#: templates/users/objectpermission.html:38 #: utilities/templates/buttons/add.html:4 #: utilities/templates/helpers/table_config_form.html:20 msgid "Add" msgstr "" -#: templates/circuits/inc/circuit_termination.html:14 -#: templates/circuits/inc/circuit_termination.html:63 -#: templates/dcim/inc/panels/inventory_items.html:24 -#: templates/dcim/moduletype/component_templates.html:21 -#: templates/dcim/powerpanel.html:61 templates/generic/object_edit.html:29 +#: templates/circuits/inc/circuit_termination.html:15 +#: templates/circuits/inc/circuit_termination.html:62 +#: templates/dcim/inc/panels/inventory_items.html:32 +#: templates/dcim/moduletype/component_templates.html:20 +#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32 +#: templates/generic/object_edit.html:47 #: templates/ipam/inc/ipaddress_edit_header.html:10 -#: templates/ipam/inc/panels/fhrp_groups.html:30 +#: templates/ipam/inc/panels/fhrp_groups.html:43 #: utilities/templates/buttons/edit.html:3 msgid "Edit" msgstr "" -#: templates/circuits/inc/circuit_termination.html:17 +#: templates/circuits/inc/circuit_termination.html:18 msgid "Swap" msgstr "" -#: templates/circuits/inc/circuit_termination.html:26 -#, python-format -msgid "Termination %(side)s" -msgstr "" - -#: templates/circuits/inc/circuit_termination.html:42 -#: templates/dcim/cable.html:70 templates/dcim/cable.html:76 -#: vpn/forms/bulk_import.py:100 vpn/forms/filtersets.py:76 -msgid "Termination" -msgstr "" - -#: templates/circuits/inc/circuit_termination.html:46 -#: templates/dcim/consoleport.html:62 templates/dcim/consoleserverport.html:62 -#: templates/dcim/powerfeed.html:122 +#: templates/circuits/inc/circuit_termination.html:45 +#: templates/dcim/consoleport.html:59 templates/dcim/consoleserverport.html:60 +#: templates/dcim/powerfeed.html:114 msgid "Marked as connected" msgstr "" -#: templates/circuits/inc/circuit_termination.html:48 +#: templates/circuits/inc/circuit_termination.html:47 msgid "to" msgstr "" +#: templates/circuits/inc/circuit_termination.html:57 #: templates/circuits/inc/circuit_termination.html:58 -#: templates/circuits/inc/circuit_termination.html:59 -#: templates/dcim/frontport.html:87 +#: templates/dcim/frontport.html:80 #: templates/dcim/inc/connection_endpoints.html:7 -#: templates/dcim/interface.html:160 templates/dcim/rearport.html:83 +#: templates/dcim/interface.html:154 templates/dcim/rearport.html:76 msgid "Trace" msgstr "" -#: templates/circuits/inc/circuit_termination.html:62 +#: templates/circuits/inc/circuit_termination.html:61 msgid "Edit cable" msgstr "" -#: templates/circuits/inc/circuit_termination.html:67 +#: templates/circuits/inc/circuit_termination.html:66 msgid "Remove cable" msgstr "" -#: templates/circuits/inc/circuit_termination.html:68 +#: templates/circuits/inc/circuit_termination.html:67 #: templates/dcim/bulk_disconnect.html:5 #: templates/dcim/device/consoleports.html:12 #: templates/dcim/device/consoleserverports.html:12 @@ -9935,41 +10284,32 @@ msgstr "" #: templates/dcim/device/interfaces.html:16 #: templates/dcim/device/poweroutlets.html:12 #: templates/dcim/device/powerports.html:12 -#: templates/dcim/device/rearports.html:12 templates/dcim/powerpanel.html:66 +#: templates/dcim/device/rearports.html:12 templates/dcim/powerpanel.html:61 msgid "Disconnect" msgstr "" -#: templates/circuits/inc/circuit_termination.html:75 -#: templates/dcim/consoleport.html:71 templates/dcim/consoleserverport.html:71 -#: templates/dcim/frontport.html:109 templates/dcim/interface.html:186 -#: templates/dcim/interface.html:206 templates/dcim/powerfeed.html:136 -#: templates/dcim/poweroutlet.html:75 templates/dcim/poweroutlet.html:76 -#: templates/dcim/powerport.html:77 templates/dcim/rearport.html:105 +#: templates/circuits/inc/circuit_termination.html:74 +#: templates/dcim/consoleport.html:69 templates/dcim/consoleserverport.html:70 +#: templates/dcim/frontport.html:102 templates/dcim/interface.html:180 +#: templates/dcim/interface.html:200 templates/dcim/powerfeed.html:127 +#: templates/dcim/poweroutlet.html:71 templates/dcim/poweroutlet.html:72 +#: templates/dcim/powerport.html:73 templates/dcim/rearport.html:98 msgid "Connect" msgstr "" -#: templates/circuits/inc/circuit_termination.html:79 -#: templates/dcim/consoleport.html:78 templates/dcim/consoleserverport.html:78 -#: templates/dcim/frontport.html:18 templates/dcim/frontport.html:122 -#: templates/dcim/interface.html:193 templates/dcim/inventoryitem_edit.html:49 -#: templates/dcim/inventoryitemtemplate_edit.html:46 -#: templates/dcim/rearport.html:112 -msgid "Front Port" -msgstr "" - -#: templates/circuits/inc/circuit_termination.html:97 +#: templates/circuits/inc/circuit_termination.html:96 msgid "Downstream" msgstr "" -#: templates/circuits/inc/circuit_termination.html:98 +#: templates/circuits/inc/circuit_termination.html:97 msgid "Upstream" msgstr "" -#: templates/circuits/inc/circuit_termination.html:107 +#: templates/circuits/inc/circuit_termination.html:106 msgid "Cross-Connect" msgstr "" -#: templates/circuits/inc/circuit_termination.html:111 +#: templates/circuits/inc/circuit_termination.html:110 msgid "Patch Panel/Port" msgstr "" @@ -9981,90 +10321,50 @@ msgstr "" msgid "Provider Account" msgstr "" -#: templates/core/configrevision.html:47 -msgid "Default unit height" +#: templates/core/configrevision.html:35 +msgid "Configuration Data" msgstr "" -#: templates/core/configrevision.html:51 -msgid "Default unit width" -msgstr "" - -#: templates/core/configrevision.html:63 -msgid "Default voltage" -msgstr "" - -#: templates/core/configrevision.html:67 -msgid "Default amperage" -msgstr "" - -#: templates/core/configrevision.html:71 -msgid "Default max utilization" -msgstr "" - -#: templates/core/configrevision.html:83 -msgid "Enforce global unique" -msgstr "" - -#: templates/core/configrevision.html:135 -msgid "Paginate count" -msgstr "" - -#: templates/core/configrevision.html:139 -msgid "Max page size" -msgstr "" - -#: templates/core/configrevision.html:179 -msgid "Default user preferences" -msgstr "" - -#: templates/core/configrevision.html:209 -msgid "Job retention" -msgstr "" - -#: templates/core/configrevision.html:221 +#: templates/core/configrevision.html:40 msgid "Comment" msgstr "" #: templates/core/configrevision_restore.html:8 -#: templates/core/configrevision_restore.html:43 -#: templates/core/configrevision_restore.html:79 +#: templates/core/configrevision_restore.html:25 +#: templates/core/configrevision_restore.html:64 msgid "Restore" msgstr "" -#: templates/core/configrevision_restore.html:21 -msgid "Config revisions" -msgstr "" - -#: templates/core/configrevision_restore.html:54 +#: templates/core/configrevision_restore.html:36 msgid "Parameter" msgstr "" -#: templates/core/configrevision_restore.html:55 +#: templates/core/configrevision_restore.html:37 msgid "Current Value" msgstr "" -#: templates/core/configrevision_restore.html:56 +#: templates/core/configrevision_restore.html:38 msgid "New Value" msgstr "" -#: templates/core/configrevision_restore.html:66 +#: templates/core/configrevision_restore.html:50 msgid "Changed" msgstr "" -#: templates/core/datafile.html:47 +#: templates/core/datafile.html:38 msgid "Last Updated" msgstr "" -#: templates/core/datafile.html:51 templates/ipam/iprange.html:28 -#: templates/virtualization/virtualdisk.html:30 +#: templates/core/datafile.html:42 templates/ipam/iprange.html:25 +#: templates/virtualization/virtualdisk.html:29 msgid "Size" msgstr "" -#: templates/core/datafile.html:52 +#: templates/core/datafile.html:43 msgid "bytes" msgstr "" -#: templates/core/datafile.html:55 +#: templates/core/datafile.html:46 msgid "SHA256 Hash" msgstr "" @@ -10073,95 +10373,292 @@ msgstr "" msgid "Sync" msgstr "" -#: templates/core/datasource.html:51 +#: templates/core/datasource.html:50 msgid "Last synced" msgstr "" -#: templates/core/datasource.html:86 +#: templates/core/datasource.html:84 msgid "Backend" msgstr "" -#: templates/core/datasource.html:102 +#: templates/core/datasource.html:99 msgid "No parameters defined" msgstr "" -#: templates/core/datasource.html:118 +#: templates/core/datasource.html:114 msgid "Files" msgstr "" -#: templates/core/job.html:21 +#: templates/core/inc/config_data.html:7 +msgid "Rack elevations" +msgstr "" + +#: templates/core/inc/config_data.html:10 +msgid "Default unit height" +msgstr "" + +#: templates/core/inc/config_data.html:14 +msgid "Default unit width" +msgstr "" + +#: templates/core/inc/config_data.html:20 +msgid "Power feeds" +msgstr "" + +#: templates/core/inc/config_data.html:23 +msgid "Default voltage" +msgstr "" + +#: templates/core/inc/config_data.html:27 +msgid "Default amperage" +msgstr "" + +#: templates/core/inc/config_data.html:31 +msgid "Default max utilization" +msgstr "" + +#: templates/core/inc/config_data.html:40 +msgid "Enforce global unique" +msgstr "" + +#: templates/core/inc/config_data.html:83 +msgid "Paginate count" +msgstr "" + +#: templates/core/inc/config_data.html:87 +msgid "Max page size" +msgstr "" + +#: templates/core/inc/config_data.html:114 +msgid "User preferences" +msgstr "" + +#: templates/core/inc/config_data.html:141 +msgid "Job retention" +msgstr "" + +#: templates/core/job.html:17 templates/core/rq_task.html:12 +#: templates/core/rq_task.html:49 templates/core/rq_task.html:58 msgid "Job" msgstr "" -#: templates/core/job.html:45 templates/extras/journalentry.html:29 +#: templates/core/job.html:40 templates/extras/journalentry.html:26 msgid "Created By" msgstr "" -#: templates/core/job.html:54 +#: templates/core/job.html:48 msgid "Scheduling" msgstr "" -#: templates/core/job.html:66 +#: templates/core/job.html:59 #, python-format msgid "every %(interval)s minutes" msgstr "" +#: templates/core/rq_queue_list.html:5 templates/core/rq_queue_list.html:13 +#: templates/core/rq_task_list.html:14 templates/core/rq_worker.html:7 +msgid "Background Queues" +msgstr "" + +#: templates/core/rq_queue_list.html:24 templates/core/rq_queue_list.html:25 +#: templates/core/rq_worker_list.html:44 templates/core/rq_worker_list.html:45 +#: templates/extras/script_result.html:49 +#: templates/extras/script_result.html:51 +#: templates/inc/table_controls_htmx.html:18 +#: templates/inc/table_controls_htmx.html:20 +msgid "Configure Table" +msgstr "" + +#: templates/core/rq_task.html:29 +msgid "Stop" +msgstr "" + +#: templates/core/rq_task.html:34 +msgid "Requeue" +msgstr "" + +#: templates/core/rq_task.html:39 +msgid "Enqueue" +msgstr "" + +#: templates/core/rq_task.html:61 +msgid "Queue" +msgstr "" + +#: templates/core/rq_task.html:65 +msgid "Timeout" +msgstr "" + +#: templates/core/rq_task.html:69 +msgid "Result TTL" +msgstr "" + +#: templates/core/rq_task.html:89 +msgid "Meta" +msgstr "" + +#: templates/core/rq_task.html:93 +msgid "Arguments" +msgstr "" + +#: templates/core/rq_task.html:97 +msgid "Keyword Arguments" +msgstr "" + +#: templates/core/rq_task.html:103 +msgid "Depends on" +msgstr "" + +#: templates/core/rq_task.html:109 +msgid "Exception" +msgstr "" + +#: templates/core/rq_task_list.html:28 +msgid "tasks in " +msgstr "" + +#: templates/core/rq_task_list.html:33 +msgid "Queued Jobs" +msgstr "" + +#: templates/core/rq_task_list.html:64 templates/extras/script_result.html:68 +#, python-format +msgid "" +"Select all %(count)s %(object_type_plural)s matching query" +msgstr "" + +#: templates/core/rq_worker.html:10 +msgid "Worker Info" +msgstr "" + +#: templates/core/rq_worker.html:31 templates/core/rq_worker.html:40 +msgid "Worker" +msgstr "" + +#: templates/core/rq_worker.html:55 +msgid "Queues" +msgstr "" + +#: templates/core/rq_worker.html:63 +msgid "Curent Job" +msgstr "" + +#: templates/core/rq_worker.html:67 +msgid "Successful job count" +msgstr "" + +#: templates/core/rq_worker.html:71 +msgid "Failed job count" +msgstr "" + +#: templates/core/rq_worker.html:75 +msgid "Total working time" +msgstr "" + +#: templates/core/rq_worker.html:76 +msgid "seconds" +msgstr "" + +#: templates/core/rq_worker_list.html:13 templates/core/rq_worker_list.html:21 +msgid "Background Workers" +msgstr "" + +#: templates/core/rq_worker_list.html:27 +msgid "Workers in " +msgstr "" + +#: templates/core/system.html:11 utilities/templates/buttons/export.html:4 +msgid "Export" +msgstr "" + +#: templates/core/system.html:28 +msgid "System Status" +msgstr "" + +#: templates/core/system.html:35 +msgid "Django version" +msgstr "" + +#: templates/core/system.html:39 +msgid "PotsgreSQL version" +msgstr "" + +#: templates/core/system.html:43 +msgid "Database name" +msgstr "" + +#: templates/core/system.html:47 +msgid "Database size" +msgstr "" + +#: templates/core/system.html:52 +msgid "Unavailable" +msgstr "" + +#: templates/core/system.html:57 +msgid "RQ workers" +msgstr "" + +#: templates/core/system.html:60 +msgid "default queue" +msgstr "" + +#: templates/core/system.html:64 +msgid "System time" +msgstr "" + +#: templates/core/system.html:86 +msgid "Current Configuration" +msgstr "" + #: templates/dcim/bulk_disconnect.html:9 #, python-format msgid "" "Are you sure you want to disconnect these %(count)s %(obj_type_plural)s?" msgstr "" -#: templates/dcim/cable_edit.html:12 -msgid "A Side" -msgstr "" - -#: templates/dcim/cable_edit.html:29 -msgid "B Side" -msgstr "" - -#: templates/dcim/cable_trace.html:6 +#: templates/dcim/cable_trace.html:10 #, python-format msgid "Cable Trace for %(object_type)s %(object)s" msgstr "" -#: templates/dcim/cable_trace.html:21 templates/dcim/inc/rack_elevation.html:7 +#: templates/dcim/cable_trace.html:24 templates/dcim/inc/rack_elevation.html:7 msgid "Download SVG" msgstr "" -#: templates/dcim/cable_trace.html:27 +#: templates/dcim/cable_trace.html:30 msgid "Asymmetric Path" msgstr "" -#: templates/dcim/cable_trace.html:28 +#: templates/dcim/cable_trace.html:31 msgid "The nodes below have no links and result in an asymmetric path" msgstr "" -#: templates/dcim/cable_trace.html:35 +#: templates/dcim/cable_trace.html:38 msgid "Path split" msgstr "" -#: templates/dcim/cable_trace.html:36 +#: templates/dcim/cable_trace.html:39 msgid "Select a node below to continue" msgstr "" -#: templates/dcim/cable_trace.html:52 +#: templates/dcim/cable_trace.html:55 msgid "Trace Completed" msgstr "" -#: templates/dcim/cable_trace.html:55 +#: templates/dcim/cable_trace.html:58 msgid "Total segments" msgstr "" -#: templates/dcim/cable_trace.html:59 +#: templates/dcim/cable_trace.html:62 msgid "Total length" msgstr "" -#: templates/dcim/cable_trace.html:74 +#: templates/dcim/cable_trace.html:77 msgid "No paths found" msgstr "" -#: templates/dcim/cable_trace.html:83 +#: templates/dcim/cable_trace.html:85 msgid "Related Paths" msgstr "" @@ -10185,101 +10682,90 @@ msgstr "" msgid "Rename Selected" msgstr "" -#: templates/dcim/consoleport.html:67 templates/dcim/consoleserverport.html:67 -#: templates/dcim/frontport.html:105 templates/dcim/interface.html:182 -#: templates/dcim/poweroutlet.html:73 templates/dcim/powerport.html:73 +#: templates/dcim/consoleport.html:65 templates/dcim/consoleserverport.html:66 +#: templates/dcim/frontport.html:98 templates/dcim/interface.html:176 +#: templates/dcim/poweroutlet.html:69 templates/dcim/powerport.html:69 msgid "Not Connected" msgstr "" -#: templates/dcim/consoleport.html:75 templates/dcim/consoleserverport.html:18 -#: templates/dcim/frontport.html:116 templates/dcim/inventoryitem_edit.html:44 -#: templates/dcim/inventoryitemtemplate_edit.html:41 -msgid "Console Server Port" +#: templates/dcim/device.html:33 +msgid "Highlight device in rack" msgstr "" -#: templates/dcim/device.html:35 -msgid "Highlight device" -msgstr "" - -#: templates/dcim/device.html:57 +#: templates/dcim/device.html:54 msgid "Not racked" msgstr "" -#: templates/dcim/device.html:64 templates/dcim/site.html:96 +#: templates/dcim/device.html:61 templates/dcim/site.html:93 msgid "GPS Coordinates" msgstr "" -#: templates/dcim/device.html:70 templates/dcim/site.html:102 +#: templates/dcim/device.html:67 templates/dcim/site.html:99 msgid "Map It" msgstr "" -#: templates/dcim/device.html:110 templates/dcim/inventoryitem.html:57 -#: templates/dcim/module.html:79 templates/dcim/modulebay.html:73 -#: templates/dcim/rack.html:62 +#: templates/dcim/device.html:107 templates/dcim/inventoryitem.html:56 +#: templates/dcim/module.html:78 templates/dcim/modulebay.html:70 +#: templates/dcim/rack.html:59 msgid "Asset Tag" msgstr "" -#: templates/dcim/device.html:153 +#: templates/dcim/device.html:122 msgid "View Virtual Chassis" msgstr "" -#: templates/dcim/device.html:170 +#: templates/dcim/device.html:161 msgid "Create VDC" msgstr "" -#: templates/dcim/device.html:179 templates/dcim/device_edit.html:64 -#: virtualization/forms/model_forms.py:226 +#: templates/dcim/device.html:172 templates/dcim/device_edit.html:64 +#: virtualization/forms/model_forms.py:223 msgid "Management" msgstr "" -#: templates/dcim/device.html:200 templates/dcim/device.html:216 -#: templates/virtualization/virtualmachine.html:56 -#: templates/virtualization/virtualmachine.html:72 +#: templates/dcim/device.html:192 templates/dcim/device.html:208 +#: templates/virtualization/virtualmachine.html:53 +#: templates/virtualization/virtualmachine.html:69 msgid "NAT for" msgstr "" -#: templates/dcim/device.html:202 templates/dcim/device.html:218 -#: templates/virtualization/virtualmachine.html:58 -#: templates/virtualization/virtualmachine.html:74 +#: templates/dcim/device.html:194 templates/dcim/device.html:210 +#: templates/virtualization/virtualmachine.html:55 +#: templates/virtualization/virtualmachine.html:71 msgid "NAT" msgstr "" -#: templates/dcim/device.html:254 templates/dcim/rack.html:70 +#: templates/dcim/device.html:244 templates/dcim/rack.html:67 msgid "Power Utilization" msgstr "" -#: templates/dcim/device.html:259 +#: templates/dcim/device.html:248 msgid "Input" msgstr "" -#: templates/dcim/device.html:260 +#: templates/dcim/device.html:249 msgid "Outlets" msgstr "" -#: templates/dcim/device.html:261 +#: templates/dcim/device.html:250 msgid "Allocated" msgstr "" -#: templates/dcim/device.html:270 templates/dcim/device.html:272 -#: templates/dcim/device.html:288 templates/dcim/powerfeed.html:70 +#: templates/dcim/device.html:260 templates/dcim/device.html:262 +#: templates/dcim/device.html:278 templates/dcim/powerfeed.html:67 msgid "VA" msgstr "" -#: templates/dcim/device.html:282 +#: templates/dcim/device.html:272 msgctxt "Leg of a power feed" msgid "Leg" msgstr "" -#: templates/dcim/device.html:312 -#: templates/virtualization/virtualmachine.html:165 +#: templates/dcim/device.html:298 +#: templates/virtualization/virtualmachine.html:154 msgid "Add a service" msgstr "" -#: templates/dcim/device.html:319 templates/dcim/rack.html:77 -#: templates/dcim/rack_edit.html:38 -msgid "Dimensions" -msgstr "" - #: templates/dcim/device/base.html:21 templates/dcim/device_list.html:9 #: templates/dcim/devicetype/base.html:18 templates/dcim/module.html:18 #: templates/dcim/moduletype/base.html:18 @@ -10320,12 +10806,12 @@ msgstr "" msgid "Hide Disconnected" msgstr "" -#: templates/dcim/device/interfaces.html:28 +#: templates/dcim/device/interfaces.html:27 msgid "Add Interfaces" msgstr "" #: templates/dcim/device/inventory.html:10 -#: templates/dcim/inc/panels/inventory_items.html:46 +#: templates/dcim/inc/panels/inventory_items.html:10 msgid "Add Inventory Item" msgstr "" @@ -10350,23 +10836,23 @@ msgstr "" msgid "Config" msgstr "" -#: templates/dcim/device/render_config.html:37 -#: templates/virtualization/virtualmachine/render_config.html:37 +#: templates/dcim/device/render_config.html:35 +#: templates/virtualization/virtualmachine/render_config.html:35 msgid "Context Data" msgstr "" -#: templates/dcim/device/render_config.html:57 -#: templates/virtualization/virtualmachine/render_config.html:57 -msgid "Download" -msgstr "" - -#: templates/dcim/device/render_config.html:60 -#: templates/virtualization/virtualmachine/render_config.html:60 +#: templates/dcim/device/render_config.html:53 +#: templates/virtualization/virtualmachine/render_config.html:53 msgid "Rendered Config" msgstr "" -#: templates/dcim/device/render_config.html:65 -#: templates/virtualization/virtualmachine/render_config.html:65 +#: templates/dcim/device/render_config.html:55 +#: templates/virtualization/virtualmachine/render_config.html:55 +msgid "Download" +msgstr "" + +#: templates/dcim/device/render_config.html:61 +#: templates/virtualization/virtualmachine/render_config.html:61 msgid "No configuration template found" msgstr "" @@ -10379,7 +10865,7 @@ msgstr "" msgid "Regenerate Slug" msgstr "" -#: templates/dcim/device_edit.html:49 templates/generic/bulk_remove.html:7 +#: templates/dcim/device_edit.html:49 templates/generic/bulk_remove.html:21 #: utilities/templates/helpers/table_config_form.html:23 msgid "Remove" msgstr "" @@ -10389,33 +10875,21 @@ msgid "Local Config Context Data" msgstr "" #: templates/dcim/device_list.html:82 -#: templates/dcim/moduletype/component_templates.html:18 -#: templates/generic/bulk_rename.html:34 +#: templates/dcim/moduletype/component_templates.html:17 +#: templates/generic/bulk_rename.html:57 #: templates/virtualization/virtualmachine/interfaces.html:11 #: templates/virtualization/virtualmachine/virtual_disks.html:11 msgid "Rename" msgstr "" -#: templates/dcim/devicebay.html:18 +#: templates/dcim/devicebay.html:17 msgid "Device Bay" msgstr "" -#: templates/dcim/devicebay.html:48 +#: templates/dcim/devicebay.html:43 msgid "Installed Device" msgstr "" -#: templates/dcim/devicebay_delete.html:6 -#, python-format -msgid "Delete device bay %(devicebay)s?" -msgstr "" - -#: templates/dcim/devicebay_delete.html:11 -#, python-format -msgid "" -"Are you sure you want to delete this device bay from %(device)s?" -msgstr "" - #: templates/dcim/devicebay_depopulate.html:6 #, python-format msgid "Remove %(device)s from %(device_bay)s?" @@ -10440,61 +10914,65 @@ msgstr "" msgid "Add Device" msgstr "" -#: templates/dcim/devicerole.html:43 +#: templates/dcim/devicerole.html:40 msgid "VM Role" msgstr "" -#: templates/dcim/devicetype.html:21 templates/dcim/moduletype.html:19 +#: templates/dcim/devicetype.html:18 templates/dcim/moduletype.html:18 msgid "Model Name" msgstr "" -#: templates/dcim/devicetype.html:28 templates/dcim/moduletype.html:23 +#: templates/dcim/devicetype.html:25 templates/dcim/moduletype.html:22 msgid "Part Number" msgstr "" -#: templates/dcim/devicetype.html:40 -msgid "Height (U" -msgstr "" - -#: templates/dcim/devicetype.html:44 +#: templates/dcim/devicetype.html:41 msgid "Exclude From Utilization" msgstr "" -#: templates/dcim/devicetype.html:62 +#: templates/dcim/devicetype.html:59 msgid "Parent/Child" msgstr "" -#: templates/dcim/devicetype.html:74 +#: templates/dcim/devicetype.html:71 msgid "Front Image" msgstr "" -#: templates/dcim/devicetype.html:86 +#: templates/dcim/devicetype.html:83 msgid "Rear Image" msgstr "" -#: templates/dcim/frontport.html:57 +#: templates/dcim/frontport.html:54 msgid "Rear Port Position" msgstr "" -#: templates/dcim/frontport.html:79 templates/dcim/interface.html:150 -#: templates/dcim/poweroutlet.html:67 templates/dcim/powerport.html:67 -#: templates/dcim/rearport.html:75 +#: templates/dcim/frontport.html:72 templates/dcim/interface.html:144 +#: templates/dcim/poweroutlet.html:63 templates/dcim/powerport.html:63 +#: templates/dcim/rearport.html:68 msgid "Marked as Connected" msgstr "" -#: templates/dcim/frontport.html:93 templates/dcim/rearport.html:89 +#: templates/dcim/frontport.html:86 templates/dcim/rearport.html:82 msgid "Connection Status" msgstr "" +#: templates/dcim/htmx/cable_edit.html:10 +msgid "A Side" +msgstr "" + +#: templates/dcim/htmx/cable_edit.html:30 +msgid "B Side" +msgstr "" + #: templates/dcim/inc/cable_termination.html:65 msgid "No termination" msgstr "" -#: templates/dcim/inc/cable_toggle_buttons.html:4 +#: templates/dcim/inc/cable_toggle_buttons.html:3 msgid "Mark Planned" msgstr "" -#: templates/dcim/inc/cable_toggle_buttons.html:8 +#: templates/dcim/inc/cable_toggle_buttons.html:6 msgid "Mark Installed" msgstr "" @@ -10511,7 +10989,7 @@ msgid "Path Endpoints" msgstr "" #: templates/dcim/inc/endpoint_connection.html:8 -#: templates/dcim/powerfeed.html:128 templates/dcim/rearport.html:101 +#: templates/dcim/powerfeed.html:120 templates/dcim/rearport.html:94 msgid "Not connected" msgstr "" @@ -10536,115 +11014,104 @@ msgstr "" msgid "Add Child Interface" msgstr "" -#: templates/dcim/interface.html:51 +#: templates/dcim/interface.html:50 msgid "Speed/Duplex" msgstr "" -#: templates/dcim/interface.html:74 +#: templates/dcim/interface.html:73 msgid "PoE Mode" msgstr "" -#: templates/dcim/interface.html:78 +#: templates/dcim/interface.html:77 msgid "PoE Type" msgstr "" -#: templates/dcim/interface.html:82 -#: templates/virtualization/vminterface.html:66 +#: templates/dcim/interface.html:81 +#: templates/virtualization/vminterface.html:63 msgid "802.1Q Mode" msgstr "" -#: templates/dcim/interface.html:130 -#: templates/virtualization/vminterface.html:62 +#: templates/dcim/interface.html:125 +#: templates/virtualization/vminterface.html:59 msgid "MAC Address" msgstr "" -#: templates/dcim/interface.html:157 +#: templates/dcim/interface.html:151 msgid "Wireless Link" msgstr "" -#: templates/dcim/interface.html:226 vpn/choices.py:55 +#: templates/dcim/interface.html:218 vpn/choices.py:55 msgid "Peer" msgstr "" -#: templates/dcim/interface.html:238 +#: templates/dcim/interface.html:230 #: templates/wireless/inc/wirelesslink_interface.html:26 msgid "Channel" msgstr "" -#: templates/dcim/interface.html:247 +#: templates/dcim/interface.html:239 #: templates/wireless/inc/wirelesslink_interface.html:32 msgid "Channel Frequency" msgstr "" -#: templates/dcim/interface.html:250 templates/dcim/interface.html:258 -#: templates/dcim/interface.html:269 templates/dcim/interface.html:277 +#: templates/dcim/interface.html:242 templates/dcim/interface.html:250 +#: templates/dcim/interface.html:261 templates/dcim/interface.html:269 msgid "MHz" msgstr "" -#: templates/dcim/interface.html:266 +#: templates/dcim/interface.html:258 #: templates/wireless/inc/wirelesslink_interface.html:42 msgid "Channel Width" msgstr "" -#: templates/dcim/interface.html:295 templates/wireless/wirelesslan.html:15 -#: templates/wireless/wirelesslink.html:24 wireless/forms/bulk_edit.py:59 -#: wireless/forms/bulk_edit.py:101 wireless/forms/filtersets.py:39 -#: wireless/forms/filtersets.py:79 wireless/models.py:81 wireless/models.py:155 +#: templates/dcim/interface.html:285 templates/wireless/wirelesslan.html:14 +#: templates/wireless/wirelesslink.html:21 wireless/forms/bulk_edit.py:60 +#: wireless/forms/bulk_edit.py:102 wireless/forms/filtersets.py:40 +#: wireless/forms/filtersets.py:80 wireless/models.py:81 wireless/models.py:155 #: wireless/tables/wirelesslan.py:44 msgid "SSID" msgstr "" -#: templates/dcim/interface.html:316 +#: templates/dcim/interface.html:305 msgid "LAG Members" msgstr "" -#: templates/dcim/interface.html:335 +#: templates/dcim/interface.html:323 msgid "No member interfaces" msgstr "" -#: templates/dcim/interface.html:359 templates/ipam/fhrpgroup.html:80 +#: templates/dcim/interface.html:343 templates/ipam/fhrpgroup.html:73 #: templates/ipam/iprange/ip_addresses.html:7 #: templates/ipam/prefix/ip_addresses.html:7 -#: templates/virtualization/vminterface.html:96 +#: templates/virtualization/vminterface.html:89 msgid "Add IP Address" msgstr "" -#: templates/dcim/inventoryitem.html:25 +#: templates/dcim/inventoryitem.html:24 msgid "Parent Item" msgstr "" -#: templates/dcim/inventoryitem.html:49 +#: templates/dcim/inventoryitem.html:48 msgid "Part ID" msgstr "" -#: templates/dcim/inventoryitem_bulk_delete.html:5 -msgid "This will also delete all child inventory items of those listed" -msgstr "" - -#: templates/dcim/inventoryitem_edit.html:33 -#: templates/dcim/inventoryitemtemplate_edit.html:30 -msgid "Component Assignment" -msgstr "" - -#: templates/dcim/inventoryitem_edit.html:59 -#: templates/dcim/inventoryitemtemplate_edit.html:56 -#: templates/dcim/poweroutlet.html:18 templates/dcim/powerport.html:81 -msgid "Power Outlet" -msgstr "" - #: templates/dcim/location.html:17 msgid "Add Child Location" msgstr "" -#: templates/dcim/location.html:76 +#: templates/dcim/location.html:58 templates/dcim/site.html:55 +msgid "Facility" +msgstr "" + +#: templates/dcim/location.html:77 msgid "Child Locations" msgstr "" -#: templates/dcim/location.html:84 templates/dcim/site.html:137 +#: templates/dcim/location.html:81 templates/dcim/site.html:130 msgid "Add a Location" msgstr "" -#: templates/dcim/location.html:98 templates/dcim/site.html:151 +#: templates/dcim/location.html:94 templates/dcim/site.html:143 msgid "Add a Device" msgstr "" @@ -10656,113 +11123,101 @@ msgstr "" msgid "Add Module Type" msgstr "" -#: templates/dcim/powerfeed.html:56 +#: templates/dcim/powerfeed.html:53 msgid "Connected Device" msgstr "" -#: templates/dcim/powerfeed.html:66 +#: templates/dcim/powerfeed.html:63 msgid "Utilization (Allocated" msgstr "" -#: templates/dcim/powerfeed.html:85 +#: templates/dcim/powerfeed.html:80 msgid "Electrical Characteristics" msgstr "" -#: templates/dcim/powerfeed.html:95 +#: templates/dcim/powerfeed.html:88 msgctxt "Abbreviation for volts" msgid "V" msgstr "" -#: templates/dcim/powerfeed.html:99 +#: templates/dcim/powerfeed.html:92 msgctxt "Abbreviation for amperes" msgid "A" msgstr "" -#: templates/dcim/poweroutlet.html:51 +#: templates/dcim/poweroutlet.html:48 msgid "Feed Leg" msgstr "" -#: templates/dcim/powerpanel.html:77 +#: templates/dcim/powerpanel.html:72 msgid "Add Power Feeds" msgstr "" -#: templates/dcim/powerport.html:47 +#: templates/dcim/powerport.html:44 msgid "Maximum Draw" msgstr "" -#: templates/dcim/powerport.html:51 +#: templates/dcim/powerport.html:48 msgid "Allocated Draw" msgstr "" -#: templates/dcim/rack.html:66 +#: templates/dcim/rack.html:63 msgid "Space Utilization" msgstr "" -#: templates/dcim/rack.html:96 +#: templates/dcim/rack.html:91 msgid "descending" msgstr "" -#: templates/dcim/rack.html:96 +#: templates/dcim/rack.html:91 msgid "ascending" msgstr "" -#: templates/dcim/rack.html:99 +#: templates/dcim/rack.html:94 msgid "Starting Unit" msgstr "" -#: templates/dcim/rack.html:125 +#: templates/dcim/rack.html:120 msgid "Mounting Depth" msgstr "" -#: templates/dcim/rack.html:135 +#: templates/dcim/rack.html:130 msgid "Rack Weight" msgstr "" -#: templates/dcim/rack.html:145 templates/dcim/rack_edit.html:67 +#: templates/dcim/rack.html:140 msgid "Maximum Weight" msgstr "" -#: templates/dcim/rack.html:155 +#: templates/dcim/rack.html:150 msgid "Total Weight" msgstr "" -#: templates/dcim/rack.html:173 templates/dcim/rack_elevation_list.html:16 +#: templates/dcim/rack.html:167 templates/dcim/rack_elevation_list.html:15 msgid "Images and Labels" msgstr "" -#: templates/dcim/rack.html:174 templates/dcim/rack_elevation_list.html:17 +#: templates/dcim/rack.html:168 templates/dcim/rack_elevation_list.html:16 msgid "Images only" msgstr "" -#: templates/dcim/rack.html:175 templates/dcim/rack_elevation_list.html:18 +#: templates/dcim/rack.html:169 templates/dcim/rack_elevation_list.html:17 msgid "Labels only" msgstr "" -#: templates/dcim/rack/reservations.html:9 +#: templates/dcim/rack/reservations.html:8 msgid "Add reservation" msgstr "" -#: templates/dcim/rack_edit.html:21 -msgid "Inventory Control" -msgstr "" - -#: templates/dcim/rack_edit.html:45 -msgid "Outer Dimensions" -msgstr "" - -#: templates/dcim/rack_edit.html:56 templates/dcim/rack_edit.html:71 -msgid "Unit" -msgstr "" - #: templates/dcim/rack_elevation_list.html:12 msgid "View List" msgstr "" -#: templates/dcim/rack_elevation_list.html:27 +#: templates/dcim/rack_elevation_list.html:25 msgid "Sort By" msgstr "" -#: templates/dcim/rack_elevation_list.html:77 +#: templates/dcim/rack_elevation_list.html:74 msgid "No Racks Found" msgstr "" @@ -10770,7 +11225,7 @@ msgstr "" msgid "View Elevations" msgstr "" -#: templates/dcim/rackreservation.html:47 +#: templates/dcim/rackreservation.html:42 msgid "Reservation Details" msgstr "" @@ -10778,7 +11233,7 @@ msgstr "" msgid "Add Rack" msgstr "" -#: templates/dcim/rearport.html:53 +#: templates/dcim/rearport.html:50 msgid "Positions" msgstr "" @@ -10786,58 +11241,54 @@ msgstr "" msgid "Add Site" msgstr "" -#: templates/dcim/region.html:56 +#: templates/dcim/region.html:55 msgid "Child Regions" msgstr "" -#: templates/dcim/region.html:64 +#: templates/dcim/region.html:59 msgid "Add Region" msgstr "" -#: templates/dcim/site.html:56 -msgid "Facility" -msgstr "" - -#: templates/dcim/site.html:64 +#: templates/dcim/site.html:63 msgid "Time Zone" msgstr "" -#: templates/dcim/site.html:67 +#: templates/dcim/site.html:66 msgid "UTC" msgstr "" -#: templates/dcim/site.html:68 +#: templates/dcim/site.html:67 msgid "Site time" msgstr "" -#: templates/dcim/site.html:75 +#: templates/dcim/site.html:74 msgid "Physical Address" msgstr "" -#: templates/dcim/site.html:81 +#: templates/dcim/site.html:80 msgid "Map" msgstr "" -#: templates/dcim/site.html:92 +#: templates/dcim/site.html:89 msgid "Shipping Address" msgstr "" -#: templates/dcim/sitegroup.html:56 templates/tenancy/contactgroup.html:49 -#: templates/tenancy/tenantgroup.html:58 -#: templates/wireless/wirelesslangroup.html:56 +#: templates/dcim/sitegroup.html:55 templates/tenancy/contactgroup.html:46 +#: templates/tenancy/tenantgroup.html:55 +#: templates/wireless/wirelesslangroup.html:55 msgid "Child Groups" msgstr "" -#: templates/dcim/sitegroup.html:64 +#: templates/dcim/sitegroup.html:59 msgid "Add Site Group" msgstr "" #: templates/dcim/trace/attachment.html:5 -#: templates/extras/exporttemplate.html:37 +#: templates/extras/exporttemplate.html:31 msgid "Attachment" msgstr "" -#: templates/dcim/virtualchassis.html:86 +#: templates/dcim/virtualchassis.html:57 msgid "Add Member" msgstr "" @@ -10845,17 +11296,24 @@ msgstr "" msgid "Member Devices" msgstr "" -#: templates/dcim/virtualchassis_add_member.html:6 +#: templates/dcim/virtualchassis_add_member.html:10 #, python-format msgid "Add New Member to Virtual Chassis %(virtual_chassis)s" msgstr "" -#: templates/dcim/virtualchassis_add_member.html:17 +#: templates/dcim/virtualchassis_add_member.html:19 msgid "Add New Member" msgstr "" -#: templates/dcim/virtualchassis_add_member.html:25 -msgid "Add Another" +#: templates/dcim/virtualchassis_add_member.html:27 +#: templates/generic/object_edit.html:78 +#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68 +#: users/forms/model_forms.py:312 +msgid "Actions" +msgstr "" + +#: templates/dcim/virtualchassis_add_member.html:29 +msgid "Save & Add Another" msgstr "" #: templates/dcim/virtualchassis_edit.html:7 @@ -10863,7 +11321,7 @@ msgstr "" msgid "Editing Virtual Chassis %(name)s" msgstr "" -#: templates/dcim/virtualchassis_edit.html:54 +#: templates/dcim/virtualchassis_edit.html:53 msgid "Rack/Unit" msgstr "" @@ -10878,7 +11336,7 @@ msgid "" "chassis %(name)s?" msgstr "" -#: templates/dcim/virtualdevicecontext.html:29 templates/vpn/l2vpn.html:19 +#: templates/dcim/virtualdevicecontext.html:26 templates/vpn/l2vpn.html:18 msgid "Identifier" msgstr "" @@ -10959,39 +11417,15 @@ msgid "" "for SELECT VERSION()." msgstr "" -#: templates/extras/admin/plugins_list.html:4 -#: templates/extras/admin/plugins_list.html:9 -#: templates/extras/admin/plugins_list.html:13 -msgid "Installed Plugins" -msgstr "" - -#: templates/extras/admin/plugins_list.html:23 -msgid "Package Name" -msgstr "" - -#: templates/extras/admin/plugins_list.html:24 -msgid "Author" -msgstr "" - -#: templates/extras/admin/plugins_list.html:25 -msgid "Author Email" -msgstr "" - -#: templates/extras/admin/plugins_list.html:27 -#: templates/vpn/ipsecprofile.html:47 vpn/forms/bulk_edit.py:140 -#: vpn/forms/bulk_import.py:172 vpn/tables/crypto.py:61 -msgid "Version" -msgstr "" - -#: templates/extras/configcontext.html:46 -#: templates/extras/configtemplate.html:38 -#: templates/extras/exporttemplate.html:57 +#: templates/extras/configcontext.html:45 +#: templates/extras/configtemplate.html:37 +#: templates/extras/exporttemplate.html:51 msgid "The data file associated with this object has been deleted" msgstr "" -#: templates/extras/configcontext.html:55 -#: templates/extras/configtemplate.html:47 -#: templates/extras/exporttemplate.html:66 +#: templates/extras/configcontext.html:54 +#: templates/extras/configtemplate.html:46 +#: templates/extras/exporttemplate.html:60 msgid "Data Synced" msgstr "" @@ -11001,81 +11435,81 @@ msgstr "" msgid "Sync Data" msgstr "" -#: templates/extras/configtemplate.html:58 +#: templates/extras/configtemplate.html:56 msgid "Environment Parameters" msgstr "" -#: templates/extras/configtemplate.html:69 -#: templates/extras/exporttemplate.html:88 +#: templates/extras/configtemplate.html:67 +#: templates/extras/exporttemplate.html:79 msgid "Template" msgstr "" -#: templates/extras/customfield.html:31 templates/extras/customlink.html:22 +#: templates/extras/customfield.html:30 templates/extras/customlink.html:21 msgid "Group Name" msgstr "" -#: templates/extras/customfield.html:43 +#: templates/extras/customfield.html:42 msgid "Cloneable" msgstr "" -#: templates/extras/customfield.html:53 +#: templates/extras/customfield.html:52 msgid "Default Value" msgstr "" -#: templates/extras/customfield.html:64 +#: templates/extras/customfield.html:61 msgid "Search Weight" msgstr "" -#: templates/extras/customfield.html:74 +#: templates/extras/customfield.html:71 msgid "Filter Logic" msgstr "" -#: templates/extras/customfield.html:78 +#: templates/extras/customfield.html:75 msgid "Display Weight" msgstr "" -#: templates/extras/customfield.html:82 +#: templates/extras/customfield.html:79 msgid "UI Visible" msgstr "" -#: templates/extras/customfield.html:86 +#: templates/extras/customfield.html:83 msgid "UI Editable" msgstr "" -#: templates/extras/customfield.html:108 +#: templates/extras/customfield.html:103 msgid "Validation Rules" msgstr "" -#: templates/extras/customfield.html:112 +#: templates/extras/customfield.html:106 msgid "Minimum Value" msgstr "" -#: templates/extras/customfield.html:116 +#: templates/extras/customfield.html:110 msgid "Maximum Value" msgstr "" -#: templates/extras/customfield.html:120 +#: templates/extras/customfield.html:114 msgid "Regular Expression" msgstr "" -#: templates/extras/customlink.html:30 +#: templates/extras/customlink.html:29 msgid "Button Class" msgstr "" -#: templates/extras/customlink.html:41 templates/extras/exporttemplate.html:73 -#: templates/extras/savedfilter.html:41 +#: templates/extras/customlink.html:39 templates/extras/exporttemplate.html:66 +#: templates/extras/savedfilter.html:39 msgid "Assigned Models" msgstr "" -#: templates/extras/customlink.html:57 +#: templates/extras/customlink.html:53 msgid "Link Text" msgstr "" -#: templates/extras/customlink.html:65 +#: templates/extras/customlink.html:61 msgid "Link URL" msgstr "" -#: templates/extras/dashboard/reset.html:4 templates/home.html:63 +#: templates/extras/dashboard/reset.html:4 templates/home.html:66 msgid "Reset Dashboard" msgstr "" @@ -11099,7 +11533,7 @@ msgstr "" msgid "No bookmarks have been added yet." msgstr "" -#: templates/extras/dashboard/widgets/objectcounts.html:15 +#: templates/extras/dashboard/widgets/objectcounts.html:10 msgid "No permission" msgstr "" @@ -11123,72 +11557,39 @@ msgstr "" msgid "HTTP" msgstr "" -#: templates/extras/eventrule.html:63 +#: templates/extras/eventrule.html:52 msgid "Job start" msgstr "" -#: templates/extras/eventrule.html:67 +#: templates/extras/eventrule.html:56 msgid "Job end" msgstr "" -#: templates/extras/exporttemplate.html:29 +#: templates/extras/exporttemplate.html:23 msgid "MIME Type" msgstr "" -#: templates/extras/exporttemplate.html:33 +#: templates/extras/exporttemplate.html:27 msgid "File Extension" msgstr "" -#: templates/extras/htmx/report_result.html:9 #: templates/extras/htmx/script_result.html:10 msgid "Scheduled for" msgstr "" -#: templates/extras/htmx/report_result.html:14 #: templates/extras/htmx/script_result.html:15 msgid "Duration" msgstr "" -#: templates/extras/htmx/report_result.html:20 -msgid "Report Methods" +#: templates/extras/htmx/script_result.html:23 +msgid "Test Summary" msgstr "" -#: templates/extras/htmx/report_result.html:38 -msgid "Report Results" +#: templates/extras/htmx/script_result.html:43 +msgid "Log" msgstr "" -#: templates/extras/htmx/report_result.html:44 -#: templates/extras/htmx/script_result.html:26 -msgid "Level" -msgstr "" - -#: templates/extras/htmx/report_result.html:46 -#: templates/extras/htmx/script_result.html:27 -msgid "Message" -msgstr "" - -#: templates/extras/htmx/script_result.html:21 -msgid "Script Log" -msgstr "" - -#: templates/extras/htmx/script_result.html:25 -msgid "Line" -msgstr "" - -#: templates/extras/htmx/script_result.html:38 -msgid "No log output" -msgstr "" - -#: templates/extras/htmx/script_result.html:46 -msgid "Exec Time" -msgstr "" - -#: templates/extras/htmx/script_result.html:46 -msgctxt "Unit of time" -msgid "seconds" -msgstr "" - -#: templates/extras/htmx/script_result.html:50 +#: templates/extras/htmx/script_result.html:52 msgid "Output" msgstr "" @@ -11200,7 +11601,7 @@ msgstr "" msgid "Results pending" msgstr "" -#: templates/extras/journalentry.html:16 +#: templates/extras/journalentry.html:15 msgid "Journal Entry" msgstr "" @@ -11235,240 +11636,212 @@ msgstr "" msgid "Source Contexts" msgstr "" -#: templates/extras/object_journal.html:18 +#: templates/extras/object_journal.html:17 msgid "New Journal Entry" msgstr "" -#: templates/extras/objectchange.html:29 -#: templates/users/objectpermission.html:45 +#: templates/extras/objectchange.html:28 +#: templates/users/objectpermission.html:42 msgid "Change" msgstr "" -#: templates/extras/objectchange.html:84 +#: templates/extras/objectchange.html:78 msgid "Difference" msgstr "" -#: templates/extras/objectchange.html:87 +#: templates/extras/objectchange.html:81 msgid "Previous" msgstr "" -#: templates/extras/objectchange.html:90 +#: templates/extras/objectchange.html:84 msgid "Next" msgstr "" -#: templates/extras/objectchange.html:98 +#: templates/extras/objectchange.html:92 msgid "Object Created" msgstr "" -#: templates/extras/objectchange.html:100 +#: templates/extras/objectchange.html:94 msgid "Object Deleted" msgstr "" -#: templates/extras/objectchange.html:102 +#: templates/extras/objectchange.html:96 msgid "No Changes" msgstr "" -#: templates/extras/objectchange.html:117 +#: templates/extras/objectchange.html:110 msgid "Pre-Change Data" msgstr "" -#: templates/extras/objectchange.html:126 +#: templates/extras/objectchange.html:121 msgid "Warning: Comparing non-atomic change to previous change record" msgstr "" -#: templates/extras/objectchange.html:136 +#: templates/extras/objectchange.html:130 msgid "Post-Change Data" msgstr "" -#: templates/extras/objectchange.html:157 +#: templates/extras/objectchange.html:153 #, python-format msgid "See All %(count)s Changes" msgstr "" -#: templates/extras/report.html:14 -msgid "This report is invalid and cannot be run." -msgstr "" - -#: templates/extras/report.html:23 templates/extras/report_list.html:88 -msgid "Run Again" -msgstr "" - -#: templates/extras/report.html:25 templates/extras/report_list.html:90 -msgid "Run Report" -msgstr "" - -#: templates/extras/report.html:36 -msgid "Last run" -msgstr "" - #: templates/extras/report/base.html:30 msgid "Report" msgstr "" -#: templates/extras/report_list.html:48 templates/extras/script_list.html:54 -msgid "Last Run" -msgstr "" - -#: templates/extras/report_list.html:70 templates/extras/script_list.html:77 -msgid "Never" -msgstr "" - -#: templates/extras/report_list.html:75 -msgid "Report has no test methods" -msgstr "" - -#: templates/extras/report_list.html:76 -msgid "Invalid" -msgstr "" - -#: templates/extras/report_list.html:125 -msgid "No Reports Found" -msgstr "" - -#: templates/extras/report_list.html:128 -#, python-format -msgid "" -"Get started by creating a report from " -"an uploaded file or data source." -msgstr "" - -#: templates/extras/script.html:13 +#: templates/extras/script.html:14 msgid "You do not have permission to run scripts" msgstr "" -#: templates/extras/script.html:37 +#: templates/extras/script.html:40 templates/extras/script.html:44 +#: templates/extras/script_list.html:88 msgid "Run Script" msgstr "" -#: templates/extras/script_list.html:44 -#, python-format -msgid "" -"Script file at %(file_path)s could not be loaded." +#: templates/extras/script/jobs.html:16 +msgid "Script no longer exists in the source file." msgstr "" -#: templates/extras/script_list.html:91 +#: templates/extras/script_list.html:48 +msgid "Last Run" +msgstr "" + +#: templates/extras/script_list.html:63 +msgid "Script is no longer present in the source file" +msgstr "" + +#: templates/extras/script_list.html:76 +msgid "Never" +msgstr "" + +#: templates/extras/script_list.html:86 +msgid "Run Again" +msgstr "" + +#: templates/extras/script_list.html:140 msgid "No Scripts Found" msgstr "" -#: templates/extras/script_list.html:94 +#: templates/extras/script_list.html:143 #, python-format msgid "" "Get started by creating a script from " "an uploaded file or data source." msgstr "" -#: templates/extras/script_result.html:42 -msgid "Log" +#: templates/extras/script_result.html:35 templates/generic/object_list.html:50 +#: templates/search.html:13 +msgid "Results" msgstr "" -#: templates/extras/tag.html:35 +#: templates/extras/tag.html:32 msgid "Tagged Items" msgstr "" -#: templates/extras/tag.html:47 +#: templates/extras/tag.html:43 msgid "Allowed Object Types" msgstr "" -#: templates/extras/tag.html:56 +#: templates/extras/tag.html:51 msgid "Any" msgstr "" -#: templates/extras/tag.html:63 +#: templates/extras/tag.html:57 msgid "Tagged Item Types" msgstr "" -#: templates/extras/tag.html:89 +#: templates/extras/tag.html:81 msgid "Tagged Objects" msgstr "" -#: templates/extras/webhook.html:33 +#: templates/extras/webhook.html:26 msgid "HTTP Method" msgstr "" -#: templates/extras/webhook.html:41 +#: templates/extras/webhook.html:34 msgid "HTTP Content Type" msgstr "" -#: templates/extras/webhook.html:58 +#: templates/extras/webhook.html:47 msgid "SSL Verification" msgstr "" -#: templates/extras/webhook.html:73 +#: templates/extras/webhook.html:61 msgid "Additional Headers" msgstr "" -#: templates/extras/webhook.html:85 +#: templates/extras/webhook.html:73 msgid "Body Template" msgstr "" -#: templates/generic/bulk_add_component.html:15 +#: templates/generic/bulk_add_component.html:29 msgid "Bulk Creation" msgstr "" -#: templates/generic/bulk_add_component.html:20 -#: templates/generic/bulk_edit.html:28 +#: templates/generic/bulk_add_component.html:34 +#: templates/generic/bulk_delete.html:32 templates/generic/bulk_edit.html:33 msgid "Selected Objects" msgstr "" -#: templates/generic/bulk_add_component.html:46 +#: templates/generic/bulk_add_component.html:58 msgid "to Add" msgstr "" -#: templates/generic/bulk_delete.html:24 +#: templates/generic/bulk_delete.html:27 +msgid "Bulk Delete" +msgstr "" + +#: templates/generic/bulk_delete.html:49 msgid "Confirm Bulk Deletion" msgstr "" -#: templates/generic/bulk_delete.html:26 -msgctxt "Noun" -msgid "Warning" -msgstr "" - -#: templates/generic/bulk_delete.html:27 +#: templates/generic/bulk_delete.html:50 #, python-format msgid "" "The following operation will delete %(count)s " -"%(type_plural)s. Please carefully review the objects to be deleted and " -"confirm below." +"%(type_plural)s. Please carefully review the selected objects and confirm " +"this action." msgstr "" -#: templates/generic/bulk_edit.html:16 templates/generic/object_edit.html:17 +#: templates/generic/bulk_edit.html:21 templates/generic/object_edit.html:22 msgid "Editing" msgstr "" -#: templates/generic/bulk_edit.html:23 +#: templates/generic/bulk_edit.html:28 msgid "Bulk Edit" msgstr "" -#: templates/generic/bulk_edit.html:124 templates/generic/bulk_rename.html:42 +#: templates/generic/bulk_edit.html:107 templates/generic/bulk_rename.html:66 msgid "Apply" msgstr "" -#: templates/generic/bulk_import.html:14 +#: templates/generic/bulk_import.html:19 msgid "Bulk Import" msgstr "" -#: templates/generic/bulk_import.html:20 +#: templates/generic/bulk_import.html:25 msgid "Direct Import" msgstr "" -#: templates/generic/bulk_import.html:25 +#: templates/generic/bulk_import.html:30 msgid "Upload File" msgstr "" -#: templates/generic/bulk_import.html:51 templates/generic/bulk_import.html:73 -#: templates/generic/bulk_import.html:95 +#: templates/generic/bulk_import.html:58 templates/generic/bulk_import.html:80 +#: templates/generic/bulk_import.html:102 msgid "Submit" msgstr "" -#: templates/generic/bulk_import.html:110 +#: templates/generic/bulk_import.html:113 msgid "Field Options" msgstr "" -#: templates/generic/bulk_import.html:117 +#: templates/generic/bulk_import.html:119 msgid "Accessor" msgstr "" -#: templates/generic/bulk_import.html:154 +#: templates/generic/bulk_import.html:161 msgid "Import Value" msgstr "" @@ -11491,42 +11864,44 @@ msgid "" "%(example)s would identify a VRF by its route distinguisher." msgstr "" -#: templates/generic/bulk_remove.html:13 +#: templates/generic/bulk_remove.html:28 +msgid "Bulk Remove" +msgstr "" + +#: templates/generic/bulk_remove.html:42 msgid "Confirm Bulk Removal" msgstr "" -#: templates/generic/bulk_remove.html:15 +#: templates/generic/bulk_remove.html:43 #, python-format msgid "" -"Warning: The following operation will remove %(count)s " -"%(obj_type_plural)s from %(parent_obj)s." +"The following operation will remove %(count)s %(obj_type_plural)s from " +"%(parent_obj)s. Please carefully review the %(obj_type_plural)s to be " +"removed and confirm below." msgstr "" -#: templates/generic/bulk_remove.html:21 +#: templates/generic/bulk_remove.html:64 #, python-format -msgid "" -"Please carefully review the %(obj_type_plural)s to be removed and confirm " -"below." +msgid "Remove these %(count)s %(obj_type_plural)s" msgstr "" -#: templates/generic/bulk_remove.html:38 -#, python-format -msgid "Delete these %(count)s %(obj_type_plural)s" -msgstr "" - -#: templates/generic/bulk_rename.html:7 +#: templates/generic/bulk_rename.html:20 msgid "Renaming" msgstr "" -#: templates/generic/bulk_rename.html:16 +#: templates/generic/bulk_rename.html:27 +msgid "Bulk Rename" +msgstr "" + +#: templates/generic/bulk_rename.html:39 msgid "Current Name" msgstr "" -#: templates/generic/bulk_rename.html:17 +#: templates/generic/bulk_rename.html:40 msgid "New Name" msgstr "" -#: templates/generic/bulk_rename.html:40 +#: templates/generic/bulk_rename.html:64 #: utilities/templates/widgets/markdown_input.html:11 msgid "Preview" msgstr "" @@ -11535,81 +11910,74 @@ msgstr "" msgid "Are you sure" msgstr "" -#: templates/generic/confirmation_form.html:19 +#: templates/generic/confirmation_form.html:20 msgid "Confirm" msgstr "" -#: templates/generic/object.html:51 -msgid "ago" -msgstr "" - -#: templates/generic/object_children.html:27 +#: templates/generic/object_children.html:47 #: utilities/templates/buttons/bulk_edit.html:4 msgid "Edit Selected" msgstr "" -#: templates/generic/object_children.html:41 +#: templates/generic/object_children.html:61 #: utilities/templates/buttons/bulk_delete.html:4 msgid "Delete Selected" msgstr "" -#: templates/generic/object_edit.html:19 +#: templates/generic/object_edit.html:24 #, python-format msgid "Add a new %(object_type)s" msgstr "" -#: templates/generic/object_edit.html:47 +#: templates/generic/object_edit.html:35 msgid "View model documentation" msgstr "" -#: templates/generic/object_edit.html:48 +#: templates/generic/object_edit.html:36 msgid "Help" msgstr "" -#: templates/generic/object_edit.html:73 +#: templates/generic/object_edit.html:83 msgid "Create & Add Another" msgstr "" -#: templates/generic/object_list.html:48 templates/search.html:13 -msgid "Results" -msgstr "" - -#: templates/generic/object_list.html:54 +#: templates/generic/object_list.html:57 msgid "Filters" msgstr "" -#: templates/generic/object_list.html:94 +#: templates/generic/object_list.html:96 #, python-format msgid "" -"Select all %(count)s %(object_type_plural)s matching query" +"Select all %(count)s " +"%(object_type_plural)s matching query" msgstr "" -#: templates/home.html:12 +#: templates/home.html:15 msgid "New Release Available" msgstr "" -#: templates/home.html:14 +#: templates/home.html:16 msgid "is available" msgstr "" -#: templates/home.html:17 +#: templates/home.html:18 msgctxt "Document title" msgid "Upgrade Instructions" msgstr "" -#: templates/home.html:37 +#: templates/home.html:40 msgid "Unlock Dashboard" msgstr "" -#: templates/home.html:46 +#: templates/home.html:49 msgid "Lock Dashboard" msgstr "" -#: templates/home.html:57 +#: templates/home.html:60 msgid "Add Widget" msgstr "" -#: templates/home.html:60 +#: templates/home.html:63 msgid "Save Layout" msgstr "" @@ -11632,27 +12000,35 @@ msgstr "" msgid "Select" msgstr "" -#: templates/inc/filter_list.html:50 +#: templates/inc/filter_list.html:42 #: utilities/templates/helpers/table_config_form.html:39 msgid "Reset" msgstr "" -#: templates/inc/missing_prerequisites.html:7 +#: templates/inc/missing_prerequisites.html:8 #, python-format msgid "" "Before you can add a %(model)s you must first create a " "%(prerequisite_model)s." msgstr "" -#: templates/inc/paginator.html:38 templates/inc/paginator_htmx.html:53 -msgid "Per Page" +#: templates/inc/paginator.html:14 +msgid "Page selection" msgstr "" -#: templates/inc/paginator.html:49 templates/inc/paginator_htmx.html:69 +#: templates/inc/paginator.html:74 #, python-format msgid "Showing %(start)s-%(end)s of %(total)s" msgstr "" +#: templates/inc/paginator.html:81 +msgid "Pagination options" +msgstr "" + +#: templates/inc/paginator.html:85 +msgid "Per Page" +msgstr "" + #: templates/inc/panels/image_attachments.html:10 msgid "Attach an image" msgstr "" @@ -11665,33 +12041,28 @@ msgstr "" msgid "No tags assigned" msgstr "" -#: templates/inc/profile_button.html:12 templates/inc/profile_button.html:62 -msgid "Dark Mode" -msgstr "" - -#: templates/inc/profile_button.html:45 -msgid "Log Out" -msgstr "" - -#: templates/inc/profile_button.html:53 -msgid "Log In" -msgstr "" - -#: templates/inc/sync_warning.html:7 +#: templates/inc/sync_warning.html:10 msgid "Data is out of sync with upstream file" msgstr "" -#: templates/inc/table_controls_htmx.html:16 -#: templates/inc/table_controls_htmx.html:18 -msgid "Configure Table" +#: templates/inc/user_menu.html:23 +msgid "Django Admin" msgstr "" -#: templates/ipam/aggregate.html:15 templates/ipam/ipaddress.html:17 -#: templates/ipam/iprange.html:16 templates/ipam/prefix.html:16 +#: templates/inc/user_menu.html:40 +msgid "Log Out" +msgstr "" + +#: templates/inc/user_menu.html:47 templates/login.html:36 +msgid "Log In" +msgstr "" + +#: templates/ipam/aggregate.html:14 templates/ipam/ipaddress.html:14 +#: templates/ipam/iprange.html:13 templates/ipam/prefix.html:15 msgid "Family" msgstr "" -#: templates/ipam/aggregate.html:40 +#: templates/ipam/aggregate.html:39 msgid "Date Added" msgstr "" @@ -11700,26 +12071,22 @@ msgstr "" msgid "Add Prefix" msgstr "" -#: templates/ipam/asn.html:24 +#: templates/ipam/asn.html:23 msgid "AS Number" msgstr "" -#: templates/ipam/fhrpgroup.html:55 +#: templates/ipam/fhrpgroup.html:52 msgid "Authentication Type" msgstr "" -#: templates/ipam/fhrpgroup.html:59 +#: templates/ipam/fhrpgroup.html:56 msgid "Authentication Key" msgstr "" -#: templates/ipam/fhrpgroup.html:72 +#: templates/ipam/fhrpgroup.html:69 msgid "Virtual IP Addresses" msgstr "" -#: templates/ipam/fhrpgroupassignment_edit.html:8 -msgid "FHRP Group Assignment" -msgstr "" - #: templates/ipam/inc/ipaddress_edit_header.html:19 msgid "Assign IP" msgstr "" @@ -11728,18 +12095,18 @@ msgstr "" msgid "Bulk Create" msgstr "" -#: templates/ipam/inc/panels/fhrp_groups.html:12 -msgid "Virtual IPs" -msgstr "" - -#: templates/ipam/inc/panels/fhrp_groups.html:52 +#: templates/ipam/inc/panels/fhrp_groups.html:10 msgid "Create Group" msgstr "" -#: templates/ipam/inc/panels/fhrp_groups.html:57 +#: templates/ipam/inc/panels/fhrp_groups.html:15 msgid "Assign Group" msgstr "" +#: templates/ipam/inc/panels/fhrp_groups.html:25 +msgid "Virtual IPs" +msgstr "" + #: templates/ipam/inc/toggle_available.html:7 msgid "Show Assigned" msgstr "" @@ -11752,12 +12119,12 @@ msgstr "" msgid "Show All" msgstr "" -#: templates/ipam/ipaddress.html:26 templates/ipam/iprange.html:48 -#: templates/ipam/prefix.html:25 +#: templates/ipam/ipaddress.html:23 templates/ipam/iprange.html:45 +#: templates/ipam/prefix.html:24 msgid "Global" msgstr "" -#: templates/ipam/ipaddress.html:88 +#: templates/ipam/ipaddress.html:85 msgid "NAT (outside)" msgstr "" @@ -11777,59 +12144,51 @@ msgstr "" msgid "Bulk Add IP Addresses" msgstr "" -#: templates/ipam/ipaddress_edit.html:35 -msgid "Interface Assignment" -msgstr "" - -#: templates/ipam/ipaddress_edit.html:74 -msgid "NAT IP (Inside" -msgstr "" - -#: templates/ipam/iprange.html:20 +#: templates/ipam/iprange.html:17 msgid "Starting Address" msgstr "" -#: templates/ipam/iprange.html:24 +#: templates/ipam/iprange.html:21 msgid "Ending Address" msgstr "" -#: templates/ipam/iprange.html:36 templates/ipam/prefix.html:104 +#: templates/ipam/iprange.html:33 templates/ipam/prefix.html:110 msgid "Marked fully utilized" msgstr "" -#: templates/ipam/prefix.html:112 -msgid "Child IPs" -msgstr "" - -#: templates/ipam/prefix.html:120 -msgid "Available IPs" -msgstr "" - -#: templates/ipam/prefix.html:132 -msgid "First available IP" -msgstr "" - -#: templates/ipam/prefix.html:151 +#: templates/ipam/prefix.html:99 msgid "Addressing Details" msgstr "" -#: templates/ipam/prefix.html:181 +#: templates/ipam/prefix.html:118 +msgid "Child IPs" +msgstr "" + +#: templates/ipam/prefix.html:126 +msgid "Available IPs" +msgstr "" + +#: templates/ipam/prefix.html:138 +msgid "First available IP" +msgstr "" + +#: templates/ipam/prefix.html:179 msgid "Prefix Details" msgstr "" -#: templates/ipam/prefix.html:187 +#: templates/ipam/prefix.html:185 msgid "Network Address" msgstr "" -#: templates/ipam/prefix.html:191 +#: templates/ipam/prefix.html:189 msgid "Network Mask" msgstr "" -#: templates/ipam/prefix.html:195 +#: templates/ipam/prefix.html:193 msgid "Wildcard Mask" msgstr "" -#: templates/ipam/prefix.html:199 +#: templates/ipam/prefix.html:197 msgid "Broadcast Address" msgstr "" @@ -11853,44 +12212,23 @@ msgstr "" msgid "Add Aggregate" msgstr "" -#: templates/ipam/routetarget.html:10 -msgid "Route Target" -msgstr "" - -#: templates/ipam/routetarget.html:40 +#: templates/ipam/routetarget.html:38 msgid "Importing VRFs" msgstr "" -#: templates/ipam/routetarget.html:49 +#: templates/ipam/routetarget.html:44 msgid "Exporting VRFs" msgstr "" -#: templates/ipam/routetarget.html:60 +#: templates/ipam/routetarget.html:52 msgid "Importing L2VPNs" msgstr "" -#: templates/ipam/routetarget.html:69 +#: templates/ipam/routetarget.html:58 msgid "Exporting L2VPNs" msgstr "" -#: templates/ipam/service.html:22 templates/ipam/service_create.html:8 -#: templates/ipam/service_edit.html:8 -msgid "Service" -msgstr "" - -#: templates/ipam/service_create.html:43 -msgid "From Template" -msgstr "" - -#: templates/ipam/service_create.html:48 -msgid "Custom" -msgstr "" - -#: templates/ipam/service_edit.html:37 -msgid "Port(s)" -msgstr "" - -#: templates/ipam/vlan.html:95 +#: templates/ipam/vlan.html:88 msgid "Add a Prefix" msgstr "" @@ -11898,33 +12236,34 @@ msgstr "" msgid "Add VLAN" msgstr "" -#: templates/ipam/vlangroup.html:43 +#: templates/ipam/vlangroup.html:42 msgid "Permitted VIDs" msgstr "" -#: templates/ipam/vrf.html:19 +#: templates/ipam/vrf.html:16 msgid "Route Distinguisher" msgstr "" -#: templates/ipam/vrf.html:32 +#: templates/ipam/vrf.html:29 msgid "Unique IP Space" msgstr "" -#: templates/login.html:20 +#: templates/login.html:14 +msgid "NetBox logo" +msgstr "" + +#: templates/login.html:27 #: utilities/templates/form_helpers/render_errors.html:7 msgid "Errors" msgstr "" -#: templates/login.html:48 +#: templates/login.html:53 msgid "Sign In" msgstr "" -#: templates/login.html:54 -msgid "Or use a single sign-on (SSO) provider" -msgstr "" - -#: templates/login.html:68 -msgid "Toggle Color Mode" +#: templates/login.html:61 +msgctxt "Denotes an alternative option" +msgid "Or" msgstr "" #: templates/media_failure.html:7 @@ -11971,41 +12310,37 @@ msgid "" "Click here to attempt loading NetBox again." msgstr "" -#: templates/tenancy/contact.html:18 tenancy/filtersets.py:136 -#: tenancy/forms/bulk_edit.py:136 tenancy/forms/filtersets.py:101 -#: tenancy/forms/forms.py:56 tenancy/forms/model_forms.py:109 -#: tenancy/forms/model_forms.py:132 tenancy/tables/contacts.py:98 +#: templates/tenancy/contact.html:18 tenancy/filtersets.py:148 +#: tenancy/forms/bulk_edit.py:137 tenancy/forms/filtersets.py:102 +#: tenancy/forms/forms.py:56 tenancy/forms/model_forms.py:106 +#: tenancy/forms/model_forms.py:130 tenancy/tables/contacts.py:98 msgid "Contact" msgstr "" -#: templates/tenancy/contact.html:30 tenancy/forms/bulk_edit.py:98 +#: templates/tenancy/contact.html:29 tenancy/forms/bulk_edit.py:99 msgid "Title" msgstr "" -#: templates/tenancy/contact.html:34 tenancy/forms/bulk_edit.py:103 +#: templates/tenancy/contact.html:33 tenancy/forms/bulk_edit.py:104 #: tenancy/tables/contacts.py:64 msgid "Phone" msgstr "" -#: templates/tenancy/contact.html:86 tenancy/tables/contacts.py:73 +#: templates/tenancy/contact.html:84 tenancy/tables/contacts.py:73 msgid "Assignments" msgstr "" -#: templates/tenancy/contactassignment_edit.html:12 -msgid "Contact Assignment" -msgstr "" - -#: templates/tenancy/contactgroup.html:19 tenancy/forms/forms.py:66 -#: tenancy/forms/model_forms.py:76 +#: templates/tenancy/contactgroup.html:18 tenancy/forms/forms.py:66 +#: tenancy/forms/model_forms.py:75 msgid "Contact Group" msgstr "" -#: templates/tenancy/contactgroup.html:57 +#: templates/tenancy/contactgroup.html:50 msgid "Add Contact Group" msgstr "" -#: templates/tenancy/contactrole.html:15 tenancy/filtersets.py:141 -#: tenancy/forms/forms.py:61 tenancy/forms/model_forms.py:90 +#: templates/tenancy/contactrole.html:15 tenancy/filtersets.py:153 +#: tenancy/forms/forms.py:61 tenancy/forms/model_forms.py:87 msgid "Contact Role" msgstr "" @@ -12017,16 +12352,16 @@ msgstr "" msgid "Add Tenant" msgstr "" -#: templates/tenancy/tenantgroup.html:27 tenancy/forms/model_forms.py:31 +#: templates/tenancy/tenantgroup.html:26 tenancy/forms/model_forms.py:32 #: tenancy/tables/columns.py:51 tenancy/tables/columns.py:61 msgid "Tenant Group" msgstr "" -#: templates/tenancy/tenantgroup.html:66 +#: templates/tenancy/tenantgroup.html:59 msgid "Add Tenant Group" msgstr "" -#: templates/users/group.html:37 templates/users/user.html:65 +#: templates/users/group.html:39 templates/users/user.html:63 msgid "Assigned Permissions" msgstr "" @@ -12035,49 +12370,40 @@ msgstr "" msgid "Permission" msgstr "" -#: templates/users/objectpermission.html:33 users/forms/filtersets.py:68 -#: users/forms/model_forms.py:322 -msgid "Actions" -msgstr "" - -#: templates/users/objectpermission.html:37 +#: templates/users/objectpermission.html:34 msgid "View" msgstr "" -#: templates/users/objectpermission.html:56 users/forms/model_forms.py:325 +#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315 msgid "Constraints" msgstr "" -#: templates/users/objectpermission.html:76 +#: templates/users/objectpermission.html:72 msgid "Assigned Users" msgstr "" -#: templates/users/user.html:42 -msgid "Staff" -msgstr "" - -#: templates/virtualization/cluster.html:56 +#: templates/virtualization/cluster.html:52 msgid "Allocated Resources" msgstr "" -#: templates/virtualization/cluster.html:60 -#: templates/virtualization/virtualmachine.html:128 +#: templates/virtualization/cluster.html:55 +#: templates/virtualization/virtualmachine.html:121 msgid "Virtual CPUs" msgstr "" -#: templates/virtualization/cluster.html:64 -#: templates/virtualization/virtualmachine.html:132 +#: templates/virtualization/cluster.html:59 +#: templates/virtualization/virtualmachine.html:125 msgid "Memory" msgstr "" -#: templates/virtualization/cluster.html:74 -#: templates/virtualization/virtualmachine.html:143 +#: templates/virtualization/cluster.html:69 +#: templates/virtualization/virtualmachine.html:136 msgid "Disk Space" msgstr "" -#: templates/virtualization/cluster.html:77 -#: templates/virtualization/virtualdisk.html:33 -#: templates/virtualization/virtualmachine.html:147 +#: templates/virtualization/cluster.html:72 +#: templates/virtualization/virtualdisk.html:32 +#: templates/virtualization/virtualmachine.html:140 msgctxt "Abbreviation for gigabyte" msgid "GB" msgstr "" @@ -12112,14 +12438,14 @@ msgstr "" msgid "Add Cluster" msgstr "" -#: templates/virtualization/clustergroup.html:20 -#: virtualization/forms/model_forms.py:51 +#: templates/virtualization/clustergroup.html:19 +#: virtualization/forms/model_forms.py:50 msgid "Cluster Group" msgstr "" -#: templates/virtualization/clustertype.html:20 -#: templates/virtualization/virtualmachine.html:111 -#: virtualization/forms/model_forms.py:35 +#: templates/virtualization/clustertype.html:19 +#: templates/virtualization/virtualmachine.html:106 +#: virtualization/forms/model_forms.py:36 msgid "Cluster Type" msgstr "" @@ -12127,37 +12453,37 @@ msgstr "" msgid "Virtual Disk" msgstr "" -#: templates/virtualization/virtualmachine.html:124 -#: virtualization/forms/bulk_edit.py:189 -#: virtualization/forms/model_forms.py:227 +#: templates/virtualization/virtualmachine.html:118 +#: virtualization/forms/bulk_edit.py:190 +#: virtualization/forms/model_forms.py:224 msgid "Resources" msgstr "" -#: templates/virtualization/virtualmachine.html:185 +#: templates/virtualization/virtualmachine.html:174 msgid "Add Virtual Disk" msgstr "" -#: templates/vpn/ikepolicy.html:10 templates/vpn/ipsecprofile.html:35 +#: templates/vpn/ikepolicy.html:10 templates/vpn/ipsecprofile.html:33 #: vpn/tables/crypto.py:166 msgid "IKE Policy" msgstr "" -#: templates/vpn/ikepolicy.html:22 +#: templates/vpn/ikepolicy.html:21 msgid "IKE Version" msgstr "" -#: templates/vpn/ikepolicy.html:30 +#: templates/vpn/ikepolicy.html:29 msgid "Pre-Shared Key" msgstr "" -#: templates/vpn/ikepolicy.html:34 -#: templates/wireless/inc/authentication_attrs.html:21 +#: templates/vpn/ikepolicy.html:33 +#: templates/wireless/inc/authentication_attrs.html:20 msgid "Show Secret" msgstr "" -#: templates/vpn/ikepolicy.html:59 templates/vpn/ipsecpolicy.html:47 -#: templates/vpn/ipsecprofile.html:55 templates/vpn/ipsecprofile.html:82 -#: vpn/forms/model_forms.py:316 vpn/forms/model_forms.py:351 +#: templates/vpn/ikepolicy.html:57 templates/vpn/ipsecpolicy.html:45 +#: templates/vpn/ipsecprofile.html:52 templates/vpn/ipsecprofile.html:77 +#: vpn/forms/model_forms.py:316 vpn/forms/model_forms.py:352 #: vpn/tables/crypto.py:68 vpn/tables/crypto.py:134 msgid "Proposals" msgstr "" @@ -12166,49 +12492,49 @@ msgstr "" msgid "IKE Proposal" msgstr "" -#: templates/vpn/ikeproposal.html:22 vpn/forms/bulk_edit.py:96 -#: vpn/forms/bulk_import.py:145 vpn/forms/filtersets.py:98 +#: templates/vpn/ikeproposal.html:21 vpn/forms/bulk_edit.py:97 +#: vpn/forms/bulk_import.py:145 vpn/forms/filtersets.py:101 msgid "Authentication method" msgstr "" -#: templates/vpn/ikeproposal.html:26 templates/vpn/ipsecproposal.html:22 -#: vpn/forms/bulk_edit.py:101 vpn/forms/bulk_edit.py:173 +#: templates/vpn/ikeproposal.html:25 templates/vpn/ipsecproposal.html:21 +#: vpn/forms/bulk_edit.py:102 vpn/forms/bulk_edit.py:172 #: vpn/forms/bulk_import.py:149 vpn/forms/bulk_import.py:195 -#: vpn/forms/filtersets.py:103 vpn/forms/filtersets.py:151 +#: vpn/forms/filtersets.py:106 vpn/forms/filtersets.py:154 msgid "Encryption algorithm" msgstr "" -#: templates/vpn/ikeproposal.html:30 templates/vpn/ipsecproposal.html:26 -#: vpn/forms/bulk_edit.py:106 vpn/forms/bulk_edit.py:178 +#: templates/vpn/ikeproposal.html:29 templates/vpn/ipsecproposal.html:25 +#: vpn/forms/bulk_edit.py:107 vpn/forms/bulk_edit.py:177 #: vpn/forms/bulk_import.py:153 vpn/forms/bulk_import.py:200 -#: vpn/forms/filtersets.py:108 vpn/forms/filtersets.py:156 +#: vpn/forms/filtersets.py:111 vpn/forms/filtersets.py:159 msgid "Authentication algorithm" msgstr "" -#: templates/vpn/ikeproposal.html:34 +#: templates/vpn/ikeproposal.html:33 msgid "DH group" msgstr "" -#: templates/vpn/ikeproposal.html:38 templates/vpn/ipsecproposal.html:30 -#: vpn/forms/bulk_edit.py:183 vpn/models/crypto.py:146 +#: templates/vpn/ikeproposal.html:37 templates/vpn/ipsecproposal.html:29 +#: vpn/forms/bulk_edit.py:182 vpn/models/crypto.py:146 msgid "SA lifetime (seconds)" msgstr "" -#: templates/vpn/ipsecpolicy.html:10 templates/vpn/ipsecprofile.html:70 +#: templates/vpn/ipsecpolicy.html:10 templates/vpn/ipsecprofile.html:66 #: vpn/tables/crypto.py:170 msgid "IPSec Policy" msgstr "" -#: templates/vpn/ipsecpolicy.html:22 vpn/forms/bulk_edit.py:211 +#: templates/vpn/ipsecpolicy.html:21 vpn/forms/bulk_edit.py:210 #: vpn/models/crypto.py:193 msgid "PFS group" msgstr "" -#: templates/vpn/ipsecprofile.html:10 vpn/forms/model_forms.py:53 +#: templates/vpn/ipsecprofile.html:10 vpn/forms/model_forms.py:54 msgid "IPSec Profile" msgstr "" -#: templates/vpn/ipsecprofile.html:94 vpn/tables/crypto.py:137 +#: templates/vpn/ipsecprofile.html:89 vpn/tables/crypto.py:137 msgid "PFS Group" msgstr "" @@ -12216,40 +12542,36 @@ msgstr "" msgid "IPSec Proposal" msgstr "" -#: templates/vpn/ipsecproposal.html:34 vpn/forms/bulk_edit.py:187 +#: templates/vpn/ipsecproposal.html:33 vpn/forms/bulk_edit.py:186 #: vpn/models/crypto.py:152 msgid "SA lifetime (KB)" msgstr "" -#: templates/vpn/l2vpn.html:11 templates/vpn/l2vpntermination.html:10 +#: templates/vpn/l2vpn.html:11 templates/vpn/l2vpntermination.html:9 msgid "L2VPN Attributes" msgstr "" -#: templates/vpn/l2vpn.html:65 templates/vpn/tunnel.html:81 +#: templates/vpn/l2vpn.html:60 templates/vpn/tunnel.html:76 msgid "Add a Termination" msgstr "" -#: templates/vpn/l2vpntermination_edit.html:9 -msgid "L2VPN Termination" -msgstr "" - #: templates/vpn/tunnel.html:9 msgid "Add Termination" msgstr "" -#: templates/vpn/tunnel.html:38 vpn/forms/bulk_edit.py:48 -#: vpn/forms/bulk_import.py:48 vpn/forms/filtersets.py:56 +#: templates/vpn/tunnel.html:37 vpn/forms/bulk_edit.py:49 +#: vpn/forms/bulk_import.py:48 vpn/forms/filtersets.py:57 msgid "Encapsulation" msgstr "" -#: templates/vpn/tunnel.html:42 vpn/forms/bulk_edit.py:54 -#: vpn/forms/bulk_import.py:53 vpn/forms/filtersets.py:63 +#: templates/vpn/tunnel.html:41 vpn/forms/bulk_edit.py:55 +#: vpn/forms/bulk_import.py:53 vpn/forms/filtersets.py:64 #: vpn/models/crypto.py:250 vpn/tables/tunnels.py:51 msgid "IPSec profile" msgstr "" -#: templates/vpn/tunnel.html:46 vpn/forms/bulk_edit.py:68 -#: vpn/forms/filtersets.py:67 +#: templates/vpn/tunnel.html:45 vpn/forms/bulk_edit.py:69 +#: vpn/forms/filtersets.py:68 msgid "Tunnel ID" msgstr "" @@ -12257,8 +12579,8 @@ msgstr "" msgid "Add Tunnel" msgstr "" -#: templates/vpn/tunnelgroup.html:24 vpn/forms/model_forms.py:35 -#: vpn/forms/model_forms.py:48 +#: templates/vpn/tunnelgroup.html:23 vpn/forms/model_forms.py:36 +#: vpn/forms/model_forms.py:49 msgid "Tunnel Group" msgstr "" @@ -12266,21 +12588,21 @@ msgstr "" msgid "Tunnel Termination" msgstr "" -#: templates/vpn/tunneltermination.html:36 vpn/forms/bulk_import.py:107 -#: vpn/forms/model_forms.py:101 vpn/forms/model_forms.py:137 -#: vpn/forms/model_forms.py:248 vpn/tables/tunnels.py:101 +#: templates/vpn/tunneltermination.html:35 vpn/forms/bulk_import.py:107 +#: vpn/forms/model_forms.py:102 vpn/forms/model_forms.py:138 +#: vpn/forms/model_forms.py:247 vpn/tables/tunnels.py:101 msgid "Outside IP" msgstr "" -#: templates/vpn/tunneltermination.html:53 +#: templates/vpn/tunneltermination.html:51 msgid "Peer Terminations" msgstr "" -#: templates/wireless/inc/authentication_attrs.html:13 +#: templates/wireless/inc/authentication_attrs.html:12 msgid "Cipher" msgstr "" -#: templates/wireless/inc/authentication_attrs.html:17 +#: templates/wireless/inc/authentication_attrs.html:16 msgid "PSK" msgstr "" @@ -12290,11 +12612,7 @@ msgctxt "Abbreviation for megahertz" msgid "MHz" msgstr "" -#: templates/wireless/wirelesslan.html:11 wireless/forms/model_forms.py:54 -msgid "Wireless LAN" -msgstr "" - -#: templates/wireless/wirelesslan.html:59 +#: templates/wireless/wirelesslan.html:57 msgid "Attached Interfaces" msgstr "" @@ -12302,15 +12620,15 @@ msgstr "" msgid "Add Wireless LAN" msgstr "" -#: templates/wireless/wirelesslangroup.html:26 wireless/forms/model_forms.py:27 +#: templates/wireless/wirelesslangroup.html:26 wireless/forms/model_forms.py:28 msgid "Wireless LAN Group" msgstr "" -#: templates/wireless/wirelesslangroup.html:64 +#: templates/wireless/wirelesslangroup.html:59 msgid "Add Wireless LAN Group" msgstr "" -#: templates/wireless/wirelesslink.html:16 +#: templates/wireless/wirelesslink.html:14 msgid "Link Properties" msgstr "" @@ -12322,43 +12640,59 @@ msgstr "" msgid "Inactive" msgstr "" -#: tenancy/filtersets.py:29 tenancy/filtersets.py:55 tenancy/filtersets.py:98 +#: tenancy/filtersets.py:29 +msgid "Parent contact group (ID)" +msgstr "" + +#: tenancy/filtersets.py:35 +msgid "Parent contact group (slug)" +msgstr "" + +#: tenancy/filtersets.py:41 tenancy/filtersets.py:68 tenancy/filtersets.py:111 msgid "Contact group (ID)" msgstr "" -#: tenancy/filtersets.py:35 tenancy/filtersets.py:62 tenancy/filtersets.py:105 +#: tenancy/filtersets.py:48 tenancy/filtersets.py:75 tenancy/filtersets.py:118 msgid "Contact group (slug)" msgstr "" -#: tenancy/filtersets.py:92 +#: tenancy/filtersets.py:105 msgid "Contact (ID)" msgstr "" -#: tenancy/filtersets.py:109 +#: tenancy/filtersets.py:122 msgid "Contact role (ID)" msgstr "" -#: tenancy/filtersets.py:115 +#: tenancy/filtersets.py:128 msgid "Contact role (slug)" msgstr "" -#: tenancy/filtersets.py:147 +#: tenancy/filtersets.py:159 msgid "Contact group" msgstr "" -#: tenancy/filtersets.py:158 tenancy/filtersets.py:177 +#: tenancy/filtersets.py:170 +msgid "Parent tenant group (ID)" +msgstr "" + +#: tenancy/filtersets.py:176 +msgid "Parent tenant group (slug)" +msgstr "" + +#: tenancy/filtersets.py:182 tenancy/filtersets.py:202 msgid "Tenant group (ID)" msgstr "" -#: tenancy/filtersets.py:210 +#: tenancy/filtersets.py:235 msgid "Tenant Group (ID)" msgstr "" -#: tenancy/filtersets.py:217 +#: tenancy/filtersets.py:242 msgid "Tenant Group (slug)" msgstr "" -#: tenancy/forms/bulk_edit.py:65 +#: tenancy/forms/bulk_edit.py:66 msgid "Desciption" msgstr "" @@ -12467,27 +12801,31 @@ msgstr "" msgid "Contact Description" msgstr "" -#: users/filtersets.py:48 users/filtersets.py:151 +#: users/filtersets.py:33 users/filtersets.py:68 +msgid "Permission (ID)" +msgstr "" + +#: users/filtersets.py:63 users/filtersets.py:181 msgid "Group (name)" msgstr "" -#: users/forms/bulk_edit.py:24 +#: users/forms/bulk_edit.py:26 msgid "First name" msgstr "" -#: users/forms/bulk_edit.py:29 +#: users/forms/bulk_edit.py:31 msgid "Last name" msgstr "" -#: users/forms/bulk_edit.py:41 +#: users/forms/bulk_edit.py:43 msgid "Staff status" msgstr "" -#: users/forms/bulk_edit.py:46 +#: users/forms/bulk_edit.py:48 msgid "Superuser status" msgstr "" -#: users/forms/bulk_import.py:43 +#: users/forms/bulk_import.py:41 msgid "If no key is provided, one will be generated automatically." msgstr "" @@ -12499,328 +12837,285 @@ msgstr "" msgid "Is Superuser" msgstr "" -#: users/forms/filtersets.py:92 users/tables.py:89 +#: users/forms/filtersets.py:92 users/tables.py:86 msgid "Can View" msgstr "" -#: users/forms/filtersets.py:99 users/tables.py:92 +#: users/forms/filtersets.py:99 users/tables.py:89 msgid "Can Add" msgstr "" -#: users/forms/filtersets.py:106 users/tables.py:95 +#: users/forms/filtersets.py:106 users/tables.py:92 msgid "Can Change" msgstr "" -#: users/forms/filtersets.py:113 users/tables.py:98 +#: users/forms/filtersets.py:113 users/tables.py:95 msgid "Can Delete" msgstr "" -#: users/forms/model_forms.py:58 +#: users/forms/model_forms.py:66 msgid "User Interface" msgstr "" -#: users/forms/model_forms.py:116 +#: users/forms/model_forms.py:118 msgid "" "Keys must be at least 40 characters in length. Be sure to record " "your key prior to submitting this form, as it may no longer be " "accessible once the token has been created." msgstr "" -#: users/forms/model_forms.py:128 +#: users/forms/model_forms.py:130 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for " "no restrictions. Example: 10.1.1.0/24,192.168.10.16/32,2001:" "db8:1::/64" msgstr "" -#: users/forms/model_forms.py:177 +#: users/forms/model_forms.py:179 msgid "Confirm password" msgstr "" -#: users/forms/model_forms.py:180 +#: users/forms/model_forms.py:182 msgid "Enter the same password as before, for verification." msgstr "" -#: users/forms/model_forms.py:238 +#: users/forms/model_forms.py:231 msgid "Passwords do not match! Please check your input and try again." msgstr "" -#: users/forms/model_forms.py:304 +#: users/forms/model_forms.py:294 msgid "Additional actions" msgstr "" -#: users/forms/model_forms.py:307 +#: users/forms/model_forms.py:297 msgid "Actions granted in addition to those listed above" msgstr "" -#: users/forms/model_forms.py:323 +#: users/forms/model_forms.py:313 msgid "Objects" msgstr "" -#: users/forms/model_forms.py:335 +#: users/forms/model_forms.py:325 msgid "" "JSON expression of a queryset filter that will return only permitted " "objects. Leave null to match all objects of this type. A list of multiple " "objects will result in a logical OR operation." msgstr "" -#: users/forms/model_forms.py:373 +#: users/forms/model_forms.py:364 msgid "At least one action must be selected." msgstr "" -#: users/forms/model_forms.py:386 -msgid "Constraints are not supported for this object type." -msgstr "" - -#: users/forms/model_forms.py:396 +#: users/forms/model_forms.py:382 #, python-brace-format msgid "Invalid filter for {model}: {error}" msgstr "" -#: users/models.py:55 -msgid "user" +#: users/models/permissions.py:39 +msgid "The list of actions granted by this permission" msgstr "" -#: users/models.py:56 -msgid "users" +#: users/models/permissions.py:44 +msgid "constraints" msgstr "" -#: users/models.py:67 -msgid "A user with this username already exists." +#: users/models/permissions.py:45 +msgid "Queryset filter matching the applicable objects of the selected type(s)" msgstr "" -#: users/models.py:79 vpn/models/crypto.py:42 -msgid "group" +#: users/models/permissions.py:52 +msgid "permission" msgstr "" -#: users/models.py:80 -msgid "groups" +#: users/models/permissions.py:53 users/models/users.py:47 +msgid "permissions" msgstr "" -#: users/models.py:107 users/models.py:108 +#: users/models/preferences.py:30 users/models/preferences.py:31 msgid "user preferences" msgstr "" -#: users/models.py:175 +#: users/models/preferences.py:98 #, python-brace-format msgid "Key '{path}' is a leaf node; cannot assign new keys" msgstr "" -#: users/models.py:187 +#: users/models/preferences.py:110 #, python-brace-format msgid "Key '{path}' is a dictionary; cannot assign a non-dictionary value" msgstr "" -#: users/models.py:253 +#: users/models/tokens.py:37 msgid "expires" msgstr "" -#: users/models.py:258 +#: users/models/tokens.py:42 msgid "last used" msgstr "" -#: users/models.py:263 +#: users/models/tokens.py:47 msgid "key" msgstr "" -#: users/models.py:269 +#: users/models/tokens.py:53 msgid "write enabled" msgstr "" -#: users/models.py:271 +#: users/models/tokens.py:55 msgid "Permit create/update/delete operations using this key" msgstr "" -#: users/models.py:282 +#: users/models/tokens.py:66 msgid "allowed IPs" msgstr "" -#: users/models.py:284 +#: users/models/tokens.py:68 msgid "" "Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for " "no restrictions. Ex: \"10.1.1.0/24, 192.168.10.16/32, 2001:DB8:1::/64\"" msgstr "" -#: users/models.py:296 +#: users/models/tokens.py:76 msgid "token" msgstr "" -#: users/models.py:297 +#: users/models/tokens.py:77 msgid "tokens" msgstr "" -#: users/models.py:378 -msgid "The list of actions granted by this permission" +#: users/models/users.py:57 vpn/models/crypto.py:42 +msgid "group" msgstr "" -#: users/models.py:383 -msgid "constraints" +#: users/models/users.py:58 users/models/users.py:77 +msgid "groups" msgstr "" -#: users/models.py:384 -msgid "Queryset filter matching the applicable objects of the selected type(s)" +#: users/models/users.py:92 +msgid "user" msgstr "" -#: users/models.py:391 -msgid "permission" +#: users/models/users.py:93 +msgid "users" msgstr "" -#: users/models.py:392 -msgid "permissions" +#: users/models/users.py:104 +msgid "A user with this username already exists." msgstr "" -#: users/tables.py:101 +#: users/tables.py:98 msgid "Custom Actions" msgstr "" -#: utilities/choices.py:16 +#: utilities/api.py:153 +#, python-brace-format +msgid "Related object not found using the provided attributes: {params}" +msgstr "" + +#: utilities/api.py:156 +#, python-brace-format +msgid "Multiple objects match the provided attributes: {params}" +msgstr "" + +#: utilities/api.py:168 +#, python-brace-format +msgid "" +"Related objects must be referenced by numeric ID or by dictionary of " +"attributes. Received an unrecognized value: {value}" +msgstr "" + +#: utilities/api.py:177 +#, python-brace-format +msgid "Related object not found using the provided numeric ID: {id}" +msgstr "" + +#: utilities/choices.py:19 #, python-brace-format msgid "{name} has a key defined but CHOICES is not a list" msgstr "" -#: utilities/choices.py:135 -msgid "Dark Red" +#: utilities/conversion.py:19 +msgid "Weight must be a positive number" msgstr "" -#: utilities/choices.py:138 -msgid "Rose" +#: utilities/conversion.py:21 +#, python-brace-format +msgid "Invalid value '{weight}' for weight (must be a number)" msgstr "" -#: utilities/choices.py:139 -msgid "Fuchsia" +#: utilities/conversion.py:32 utilities/conversion.py:62 +#, python-brace-format +msgid "Unknown unit {unit}. Must be one of the following: {valid_units}" msgstr "" -#: utilities/choices.py:141 -msgid "Dark Purple" +#: utilities/conversion.py:45 +msgid "Length must be a positive number" msgstr "" -#: utilities/choices.py:144 -msgid "Light Blue" +#: utilities/conversion.py:47 +#, python-brace-format +msgid "Invalid value '{length}' for length (must be a number)" msgstr "" -#: utilities/choices.py:147 -msgid "Aqua" -msgstr "" - -#: utilities/choices.py:148 -msgid "Dark Green" -msgstr "" - -#: utilities/choices.py:150 -msgid "Light Green" -msgstr "" - -#: utilities/choices.py:151 -msgid "Lime" -msgstr "" - -#: utilities/choices.py:153 -msgid "Amber" -msgstr "" - -#: utilities/choices.py:155 -msgid "Dark Orange" -msgstr "" - -#: utilities/choices.py:156 -msgid "Brown" -msgstr "" - -#: utilities/choices.py:157 -msgid "Light Grey" -msgstr "" - -#: utilities/choices.py:158 -msgid "Grey" -msgstr "" - -#: utilities/choices.py:159 -msgid "Dark Grey" -msgstr "" - -#: utilities/choices.py:217 -msgid "Direct" -msgstr "" - -#: utilities/choices.py:218 -msgid "Upload" -msgstr "" - -#: utilities/choices.py:230 utilities/choices.py:244 -msgid "Auto-detect" -msgstr "" - -#: utilities/choices.py:245 -msgid "Comma" -msgstr "" - -#: utilities/choices.py:246 -msgid "Semicolon" -msgstr "" - -#: utilities/choices.py:247 -msgid "Tab" -msgstr "" - -#: utilities/error_handlers.py:20 +#: utilities/error_handlers.py:31 #, python-brace-format msgid "" "Unable to delete {objects}. {count} dependent objects were " "found: " msgstr "" -#: utilities/error_handlers.py:22 +#: utilities/error_handlers.py:33 msgid "More than 50" msgstr "" -#: utilities/fields.py:96 +#: utilities/fields.py:80 msgid "Custom queryset can't be used for this lookup." msgstr "" -#: utilities/fields.py:162 +#: utilities/fields.py:146 #, python-format msgid "" "%s(%r) is invalid. to_model parameter to CounterCacheField must be a string " "in the format 'app.model'" msgstr "" -#: utilities/fields.py:172 +#: utilities/fields.py:156 #, python-format msgid "" "%s(%r) is invalid. to_field parameter to CounterCacheField must be a string " "in the format 'field'" msgstr "" -#: utilities/forms/bulk_import.py:24 +#: utilities/forms/bulk_import.py:23 msgid "Enter object data in CSV, JSON or YAML format." msgstr "" -#: utilities/forms/bulk_import.py:37 +#: utilities/forms/bulk_import.py:36 msgid "CSV delimiter" msgstr "" -#: utilities/forms/bulk_import.py:38 +#: utilities/forms/bulk_import.py:37 msgid "The character which delimits CSV fields. Applies only to CSV format." msgstr "" -#: utilities/forms/bulk_import.py:52 +#: utilities/forms/bulk_import.py:51 msgid "Form data must be empty when uploading/selecting a file." msgstr "" -#: utilities/forms/bulk_import.py:81 +#: utilities/forms/bulk_import.py:80 #, python-brace-format msgid "Unknown data format: {format}" msgstr "" -#: utilities/forms/bulk_import.py:101 +#: utilities/forms/bulk_import.py:100 msgid "Unable to detect data format. Please specify." msgstr "" -#: utilities/forms/bulk_import.py:124 +#: utilities/forms/bulk_import.py:123 msgid "Invalid CSV delimiter" msgstr "" -#: utilities/forms/bulk_import.py:168 +#: utilities/forms/bulk_import.py:167 msgid "" "Invalid YAML data. Data must be in the form of multiple documents, or a " "single document comprising a list of dictionaries." @@ -12889,29 +13184,29 @@ msgstr "" msgid "MAC address must be in EUI-48 format" msgstr "" -#: utilities/forms/forms.py:53 +#: utilities/forms/forms.py:52 msgid "Use regular expressions" msgstr "" -#: utilities/forms/forms.py:76 +#: utilities/forms/forms.py:75 msgid "" "Numeric ID of an existing object to update (if not creating a new object)" msgstr "" -#: utilities/forms/forms.py:93 +#: utilities/forms/forms.py:92 #, python-brace-format msgid "Unrecognized header: {name}" msgstr "" -#: utilities/forms/forms.py:119 +#: utilities/forms/forms.py:118 msgid "Available Columns" msgstr "" -#: utilities/forms/forms.py:127 +#: utilities/forms/forms.py:126 msgid "Selected Columns" msgstr "" -#: utilities/forms/mixins.py:101 +#: utilities/forms/mixins.py:44 msgid "" "This object has been modified since the form was rendered. Please consult " "the object's change log for details." @@ -12975,7 +13270,7 @@ msgstr "" msgid "Missing required value for static query param: '{static_params}'" msgstr "" -#: utilities/permissions.py:40 +#: utilities/permissions.py:39 #, python-brace-format msgid "" "Invalid permission name: {name}. Must be in the format ." @@ -12987,7 +13282,7 @@ msgstr "" msgid "Unknown app_label/model_name for {name}" msgstr "" -#: utilities/request.py:33 +#: utilities/request.py:76 #, python-brace-format msgid "Invalid IP address set for {header}: {ip}" msgstr "" @@ -13013,10 +13308,6 @@ msgstr "" msgid "Clone" msgstr "" -#: utilities/templates/buttons/export.html:4 -msgid "Export" -msgstr "" - #: utilities/templates/buttons/export.html:7 msgid "Current View" msgstr "" @@ -13033,15 +13324,15 @@ msgstr "" msgid "Import" msgstr "" -#: utilities/templates/form_helpers/render_field.html:36 +#: utilities/templates/form_helpers/render_field.html:39 msgid "Copy to clipboard" msgstr "" -#: utilities/templates/form_helpers/render_field.html:52 +#: utilities/templates/form_helpers/render_field.html:55 msgid "This field is required" msgstr "" -#: utilities/templates/form_helpers/render_field.html:65 +#: utilities/templates/form_helpers/render_field.html:68 msgid "Set Null" msgstr "" @@ -13073,63 +13364,26 @@ msgstr "" msgid "Write" msgstr "" -#: utilities/templates/widgets/markdown_input.html:20 -msgid "Testing" -msgstr "" - -#: utilities/testing/views.py:632 +#: utilities/testing/views.py:633 msgid "The test must define csv_update_data." msgstr "" -#: utilities/utils.py:310 -msgid "Length must be a positive number" -msgstr "" - -#: utilities/utils.py:312 -#, python-brace-format -msgid "Invalid value '{length}' for length (must be a number)" -msgstr "" - -#: utilities/utils.py:317 utilities/utils.py:350 -#, python-brace-format -msgid "Unknown unit {unit}. Must be one of the following: {valid_units}" -msgstr "" - -#: utilities/utils.py:334 -#, python-brace-format -msgid "Unknown unit {unit}. Must be 'km', 'm', 'cm', 'mi', 'ft', or 'in'." -msgstr "" - -#: utilities/utils.py:343 -msgid "Weight must be a positive number" -msgstr "" - -#: utilities/utils.py:345 -#, python-brace-format -msgid "Invalid value '{weight}' for weight (must be a number)" -msgstr "" - -#: utilities/utils.py:363 -#, python-brace-format -msgid "Unknown unit {unit}. Must be 'kg', 'g', 'lb', 'oz'." -msgstr "" - #: utilities/validators.py:65 #, python-brace-format msgid "{value} is not a valid regular expression." msgstr "" -#: utilities/views.py:38 +#: utilities/views.py:40 #, python-brace-format msgid "{self.__class__.__name__} must implement get_required_permission()" msgstr "" -#: utilities/views.py:74 +#: utilities/views.py:76 #, python-brace-format msgid "{class_name} must implement get_required_permission()" msgstr "" -#: utilities/views.py:98 +#: utilities/views.py:100 #, python-brace-format msgid "" "{class_name} has no queryset defined. ObjectPermissionRequiredMixin may only " @@ -13156,20 +13410,20 @@ msgstr "" msgid "Cluster (ID)" msgstr "" -#: virtualization/forms/bulk_edit.py:165 -#: virtualization/models/virtualmachines.py:113 +#: virtualization/forms/bulk_edit.py:166 +#: virtualization/models/virtualmachines.py:115 msgid "vCPUs" msgstr "" -#: virtualization/forms/bulk_edit.py:169 +#: virtualization/forms/bulk_edit.py:170 msgid "Memory (MB)" msgstr "" -#: virtualization/forms/bulk_edit.py:173 +#: virtualization/forms/bulk_edit.py:174 msgid "Disk (GB)" msgstr "" -#: virtualization/forms/bulk_edit.py:333 virtualization/forms/filtersets.py:243 +#: virtualization/forms/bulk_edit.py:334 virtualization/forms/filtersets.py:247 msgid "Size (GB)" msgstr "" @@ -13189,26 +13443,26 @@ msgstr "" msgid "Assigned device within cluster" msgstr "" -#: virtualization/forms/model_forms.py:156 +#: virtualization/forms/model_forms.py:153 #, python-brace-format msgid "" "{device} belongs to a different site ({device_site}) than the cluster " "({cluster_site})" msgstr "" -#: virtualization/forms/model_forms.py:195 +#: virtualization/forms/model_forms.py:192 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" -#: virtualization/forms/model_forms.py:224 +#: virtualization/forms/model_forms.py:221 msgid "Site/Cluster" msgstr "" -#: virtualization/forms/model_forms.py:247 +#: virtualization/forms/model_forms.py:244 msgid "Disk size is managed via the attachment of virtual disks." msgstr "" -#: virtualization/forms/model_forms.py:375 +#: virtualization/forms/model_forms.py:372 msgid "Disk" msgstr "" @@ -13243,92 +13497,92 @@ msgid "" "{site}" msgstr "" -#: virtualization/models/virtualmachines.py:121 +#: virtualization/models/virtualmachines.py:123 msgid "memory (MB)" msgstr "" -#: virtualization/models/virtualmachines.py:126 +#: virtualization/models/virtualmachines.py:128 msgid "disk (GB)" msgstr "" -#: virtualization/models/virtualmachines.py:159 +#: virtualization/models/virtualmachines.py:161 msgid "Virtual machine name must be unique per cluster." msgstr "" -#: virtualization/models/virtualmachines.py:162 +#: virtualization/models/virtualmachines.py:164 msgid "virtual machine" msgstr "" -#: virtualization/models/virtualmachines.py:163 +#: virtualization/models/virtualmachines.py:165 msgid "virtual machines" msgstr "" -#: virtualization/models/virtualmachines.py:177 +#: virtualization/models/virtualmachines.py:179 msgid "A virtual machine must be assigned to a site and/or cluster." msgstr "" -#: virtualization/models/virtualmachines.py:184 +#: virtualization/models/virtualmachines.py:186 #, python-brace-format msgid "The selected cluster ({cluster}) is not assigned to this site ({site})." msgstr "" -#: virtualization/models/virtualmachines.py:191 +#: virtualization/models/virtualmachines.py:193 msgid "Must specify a cluster when assigning a host device." msgstr "" -#: virtualization/models/virtualmachines.py:196 +#: virtualization/models/virtualmachines.py:198 #, python-brace-format msgid "" "The selected device ({device}) is not assigned to this cluster ({cluster})." msgstr "" -#: virtualization/models/virtualmachines.py:208 +#: virtualization/models/virtualmachines.py:210 #, python-brace-format msgid "" "The specified disk size ({size}) must match the aggregate size of assigned " "virtual disks ({total_size})." msgstr "" -#: virtualization/models/virtualmachines.py:222 +#: virtualization/models/virtualmachines.py:224 #, python-brace-format msgid "Must be an IPv{family} address. ({ip} is an IPv{version} address.)" msgstr "" -#: virtualization/models/virtualmachines.py:231 +#: virtualization/models/virtualmachines.py:233 #, python-brace-format msgid "The specified IP address ({ip}) is not assigned to this VM." msgstr "" -#: virtualization/models/virtualmachines.py:389 +#: virtualization/models/virtualmachines.py:391 #, python-brace-format msgid "" "The selected parent interface ({parent}) belongs to a different virtual " "machine ({virtual_machine})." msgstr "" -#: virtualization/models/virtualmachines.py:404 +#: virtualization/models/virtualmachines.py:406 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different virtual " "machine ({virtual_machine})." msgstr "" -#: virtualization/models/virtualmachines.py:415 +#: virtualization/models/virtualmachines.py:417 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent virtual machine, or it must be global." msgstr "" -#: virtualization/models/virtualmachines.py:427 +#: virtualization/models/virtualmachines.py:429 msgid "size (GB)" msgstr "" -#: virtualization/models/virtualmachines.py:431 +#: virtualization/models/virtualmachines.py:433 msgid "virtual disk" msgstr "" -#: virtualization/models/virtualmachines.py:432 +#: virtualization/models/virtualmachines.py:434 msgid "virtual disks" msgstr "" @@ -13434,57 +13688,57 @@ msgstr "" msgid "Outside IP (ID)" msgstr "" -#: vpn/filtersets.py:142 vpn/filtersets.py:246 +#: vpn/filtersets.py:130 vpn/filtersets.py:153 vpn/filtersets.py:282 msgid "IKE policy (ID)" msgstr "" -#: vpn/filtersets.py:148 vpn/filtersets.py:252 +#: vpn/filtersets.py:136 vpn/filtersets.py:159 vpn/filtersets.py:288 msgid "IKE policy (name)" msgstr "" -#: vpn/filtersets.py:256 +#: vpn/filtersets.py:215 vpn/filtersets.py:292 msgid "IPSec policy (ID)" msgstr "" -#: vpn/filtersets.py:262 +#: vpn/filtersets.py:221 vpn/filtersets.py:298 msgid "IPSec policy (name)" msgstr "" -#: vpn/filtersets.py:331 +#: vpn/filtersets.py:367 msgid "L2VPN (slug)" msgstr "" -#: vpn/filtersets.py:395 +#: vpn/filtersets.py:431 msgid "VM Interface (ID)" msgstr "" -#: vpn/filtersets.py:401 +#: vpn/filtersets.py:437 msgid "VLAN (name)" msgstr "" -#: vpn/forms/bulk_edit.py:44 vpn/forms/bulk_import.py:42 -#: vpn/forms/filtersets.py:53 +#: vpn/forms/bulk_edit.py:45 vpn/forms/bulk_import.py:42 +#: vpn/forms/filtersets.py:54 msgid "Tunnel group" msgstr "" -#: vpn/forms/bulk_edit.py:116 vpn/models/crypto.py:47 +#: vpn/forms/bulk_edit.py:117 vpn/models/crypto.py:47 msgid "SA lifetime" msgstr "" -#: vpn/forms/bulk_edit.py:150 wireless/forms/bulk_edit.py:78 -#: wireless/forms/bulk_edit.py:125 wireless/forms/filtersets.py:63 -#: wireless/forms/filtersets.py:97 +#: vpn/forms/bulk_edit.py:151 wireless/forms/bulk_edit.py:79 +#: wireless/forms/bulk_edit.py:126 wireless/forms/filtersets.py:64 +#: wireless/forms/filtersets.py:98 msgid "Pre-shared key" msgstr "" -#: vpn/forms/bulk_edit.py:238 vpn/forms/bulk_import.py:239 -#: vpn/forms/filtersets.py:196 vpn/forms/model_forms.py:369 +#: vpn/forms/bulk_edit.py:237 vpn/forms/bulk_import.py:239 +#: vpn/forms/filtersets.py:199 vpn/forms/model_forms.py:370 #: vpn/models/crypto.py:104 msgid "IKE policy" msgstr "" -#: vpn/forms/bulk_edit.py:243 vpn/forms/bulk_import.py:244 -#: vpn/forms/filtersets.py:201 vpn/forms/model_forms.py:373 +#: vpn/forms/bulk_edit.py:242 vpn/forms/bulk_import.py:244 +#: vpn/forms/filtersets.py:204 vpn/forms/model_forms.py:374 #: vpn/models/crypto.py:209 msgid "IPSec policy" msgstr "" @@ -13553,45 +13807,45 @@ msgstr "" msgid "Cannot assign both an interface and a VLAN." msgstr "" -#: vpn/forms/filtersets.py:127 +#: vpn/forms/filtersets.py:130 msgid "IKE version" msgstr "" -#: vpn/forms/filtersets.py:139 vpn/forms/filtersets.py:172 -#: vpn/forms/model_forms.py:299 vpn/forms/model_forms.py:334 +#: vpn/forms/filtersets.py:142 vpn/forms/filtersets.py:175 +#: vpn/forms/model_forms.py:298 vpn/forms/model_forms.py:334 msgid "Proposal" msgstr "" -#: vpn/forms/filtersets.py:247 +#: vpn/forms/filtersets.py:251 msgid "Assigned Object Type" msgstr "" -#: vpn/forms/model_forms.py:94 vpn/forms/model_forms.py:129 -#: vpn/forms/model_forms.py:241 vpn/tables/tunnels.py:91 +#: vpn/forms/model_forms.py:95 vpn/forms/model_forms.py:130 +#: vpn/forms/model_forms.py:240 vpn/tables/tunnels.py:91 msgid "Tunnel interface" msgstr "" -#: vpn/forms/model_forms.py:147 +#: vpn/forms/model_forms.py:150 msgid "First Termination" msgstr "" -#: vpn/forms/model_forms.py:151 +#: vpn/forms/model_forms.py:153 msgid "Second Termination" msgstr "" -#: vpn/forms/model_forms.py:198 +#: vpn/forms/model_forms.py:197 msgid "This parameter is required when defining a termination." msgstr "" -#: vpn/forms/model_forms.py:320 vpn/forms/model_forms.py:355 +#: vpn/forms/model_forms.py:320 vpn/forms/model_forms.py:356 msgid "Policy" msgstr "" -#: vpn/forms/model_forms.py:475 +#: vpn/forms/model_forms.py:487 msgid "A termination must specify an interface or VLAN." msgstr "" -#: vpn/forms/model_forms.py:477 +#: vpn/forms/model_forms.py:489 msgid "" "A termination can only have one terminating object (an interface or VLAN)." msgstr "" @@ -13777,10 +14031,6 @@ msgstr "" msgid "Object Site" msgstr "" -#: vpn/tables/tunnels.py:88 -msgid "Host" -msgstr "" - #: wireless/choices.py:11 msgid "Access point" msgstr "" @@ -13801,10 +14051,10 @@ msgstr "" msgid "WPA Enterprise" msgstr "" -#: wireless/forms/bulk_edit.py:72 wireless/forms/bulk_edit.py:119 +#: wireless/forms/bulk_edit.py:73 wireless/forms/bulk_edit.py:120 #: wireless/forms/bulk_import.py:68 wireless/forms/bulk_import.py:71 #: wireless/forms/bulk_import.py:110 wireless/forms/bulk_import.py:113 -#: wireless/forms/filtersets.py:58 wireless/forms/filtersets.py:92 +#: wireless/forms/filtersets.py:59 wireless/forms/filtersets.py:93 msgid "Authentication cipher" msgstr "" @@ -13820,7 +14070,7 @@ msgstr "" msgid "Interface B" msgstr "" -#: wireless/forms/model_forms.py:158 +#: wireless/forms/model_forms.py:161 msgid "Side B" msgstr ""