From 3cd2432aa1f249153879b62149afc8a9fd4554e9 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 21 Dec 2023 12:58:45 -0500 Subject: [PATCH] Rebuild source messages --- netbox/translations/en/LC_MESSAGES/django.po | 5740 ++++++++++-------- 1 file changed, 3289 insertions(+), 2451 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index b04e843f2..adc38c45e 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: 2023-10-30 17:19+0000\n" +"POT-Creation-Date: 2023-12-21 17:54+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,14 +24,14 @@ msgstr "" msgid "Key" msgstr "" -#: account/tables.py:31 users/forms/filtersets.py:135 +#: account/tables.py:31 users/forms/filtersets.py:133 msgid "Write Enabled" msgstr "" -#: account/tables.py:34 core/tables/jobs.py:28 extras/choices.py:124 +#: account/tables.py:34 core/tables/jobs.py:29 extras/choices.py:135 #: extras/tables/tables.py:469 templates/account/token.html:44 -#: templates/core/job.html:52 templates/extras/configrevision.html:34 -#: templates/extras/configrevision_restore.html:12 +#: 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 @@ -41,11 +41,11 @@ msgstr "" #: account/tables.py:37 templates/account/token.html:48 #: templates/users/token.html:40 users/forms/bulk_edit.py:97 -#: users/forms/filtersets.py:139 +#: users/forms/filtersets.py:137 msgid "Expires" msgstr "" -#: account/tables.py:40 users/forms/filtersets.py:144 +#: account/tables.py:40 users/forms/filtersets.py:142 msgid "Last Used" msgstr "" @@ -58,11 +58,11 @@ msgstr "" #: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102 #: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1419 #: dcim/choices.py:1495 dcim/choices.py:1545 virtualization/choices.py:20 -#: virtualization/choices.py:45 +#: virtualization/choices.py:45 vpn/choices.py:18 msgid "Planned" msgstr "" -#: circuits/choices.py:22 netbox/navigation/menu.py:271 +#: circuits/choices.py:22 netbox/navigation/menu.py:290 msgid "Provisioning" msgstr "" @@ -72,7 +72,7 @@ msgstr "" #: ipam/choices.py:49 ipam/choices.py:69 ipam/choices.py:154 #: templates/extras/configcontext.html:26 templates/users/user.html:34 #: users/forms/bulk_edit.py:36 virtualization/choices.py:22 -#: virtualization/choices.py:44 wireless/choices.py:25 +#: virtualization/choices.py:44 vpn/choices.py:19 wireless/choices.py:25 msgid "Active" msgstr "" @@ -90,95 +90,96 @@ msgstr "" msgid "Decommissioned" msgstr "" -#: circuits/filtersets.py:29 circuits/filtersets.py:182 dcim/filtersets.py:118 -#: dcim/filtersets.py:179 dcim/filtersets.py:254 dcim/filtersets.py:362 -#: dcim/filtersets.py:873 dcim/filtersets.py:1179 dcim/filtersets.py:1674 -#: dcim/filtersets.py:1847 dcim/filtersets.py:1904 ipam/filtersets.py:304 -#: ipam/filtersets.py:891 ipam/filtersets.py:1122 -#: virtualization/filtersets.py:43 virtualization/filtersets.py:169 +#: circuits/filtersets.py:29 circuits/filtersets.py:182 dcim/filtersets.py:120 +#: dcim/filtersets.py:181 dcim/filtersets.py:256 dcim/filtersets.py:364 +#: dcim/filtersets.py:881 dcim/filtersets.py:1177 dcim/filtersets.py:1672 +#: dcim/filtersets.py:1845 dcim/filtersets.py:1902 ipam/filtersets.py:305 +#: ipam/filtersets.py:896 virtualization/filtersets.py:45 +#: virtualization/filtersets.py:172 vpn/filtersets.py:330 msgid "Region (ID)" msgstr "" -#: circuits/filtersets.py:36 circuits/filtersets.py:189 dcim/filtersets.py:124 -#: dcim/filtersets.py:186 dcim/filtersets.py:261 dcim/filtersets.py:369 -#: dcim/filtersets.py:880 dcim/filtersets.py:1186 dcim/filtersets.py:1681 -#: dcim/filtersets.py:1854 dcim/filtersets.py:1911 extras/filtersets.py:383 -#: ipam/filtersets.py:311 ipam/filtersets.py:898 ipam/filtersets.py:1117 -#: virtualization/filtersets.py:50 virtualization/filtersets.py:176 +#: circuits/filtersets.py:36 circuits/filtersets.py:189 dcim/filtersets.py:126 +#: dcim/filtersets.py:188 dcim/filtersets.py:263 dcim/filtersets.py:371 +#: dcim/filtersets.py:888 dcim/filtersets.py:1184 dcim/filtersets.py:1679 +#: dcim/filtersets.py:1852 dcim/filtersets.py:1909 extras/filtersets.py:414 +#: ipam/filtersets.py:312 ipam/filtersets.py:903 +#: virtualization/filtersets.py:52 virtualization/filtersets.py:179 +#: vpn/filtersets.py:325 msgid "Region (slug)" msgstr "" -#: circuits/filtersets.py:42 circuits/filtersets.py:195 dcim/filtersets.py:192 -#: dcim/filtersets.py:267 dcim/filtersets.py:375 dcim/filtersets.py:886 -#: dcim/filtersets.py:1192 dcim/filtersets.py:1687 dcim/filtersets.py:1860 -#: dcim/filtersets.py:1917 ipam/filtersets.py:317 ipam/filtersets.py:904 -#: virtualization/filtersets.py:56 virtualization/filtersets.py:182 +#: circuits/filtersets.py:42 circuits/filtersets.py:195 dcim/filtersets.py:194 +#: dcim/filtersets.py:269 dcim/filtersets.py:377 dcim/filtersets.py:894 +#: dcim/filtersets.py:1190 dcim/filtersets.py:1685 dcim/filtersets.py:1858 +#: dcim/filtersets.py:1915 ipam/filtersets.py:318 ipam/filtersets.py:909 +#: virtualization/filtersets.py:58 virtualization/filtersets.py:185 msgid "Site group (ID)" msgstr "" -#: circuits/filtersets.py:49 circuits/filtersets.py:202 dcim/filtersets.py:199 -#: dcim/filtersets.py:274 dcim/filtersets.py:382 dcim/filtersets.py:893 -#: dcim/filtersets.py:1199 dcim/filtersets.py:1694 dcim/filtersets.py:1867 -#: dcim/filtersets.py:1924 extras/filtersets.py:389 ipam/filtersets.py:324 -#: ipam/filtersets.py:911 virtualization/filtersets.py:63 -#: virtualization/filtersets.py:189 +#: circuits/filtersets.py:49 circuits/filtersets.py:202 dcim/filtersets.py:201 +#: dcim/filtersets.py:276 dcim/filtersets.py:384 dcim/filtersets.py:901 +#: dcim/filtersets.py:1197 dcim/filtersets.py:1692 dcim/filtersets.py:1865 +#: dcim/filtersets.py:1922 extras/filtersets.py:420 ipam/filtersets.py:325 +#: ipam/filtersets.py:916 virtualization/filtersets.py:65 +#: virtualization/filtersets.py:192 msgid "Site group (slug)" msgstr "" #: circuits/filtersets.py:54 circuits/forms/bulk_import.py:117 -#: circuits/forms/filtersets.py:47 circuits/forms/filtersets.py:170 +#: circuits/forms/filtersets.py:47 circuits/forms/filtersets.py:171 #: 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:176 dcim/forms/bulk_import.py:249 #: dcim/forms/bulk_import.py:477 dcim/forms/bulk_import.py:1239 -#: dcim/forms/bulk_import.py:1267 dcim/forms/filtersets.py:83 -#: dcim/forms/filtersets.py:215 dcim/forms/filtersets.py:261 -#: dcim/forms/filtersets.py:370 dcim/forms/filtersets.py:673 -#: dcim/forms/filtersets.py:903 dcim/forms/filtersets.py:927 -#: dcim/forms/filtersets.py:1016 dcim/forms/filtersets.py:1054 -#: dcim/forms/filtersets.py:1459 dcim/forms/filtersets.py:1483 -#: dcim/forms/filtersets.py:1507 dcim/forms/model_forms.py:138 +#: dcim/forms/bulk_import.py:1267 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:397 dcim/forms/model_forms.py:629 -#: dcim/forms/object_create.py:357 dcim/tables/devices.py:186 -#: dcim/tables/power.py:26 dcim/tables/racks.py:62 dcim/tables/racks.py:138 -#: dcim/tables/sites.py:129 extras/filtersets.py:399 -#: ipam/forms/bulk_edit.py:217 ipam/forms/bulk_edit.py:271 -#: ipam/forms/bulk_edit.py:449 ipam/forms/bulk_edit.py:521 -#: ipam/forms/bulk_import.py:173 ipam/forms/bulk_import.py:440 -#: ipam/forms/filtersets.py:156 ipam/forms/filtersets.py:230 -#: ipam/forms/filtersets.py:420 ipam/forms/filtersets.py:472 -#: ipam/forms/filtersets.py:585 ipam/forms/model_forms.py:208 -#: ipam/forms/model_forms.py:550 ipam/forms/model_forms.py:642 -#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216 -#: templates/circuits/circuittermination_edit.html:20 +#: dcim/forms/model_forms.py:397 dcim/forms/model_forms.py:630 +#: 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:548 +#: ipam/forms/model_forms.py:640 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:30 templates/dcim/inc/cable_termination.html:8 +#: 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:18 -#: templates/dcim/rackreservation.html:25 templates/dcim/site.html:26 -#: templates/ipam/prefix.html:48 templates/ipam/vlan.html:17 +#: 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:88 virtualization/forms/bulk_edit.py:97 -#: virtualization/forms/bulk_edit.py:106 virtualization/forms/bulk_edit.py:121 -#: virtualization/forms/bulk_import.py:58 -#: virtualization/forms/bulk_import.py:84 virtualization/forms/filtersets.py:75 -#: virtualization/forms/filtersets.py:141 -#: virtualization/forms/model_forms.py:73 -#: virtualization/forms/model_forms.py:106 -#: virtualization/forms/model_forms.py:173 virtualization/tables/clusters.py:77 -#: virtualization/tables/virtualmachines.py:51 wireless/forms/model_forms.py:77 -#: wireless/forms/model_forms.py:117 +#: virtualization/forms/bulk_edit.py:90 virtualization/forms/bulk_edit.py:99 +#: 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:53 vpn/forms/filtersets.py:262 +#: wireless/forms/model_forms.py:77 wireless/forms/model_forms.py:117 msgid "Site" msgstr "" #: circuits/filtersets.py:60 circuits/filtersets.py:213 -#: circuits/filtersets.py:250 dcim/filtersets.py:209 dcim/filtersets.py:284 -#: dcim/filtersets.py:356 extras/filtersets.py:405 ipam/filtersets.py:215 -#: ipam/filtersets.py:334 ipam/filtersets.py:921 ipam/filtersets.py:1127 -#: virtualization/filtersets.py:73 virtualization/filtersets.py:199 +#: circuits/filtersets.py:250 dcim/filtersets.py:211 dcim/filtersets.py:286 +#: dcim/filtersets.py:358 extras/filtersets.py:436 ipam/filtersets.py:215 +#: ipam/filtersets.py:335 ipam/filtersets.py:926 +#: virtualization/filtersets.py:75 virtualization/filtersets.py:202 +#: vpn/filtersets.py:335 msgid "Site (slug)" msgstr "" @@ -212,28 +213,28 @@ msgstr "" msgid "Circuit type (slug)" msgstr "" -#: circuits/filtersets.py:207 circuits/filtersets.py:244 dcim/filtersets.py:203 -#: dcim/filtersets.py:278 dcim/filtersets.py:350 dcim/filtersets.py:897 -#: dcim/filtersets.py:1204 dcim/filtersets.py:1699 dcim/filtersets.py:1871 -#: dcim/filtersets.py:1929 ipam/filtersets.py:209 ipam/filtersets.py:328 -#: ipam/filtersets.py:915 ipam/filtersets.py:1132 -#: virtualization/filtersets.py:67 virtualization/filtersets.py:193 +#: circuits/filtersets.py:207 circuits/filtersets.py:244 dcim/filtersets.py:205 +#: dcim/filtersets.py:280 dcim/filtersets.py:352 dcim/filtersets.py:905 +#: dcim/filtersets.py:1202 dcim/filtersets.py:1697 dcim/filtersets.py:1869 +#: dcim/filtersets.py:1927 ipam/filtersets.py:209 ipam/filtersets.py:329 +#: ipam/filtersets.py:920 virtualization/filtersets.py:69 +#: virtualization/filtersets.py:196 vpn/filtersets.py:340 msgid "Site (ID)" msgstr "" -#: circuits/filtersets.py:236 core/filtersets.py:72 dcim/filtersets.py:631 -#: dcim/filtersets.py:1173 dcim/filtersets.py:1975 extras/filtersets.py:40 -#: extras/filtersets.py:69 extras/filtersets.py:108 extras/filtersets.py:137 -#: extras/filtersets.py:164 extras/filtersets.py:195 extras/filtersets.py:264 -#: extras/filtersets.py:312 extras/filtersets.py:372 extras/filtersets.py:531 -#: extras/filtersets.py:573 extras/filtersets.py:614 extras/filtersets.py:637 -#: ipam/forms/model_forms.py:432 netbox/filtersets.py:275 -#: netbox/forms/__init__.py:23 netbox/forms/base.py:151 -#: 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:99 +#: circuits/filtersets.py:236 core/filtersets.py:73 core/filtersets.py:132 +#: dcim/filtersets.py:633 dcim/filtersets.py:1171 dcim/filtersets.py:1973 +#: 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:430 +#: netbox/filtersets.py:275 netbox/forms/__init__.py:23 +#: netbox/forms/base.py:152 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:86 +#: users/filtersets.py:21 users/filtersets.py:37 users/filtersets.py:69 +#: users/filtersets.py:117 utilities/forms/forms.py:99 msgid "Search" msgstr "" @@ -251,9 +252,9 @@ msgstr "" #: circuits/forms/bulk_edit.py:25 circuits/forms/filtersets.py:56 #: circuits/forms/model_forms.py:26 circuits/tables/providers.py:33 -#: dcim/forms/bulk_edit.py:126 dcim/forms/filtersets.py:185 +#: dcim/forms/bulk_edit.py:126 dcim/forms/filtersets.py:187 #: dcim/forms/model_forms.py:126 dcim/tables/sites.py:94 -#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:221 +#: 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 msgid "ASNs" @@ -276,24 +277,24 @@ msgstr "" #: 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:35 -#: extras/forms/bulk_edit.py:118 extras/forms/bulk_edit.py:147 -#: extras/forms/bulk_edit.py:242 extras/forms/bulk_edit.py:266 -#: extras/forms/bulk_edit.py:280 extras/tables/tables.py:78 -#: ipam/forms/bulk_edit.py:52 ipam/forms/bulk_edit.py:72 -#: ipam/forms/bulk_edit.py:92 ipam/forms/bulk_edit.py:116 -#: ipam/forms/bulk_edit.py:145 ipam/forms/bulk_edit.py:174 -#: ipam/forms/bulk_edit.py:193 ipam/forms/bulk_edit.py:262 -#: ipam/forms/bulk_edit.py:306 ipam/forms/bulk_edit.py:354 -#: ipam/forms/bulk_edit.py:397 ipam/forms/bulk_edit.py:425 -#: ipam/forms/bulk_edit.py:553 ipam/forms/bulk_edit.py:584 -#: ipam/forms/bulk_edit.py:613 templates/account/token.html:36 +#: 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:113 +#: 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 @@ -302,44 +303,53 @@ msgstr "" #: 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:61 +#: 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:73 templates/dcim/sitegroup.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 #: templates/extras/dashboard/widget_add.html:14 -#: 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/generic/bulk_import.html:118 +#: 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/l2vpn.html:27 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/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/wireless/wirelesslan.html:27 +#: 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:29 virtualization/forms/bulk_edit.py:43 -#: virtualization/forms/bulk_edit.py:174 virtualization/forms/bulk_edit.py:225 -#: wireless/forms/bulk_edit.py:28 wireless/forms/bulk_edit.py:81 -#: wireless/forms/bulk_edit.py:128 +#: virtualization/forms/bulk_edit.py:31 virtualization/forms/bulk_edit.py:45 +#: 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 msgid "Description" msgstr "" @@ -347,7 +357,7 @@ msgstr "" #: 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:70 circuits/forms/filtersets.py:88 -#: circuits/forms/filtersets.py:116 circuits/forms/filtersets.py:130 +#: circuits/forms/filtersets.py:116 circuits/forms/filtersets.py:131 #: 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 @@ -368,11 +378,11 @@ msgstr "" #: 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:970 dcim/forms/filtersets.py:1344 -#: dcim/forms/filtersets.py:1365 dcim/tables/devices.py:700 -#: dcim/tables/devices.py:760 dcim/tables/devices.py:983 +#: dcim/forms/filtersets.py:977 dcim/forms/filtersets.py:1353 +#: dcim/forms/filtersets.py:1374 dcim/tables/devices.py:717 +#: dcim/tables/devices.py:777 dcim/tables/devices.py:1004 #: dcim/tables/devicetypes.py:245 dcim/tables/devicetypes.py:260 -#: dcim/tables/racks.py:32 extras/forms/bulk_edit.py:238 +#: dcim/tables/racks.py:32 extras/forms/bulk_edit.py:259 #: extras/tables/tables.py:323 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 @@ -382,8 +392,8 @@ msgid "Color" msgstr "" #: circuits/forms/bulk_edit.py:113 circuits/forms/bulk_import.py:89 -#: circuits/forms/filtersets.py:125 core/forms/bulk_edit.py:17 -#: core/forms/filtersets.py:30 core/tables/data.py:20 core/tables/jobs.py:18 +#: circuits/forms/filtersets.py:126 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 @@ -394,42 +404,44 @@ msgstr "" #: dcim/forms/bulk_import.py:717 dcim/forms/bulk_import.py:800 #: dcim/forms/bulk_import.py:890 dcim/forms/bulk_import.py:932 #: dcim/forms/bulk_import.py:1145 dcim/forms/bulk_import.py:1304 -#: dcim/forms/filtersets.py:283 dcim/forms/filtersets.py:860 -#: dcim/forms/filtersets.py:960 dcim/forms/filtersets.py:1080 -#: dcim/forms/filtersets.py:1150 dcim/forms/filtersets.py:1172 -#: dcim/forms/filtersets.py:1194 dcim/forms/filtersets.py:1211 -#: dcim/forms/filtersets.py:1244 dcim/forms/filtersets.py:1339 -#: dcim/forms/filtersets.py:1360 dcim/forms/object_import.py:89 +#: 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:816 -#: dcim/tables/power.py:77 extras/forms/bulk_import.py:37 +#: dcim/tables/devices.py:211 dcim/tables/devices.py:833 +#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39 #: extras/tables/tables.py:345 extras/tables/tables.py:443 -#: ipam/forms/bulk_edit.py:603 ipam/forms/bulk_import.py:524 -#: ipam/forms/filtersets.py:537 netbox/tables/tables.py:225 -#: 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:171 -#: templates/dcim/interface.html:319 templates/dcim/powerfeed.html:35 -#: templates/dcim/poweroutlet.html:39 templates/dcim/powerport.html:39 -#: templates/dcim/rack.html:88 templates/dcim/rearport.html:39 -#: templates/ipam/l2vpn.html:23 templates/virtualization/cluster.html:20 +#: 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 #: templates/wireless/inc/wirelesslink_interface.html:14 -#: virtualization/forms/bulk_edit.py:57 virtualization/forms/bulk_import.py:40 -#: virtualization/forms/filtersets.py:50 virtualization/forms/model_forms.py:64 -#: virtualization/tables/clusters.py:66 +#: 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:259 vpn/forms/filtersets.py:214 +#: vpn/forms/model_forms.py:83 vpn/forms/model_forms.py:118 +#: vpn/forms/model_forms.py:232 msgid "Type" msgstr "" #: circuits/forms/bulk_edit.py:123 circuits/forms/bulk_import.py:82 -#: circuits/forms/filtersets.py:138 circuits/forms/model_forms.py:97 +#: circuits/forms/filtersets.py:139 circuits/forms/model_forms.py:97 msgid "Provider account" msgstr "" #: circuits/forms/bulk_edit.py:131 circuits/forms/bulk_import.py:95 -#: circuits/forms/filtersets.py:149 core/forms/filtersets.py:35 -#: core/forms/filtersets.py:76 core/tables/data.py:23 core/tables/jobs.py:25 +#: circuits/forms/filtersets.py:150 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 @@ -437,39 +449,41 @@ msgstr "" #: dcim/forms/bulk_import.py:87 dcim/forms/bulk_import.py:146 #: dcim/forms/bulk_import.py:194 dcim/forms/bulk_import.py:442 #: dcim/forms/bulk_import.py:596 dcim/forms/bulk_import.py:1139 -#: dcim/forms/bulk_import.py:1299 dcim/forms/filtersets.py:168 -#: dcim/forms/filtersets.py:227 dcim/forms/filtersets.py:278 -#: dcim/forms/filtersets.py:719 dcim/forms/filtersets.py:828 -#: dcim/forms/filtersets.py:864 dcim/forms/filtersets.py:965 -#: dcim/forms/filtersets.py:1075 dcim/tables/devices.py:173 -#: dcim/tables/devices.py:819 dcim/tables/devices.py:1043 +#: dcim/forms/bulk_import.py:1299 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:836 dcim/tables/devices.py:1064 #: 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:242 -#: ipam/forms/bulk_edit.py:291 ipam/forms/bulk_edit.py:339 -#: ipam/forms/bulk_edit.py:543 ipam/forms/bulk_import.py:194 -#: ipam/forms/bulk_import.py:259 ipam/forms/bulk_import.py:295 -#: ipam/forms/bulk_import.py:461 ipam/forms/filtersets.py:209 -#: ipam/forms/filtersets.py:274 ipam/forms/filtersets.py:344 -#: ipam/forms/filtersets.py:484 ipam/forms/model_forms.py:451 +#: 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 +#: 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:449 #: 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:200 +#: 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:53 -#: templates/dcim/site.html:56 templates/extras/report_list.html:49 +#: 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/virtualization/virtualmachine.html:22 templates/vpn/tunnel.html:26 #: templates/wireless/wirelesslan.html:23 -#: templates/wireless/wirelesslink.html:20 users/forms/filtersets.py:35 -#: users/forms/model_forms.py:196 virtualization/forms/bulk_edit.py:67 -#: virtualization/forms/bulk_edit.py:115 virtualization/forms/bulk_import.py:53 -#: virtualization/forms/bulk_import.py:79 virtualization/forms/filtersets.py:58 -#: virtualization/forms/filtersets.py:153 virtualization/tables/clusters.py:74 -#: virtualization/tables/virtualmachines.py:48 wireless/forms/bulk_edit.py:42 +#: templates/wireless/wirelesslink.html:20 users/forms/filtersets.py:33 +#: users/forms/model_forms.py:196 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:50 vpn/forms/bulk_edit.py:38 +#: vpn/forms/bulk_import.py:37 vpn/forms/filtersets.py:46 +#: vpn/tables/tunnels.py:44 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 @@ -485,63 +499,64 @@ msgstr "" #: dcim/forms/bulk_import.py:106 dcim/forms/bulk_import.py:151 #: dcim/forms/bulk_import.py:187 dcim/forms/bulk_import.py:274 #: dcim/forms/bulk_import.py:416 dcim/forms/bulk_import.py:1151 -#: dcim/forms/bulk_import.py:1356 dcim/forms/filtersets.py:164 -#: dcim/forms/filtersets.py:195 dcim/forms/filtersets.py:246 -#: dcim/forms/filtersets.py:330 dcim/forms/filtersets.py:351 -#: dcim/forms/filtersets.py:647 dcim/forms/filtersets.py:819 -#: dcim/forms/filtersets.py:884 dcim/forms/filtersets.py:914 -#: dcim/forms/filtersets.py:1035 dcim/tables/power.py:88 -#: extras/filtersets.py:486 extras/forms/filtersets.py:306 -#: extras/forms/filtersets.py:380 ipam/forms/bulk_edit.py:42 -#: ipam/forms/bulk_edit.py:67 ipam/forms/bulk_edit.py:111 -#: ipam/forms/bulk_edit.py:140 ipam/forms/bulk_edit.py:165 -#: ipam/forms/bulk_edit.py:237 ipam/forms/bulk_edit.py:286 -#: ipam/forms/bulk_edit.py:334 ipam/forms/bulk_edit.py:538 -#: ipam/forms/bulk_edit.py:608 ipam/forms/bulk_import.py:40 -#: ipam/forms/bulk_import.py:69 ipam/forms/bulk_import.py:97 -#: ipam/forms/bulk_import.py:117 ipam/forms/bulk_import.py:137 -#: ipam/forms/bulk_import.py:166 ipam/forms/bulk_import.py:252 -#: ipam/forms/bulk_import.py:288 ipam/forms/bulk_import.py:454 -#: ipam/forms/bulk_import.py:518 ipam/forms/filtersets.py:51 -#: ipam/forms/filtersets.py:71 ipam/forms/filtersets.py:103 -#: ipam/forms/filtersets.py:123 ipam/forms/filtersets.py:146 -#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260 -#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:453 -#: ipam/forms/filtersets.py:534 ipam/tables/ip.py:451 ipam/tables/vlans.py:224 +#: dcim/forms/bulk_import.py:1356 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 +#: 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/tables/ip.py:451 ipam/tables/vlans.py:224 #: templates/circuits/circuit.html:39 templates/dcim/cable.html:24 -#: templates/dcim/device.html:98 templates/dcim/location.html:52 -#: templates/dcim/powerfeed.html:47 templates/dcim/rack.html:44 -#: templates/dcim/rackreservation.html:56 templates/dcim/site.html:60 +#: 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/l2vpn.html:31 templates/ipam/prefix.html:29 -#: 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/wireless/wirelesslan.html:35 +#: 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:56 -#: tenancy/tables/columns.py:64 virtualization/forms/bulk_edit.py:73 -#: virtualization/forms/bulk_edit.py:152 virtualization/forms/bulk_import.py:65 -#: virtualization/forms/bulk_import.py:114 -#: virtualization/forms/filtersets.py:44 virtualization/forms/filtersets.py:98 -#: 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 +#: 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 +#: 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 +#: vpn/forms/bulk_import.py:59 vpn/forms/bulk_import.py:253 +#: 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 msgid "Tenant" msgstr "" -#: circuits/forms/bulk_edit.py:142 circuits/forms/filtersets.py:173 +#: circuits/forms/bulk_edit.py:142 circuits/forms/filtersets.py:174 msgid "Install date" msgstr "" -#: circuits/forms/bulk_edit.py:147 circuits/forms/filtersets.py:178 +#: circuits/forms/bulk_edit.py:147 circuits/forms/filtersets.py:179 msgid "Termination date" msgstr "" -#: circuits/forms/bulk_edit.py:153 circuits/forms/filtersets.py:185 +#: circuits/forms/bulk_edit.py:153 circuits/forms/filtersets.py:186 msgid "Commit rate (Kbps)" msgstr "" @@ -551,18 +566,19 @@ 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:671 -#: dcim/forms/model_forms.py:1477 ipam/forms/model_forms.py:63 -#: ipam/forms/model_forms.py:116 ipam/forms/model_forms.py:137 -#: ipam/forms/model_forms.py:161 ipam/forms/model_forms.py:233 -#: ipam/forms/model_forms.py:259 ipam/forms/model_forms.py:781 -#: 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 +#: dcim/forms/model_forms.py:260 dcim/forms/model_forms.py:672 +#: dcim/forms/model_forms.py:1478 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:82 -#: virtualization/forms/model_forms.py:223 wireless/forms/model_forms.py:55 -#: wireless/forms/model_forms.py:160 +#: 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:404 +#: wireless/forms/model_forms.py:55 wireless/forms/model_forms.py:160 msgid "Tenancy" msgstr "" @@ -573,7 +589,7 @@ msgstr "" #: circuits/forms/bulk_import.py:70 dcim/forms/bulk_import.py:170 #: dcim/forms/bulk_import.py:380 dcim/forms/bulk_import.py:1092 -#: dcim/forms/bulk_import.py:1171 extras/forms/bulk_import.py:167 +#: dcim/forms/bulk_import.py:1171 extras/forms/bulk_import.py:229 msgid "RGB color in hexadecimal. Example:" msgstr "" @@ -588,28 +604,28 @@ msgstr "" #: circuits/forms/bulk_import.py:97 dcim/forms/bulk_import.py:89 #: dcim/forms/bulk_import.py:148 dcim/forms/bulk_import.py:196 #: dcim/forms/bulk_import.py:444 dcim/forms/bulk_import.py:598 -#: dcim/forms/bulk_import.py:1301 ipam/forms/bulk_import.py:196 -#: ipam/forms/bulk_import.py:261 ipam/forms/bulk_import.py:297 -#: ipam/forms/bulk_import.py:463 virtualization/forms/bulk_import.py:55 -#: virtualization/forms/bulk_import.py:81 +#: dcim/forms/bulk_import.py:1301 ipam/forms/bulk_import.py:193 +#: ipam/forms/bulk_import.py:258 ipam/forms/bulk_import.py:294 +#: ipam/forms/bulk_import.py:460 virtualization/forms/bulk_import.py:56 +#: virtualization/forms/bulk_import.py:82 vpn/forms/bulk_import.py:39 msgid "Operational status" msgstr "" #: circuits/forms/bulk_import.py:104 dcim/forms/bulk_import.py:110 #: dcim/forms/bulk_import.py:155 dcim/forms/bulk_import.py:278 #: dcim/forms/bulk_import.py:420 dcim/forms/bulk_import.py:1155 -#: dcim/forms/bulk_import.py:1296 ipam/forms/bulk_import.py:44 -#: ipam/forms/bulk_import.py:73 ipam/forms/bulk_import.py:101 -#: ipam/forms/bulk_import.py:121 ipam/forms/bulk_import.py:141 -#: ipam/forms/bulk_import.py:170 ipam/forms/bulk_import.py:256 -#: ipam/forms/bulk_import.py:292 ipam/forms/bulk_import.py:458 -#: virtualization/forms/bulk_import.py:69 -#: virtualization/forms/bulk_import.py:118 wireless/forms/bulk_import.py:59 -#: wireless/forms/bulk_import.py:101 +#: dcim/forms/bulk_import.py:1296 ipam/forms/bulk_import.py:41 +#: ipam/forms/bulk_import.py:70 ipam/forms/bulk_import.py:98 +#: ipam/forms/bulk_import.py:118 ipam/forms/bulk_import.py:138 +#: ipam/forms/bulk_import.py:167 ipam/forms/bulk_import.py:253 +#: ipam/forms/bulk_import.py:289 ipam/forms/bulk_import.py:455 +#: virtualization/forms/bulk_import.py:70 +#: virtualization/forms/bulk_import.py:119 vpn/forms/bulk_import.py:63 +#: wireless/forms/bulk_import.py:59 wireless/forms/bulk_import.py:101 msgid "Assigned tenant" msgstr "" -#: circuits/forms/bulk_import.py:123 circuits/forms/filtersets.py:146 +#: circuits/forms/bulk_import.py:123 circuits/forms/filtersets.py:147 #: circuits/forms/model_forms.py:143 msgid "Provider network" msgstr "" @@ -620,90 +636,92 @@ msgstr "" #: dcim/forms/bulk_edit.py:772 dcim/forms/bulk_import.py:181 #: dcim/forms/bulk_import.py:255 dcim/forms/bulk_import.py:483 #: dcim/forms/bulk_import.py:1245 dcim/forms/bulk_import.py:1279 -#: dcim/forms/filtersets.py:91 dcim/forms/filtersets.py:243 -#: dcim/forms/filtersets.py:275 dcim/forms/filtersets.py:327 -#: dcim/forms/filtersets.py:378 dcim/forms/filtersets.py:644 -#: dcim/forms/filtersets.py:682 dcim/forms/filtersets.py:883 -#: dcim/forms/filtersets.py:912 dcim/forms/filtersets.py:932 -#: dcim/forms/filtersets.py:996 dcim/forms/filtersets.py:1025 -#: dcim/forms/filtersets.py:1034 dcim/forms/filtersets.py:1145 -#: dcim/forms/filtersets.py:1167 dcim/forms/filtersets.py:1189 -#: dcim/forms/filtersets.py:1206 dcim/forms/filtersets.py:1226 -#: dcim/forms/filtersets.py:1333 dcim/forms/filtersets.py:1355 -#: dcim/forms/filtersets.py:1376 dcim/forms/filtersets.py:1391 -#: dcim/forms/filtersets.py:1402 dcim/forms/model_forms.py:182 +#: 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:402 -#: dcim/forms/model_forms.py:634 dcim/tables/devices.py:190 +#: dcim/forms/model_forms.py:635 dcim/tables/devices.py:190 #: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143 -#: extras/filtersets.py:410 extras/forms/filtersets.py:303 -#: ipam/forms/bulk_edit.py:458 ipam/forms/filtersets.py:172 -#: ipam/forms/filtersets.py:403 ipam/forms/filtersets.py:425 -#: ipam/forms/filtersets.py:451 ipam/forms/model_forms.py:562 -#: templates/dcim/device.html:34 templates/dcim/device_edit.html:30 +#: 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:560 +#: 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:27 -#: templates/dcim/rackreservation.html:34 virtualization/forms/filtersets.py:43 -#: virtualization/forms/filtersets.py:96 wireless/forms/model_forms.py:88 +#: 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 msgid "Location" msgstr "" -#: circuits/forms/filtersets.py:27 ipam/forms/model_forms.py:160 +#: circuits/forms/filtersets.py:27 ipam/forms/model_forms.py:158 #: ipam/models/asns.py:108 ipam/models/asns.py:125 ipam/tables/asn.py:41 #: templates/ipam/asn.html:20 msgid "ASN" msgstr "" #: circuits/forms/filtersets.py:28 circuits/forms/filtersets.py:120 -#: dcim/forms/filtersets.py:135 dcim/forms/filtersets.py:149 -#: dcim/forms/filtersets.py:165 dcim/forms/filtersets.py:196 -#: dcim/forms/filtersets.py:247 dcim/forms/filtersets.py:331 -#: dcim/forms/filtersets.py:405 dcim/forms/filtersets.py:648 -#: dcim/forms/filtersets.py:997 netbox/navigation/menu.py:45 +#: 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:23 -#: virtualization/forms/filtersets.py:34 virtualization/forms/filtersets.py:45 -#: virtualization/forms/filtersets.py:99 +#: tenancy/tables/contacts.py:25 tenancy/views.py:18 +#: virtualization/forms/filtersets.py:36 virtualization/forms/filtersets.py:47 +#: virtualization/forms/filtersets.py:102 msgid "Contacts" msgstr "" -#: circuits/forms/filtersets.py:33 circuits/forms/filtersets.py:156 +#: circuits/forms/filtersets.py:33 circuits/forms/filtersets.py:157 #: 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:69 dcim/forms/filtersets.py:175 -#: dcim/forms/filtersets.py:201 dcim/forms/filtersets.py:253 -#: dcim/forms/filtersets.py:356 dcim/forms/filtersets.py:659 -#: dcim/forms/filtersets.py:889 dcim/forms/filtersets.py:919 -#: dcim/forms/filtersets.py:1002 dcim/forms/filtersets.py:1041 -#: dcim/forms/filtersets.py:1451 dcim/forms/filtersets.py:1475 -#: dcim/forms/filtersets.py:1499 dcim/forms/model_forms.py:80 -#: dcim/forms/model_forms.py:115 dcim/forms/object_create.py:341 -#: dcim/tables/devices.py:176 dcim/tables/sites.py:85 extras/filtersets.py:377 -#: ipam/forms/bulk_edit.py:207 ipam/forms/bulk_edit.py:439 -#: ipam/forms/bulk_edit.py:511 ipam/forms/filtersets.py:216 -#: ipam/forms/filtersets.py:410 ipam/forms/filtersets.py:458 -#: ipam/forms/filtersets.py:576 ipam/forms/model_forms.py:534 -#: templates/dcim/device.html:17 templates/dcim/region.html:26 -#: templates/dcim/site.html:30 virtualization/forms/bulk_edit.py:78 -#: virtualization/forms/filtersets.py:55 virtualization/forms/filtersets.py:126 -#: virtualization/forms/model_forms.py:94 +#: 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 +#: 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:532 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 msgid "Region" msgstr "" -#: circuits/forms/filtersets.py:38 circuits/forms/filtersets.py:161 +#: circuits/forms/filtersets.py:38 circuits/forms/filtersets.py:162 #: dcim/forms/bulk_edit.py:230 dcim/forms/bulk_edit.py:755 -#: dcim/forms/filtersets.py:74 dcim/forms/filtersets.py:180 -#: dcim/forms/filtersets.py:206 dcim/forms/filtersets.py:266 -#: dcim/forms/filtersets.py:361 dcim/forms/filtersets.py:664 -#: dcim/forms/filtersets.py:894 dcim/forms/filtersets.py:1007 -#: dcim/forms/filtersets.py:1046 dcim/forms/object_create.py:349 -#: extras/filtersets.py:394 ipam/forms/bulk_edit.py:212 -#: ipam/forms/bulk_edit.py:446 ipam/forms/bulk_edit.py:516 -#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:415 -#: ipam/forms/filtersets.py:463 ipam/forms/model_forms.py:547 -#: virtualization/forms/bulk_edit.py:83 virtualization/forms/filtersets.py:65 -#: virtualization/forms/filtersets.py:131 -#: virtualization/forms/model_forms.py:100 +#: 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:545 +#: virtualization/forms/bulk_edit.py:85 virtualization/forms/filtersets.py:68 +#: virtualization/forms/filtersets.py:134 +#: virtualization/forms/model_forms.py:101 msgid "Site group" msgstr "" @@ -713,25 +731,27 @@ msgstr "" #: circuits/forms/filtersets.py:65 circuits/forms/filtersets.py:83 #: circuits/forms/filtersets.py:102 circuits/forms/filtersets.py:117 -#: core/forms/filtersets.py:64 dcim/forms/bulk_edit.py:718 -#: dcim/forms/filtersets.py:163 dcim/forms/filtersets.py:194 -#: dcim/forms/filtersets.py:818 dcim/forms/filtersets.py:913 -#: dcim/forms/filtersets.py:1036 dcim/forms/filtersets.py:1144 -#: dcim/forms/filtersets.py:1166 dcim/forms/filtersets.py:1188 -#: dcim/forms/filtersets.py:1205 dcim/forms/filtersets.py:1222 -#: dcim/forms/filtersets.py:1332 dcim/forms/filtersets.py:1354 -#: dcim/forms/filtersets.py:1375 dcim/forms/filtersets.py:1390 -#: dcim/forms/filtersets.py:1401 extras/forms/filtersets.py:42 -#: extras/forms/filtersets.py:108 extras/forms/filtersets.py:139 -#: extras/forms/filtersets.py:179 extras/forms/filtersets.py:195 -#: extras/forms/filtersets.py:228 extras/forms/filtersets.py:425 -#: extras/forms/filtersets.py:466 ipam/forms/filtersets.py:102 -#: ipam/forms/filtersets.py:259 ipam/forms/filtersets.py:298 -#: ipam/forms/filtersets.py:371 ipam/forms/filtersets.py:452 -#: ipam/forms/filtersets.py:510 ipam/forms/filtersets.py:533 -#: virtualization/forms/filtersets.py:42 virtualization/forms/filtersets.py:97 -#: virtualization/forms/filtersets.py:187 wireless/forms/filtersets.py:33 -#: wireless/forms/filtersets.py:73 +#: 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 msgid "Attributes" msgstr "" @@ -752,12 +772,12 @@ msgstr "" msgid "Circuit Type" msgstr "" -#: circuits/models/circuits.py:25 dcim/models/cables.py:68 -#: dcim/models/device_component_templates.py:492 -#: dcim/models/device_component_templates.py:592 -#: dcim/models/device_components.py:967 dcim/models/device_components.py:1041 -#: dcim/models/device_components.py:1157 dcim/models/devices.py:467 -#: dcim/models/racks.py:43 extras/models/tags.py:31 +#: circuits/models/circuits.py:25 dcim/models/cables.py:67 +#: dcim/models/device_component_templates.py:491 +#: 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:467 +#: dcim/models/racks.py:43 extras/models/tags.py:28 msgid "color" msgstr "" @@ -777,15 +797,15 @@ msgstr "" msgid "Unique circuit ID" msgstr "" -#: circuits/models/circuits.py:67 core/models/data.py:55 core/models/jobs.py:85 -#: dcim/models/cables.py:50 dcim/models/devices.py:641 -#: dcim/models/devices.py:1160 dcim/models/devices.py:1369 +#: circuits/models/circuits.py:67 core/models/data.py:54 core/models/jobs.py:85 +#: dcim/models/cables.py:49 dcim/models/devices.py:641 +#: dcim/models/devices.py:1165 dcim/models/devices.py:1374 #: dcim/models/power.py:95 dcim/models/racks.py:97 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:173 +#: ipam/models/ip.py:729 ipam/models/vlans.py:175 #: virtualization/models/clusters.py:74 -#: virtualization/models/virtualmachines.py:81 wireless/models.py:94 -#: wireless/models.py:158 +#: virtualization/models/virtualmachines.py:82 vpn/models/tunnels.py:40 +#: wireless/models.py:94 wireless/models.py:158 msgid "status" msgstr "" @@ -849,15 +869,16 @@ msgstr "" msgid "Patch panel ID and port number(s)" msgstr "" -#: circuits/models/circuits.py:210 dcim/models/device_component_templates.py:62 -#: dcim/models/device_components.py:70 dcim/models/racks.py:536 +#: circuits/models/circuits.py:210 dcim/models/device_component_templates.py:61 +#: dcim/models/device_components.py:69 dcim/models/racks.py:537 #: extras/models/configs.py:45 extras/models/configs.py:219 -#: extras/models/customfields.py:116 extras/models/models.py:343 -#: extras/models/models.py:458 extras/models/staging.py:31 -#: extras/models/tags.py:35 netbox/models/__init__.py:109 +#: 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/tags.py:32 netbox/models/__init__.py:109 #: netbox/models/__init__.py:144 netbox/models/__init__.py:190 -#: users/models.py:270 users/models.py:345 -#: virtualization/models/virtualmachines.py:256 +#: users/models.py:273 users/models.py:348 +#: virtualization/models/virtualmachines.py:282 msgid "description" msgstr "" @@ -870,25 +891,28 @@ msgid "circuit terminations" msgstr "" #: circuits/models/providers.py:22 circuits/models/providers.py:66 -#: circuits/models/providers.py:104 core/models/data.py:42 -#: core/models/jobs.py:46 dcim/models/device_component_templates.py:44 -#: dcim/models/device_components.py:55 dcim/models/devices.py:581 -#: dcim/models/devices.py:1300 dcim/models/devices.py:1365 +#: circuits/models/providers.py:104 core/models/data.py:41 +#: core/models/jobs.py:46 dcim/models/device_component_templates.py:43 +#: dcim/models/device_components.py:54 dcim/models/devices.py:581 +#: dcim/models/devices.py:1305 dcim/models/devices.py:1370 #: dcim/models/power.py:39 dcim/models/power.py:91 dcim/models/racks.py:62 #: dcim/models/sites.py:138 extras/models/configs.py:36 -#: extras/models/configs.py:215 extras/models/customfields.py:83 -#: extras/models/models.py:55 extras/models/models.py:243 -#: extras/models/models.py:339 extras/models/models.py:448 -#: extras/models/models.py:543 extras/models/staging.py:26 -#: ipam/models/asns.py:18 ipam/models/fhrp.py:26 ipam/models/l2vpn.py:22 +#: 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:27 ipam/models/vlans.py:162 ipam/models/vrfs.py:22 +#: 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:63 +#: netbox/models/__init__.py:180 tenancy/models/contacts.py:64 #: tenancy/models/tenants.py:20 tenancy/models/tenants.py:45 -#: users/models.py:341 virtualization/models/clusters.py:57 -#: virtualization/models/virtualmachines.py:69 -#: virtualization/models/virtualmachines.py:246 wireless/models.py:50 +#: users/models.py:344 virtualization/models/clusters.py:57 +#: virtualization/models/virtualmachines.py:70 +#: virtualization/models/virtualmachines.py:272 vpn/models/crypto.py:24 +#: vpn/models/crypto.py:71 vpn/models/crypto.py:119 vpn/models/crypto.py:171 +#: vpn/models/crypto.py:209 vpn/models/l2vpn.py:22 vpn/models/tunnels.py:35 +#: wireless/models.py:50 msgid "name" msgstr "" @@ -897,11 +921,10 @@ 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:453 ipam/models/asns.py:23 -#: ipam/models/l2vpn.py:27 ipam/models/vlans.py:31 -#: netbox/models/__init__.py:140 netbox/models/__init__.py:185 -#: tenancy/models/tenants.py:25 tenancy/models/tenants.py:49 -#: wireless/models.py:55 +#: dcim/models/sites.py:149 extras/models/models.py:536 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 msgid "slug" msgstr "" @@ -939,30 +962,29 @@ 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:59 +#: 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:318 dcim/tables/devices.py:395 -#: dcim/tables/devices.py:439 dcim/tables/devices.py:485 -#: dcim/tables/devices.py:537 dcim/tables/devices.py:646 -#: dcim/tables/devices.py:727 dcim/tables/devices.py:777 -#: dcim/tables/devices.py:843 dcim/tables/devices.py:954 -#: dcim/tables/devices.py:974 dcim/tables/devices.py:1003 -#: dcim/tables/devices.py:1033 dcim/tables/devicetypes.py:32 +#: dcim/tables/devices.py:439 dcim/tables/devices.py:491 +#: dcim/tables/devices.py:543 dcim/tables/devices.py:663 +#: dcim/tables/devices.py:744 dcim/tables/devices.py:794 +#: dcim/tables/devices.py:860 dcim/tables/devices.py:975 +#: dcim/tables/devices.py:995 dcim/tables/devices.py:1024 +#: dcim/tables/devices.py:1054 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:187 extras/tables/tables.py:65 -#: extras/tables/tables.py:105 extras/tables/tables.py:137 -#: extras/tables/tables.py:161 extras/tables/tables.py:226 -#: extras/tables/tables.py:273 extras/tables/tables.py:319 -#: extras/tables/tables.py:371 extras/tables/tables.py:394 -#: ipam/forms/bulk_edit.py:392 ipam/forms/filtersets.py:375 -#: ipam/tables/asn.py:16 ipam/tables/ip.py:85 ipam/tables/ip.py:159 -#: ipam/tables/l2vpn.py:23 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 +#: 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:319 extras/tables/tables.py:371 +#: extras/tables/tables.py:394 ipam/forms/bulk_edit.py:390 +#: ipam/forms/filtersets.py:372 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 @@ -970,7 +992,7 @@ msgstr "" #: templates/dcim/devicerole.html:29 templates/dcim/frontport.html:31 #: 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:167 +#: 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 @@ -981,11 +1003,11 @@ msgstr "" #: 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/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/l2vpn.html:15 +#: 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 @@ -996,24 +1018,35 @@ msgstr "" #: 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/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 #: 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:19 -#: virtualization/forms/object_create.py:12 +#: users/tables.py:79 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 #: virtualization/tables/clusters.py:62 -#: virtualization/tables/virtualmachines.py:43 -#: virtualization/tables/virtualmachines.py:114 -#: wireless/tables/wirelesslan.py:18 wireless/tables/wirelesslan.py:79 +#: virtualization/tables/virtualmachines.py:45 +#: virtualization/tables/virtualmachines.py:119 +#: virtualization/tables/virtualmachines.py:172 vpn/tables/crypto.py:18 +#: vpn/tables/crypto.py:57 vpn/tables/crypto.py:93 vpn/tables/crypto.py:129 +#: vpn/tables/crypto.py:158 vpn/tables/l2vpn.py:23 vpn/tables/tunnels.py:18 +#: vpn/tables/tunnels.py:40 wireless/tables/wirelesslan.py:18 +#: wireless/tables/wirelesslan.py:79 msgid "Name" msgstr "" #: circuits/tables/circuits.py:38 circuits/tables/providers.py:45 -#: circuits/tables/providers.py:79 netbox/navigation/menu.py:235 -#: netbox/navigation/menu.py:239 netbox/navigation/menu.py:241 +#: 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 @@ -1038,19 +1071,21 @@ 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:1016 dcim/tables/devicetypes.py:92 +#: dcim/tables/devices.py:1037 dcim/tables/devicetypes.py:92 #: dcim/tables/modules.py:29 dcim/tables/modules.py:72 dcim/tables/power.py:39 -#: dcim/tables/power.py:91 dcim/tables/racks.py:76 dcim/tables/racks.py:156 -#: dcim/tables/sites.py:103 extras/forms/bulk_edit.py:299 -#: extras/tables/tables.py:485 ipam/tables/asn.py:68 ipam/tables/fhrp.py:34 +#: 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:485 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/l2vpn.py:37 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 -#: virtualization/tables/virtualmachines.py:66 +#: 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 +#: virtualization/tables/virtualmachines.py:68 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:57 #: wireless/tables/wirelesslan.py:27 wireless/tables/wirelesslan.py:58 msgid "Comments" msgstr "" @@ -1079,47 +1114,47 @@ msgstr "" msgid "Syncing" msgstr "" -#: core/choices.py:21 core/choices.py:57 core/tables/jobs.py:40 -#: extras/choices.py:199 templates/core/job.html:69 +#: core/choices.py:21 core/choices.py:57 core/tables/jobs.py:41 +#: extras/choices.py:210 templates/core/job.html:75 msgid "Completed" msgstr "" #: core/choices.py:22 core/choices.py:59 dcim/choices.py:176 -#: dcim/choices.py:222 dcim/choices.py:1496 extras/choices.py:201 +#: dcim/choices.py:222 dcim/choices.py:1496 extras/choices.py:212 #: virtualization/choices.py:47 msgid "Failed" msgstr "" -#: core/choices.py:35 netbox/navigation/menu.py:311 +#: 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 msgid "Scripts" msgstr "" -#: core/choices.py:36 netbox/navigation/menu.py:305 +#: 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 msgid "Reports" msgstr "" -#: core/choices.py:54 extras/choices.py:196 +#: core/choices.py:54 extras/choices.py:207 msgid "Pending" msgstr "" -#: core/choices.py:55 core/tables/jobs.py:31 extras/choices.py:197 -#: templates/core/job.html:56 +#: core/choices.py:55 core/tables/jobs.py:32 extras/choices.py:208 +#: templates/core/job.html:62 msgid "Scheduled" msgstr "" -#: core/choices.py:56 extras/choices.py:198 +#: core/choices.py:56 extras/choices.py:209 msgid "Running" msgstr "" -#: core/choices.py:58 extras/choices.py:200 +#: core/choices.py:58 extras/choices.py:211 msgid "Errored" msgstr "" -#: core/data_backends.py:29 templates/dcim/interface.html:220 +#: core/data_backends.py:29 templates/dcim/interface.html:224 msgid "Local" msgstr "" @@ -1150,21 +1185,25 @@ msgstr "" msgid "AWS secret access key" msgstr "" -#: core/filtersets.py:48 extras/filtersets.py:172 extras/filtersets.py:507 -#: extras/filtersets.py:535 +#: core/filtersets.py:49 extras/filtersets.py:203 extras/filtersets.py:538 +#: extras/filtersets.py:566 msgid "Data source (ID)" msgstr "" -#: core/filtersets.py:54 +#: core/filtersets.py:55 msgid "Data source (name)" msgstr "" -#: core/forms/bulk_edit.py:24 ipam/forms/bulk_edit.py:49 +#: core/forms/bulk_edit.py:24 ipam/forms/bulk_edit.py:47 msgid "Enforce unique space" msgstr "" -#: core/forms/bulk_edit.py:33 extras/forms/model_forms.py:196 -#: templates/extras/savedfilter.html:57 +#: core/forms/bulk_edit.py:33 extras/forms/model_forms.py:202 +#: 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:294 +#: vpn/forms/model_forms.py:315 vpn/forms/model_forms.py:329 +#: vpn/forms/model_forms.py:350 vpn/forms/model_forms.py:373 msgid "Parameters" msgstr "" @@ -1172,9 +1211,9 @@ msgstr "" msgid "Ignore rules" msgstr "" -#: core/forms/filtersets.py:27 core/forms/model_forms.py:89 -#: extras/forms/model_forms.py:159 extras/forms/model_forms.py:352 -#: extras/forms/model_forms.py:405 extras/tables/tables.py:171 +#: core/forms/filtersets.py:26 core/forms/model_forms.py:95 +#: extras/forms/model_forms.py:165 extras/forms/model_forms.py:455 +#: extras/forms/model_forms.py:508 extras/tables/tables.py:149 #: extras/tables/tables.py:363 extras/tables/tables.py:398 #: templates/core/datasource.html:31 #: templates/dcim/device/render_config.html:19 @@ -1185,153 +1224,253 @@ msgstr "" msgid "Data Source" msgstr "" -#: core/forms/filtersets.py:40 core/tables/data.py:26 +#: 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:1261 dcim/tables/devices.py:562 -#: dcim/tables/devicetypes.py:221 extras/forms/bulk_edit.py:92 -#: extras/forms/bulk_edit.py:156 extras/forms/bulk_edit.py:177 -#: extras/forms/filtersets.py:116 extras/forms/filtersets.py:203 -#: extras/forms/filtersets.py:242 extras/tables/tables.py:144 -#: extras/tables/tables.py:233 extras/tables/tables.py:280 +#: dcim/forms/filtersets.py:1270 dcim/tables/devices.py:568 +#: 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:284 #: templates/core/datasource.html:43 templates/dcim/interface.html:62 -#: templates/extras/customlink.html:18 templates/extras/savedfilter.html:26 -#: templates/extras/webhook.html:20 templates/users/objectpermission.html:26 +#: 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:73 users/tables.py:86 -#: virtualization/forms/bulk_edit.py:214 virtualization/forms/filtersets.py:203 +#: users/forms/filtersets.py:71 users/tables.py:86 +#: virtualization/forms/bulk_edit.py:216 virtualization/forms/filtersets.py:207 msgid "Enabled" msgstr "" -#: core/forms/filtersets.py:52 core/forms/mixins.py:21 +#: core/forms/filtersets.py:51 core/forms/mixins.py:21 msgid "File" msgstr "" -#: core/forms/filtersets.py:57 core/forms/mixins.py:16 -#: extras/forms/filtersets.py:144 extras/forms/filtersets.py:311 -#: extras/forms/filtersets.py:397 +#: core/forms/filtersets.py:56 core/forms/mixins.py:16 +#: extras/forms/filtersets.py:147 extras/forms/filtersets.py:336 +#: extras/forms/filtersets.py:422 msgid "Data source" msgstr "" -#: core/forms/filtersets.py:65 extras/forms/filtersets.py:424 +#: core/forms/filtersets.py:64 extras/forms/filtersets.py:449 msgid "Creation" msgstr "" -#: core/forms/filtersets.py:71 extras/forms/filtersets.py:448 -#: extras/forms/filtersets.py:494 extras/tables/tables.py:474 -#: ipam/tables/l2vpn.py:59 templates/core/job.html:25 -#: templates/extras/objectchange.html:56 tenancy/tables/contacts.py:90 +#: core/forms/filtersets.py:70 extras/forms/filtersets.py:473 +#: extras/forms/filtersets.py:519 extras/tables/tables.py:474 +#: templates/core/job.html:25 templates/extras/objectchange.html:56 +#: tenancy/tables/contacts.py:90 vpn/tables/l2vpn.py:59 msgid "Object Type" msgstr "" -#: core/forms/filtersets.py:81 +#: core/forms/filtersets.py:80 msgid "Created after" msgstr "" -#: core/forms/filtersets.py:86 +#: core/forms/filtersets.py:85 msgid "Created before" msgstr "" -#: core/forms/filtersets.py:91 +#: core/forms/filtersets.py:90 msgid "Scheduled after" msgstr "" -#: core/forms/filtersets.py:96 +#: core/forms/filtersets.py:95 msgid "Scheduled before" msgstr "" -#: core/forms/filtersets.py:101 +#: core/forms/filtersets.py:100 msgid "Started after" msgstr "" -#: core/forms/filtersets.py:106 +#: core/forms/filtersets.py:105 msgid "Started before" msgstr "" -#: core/forms/filtersets.py:111 +#: core/forms/filtersets.py:110 msgid "Completed after" msgstr "" -#: core/forms/filtersets.py:116 +#: core/forms/filtersets.py:115 msgid "Completed before" msgstr "" -#: core/forms/filtersets.py:123 dcim/forms/bulk_edit.py:359 -#: dcim/forms/filtersets.py:349 dcim/forms/filtersets.py:393 -#: dcim/forms/model_forms.py:251 extras/forms/filtersets.py:440 -#: extras/forms/filtersets.py:486 templates/dcim/rackreservation.html:65 +#: 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:87 users/forms/filtersets.py:128 +#: users/forms/filtersets.py:85 users/forms/filtersets.py:126 #: users/forms/model_forms.py:156 users/forms/model_forms.py:194 #: users/tables.py:19 msgid "User" msgstr "" -#: core/forms/model_forms.py:46 core/tables/data.py:46 +#: core/forms/model_forms.py:52 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 msgid "Source" msgstr "" -#: core/forms/model_forms.py:50 +#: core/forms/model_forms.py:56 msgid "Backend Parameters" msgstr "" -#: core/forms/model_forms.py:88 +#: core/forms/model_forms.py:94 msgid "File Upload" msgstr "" -#: core/models/data.py:47 dcim/models/cables.py:44 -#: dcim/models/device_component_templates.py:178 -#: dcim/models/device_component_templates.py:212 -#: dcim/models/device_component_templates.py:247 -#: dcim/models/device_component_templates.py:309 -#: dcim/models/device_component_templates.py:388 -#: dcim/models/device_component_templates.py:487 -#: dcim/models/device_component_templates.py:587 -#: dcim/models/device_components.py:285 dcim/models/device_components.py:314 -#: dcim/models/device_components.py:347 dcim/models/device_components.py:465 -#: dcim/models/device_components.py:603 dcim/models/device_components.py:962 -#: dcim/models/device_components.py:1036 dcim/models/power.py:101 -#: dcim/models/racks.py:127 extras/models/customfields.py:69 -#: extras/models/search.py:41 ipam/models/l2vpn.py:32 -#: virtualization/models/clusters.py:61 +#: core/forms/model_forms.py:147 templates/core/configrevision.html:43 +#: templates/dcim/rack_elevation_list.html:6 +msgid "Rack Elevations" +msgstr "" + +#: core/forms/model_forms.py:148 dcim/choices.py:1407 +#: 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 +msgid "Power" +msgstr "" + +#: core/forms/model_forms.py:149 netbox/navigation/menu.py:142 +#: templates/core/configrevision.html:79 +msgid "IPAM" +msgstr "" + +#: core/forms/model_forms.py:150 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 +msgid "Security" +msgstr "" + +#: core/forms/model_forms.py:151 templates/core/configrevision.html:107 +msgid "Banners" +msgstr "" + +#: core/forms/model_forms.py:152 templates/core/configrevision.html:131 +msgid "Pagination" +msgstr "" + +#: core/forms/model_forms.py:153 extras/forms/model_forms.py:63 +#: templates/core/configrevision.html:147 +msgid "Validation" +msgstr "" + +#: core/forms/model_forms.py:154 templates/account/preferences.html:6 +#: templates/core/configrevision.html:175 +msgid "User Preferences" +msgstr "" + +#: core/forms/model_forms.py:155 dcim/forms/filtersets.py:658 +#: templates/core/configrevision.html:193 users/forms/model_forms.py:63 +msgid "Miscellaneous" +msgstr "" + +#: core/forms/model_forms.py:158 +msgid "Config Revision" +msgstr "" + +#: core/forms/model_forms.py:197 +msgid "This parameter has been defined statically and cannot be modified." +msgstr "" + +#: core/forms/model_forms.py:205 +#, python-brace-format +msgid "Current value: {value}" +msgstr "" + +#: core/forms/model_forms.py:207 +msgid " (default)" +msgstr "" + +#: core/models/config.py:18 core/models/data.py:259 core/models/files.py:27 +#: core/models/jobs.py:50 extras/models/models.py:760 +#: netbox/models/features.py:52 users/models.py:248 +msgid "created" +msgstr "" + +#: core/models/config.py:22 +msgid "comment" +msgstr "" + +#: core/models/config.py:29 +msgid "configuration data" +msgstr "" + +#: core/models/config.py:36 +msgid "config revision" +msgstr "" + +#: core/models/config.py:37 +msgid "config revisions" +msgstr "" + +#: core/models/config.py:41 +msgid "Default configuration" +msgstr "" + +#: core/models/config.py:43 +msgid "Current configuration" +msgstr "" + +#: core/models/config.py:44 +#, python-brace-format +msgid "Config revision #{id}" +msgstr "" + +#: core/models/data.py:46 dcim/models/cables.py:43 +#: dcim/models/device_component_templates.py:177 +#: dcim/models/device_component_templates.py:211 +#: dcim/models/device_component_templates.py:246 +#: dcim/models/device_component_templates.py:308 +#: dcim/models/device_component_templates.py:387 +#: dcim/models/device_component_templates.py:486 +#: dcim/models/device_component_templates.py:586 +#: 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 +#: vpn/models/l2vpn.py:32 msgid "type" msgstr "" -#: core/models/data.py:52 extras/choices.py:34 extras/models/models.py:86 +#: core/models/data.py:51 extras/choices.py:34 extras/models/models.py:194 #: templates/core/datasource.html:59 msgid "URL" msgstr "" -#: core/models/data.py:62 dcim/models/device_component_templates.py:393 -#: dcim/models/device_components.py:514 extras/models/models.py:93 -#: extras/models/models.py:248 extras/models/models.py:473 users/models.py:350 +#: core/models/data.py:61 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:353 msgid "enabled" msgstr "" -#: core/models/data.py:66 +#: core/models/data.py:65 msgid "ignore rules" msgstr "" -#: core/models/data.py:68 +#: core/models/data.py:67 msgid "Patterns (one per line) matching files to ignore when syncing" msgstr "" -#: core/models/data.py:71 extras/models/models.py:481 +#: core/models/data.py:70 extras/models/models.py:564 msgid "parameters" msgstr "" -#: core/models/data.py:76 +#: core/models/data.py:75 msgid "last synced" msgstr "" -#: core/models/data.py:84 +#: core/models/data.py:83 msgid "data source" msgstr "" -#: core/models/data.py:85 +#: core/models/data.py:84 msgid "data sources" msgstr "" @@ -1340,17 +1479,11 @@ msgstr "" msgid "Unknown backend type: {type}" msgstr "" -#: core/models/data.py:259 core/models/files.py:26 core/models/jobs.py:50 -#: extras/models/models.py:663 extras/models/models.py:704 -#: netbox/models/features.py:51 users/models.py:245 -msgid "created" -msgstr "" - -#: core/models/data.py:263 core/models/files.py:30 netbox/models/features.py:57 +#: core/models/data.py:263 core/models/files.py:31 netbox/models/features.py:58 msgid "last updated" msgstr "" -#: core/models/data.py:273 dcim/models/cables.py:417 +#: core/models/data.py:273 dcim/models/cables.py:430 msgid "path" msgstr "" @@ -1382,31 +1515,31 @@ msgstr "" msgid "data files" msgstr "" -#: core/models/data.py:391 +#: core/models/data.py:393 msgid "auto sync record" msgstr "" -#: core/models/data.py:392 +#: core/models/data.py:394 msgid "auto sync records" msgstr "" -#: core/models/files.py:36 +#: core/models/files.py:37 msgid "file root" msgstr "" -#: core/models/files.py:41 +#: core/models/files.py:42 msgid "file path" msgstr "" -#: core/models/files.py:43 +#: core/models/files.py:44 msgid "File path relative to the designated root path" msgstr "" -#: core/models/files.py:59 +#: core/models/files.py:61 msgid "managed file" msgstr "" -#: core/models/files.py:60 +#: core/models/files.py:62 msgid "managed files" msgstr "" @@ -1430,22 +1563,36 @@ msgstr "" msgid "completed" msgstr "" -#: core/models/jobs.py:91 extras/models/staging.py:87 +#: core/models/jobs.py:91 extras/models/models.py:123 +#: extras/models/staging.py:87 msgid "data" msgstr "" #: core/models/jobs.py:96 +msgid "error" +msgstr "" + +#: core/models/jobs.py:101 msgid "job ID" msgstr "" -#: core/models/jobs.py:104 +#: core/models/jobs.py:112 msgid "job" msgstr "" -#: core/models/jobs.py:105 +#: core/models/jobs.py:113 msgid "jobs" msgstr "" +#: core/models/jobs.py:135 +#, python-brace-format +msgid "Jobs cannot be assigned to this object type ({type})." +msgstr "" + +#: core/tables/config.py:21 users/forms/filtersets.py:45 users/tables.py:39 +msgid "Is Active" +msgstr "" + #: core/tables/data.py:50 templates/core/datafile.html:40 msgid "Path" msgstr "" @@ -1455,32 +1602,33 @@ msgid "Last updated" msgstr "" #: core/tables/jobs.py:10 dcim/tables/devicetypes.py:161 -#: extras/tables/tables.py:196 extras/tables/tables.py:340 -#: netbox/tables/tables.py:180 templates/dcim/virtualchassis_edit.html:53 +#: extras/tables/tables.py:174 extras/tables/tables.py:340 +#: netbox/tables/tables.py:184 templates/dcim/virtualchassis_edit.html:53 #: wireless/tables/wirelesslink.py:16 msgid "ID" msgstr "" -#: core/tables/jobs.py:21 extras/choices.py:38 extras/tables/tables.py:258 +#: core/tables/jobs.py:21 extras/choices.py:38 extras/tables/tables.py:236 #: extras/tables/tables.py:350 extras/tables/tables.py:448 -#: extras/tables/tables.py:479 ipam/tables/l2vpn.py:64 -#: netbox/tables/tables.py:229 templates/extras/htmx/report_result.html:45 +#: extras/tables/tables.py:479 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 +#: tenancy/tables/contacts.py:93 vpn/tables/l2vpn.py:64 msgid "Object" msgstr "" -#: core/tables/jobs.py:34 +#: core/tables/jobs.py:35 msgid "Interval" msgstr "" -#: core/tables/jobs.py:37 templates/core/job.html:65 +#: 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" msgstr "" -#: dcim/api/serializers.py:205 templates/dcim/rack.html:40 +#: dcim/api/serializers.py:205 templates/dcim/rack.html:33 msgid "Facility ID" msgstr "" @@ -1540,7 +1688,7 @@ msgstr "" msgid "Reserved" msgstr "" -#: dcim/choices.py:101 templates/dcim/device.html:279 +#: dcim/choices.py:101 templates/dcim/device.html:262 msgid "Available" msgstr "" @@ -1549,7 +1697,7 @@ msgstr "" msgid "Deprecated" msgstr "" -#: dcim/choices.py:114 templates/dcim/rack.html:135 +#: dcim/choices.py:114 templates/dcim/rack.html:128 msgid "Millimeters" msgstr "" @@ -1562,23 +1710,23 @@ msgstr "" #: dcim/forms/bulk_import.py:59 dcim/forms/bulk_import.py:73 #: dcim/forms/bulk_import.py:136 dcim/forms/bulk_import.py:503 #: dcim/forms/bulk_import.py:770 dcim/forms/bulk_import.py:1021 -#: dcim/forms/filtersets.py:224 dcim/forms/model_forms.py:73 +#: 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:954 dcim/forms/model_forms.py:1295 -#: dcim/forms/object_import.py:181 dcim/tables/devices.py:654 -#: extras/tables/tables.py:203 ipam/tables/fhrp.py:59 ipam/tables/ip.py:374 -#: ipam/tables/services.py:44 templates/dcim/interface.html:97 -#: templates/dcim/interface.html:317 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 +#: dcim/forms/model_forms.py:955 dcim/forms/model_forms.py:1296 +#: dcim/forms/object_import.py:181 dcim/tables/devices.py:671 +#: dcim/tables/devices.py:955 extras/tables/tables.py:181 +#: 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:27 -#: tenancy/forms/model_forms.py:72 virtualization/forms/bulk_edit.py:204 -#: virtualization/forms/bulk_import.py:150 -#: virtualization/tables/virtualmachines.py:136 wireless/forms/bulk_edit.py:23 +#: tenancy/forms/bulk_import.py:58 tenancy/forms/model_forms.py:24 +#: tenancy/forms/model_forms.py:69 virtualization/forms/bulk_edit.py:206 +#: virtualization/forms/bulk_import.py:151 +#: virtualization/tables/virtualmachines.py:142 wireless/forms/bulk_edit.py:23 #: wireless/forms/bulk_import.py:21 wireless/forms/model_forms.py:20 msgid "Parent" msgstr "" @@ -1587,14 +1735,14 @@ msgstr "" msgid "Child" msgstr "" -#: dcim/choices.py:155 templates/dcim/device.html:362 -#: templates/dcim/rack.html:188 templates/dcim/rack_elevation_list.html:22 +#: 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 msgid "Front" msgstr "" -#: dcim/choices.py:156 templates/dcim/device.html:368 -#: templates/dcim/rack.html:194 templates/dcim/rack_elevation_list.html:23 +#: 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 msgid "Rear" msgstr "" @@ -1674,9 +1822,9 @@ msgid "Virtual" msgstr "" #: dcim/choices.py:796 dcim/choices.py:1019 dcim/forms/bulk_edit.py:1398 -#: dcim/forms/filtersets.py:1225 dcim/forms/model_forms.py:880 -#: dcim/forms/model_forms.py:1189 netbox/navigation/menu.py:128 -#: netbox/navigation/menu.py:132 templates/dcim/interface.html:213 +#: dcim/forms/filtersets.py:1233 dcim/forms/model_forms.py:881 +#: dcim/forms/model_forms.py:1190 netbox/navigation/menu.py:128 +#: netbox/navigation/menu.py:132 templates/dcim/interface.html:217 msgid "Wireless" msgstr "" @@ -1685,12 +1833,12 @@ msgid "Virtual interfaces" msgstr "" #: dcim/choices.py:950 dcim/forms/bulk_edit.py:1295 -#: dcim/forms/bulk_import.py:777 dcim/forms/model_forms.py:868 -#: dcim/tables/devices.py:658 templates/dcim/interface.html:101 +#: dcim/forms/bulk_import.py:777 dcim/forms/model_forms.py:869 +#: dcim/tables/devices.py:675 templates/dcim/interface.html:109 #: templates/virtualization/vminterface.html:46 -#: virtualization/forms/bulk_edit.py:209 -#: virtualization/forms/bulk_import.py:157 -#: virtualization/tables/virtualmachines.py:140 +#: virtualization/forms/bulk_edit.py:211 +#: virtualization/forms/bulk_import.py:158 +#: virtualization/tables/virtualmachines.py:146 msgid "Bridge" msgstr "" @@ -1714,9 +1862,9 @@ msgstr "" msgid "Cellular" msgstr "" -#: dcim/choices.py:1080 dcim/forms/filtersets.py:299 -#: dcim/forms/filtersets.py:729 dcim/forms/filtersets.py:869 -#: dcim/forms/filtersets.py:1417 templates/dcim/inventoryitem.html:53 +#: dcim/choices.py:1080 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 msgid "Serial" msgstr "" @@ -1786,14 +1934,7 @@ msgstr "" msgid "Fiber" msgstr "" -#: dcim/choices.py:1407 dcim/forms/bulk_edit.py:859 -#: dcim/forms/bulk_edit.py:1242 dcim/forms/bulk_edit.py:1260 -#: dcim/tables/racks.py:89 extras/forms/model_forms.py:489 -#: netbox/navigation/menu.py:257 netbox/navigation/menu.py:261 -msgid "Power" -msgstr "" - -#: dcim/choices.py:1418 dcim/forms/filtersets.py:1132 +#: dcim/choices.py:1418 dcim/forms/filtersets.py:1140 msgid "Connected" msgstr "" @@ -1817,8 +1958,8 @@ msgstr "" msgid "Feet" msgstr "" -#: dcim/choices.py:1457 templates/dcim/device.html:349 -#: templates/dcim/rack.html:164 +#: dcim/choices.py:1457 templates/dcim/device.html:332 +#: templates/dcim/rack.html:157 msgid "Kilograms" msgstr "" @@ -1826,7 +1967,7 @@ msgstr "" msgid "Grams" msgstr "" -#: dcim/choices.py:1459 templates/dcim/rack.html:165 +#: dcim/choices.py:1459 templates/dcim/rack.html:158 msgid "Pounds" msgstr "" @@ -1850,398 +1991,390 @@ msgstr "" msgid "Three-phase" msgstr "" -#: dcim/filtersets.py:78 +#: dcim/filtersets.py:80 msgid "Parent region (ID)" msgstr "" -#: dcim/filtersets.py:84 +#: dcim/filtersets.py:86 msgid "Parent region (slug)" msgstr "" -#: dcim/filtersets.py:95 +#: dcim/filtersets.py:97 msgid "Parent site group (ID)" msgstr "" -#: dcim/filtersets.py:101 +#: dcim/filtersets.py:103 msgid "Parent site group (slug)" msgstr "" -#: dcim/filtersets.py:130 ipam/filtersets.py:792 ipam/filtersets.py:925 +#: dcim/filtersets.py:132 ipam/filtersets.py:797 ipam/filtersets.py:930 msgid "Group (ID)" msgstr "" -#: dcim/filtersets.py:136 +#: dcim/filtersets.py:138 msgid "Group (slug)" msgstr "" -#: dcim/filtersets.py:142 dcim/filtersets.py:147 +#: dcim/filtersets.py:144 dcim/filtersets.py:149 msgid "AS (ID)" msgstr "" -#: dcim/filtersets.py:215 dcim/filtersets.py:290 dcim/filtersets.py:388 -#: dcim/filtersets.py:909 dcim/filtersets.py:1215 dcim/filtersets.py:1883 +#: dcim/filtersets.py:217 dcim/filtersets.py:292 dcim/filtersets.py:390 +#: dcim/filtersets.py:917 dcim/filtersets.py:1213 dcim/filtersets.py:1881 msgid "Location (ID)" msgstr "" -#: dcim/filtersets.py:222 dcim/filtersets.py:297 dcim/filtersets.py:395 -#: dcim/filtersets.py:1221 extras/filtersets.py:416 +#: dcim/filtersets.py:224 dcim/filtersets.py:299 dcim/filtersets.py:397 +#: dcim/filtersets.py:1219 extras/filtersets.py:447 msgid "Location (slug)" msgstr "" -#: dcim/filtersets.py:311 dcim/filtersets.py:762 dcim/filtersets.py:846 -#: dcim/filtersets.py:1621 ipam/filtersets.py:346 ipam/filtersets.py:458 -#: ipam/filtersets.py:935 virtualization/filtersets.py:206 +#: dcim/filtersets.py:313 dcim/filtersets.py:764 dcim/filtersets.py:854 +#: dcim/filtersets.py:1619 ipam/filtersets.py:347 ipam/filtersets.py:459 +#: ipam/filtersets.py:940 virtualization/filtersets.py:209 msgid "Role (ID)" msgstr "" -#: dcim/filtersets.py:317 dcim/filtersets.py:768 dcim/filtersets.py:852 -#: dcim/filtersets.py:1627 extras/filtersets.py:432 ipam/filtersets.py:352 -#: ipam/filtersets.py:464 ipam/filtersets.py:941 -#: virtualization/filtersets.py:212 +#: dcim/filtersets.py:319 dcim/filtersets.py:770 dcim/filtersets.py:860 +#: dcim/filtersets.py:1625 extras/filtersets.py:463 ipam/filtersets.py:353 +#: ipam/filtersets.py:465 ipam/filtersets.py:946 +#: virtualization/filtersets.py:215 msgid "Role (slug)" msgstr "" -#: dcim/filtersets.py:345 dcim/filtersets.py:914 dcim/filtersets.py:1226 -#: dcim/filtersets.py:1944 +#: dcim/filtersets.py:347 dcim/filtersets.py:922 dcim/filtersets.py:1224 +#: dcim/filtersets.py:1942 msgid "Rack (ID)" msgstr "" -#: dcim/filtersets.py:399 extras/filtersets.py:203 extras/filtersets.py:247 -#: extras/filtersets.py:287 extras/filtersets.py:582 +#: dcim/filtersets.py:401 extras/filtersets.py:234 extras/filtersets.py:278 +#: extras/filtersets.py:318 extras/filtersets.py:613 msgid "User (ID)" msgstr "" -#: dcim/filtersets.py:405 extras/filtersets.py:209 extras/filtersets.py:253 -#: extras/filtersets.py:293 users/filtersets.py:80 users/filtersets.py:140 +#: dcim/filtersets.py:407 extras/filtersets.py:240 extras/filtersets.py:284 +#: extras/filtersets.py:324 users/filtersets.py:80 users/filtersets.py:140 msgid "User (name)" msgstr "" -#: dcim/filtersets.py:433 dcim/filtersets.py:559 dcim/filtersets.py:752 -#: dcim/filtersets.py:803 dcim/filtersets.py:825 dcim/filtersets.py:1118 -#: dcim/filtersets.py:1611 +#: dcim/filtersets.py:435 dcim/filtersets.py:561 dcim/filtersets.py:754 +#: dcim/filtersets.py:805 dcim/filtersets.py:833 dcim/filtersets.py:1116 +#: dcim/filtersets.py:1609 msgid "Manufacturer (ID)" msgstr "" -#: dcim/filtersets.py:439 dcim/filtersets.py:565 dcim/filtersets.py:758 -#: dcim/filtersets.py:809 dcim/filtersets.py:831 dcim/filtersets.py:1124 -#: dcim/filtersets.py:1617 +#: dcim/filtersets.py:441 dcim/filtersets.py:567 dcim/filtersets.py:760 +#: dcim/filtersets.py:811 dcim/filtersets.py:839 dcim/filtersets.py:1122 +#: dcim/filtersets.py:1615 msgid "Manufacturer (slug)" msgstr "" -#: dcim/filtersets.py:443 +#: dcim/filtersets.py:445 msgid "Default platform (ID)" msgstr "" -#: dcim/filtersets.py:449 +#: dcim/filtersets.py:451 msgid "Default platform (slug)" msgstr "" -#: dcim/filtersets.py:452 dcim/forms/filtersets.py:448 +#: dcim/filtersets.py:454 dcim/forms/filtersets.py:452 msgid "Has a front image" msgstr "" -#: dcim/filtersets.py:456 dcim/forms/filtersets.py:455 +#: dcim/filtersets.py:458 dcim/forms/filtersets.py:459 msgid "Has a rear image" msgstr "" -#: dcim/filtersets.py:461 dcim/filtersets.py:569 dcim/filtersets.py:967 -#: dcim/forms/filtersets.py:462 dcim/forms/filtersets.py:558 -#: dcim/forms/filtersets.py:768 +#: dcim/filtersets.py:463 dcim/filtersets.py:571 dcim/filtersets.py:975 +#: dcim/forms/filtersets.py:466 dcim/forms/filtersets.py:563 +#: dcim/forms/filtersets.py:775 msgid "Has console ports" msgstr "" -#: dcim/filtersets.py:465 dcim/filtersets.py:573 dcim/filtersets.py:971 -#: dcim/forms/filtersets.py:469 dcim/forms/filtersets.py:565 -#: dcim/forms/filtersets.py:775 +#: dcim/filtersets.py:467 dcim/filtersets.py:575 dcim/filtersets.py:979 +#: dcim/forms/filtersets.py:473 dcim/forms/filtersets.py:570 +#: dcim/forms/filtersets.py:782 msgid "Has console server ports" msgstr "" -#: dcim/filtersets.py:469 dcim/filtersets.py:577 dcim/filtersets.py:975 -#: dcim/forms/filtersets.py:476 dcim/forms/filtersets.py:572 -#: dcim/forms/filtersets.py:782 +#: dcim/filtersets.py:471 dcim/filtersets.py:579 dcim/filtersets.py:983 +#: dcim/forms/filtersets.py:480 dcim/forms/filtersets.py:577 +#: dcim/forms/filtersets.py:789 msgid "Has power ports" msgstr "" -#: dcim/filtersets.py:473 dcim/filtersets.py:581 dcim/filtersets.py:979 -#: dcim/forms/filtersets.py:483 dcim/forms/filtersets.py:579 -#: dcim/forms/filtersets.py:789 +#: dcim/filtersets.py:475 dcim/filtersets.py:583 dcim/filtersets.py:987 +#: dcim/forms/filtersets.py:487 dcim/forms/filtersets.py:584 +#: dcim/forms/filtersets.py:796 msgid "Has power outlets" msgstr "" -#: dcim/filtersets.py:477 dcim/filtersets.py:585 dcim/filtersets.py:983 -#: dcim/forms/filtersets.py:490 dcim/forms/filtersets.py:586 -#: dcim/forms/filtersets.py:796 +#: dcim/filtersets.py:479 dcim/filtersets.py:587 dcim/filtersets.py:991 +#: dcim/forms/filtersets.py:494 dcim/forms/filtersets.py:591 +#: dcim/forms/filtersets.py:803 msgid "Has interfaces" msgstr "" -#: dcim/filtersets.py:481 dcim/filtersets.py:589 dcim/filtersets.py:987 -#: dcim/forms/filtersets.py:497 dcim/forms/filtersets.py:593 -#: dcim/forms/filtersets.py:803 +#: dcim/filtersets.py:483 dcim/filtersets.py:591 dcim/filtersets.py:995 +#: dcim/forms/filtersets.py:501 dcim/forms/filtersets.py:598 +#: dcim/forms/filtersets.py:810 msgid "Has pass-through ports" msgstr "" -#: dcim/filtersets.py:485 dcim/filtersets.py:991 dcim/forms/filtersets.py:511 +#: dcim/filtersets.py:487 dcim/filtersets.py:999 dcim/forms/filtersets.py:515 msgid "Has module bays" msgstr "" -#: dcim/filtersets.py:489 dcim/filtersets.py:995 dcim/forms/filtersets.py:504 +#: dcim/filtersets.py:491 dcim/filtersets.py:1003 dcim/forms/filtersets.py:508 msgid "Has device bays" msgstr "" -#: dcim/filtersets.py:493 dcim/forms/filtersets.py:518 +#: dcim/filtersets.py:495 dcim/forms/filtersets.py:522 msgid "Has inventory items" msgstr "" -#: dcim/filtersets.py:636 dcim/filtersets.py:841 dcim/filtersets.py:1247 +#: dcim/filtersets.py:638 dcim/filtersets.py:849 dcim/filtersets.py:1245 msgid "Device type (ID)" msgstr "" -#: dcim/filtersets.py:649 dcim/filtersets.py:1129 +#: dcim/filtersets.py:651 dcim/filtersets.py:1127 msgid "Module type (ID)" msgstr "" -#: dcim/filtersets.py:748 dcim/filtersets.py:1607 +#: dcim/filtersets.py:750 dcim/filtersets.py:1605 msgid "Parent inventory item (ID)" msgstr "" -#: dcim/filtersets.py:791 dcim/filtersets.py:813 dcim/filtersets.py:963 -#: virtualization/filtersets.py:234 +#: dcim/filtersets.py:793 dcim/filtersets.py:815 dcim/filtersets.py:971 +#: virtualization/filtersets.py:237 msgid "Config template (ID)" msgstr "" -#: dcim/filtersets.py:837 +#: dcim/filtersets.py:845 msgid "Device type (slug)" msgstr "" -#: dcim/filtersets.py:857 +#: dcim/filtersets.py:865 msgid "Parent Device (ID)" msgstr "" -#: dcim/filtersets.py:861 virtualization/filtersets.py:216 +#: dcim/filtersets.py:869 virtualization/filtersets.py:219 msgid "Platform (ID)" msgstr "" -#: dcim/filtersets.py:867 extras/filtersets.py:443 -#: virtualization/filtersets.py:222 +#: dcim/filtersets.py:875 extras/filtersets.py:474 +#: virtualization/filtersets.py:225 msgid "Platform (slug)" msgstr "" -#: dcim/filtersets.py:903 dcim/filtersets.py:1210 dcim/filtersets.py:1705 -#: dcim/filtersets.py:1877 dcim/filtersets.py:1935 +#: dcim/filtersets.py:911 dcim/filtersets.py:1208 dcim/filtersets.py:1703 +#: dcim/filtersets.py:1875 dcim/filtersets.py:1933 msgid "Site name (slug)" msgstr "" -#: dcim/filtersets.py:918 +#: dcim/filtersets.py:926 msgid "VM cluster (ID)" msgstr "" -#: dcim/filtersets.py:924 +#: dcim/filtersets.py:932 msgid "Device model (slug)" msgstr "" -#: dcim/filtersets.py:935 dcim/forms/bulk_edit.py:421 +#: dcim/filtersets.py:943 dcim/forms/bulk_edit.py:421 msgid "Is full depth" msgstr "" -#: dcim/filtersets.py:939 dcim/forms/common.py:18 dcim/forms/filtersets.py:738 -#: dcim/forms/filtersets.py:1276 dcim/models/device_components.py:520 -#: virtualization/filtersets.py:226 virtualization/filtersets.py:292 -#: virtualization/forms/filtersets.py:165 -#: virtualization/forms/filtersets.py:211 +#: dcim/filtersets.py:947 dcim/forms/common.py:18 dcim/forms/filtersets.py:745 +#: dcim/forms/filtersets.py:1285 dcim/models/device_components.py:519 +#: virtualization/filtersets.py:229 virtualization/filtersets.py:295 +#: virtualization/forms/filtersets.py:168 +#: virtualization/forms/filtersets.py:215 msgid "MAC address" msgstr "" -#: dcim/filtersets.py:946 dcim/forms/filtersets.py:747 -#: dcim/forms/filtersets.py:834 virtualization/filtersets.py:230 -#: virtualization/forms/filtersets.py:169 +#: dcim/filtersets.py:954 dcim/forms/filtersets.py:754 +#: dcim/forms/filtersets.py:841 virtualization/filtersets.py:233 +#: virtualization/forms/filtersets.py:172 msgid "Has a primary IP" msgstr "" -#: dcim/filtersets.py:950 +#: dcim/filtersets.py:958 msgid "Has an out-of-band IP" msgstr "" -#: dcim/filtersets.py:955 +#: dcim/filtersets.py:963 msgid "Virtual chassis (ID)" msgstr "" -#: dcim/filtersets.py:959 +#: dcim/filtersets.py:967 msgid "Is a virtual chassis member" msgstr "" -#: dcim/filtersets.py:1000 -msgid "Primary IPv4 (ID)" -msgstr "" - -#: dcim/filtersets.py:1005 -msgid "Primary IPv6 (ID)" -msgstr "" - -#: dcim/filtersets.py:1010 +#: dcim/filtersets.py:1008 msgid "OOB IP (ID)" msgstr "" -#: dcim/filtersets.py:1135 +#: dcim/filtersets.py:1133 msgid "Module type (model)" msgstr "" -#: dcim/filtersets.py:1141 +#: dcim/filtersets.py:1139 msgid "Module Bay (ID)" msgstr "" -#: dcim/filtersets.py:1145 dcim/filtersets.py:1236 ipam/filtersets.py:567 -#: ipam/filtersets.py:802 ipam/filtersets.py:1010 ipam/filtersets.py:1143 -#: virtualization/filtersets.py:157 +#: dcim/filtersets.py:1143 dcim/filtersets.py:1234 ipam/filtersets.py:577 +#: ipam/filtersets.py:807 ipam/filtersets.py:1015 +#: virtualization/filtersets.py:160 vpn/filtersets.py:351 msgid "Device (ID)" msgstr "" -#: dcim/filtersets.py:1232 +#: dcim/filtersets.py:1230 msgid "Rack (name)" msgstr "" -#: dcim/filtersets.py:1242 ipam/filtersets.py:562 ipam/filtersets.py:797 -#: ipam/filtersets.py:1016 ipam/filtersets.py:1138 +#: dcim/filtersets.py:1240 ipam/filtersets.py:572 ipam/filtersets.py:802 +#: ipam/filtersets.py:1021 vpn/filtersets.py:346 msgid "Device (name)" msgstr "" -#: dcim/filtersets.py:1253 +#: dcim/filtersets.py:1251 msgid "Device type (model)" msgstr "" -#: dcim/filtersets.py:1258 dcim/filtersets.py:1281 +#: dcim/filtersets.py:1256 dcim/filtersets.py:1279 msgid "Device role (ID)" msgstr "" -#: dcim/filtersets.py:1264 dcim/filtersets.py:1287 +#: dcim/filtersets.py:1262 dcim/filtersets.py:1285 msgid "Device role (slug)" msgstr "" -#: dcim/filtersets.py:1269 +#: dcim/filtersets.py:1267 msgid "Virtual Chassis (ID)" msgstr "" -#: dcim/filtersets.py:1275 dcim/forms/filtersets.py:105 +#: dcim/filtersets.py:1273 dcim/forms/filtersets.py:106 #: dcim/tables/devices.py:235 netbox/navigation/menu.py:67 -#: templates/dcim/device.html:140 templates/dcim/device_edit.html:93 +#: templates/dcim/device.html:123 templates/dcim/device_edit.html:93 #: templates/dcim/virtualchassis.html:20 #: templates/dcim/virtualchassis_add.html:8 #: templates/dcim/virtualchassis_edit.html:25 msgid "Virtual Chassis" msgstr "" -#: dcim/filtersets.py:1307 +#: dcim/filtersets.py:1305 msgid "Module (ID)" msgstr "" -#: dcim/filtersets.py:1411 ipam/forms/bulk_import.py:191 -#: ipam/forms/bulk_import.py:568 +#: dcim/filtersets.py:1409 ipam/forms/bulk_import.py:188 +#: vpn/forms/bulk_import.py:303 msgid "Assigned VLAN" msgstr "" -#: dcim/filtersets.py:1415 +#: dcim/filtersets.py:1413 msgid "Assigned VID" msgstr "" -#: dcim/filtersets.py:1420 dcim/forms/bulk_edit.py:1374 -#: dcim/forms/bulk_import.py:828 dcim/forms/filtersets.py:1319 -#: dcim/forms/model_forms.py:1174 dcim/models/device_components.py:709 -#: dcim/tables/devices.py:625 ipam/filtersets.py:281 ipam/filtersets.py:292 -#: ipam/filtersets.py:448 ipam/filtersets.py:540 ipam/filtersets.py:551 -#: ipam/forms/bulk_edit.py:228 ipam/forms/bulk_edit.py:283 -#: ipam/forms/bulk_edit.py:325 ipam/forms/bulk_import.py:159 -#: ipam/forms/bulk_import.py:245 ipam/forms/bulk_import.py:281 -#: ipam/forms/filtersets.py:70 ipam/forms/filtersets.py:171 -#: ipam/forms/filtersets.py:299 ipam/forms/model_forms.py:61 -#: ipam/forms/model_forms.py:205 ipam/forms/model_forms.py:248 -#: ipam/forms/model_forms.py:292 ipam/forms/model_forms.py:414 -#: ipam/forms/model_forms.py:428 ipam/forms/model_forms.py:442 +#: dcim/filtersets.py:1418 dcim/forms/bulk_edit.py:1374 +#: dcim/forms/bulk_import.py:828 dcim/forms/filtersets.py:1328 +#: dcim/forms/model_forms.py:1175 dcim/models/device_components.py:712 +#: dcim/tables/devices.py:637 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 +#: 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:412 +#: ipam/forms/model_forms.py:426 ipam/forms/model_forms.py:440 #: 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:134 templates/ipam/ipaddress.html:21 -#: templates/ipam/iprange.html:43 templates/ipam/prefix.html:19 +#: 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:258 -#: virtualization/forms/bulk_import.py:170 -#: virtualization/forms/filtersets.py:216 -#: virtualization/forms/model_forms.py:326 -#: virtualization/models/virtualmachines.py:286 -#: virtualization/tables/virtualmachines.py:118 +#: virtualization/forms/bulk_edit.py:260 +#: virtualization/forms/bulk_import.py:171 +#: virtualization/forms/filtersets.py:220 +#: virtualization/forms/model_forms.py:347 +#: virtualization/models/virtualmachines.py:348 +#: virtualization/tables/virtualmachines.py:123 msgid "VRF" msgstr "" -#: dcim/filtersets.py:1426 ipam/filtersets.py:287 ipam/filtersets.py:298 -#: ipam/filtersets.py:454 ipam/filtersets.py:546 ipam/filtersets.py:557 +#: dcim/filtersets.py:1424 ipam/filtersets.py:288 ipam/filtersets.py:299 +#: ipam/filtersets.py:455 ipam/filtersets.py:556 ipam/filtersets.py:567 msgid "VRF (RD)" msgstr "" -#: dcim/filtersets.py:1431 ipam/filtersets.py:958 ipam/filtersets.py:1106 +#: dcim/filtersets.py:1429 ipam/filtersets.py:963 vpn/filtersets.py:314 msgid "L2VPN (ID)" msgstr "" -#: dcim/filtersets.py:1437 dcim/forms/filtersets.py:1324 -#: dcim/tables/devices.py:579 ipam/filtersets.py:964 -#: ipam/forms/bulk_import.py:540 ipam/forms/filtersets.py:501 -#: ipam/forms/filtersets.py:565 ipam/forms/model_forms.py:779 -#: ipam/forms/model_forms.py:797 ipam/models/l2vpn.py:63 -#: ipam/tables/l2vpn.py:55 ipam/tables/vlans.py:133 -#: templates/dcim/interface.html:109 templates/ipam/l2vpntermination.html:15 -#: templates/ipam/vlan.html:69 virtualization/forms/filtersets.py:221 +#: dcim/filtersets.py:1435 dcim/forms/filtersets.py:1333 +#: dcim/tables/devices.py:585 ipam/filtersets.py:969 +#: 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:275 +#: vpn/forms/filtersets.py:242 vpn/forms/model_forms.py:402 +#: vpn/forms/model_forms.py:420 vpn/models/l2vpn.py:63 vpn/tables/l2vpn.py:55 msgid "L2VPN" msgstr "" -#: dcim/filtersets.py:1469 +#: dcim/filtersets.py:1467 msgid "Virtual Chassis Interfaces for Device" msgstr "" -#: dcim/filtersets.py:1474 +#: dcim/filtersets.py:1472 msgid "Virtual Chassis Interfaces for Device (ID)" msgstr "" -#: dcim/filtersets.py:1478 +#: dcim/filtersets.py:1476 msgid "Kind of interface" msgstr "" -#: dcim/filtersets.py:1483 virtualization/filtersets.py:284 +#: dcim/filtersets.py:1481 virtualization/filtersets.py:287 msgid "Parent interface (ID)" msgstr "" -#: dcim/filtersets.py:1488 virtualization/filtersets.py:289 +#: dcim/filtersets.py:1486 virtualization/filtersets.py:292 msgid "Bridged interface (ID)" msgstr "" -#: dcim/filtersets.py:1493 +#: dcim/filtersets.py:1491 msgid "LAG interface (ID)" msgstr "" -#: dcim/filtersets.py:1662 +#: dcim/filtersets.py:1660 msgid "Master (ID)" msgstr "" -#: dcim/filtersets.py:1668 +#: dcim/filtersets.py:1666 msgid "Master (name)" msgstr "" -#: dcim/filtersets.py:1710 tenancy/filtersets.py:208 +#: dcim/filtersets.py:1708 tenancy/filtersets.py:220 msgid "Tenant (ID)" msgstr "" -#: dcim/filtersets.py:1716 extras/filtersets.py:492 tenancy/filtersets.py:214 +#: dcim/filtersets.py:1714 extras/filtersets.py:523 tenancy/filtersets.py:226 msgid "Tenant (slug)" msgstr "" -#: dcim/filtersets.py:1751 dcim/forms/filtersets.py:983 +#: dcim/filtersets.py:1749 dcim/forms/filtersets.py:990 msgid "Unterminated" msgstr "" -#: dcim/filtersets.py:1939 +#: dcim/filtersets.py:1937 msgid "Power panel (ID)" msgstr "" -#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:385 -#: extras/forms/mixins.py:82 extras/forms/model_forms.py:341 -#: extras/forms/model_forms.py:392 netbox/forms/base.py:71 +#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410 +#: extras/forms/model_forms.py:444 extras/forms/model_forms.py:495 +#: netbox/forms/base.py:71 netbox/forms/mixins.py:79 #: netbox/tables/columns.py:448 #: templates/circuits/inc/circuit_termination.html:119 #: templates/generic/bulk_edit.html:81 templates/inc/panels/tags.html:5 @@ -2249,12 +2382,12 @@ msgstr "" msgid "Tags" msgstr "" -#: dcim/forms/bulk_create.py:112 dcim/forms/filtersets.py:1381 -#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:467 -#: dcim/forms/object_create.py:179 dcim/forms/object_create.py:319 -#: dcim/tables/devices.py:198 dcim/tables/devices.py:703 -#: dcim/tables/devicetypes.py:242 templates/dcim/device.html:62 -#: templates/dcim/device.html:146 templates/dcim/modulebay.html:35 +#: dcim/forms/bulk_create.py:112 dcim/forms/filtersets.py:1390 +#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:468 +#: dcim/forms/object_create.py:196 dcim/forms/object_create.py:352 +#: dcim/tables/devices.py:198 dcim/tables/devices.py:720 +#: 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 msgid "Position" @@ -2267,29 +2400,31 @@ msgid "" 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:931 -#: ipam/forms/bulk_edit.py:530 ipam/forms/bulk_import.py:447 -#: ipam/forms/model_forms.py:511 ipam/tables/fhrp.py:67 +#: 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:509 ipam/tables/fhrp.py:67 #: ipam/tables/vlans.py:118 ipam/tables/vlans.py:221 -#: templates/dcim/interface.html:290 templates/dcim/site.html:43 +#: 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/users/group.html:6 templates/users/group.html:14 -#: templates/virtualization/cluster.html:32 +#: 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:48 -#: tenancy/forms/filtersets.py:78 tenancy/forms/filtersets.py:98 -#: tenancy/forms/model_forms.py:49 tenancy/forms/model_forms.py:105 -#: tenancy/forms/model_forms.py:127 tenancy/tables/contacts.py:60 -#: tenancy/tables/tenants.py:42 users/filtersets.py:42 users/filtersets.py:145 -#: users/forms/filtersets.py:34 users/forms/filtersets.py:40 -#: users/forms/filtersets.py:82 virtualization/forms/bulk_edit.py:62 -#: virtualization/forms/bulk_import.py:46 virtualization/forms/filtersets.py:81 -#: virtualization/forms/model_forms.py:68 virtualization/tables/clusters.py:70 -#: wireless/forms/bulk_edit.py:47 wireless/forms/bulk_import.py:36 -#: wireless/forms/filtersets.py:45 wireless/forms/model_forms.py:41 -#: wireless/tables/wirelesslan.py:48 +#: 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 +#: tenancy/tables/contacts.py:107 tenancy/tables/tenants.py:42 +#: users/filtersets.py:42 users/filtersets.py:145 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:157 vpn/forms/filtersets.py:113 +#: vpn/tables/crypto.py:31 wireless/forms/bulk_edit.py:47 +#: wireless/forms/bulk_import.py:36 wireless/forms/filtersets.py:45 +#: wireless/forms/model_forms.py:41 wireless/tables/wirelesslan.py:48 msgid "Group" msgstr "" @@ -2312,55 +2447,59 @@ msgstr "" #: dcim/forms/bulk_edit.py:266 dcim/forms/bulk_edit.py:1152 #: dcim/forms/bulk_edit.py:1539 dcim/forms/bulk_import.py:199 -#: dcim/forms/bulk_import.py:1009 dcim/forms/filtersets.py:296 -#: dcim/forms/filtersets.py:697 dcim/forms/filtersets.py:1408 -#: dcim/forms/model_forms.py:224 dcim/forms/model_forms.py:962 -#: dcim/forms/model_forms.py:1303 dcim/forms/object_import.py:186 -#: dcim/tables/devices.py:202 dcim/tables/devices.py:811 -#: dcim/tables/devices.py:922 dcim/tables/devicetypes.py:300 -#: dcim/tables/racks.py:69 extras/filtersets.py:426 ipam/forms/bulk_edit.py:247 -#: ipam/forms/bulk_edit.py:296 ipam/forms/bulk_edit.py:344 -#: ipam/forms/bulk_edit.py:548 ipam/forms/bulk_import.py:199 -#: ipam/forms/bulk_import.py:264 ipam/forms/bulk_import.py:300 -#: ipam/forms/bulk_import.py:466 ipam/forms/filtersets.py:236 -#: ipam/forms/filtersets.py:282 ipam/forms/filtersets.py:349 -#: ipam/forms/filtersets.py:492 ipam/forms/model_forms.py:189 -#: ipam/forms/model_forms.py:224 ipam/forms/model_forms.py:251 -#: ipam/forms/model_forms.py:649 ipam/tables/ip.py:257 ipam/tables/ip.py:313 +#: dcim/forms/bulk_import.py:1009 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:963 +#: dcim/forms/model_forms.py:1304 dcim/forms/object_import.py:186 +#: dcim/tables/devices.py:202 dcim/tables/devices.py:828 +#: dcim/tables/devices.py:939 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 +#: 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:647 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:204 +#: templates/dcim/device.html:187 #: templates/dcim/inc/panels/inventory_items.html:12 -#: templates/dcim/interface.html:227 templates/dcim/inventoryitem.html:37 -#: templates/dcim/rack.html:57 templates/ipam/ipaddress.html:44 +#: 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/wireless/inc/wirelesslink_interface.html:20 -#: tenancy/forms/bulk_edit.py:141 tenancy/forms/filtersets.py:108 -#: tenancy/forms/model_forms.py:142 tenancy/tables/contacts.py:102 -#: virtualization/forms/bulk_edit.py:142 -#: virtualization/forms/bulk_import.py:105 -#: virtualization/forms/filtersets.py:150 -#: virtualization/forms/model_forms.py:197 -#: virtualization/tables/virtualmachines.py:63 +#: 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 +#: virtualization/forms/bulk_import.py:106 +#: virtualization/forms/filtersets.py:153 +#: virtualization/forms/model_forms.py:198 +#: virtualization/tables/virtualmachines.py:65 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 +#: vpn/tables/tunnels.py:78 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:123 +#: 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:65 +#: templates/dcim/rack.html:58 msgid "Serial Number" msgstr "" -#: dcim/forms/bulk_edit.py:276 dcim/forms/filtersets.py:303 -#: dcim/forms/filtersets.py:733 dcim/forms/filtersets.py:873 -#: dcim/forms/filtersets.py:1421 +#: dcim/forms/bulk_edit.py:276 dcim/forms/filtersets.py:306 +#: dcim/forms/filtersets.py:740 dcim/forms/filtersets.py:880 +#: dcim/forms/filtersets.py:1430 msgid "Asset tag" msgstr "" #: dcim/forms/bulk_edit.py:286 dcim/forms/bulk_import.py:212 -#: dcim/forms/filtersets.py:288 templates/dcim/rack.html:98 +#: dcim/forms/filtersets.py:291 templates/dcim/rack.html:91 #: templates/dcim/rack_edit.html:48 msgid "Width" msgstr "" @@ -2393,16 +2532,16 @@ msgstr "" #: 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_import.py:324 dcim/forms/bulk_import.py:350 -#: dcim/forms/filtersets.py:248 dcim/forms/filtersets.py:308 -#: dcim/forms/filtersets.py:332 dcim/forms/filtersets.py:420 -#: dcim/forms/filtersets.py:525 dcim/forms/filtersets.py:544 -#: dcim/forms/filtersets.py:600 dcim/forms/model_forms.py:337 +#: dcim/forms/filtersets.py:250 dcim/forms/filtersets.py:311 +#: dcim/forms/filtersets.py:335 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:337 #: dcim/tables/devicetypes.py:103 dcim/tables/modules.py:35 -#: dcim/tables/racks.py:103 extras/forms/bulk_edit.py:44 -#: extras/forms/bulk_edit.py:102 extras/forms/bulk_edit.py:152 -#: extras/forms/bulk_edit.py:256 extras/forms/filtersets.py:62 -#: extras/forms/filtersets.py:130 extras/forms/filtersets.py:217 -#: ipam/forms/bulk_edit.py:189 templates/dcim/device.html:346 +#: 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 @@ -2410,44 +2549,44 @@ msgstr "" msgid "Weight" msgstr "" -#: dcim/forms/bulk_edit.py:325 dcim/forms/filtersets.py:313 +#: dcim/forms/bulk_edit.py:325 dcim/forms/filtersets.py:316 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:223 #: dcim/forms/bulk_import.py:329 dcim/forms/bulk_import.py:355 -#: dcim/forms/filtersets.py:318 dcim/forms/filtersets.py:529 -#: dcim/forms/filtersets.py:604 +#: dcim/forms/filtersets.py:321 dcim/forms/filtersets.py:533 +#: dcim/forms/filtersets.py:609 msgid "Weight unit" msgstr "" #: dcim/forms/bulk_edit.py:344 dcim/forms/bulk_edit.py:800 #: dcim/forms/bulk_import.py:262 dcim/forms/bulk_import.py:265 #: dcim/forms/bulk_import.py:490 dcim/forms/bulk_import.py:1286 -#: dcim/forms/bulk_import.py:1290 dcim/forms/filtersets.py:100 -#: dcim/forms/filtersets.py:336 dcim/forms/filtersets.py:350 -#: dcim/forms/filtersets.py:388 dcim/forms/filtersets.py:692 -#: dcim/forms/filtersets.py:941 dcim/forms/filtersets.py:1072 +#: dcim/forms/bulk_import.py:1290 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:413 -#: dcim/forms/model_forms.py:661 dcim/forms/object_create.py:366 +#: dcim/forms/model_forms.py:662 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:466 ipam/forms/filtersets.py:430 -#: ipam/forms/model_forms.py:573 templates/dcim/device.html:47 +#: ipam/forms/bulk_edit.py:464 ipam/forms/filtersets.py:427 +#: ipam/forms/model_forms.py:571 templates/dcim/device.html:30 #: templates/dcim/inc/cable_termination.html:16 -#: templates/dcim/powerfeed.html:31 templates/dcim/rack.html:13 +#: 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:19 -#: templates/dcim/rackreservation.html:38 -#: virtualization/forms/model_forms.py:115 +#: templates/dcim/rackreservation.html:20 +#: templates/dcim/rackreservation.html:39 +#: virtualization/forms/model_forms.py:116 msgid "Rack" msgstr "" #: dcim/forms/bulk_edit.py:346 dcim/forms/bulk_edit.py:623 -#: dcim/forms/filtersets.py:245 dcim/forms/filtersets.py:329 -#: dcim/forms/filtersets.py:414 dcim/forms/filtersets.py:539 -#: dcim/forms/filtersets.py:646 dcim/forms/filtersets.py:846 -#: dcim/forms/model_forms.py:588 dcim/forms/model_forms.py:1373 +#: 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:589 dcim/forms/model_forms.py:1374 #: templates/dcim/device_edit.html:20 templates/dcim/inventoryitem_edit.html:23 msgid "Hardware" msgstr "" @@ -2458,14 +2597,14 @@ msgstr "" #: dcim/forms/bulk_edit.py:1544 dcim/forms/bulk_import.py:311 #: dcim/forms/bulk_import.py:345 dcim/forms/bulk_import.py:387 #: dcim/forms/bulk_import.py:423 dcim/forms/bulk_import.py:1015 -#: dcim/forms/filtersets.py:425 dcim/forms/filtersets.py:549 -#: dcim/forms/filtersets.py:625 dcim/forms/filtersets.py:702 -#: dcim/forms/filtersets.py:851 dcim/forms/filtersets.py:1414 +#: dcim/forms/filtersets.py:429 dcim/forms/filtersets.py:554 +#: dcim/forms/filtersets.py:631 dcim/forms/filtersets.py:709 +#: 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:330 dcim/forms/model_forms.py:370 -#: dcim/forms/model_forms.py:967 dcim/forms/model_forms.py:1308 +#: dcim/forms/model_forms.py:968 dcim/forms/model_forms.py:1309 #: dcim/forms/object_import.py:192 dcim/tables/devices.py:129 -#: dcim/tables/devices.py:205 dcim/tables/devices.py:925 +#: dcim/tables/devices.py:205 dcim/tables/devices.py:942 #: 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 @@ -2475,12 +2614,12 @@ msgid "Manufacturer" msgstr "" #: dcim/forms/bulk_edit.py:405 dcim/forms/bulk_import.py:317 -#: dcim/forms/filtersets.py:430 dcim/forms/model_forms.py:292 +#: dcim/forms/filtersets.py:434 dcim/forms/model_forms.py:292 msgid "Default platform" msgstr "" #: dcim/forms/bulk_edit.py:410 dcim/forms/bulk_edit.py:469 -#: dcim/forms/filtersets.py:433 dcim/forms/filtersets.py:553 +#: dcim/forms/filtersets.py:437 dcim/forms/filtersets.py:558 msgid "Part number" msgstr "" @@ -2493,14 +2632,14 @@ msgid "Exclude from utilization" msgstr "" #: dcim/forms/bulk_edit.py:429 dcim/forms/bulk_edit.py:598 -#: dcim/forms/bulk_import.py:517 dcim/forms/filtersets.py:442 -#: dcim/forms/filtersets.py:724 templates/dcim/device.html:117 +#: dcim/forms/bulk_import.py:517 dcim/forms/filtersets.py:446 +#: dcim/forms/filtersets.py:731 templates/dcim/device.html:100 #: templates/dcim/devicetype.html:68 msgid "Airflow" msgstr "" #: dcim/forms/bulk_edit.py:453 dcim/forms/model_forms.py:303 -#: dcim/tables/devicetypes.py:78 templates/dcim/device.html:107 +#: dcim/tables/devicetypes.py:78 templates/dcim/device.html:90 #: templates/dcim/devicebay.html:59 templates/dcim/module.html:59 msgid "Device Type" msgstr "" @@ -2520,37 +2659,37 @@ msgstr "" #: dcim/forms/bulk_edit.py:613 dcim/forms/bulk_import.py:368 #: dcim/forms/bulk_import.py:372 dcim/forms/bulk_import.py:394 #: dcim/forms/bulk_import.py:398 dcim/forms/bulk_import.py:523 -#: dcim/forms/bulk_import.py:527 dcim/forms/filtersets.py:615 -#: dcim/forms/filtersets.py:630 dcim/forms/filtersets.py:743 +#: dcim/forms/bulk_import.py:527 dcim/forms/filtersets.py:620 +#: dcim/forms/filtersets.py:636 dcim/forms/filtersets.py:750 #: dcim/forms/model_forms.py:349 dcim/forms/model_forms.py:375 -#: dcim/forms/model_forms.py:476 virtualization/forms/bulk_import.py:131 -#: virtualization/forms/bulk_import.py:132 -#: virtualization/forms/filtersets.py:177 -#: virtualization/forms/model_forms.py:216 +#: dcim/forms/model_forms.py:477 virtualization/forms/bulk_import.py:132 +#: virtualization/forms/bulk_import.py:133 +#: virtualization/forms/filtersets.py:180 +#: virtualization/forms/model_forms.py:218 msgid "Config template" msgstr "" #: dcim/forms/bulk_edit.py:557 dcim/forms/bulk_edit.py:951 -#: dcim/forms/bulk_import.py:429 dcim/forms/filtersets.py:110 -#: dcim/forms/model_forms.py:435 dcim/forms/model_forms.py:775 -#: dcim/forms/model_forms.py:789 extras/filtersets.py:421 +#: dcim/forms/bulk_import.py:429 dcim/forms/filtersets.py:111 +#: dcim/forms/model_forms.py:435 dcim/forms/model_forms.py:776 +#: dcim/forms/model_forms.py:790 extras/filtersets.py:452 msgid "Device type" msgstr "" #: dcim/forms/bulk_edit.py:565 dcim/forms/bulk_import.py:410 -#: dcim/forms/filtersets.py:115 dcim/forms/model_forms.py:440 +#: dcim/forms/filtersets.py:116 dcim/forms/model_forms.py:440 msgid "Device role" msgstr "" #: dcim/forms/bulk_edit.py:588 dcim/forms/bulk_import.py:435 -#: dcim/forms/filtersets.py:716 dcim/forms/model_forms.py:385 -#: dcim/forms/model_forms.py:444 extras/filtersets.py:437 -#: templates/dcim/device.html:208 templates/dcim/platform.html:27 +#: dcim/forms/filtersets.py:723 dcim/forms/model_forms.py:385 +#: dcim/forms/model_forms.py:444 extras/filtersets.py:468 +#: templates/dcim/device.html:191 templates/dcim/platform.html:27 #: templates/virtualization/virtualmachine.html:30 -#: virtualization/forms/bulk_edit.py:157 -#: virtualization/forms/bulk_import.py:121 -#: virtualization/forms/filtersets.py:161 -#: virtualization/forms/model_forms.py:205 +#: virtualization/forms/bulk_edit.py:159 +#: virtualization/forms/bulk_import.py:122 +#: virtualization/forms/filtersets.py:164 +#: virtualization/forms/model_forms.py:206 msgid "Platform" msgstr "" @@ -2562,61 +2701,65 @@ msgstr "" #: dcim/forms/bulk_import.py:879 dcim/forms/bulk_import.py:927 #: dcim/forms/bulk_import.py:944 dcim/forms/bulk_import.py:956 #: dcim/forms/bulk_import.py:1004 dcim/forms/bulk_import.py:1350 -#: dcim/forms/connections.py:23 dcim/forms/filtersets.py:127 -#: dcim/forms/filtersets.py:824 dcim/forms/filtersets.py:957 -#: dcim/forms/filtersets.py:1146 dcim/forms/filtersets.py:1168 -#: dcim/forms/filtersets.py:1190 dcim/forms/filtersets.py:1207 -#: dcim/forms/filtersets.py:1227 dcim/forms/filtersets.py:1334 -#: dcim/forms/filtersets.py:1356 dcim/forms/filtersets.py:1377 -#: dcim/forms/filtersets.py:1392 dcim/forms/filtersets.py:1403 -#: dcim/forms/filtersets.py:1467 dcim/forms/filtersets.py:1491 -#: dcim/forms/filtersets.py:1515 dcim/forms/model_forms.py:554 -#: dcim/forms/model_forms.py:752 dcim/forms/model_forms.py:1003 -#: dcim/forms/model_forms.py:1452 dcim/forms/object_create.py:239 +#: 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/filtersets.py:1476 dcim/forms/filtersets.py:1500 +#: dcim/forms/filtersets.py:1524 dcim/forms/model_forms.py:555 +#: dcim/forms/model_forms.py:753 dcim/forms/model_forms.py:1004 +#: dcim/forms/model_forms.py:1453 dcim/forms/object_create.py:256 #: dcim/tables/connections.py:22 dcim/tables/connections.py:41 #: dcim/tables/connections.py:60 dcim/tables/devices.py:314 #: dcim/tables/devices.py:374 dcim/tables/devices.py:418 -#: dcim/tables/devices.py:463 dcim/tables/devices.py:511 -#: dcim/tables/devices.py:597 dcim/tables/devices.py:693 -#: dcim/tables/devices.py:753 dcim/tables/devices.py:803 -#: dcim/tables/devices.py:863 dcim/tables/devices.py:915 -#: dcim/tables/devices.py:1037 dcim/tables/modules.py:52 -#: extras/forms/filtersets.py:304 ipam/forms/bulk_import.py:306 -#: ipam/forms/bulk_import.py:492 ipam/forms/bulk_import.py:543 -#: ipam/forms/filtersets.py:594 ipam/forms/model_forms.py:687 -#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:23 -#: templates/dcim/consoleserverport.html:23 templates/dcim/device.html:13 -#: templates/dcim/device.html:145 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:163 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 +#: dcim/tables/devices.py:463 dcim/tables/devices.py:517 +#: dcim/tables/devices.py:609 dcim/tables/devices.py:710 +#: dcim/tables/devices.py:770 dcim/tables/devices.py:820 +#: dcim/tables/devices.py:880 dcim/tables/devices.py:932 +#: dcim/tables/devices.py:1058 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:685 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/l2vpntermination_edit.html:22 -#: templates/ipam/service_create.html:17 templates/ipam/service_edit.html:16 +#: 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 #: templates/wireless/inc/wirelesslink_interface.html:6 -#: virtualization/filtersets.py:163 virtualization/forms/bulk_edit.py:134 -#: virtualization/forms/bulk_import.py:98 -#: virtualization/forms/filtersets.py:121 -#: virtualization/forms/model_forms.py:187 -#: virtualization/tables/virtualmachines.py:59 +#: virtualization/filtersets.py:166 virtualization/forms/bulk_edit.py:136 +#: virtualization/forms/bulk_import.py:99 +#: virtualization/forms/filtersets.py:124 +#: virtualization/forms/model_forms.py:188 +#: virtualization/tables/virtualmachines.py:61 vpn/choices.py:44 +#: vpn/forms/bulk_import.py:86 vpn/forms/bulk_import.py:278 +#: 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 msgid "Device" msgstr "" -#: dcim/forms/bulk_edit.py:624 netbox/navigation/menu.py:421 +#: dcim/forms/bulk_edit.py:624 netbox/navigation/menu.py:441 #: templates/extras/dashboard/widget_config.html:7 msgid "Configuration" msgstr "" #: dcim/forms/bulk_edit.py:638 dcim/forms/bulk_import.py:590 -#: dcim/forms/model_forms.py:568 dcim/forms/model_forms.py:794 +#: dcim/forms/model_forms.py:569 dcim/forms/model_forms.py:795 msgid "Module type" msgstr "" @@ -2625,7 +2768,7 @@ msgstr "" #: 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:63 +#: 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 @@ -2637,13 +2780,13 @@ msgstr "" msgid "Label" msgstr "" -#: dcim/forms/bulk_edit.py:698 dcim/forms/filtersets.py:974 +#: dcim/forms/bulk_edit.py:698 dcim/forms/filtersets.py:981 #: templates/dcim/cable.html:51 msgid "Length" msgstr "" #: dcim/forms/bulk_edit.py:703 dcim/forms/bulk_import.py:1158 -#: dcim/forms/bulk_import.py:1161 dcim/forms/filtersets.py:978 +#: dcim/forms/bulk_import.py:1161 dcim/forms/filtersets.py:985 msgid "Length unit" msgstr "" @@ -2652,31 +2795,31 @@ msgid "Domain" msgstr "" #: dcim/forms/bulk_edit.py:795 dcim/forms/bulk_import.py:1273 -#: dcim/forms/filtersets.py:1063 dcim/forms/model_forms.py:656 +#: dcim/forms/filtersets.py:1071 dcim/forms/model_forms.py:657 msgid "Power panel" msgstr "" #: dcim/forms/bulk_edit.py:817 dcim/forms/bulk_import.py:1309 -#: dcim/forms/filtersets.py:1085 templates/dcim/powerfeed.html:90 +#: dcim/forms/filtersets.py:1093 templates/dcim/powerfeed.html:90 msgid "Supply" msgstr "" #: dcim/forms/bulk_edit.py:823 dcim/forms/bulk_import.py:1314 -#: dcim/forms/filtersets.py:1090 templates/dcim/powerfeed.html:102 +#: dcim/forms/filtersets.py:1098 templates/dcim/powerfeed.html:102 msgid "Phase" msgstr "" -#: dcim/forms/bulk_edit.py:829 dcim/forms/filtersets.py:1095 +#: dcim/forms/bulk_edit.py:829 dcim/forms/filtersets.py:1103 #: templates/dcim/powerfeed.html:94 msgid "Voltage" msgstr "" -#: dcim/forms/bulk_edit.py:833 dcim/forms/filtersets.py:1099 +#: dcim/forms/bulk_edit.py:833 dcim/forms/filtersets.py:1107 #: templates/dcim/powerfeed.html:98 msgid "Amperage" msgstr "" -#: dcim/forms/bulk_edit.py:837 dcim/forms/filtersets.py:1103 +#: dcim/forms/bulk_edit.py:837 dcim/forms/filtersets.py:1111 msgid "Max utilization" msgstr "" @@ -2691,8 +2834,8 @@ msgstr "" msgid "Maximum draw" msgstr "" -#: dcim/forms/bulk_edit.py:929 dcim/models/device_component_templates.py:257 -#: dcim/models/device_components.py:358 +#: dcim/forms/bulk_edit.py:929 dcim/models/device_component_templates.py:256 +#: dcim/models/device_components.py:357 msgid "Maximum power draw (watts)" msgstr "" @@ -2700,14 +2843,14 @@ msgstr "" msgid "Allocated draw" msgstr "" -#: dcim/forms/bulk_edit.py:935 dcim/models/device_component_templates.py:264 -#: dcim/models/device_components.py:365 +#: dcim/forms/bulk_edit.py:935 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:723 -#: dcim/forms/model_forms.py:847 dcim/forms/model_forms.py:1075 -#: dcim/forms/model_forms.py:1360 dcim/forms/object_import.py:60 +#: dcim/forms/model_forms.py:848 dcim/forms/model_forms.py:1076 +#: dcim/forms/model_forms.py:1361 dcim/forms/object_import.py:60 msgid "Power port" msgstr "" @@ -2720,27 +2863,27 @@ msgid "Management only" msgstr "" #: dcim/forms/bulk_edit.py:1029 dcim/forms/bulk_edit.py:1331 -#: dcim/forms/bulk_import.py:813 dcim/forms/filtersets.py:1285 -#: dcim/forms/object_import.py:95 dcim/models/device_component_templates.py:412 -#: dcim/models/device_components.py:668 +#: dcim/forms/bulk_import.py:813 dcim/forms/filtersets.py:1294 +#: dcim/forms/object_import.py:95 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:819 dcim/forms/filtersets.py:1290 +#: dcim/forms/bulk_import.py:819 dcim/forms/filtersets.py:1299 #: dcim/forms/object_import.py:100 -#: dcim/models/device_component_templates.py:418 -#: dcim/models/device_components.py:674 +#: 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:1295 +#: dcim/forms/bulk_edit.py:1041 dcim/forms/filtersets.py:1304 #: dcim/forms/object_import.py:105 msgid "Wireless role" msgstr "" -#: dcim/forms/bulk_edit.py:1178 dcim/forms/model_forms.py:587 -#: dcim/forms/model_forms.py:1018 dcim/tables/devices.py:337 +#: dcim/forms/bulk_edit.py:1178 dcim/forms/model_forms.py:588 +#: dcim/forms/model_forms.py:1019 dcim/tables/devices.py:337 #: 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 @@ -2749,86 +2892,91 @@ msgstr "" msgid "Module" msgstr "" -#: dcim/forms/bulk_edit.py:1305 dcim/tables/devices.py:663 -#: templates/dcim/interface.html:105 +#: dcim/forms/bulk_edit.py:1305 dcim/tables/devices.py:680 +#: templates/dcim/interface.html:113 msgid "LAG" msgstr "" -#: dcim/forms/bulk_edit.py:1310 dcim/forms/model_forms.py:1102 +#: dcim/forms/bulk_edit.py:1310 dcim/forms/model_forms.py:1103 msgid "Virtual device contexts" msgstr "" #: dcim/forms/bulk_edit.py:1316 dcim/forms/bulk_import.py:651 -#: dcim/forms/bulk_import.py:677 dcim/forms/filtersets.py:1155 -#: dcim/forms/filtersets.py:1177 dcim/forms/filtersets.py:1249 -#: dcim/tables/devices.py:609 +#: dcim/forms/bulk_import.py:677 dcim/forms/filtersets.py:1163 +#: dcim/forms/filtersets.py:1185 dcim/forms/filtersets.py:1258 +#: dcim/tables/devices.py:621 #: templates/circuits/inc/circuit_termination.html:94 #: templates/dcim/consoleport.html:43 templates/dcim/consoleserverport.html:43 msgid "Speed" msgstr "" #: dcim/forms/bulk_edit.py:1345 dcim/forms/bulk_import.py:822 -#: virtualization/forms/bulk_edit.py:230 -#: virtualization/forms/bulk_import.py:164 +#: 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:175 +#: vpn/forms/bulk_import.py:229 vpn/forms/filtersets.py:132 +#: vpn/forms/filtersets.py:175 vpn/forms/filtersets.py:189 +#: vpn/tables/crypto.py:64 vpn/tables/crypto.py:162 msgid "Mode" msgstr "" -#: dcim/forms/bulk_edit.py:1353 dcim/forms/model_forms.py:1151 -#: ipam/forms/bulk_import.py:180 ipam/forms/filtersets.py:481 -#: ipam/models/vlans.py:82 virtualization/forms/bulk_edit.py:237 -#: virtualization/forms/model_forms.py:303 +#: dcim/forms/bulk_edit.py:1353 dcim/forms/model_forms.py:1152 +#: 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 msgid "VLAN group" msgstr "" -#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1156 -#: dcim/tables/devices.py:582 virtualization/forms/bulk_edit.py:245 -#: virtualization/forms/model_forms.py:308 +#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1157 +#: dcim/tables/devices.py:594 virtualization/forms/bulk_edit.py:247 +#: virtualization/forms/model_forms.py:329 msgid "Untagged VLAN" msgstr "" -#: dcim/forms/bulk_edit.py:1369 dcim/forms/model_forms.py:1165 -#: dcim/tables/devices.py:588 virtualization/forms/bulk_edit.py:253 -#: virtualization/forms/model_forms.py:317 +#: dcim/forms/bulk_edit.py:1369 dcim/forms/model_forms.py:1166 +#: dcim/tables/devices.py:600 virtualization/forms/bulk_edit.py:255 +#: virtualization/forms/model_forms.py:338 msgid "Tagged VLANs" msgstr "" -#: dcim/forms/bulk_edit.py:1379 dcim/forms/model_forms.py:1138 +#: dcim/forms/bulk_edit.py:1379 dcim/forms/model_forms.py:1139 msgid "Wireless LAN group" msgstr "" -#: dcim/forms/bulk_edit.py:1384 dcim/forms/model_forms.py:1143 -#: dcim/tables/devices.py:618 netbox/navigation/menu.py:134 -#: templates/dcim/interface.html:285 wireless/tables/wirelesslan.py:24 +#: dcim/forms/bulk_edit.py:1384 dcim/forms/model_forms.py:1144 +#: dcim/tables/devices.py:630 netbox/navigation/menu.py:134 +#: templates/dcim/interface.html:289 wireless/tables/wirelesslan.py:24 msgid "Wireless LANs" msgstr "" -#: dcim/forms/bulk_edit.py:1393 dcim/forms/filtersets.py:1223 -#: dcim/forms/model_forms.py:1184 ipam/forms/bulk_edit.py:272 -#: ipam/forms/bulk_edit.py:363 ipam/forms/filtersets.py:170 -#: templates/dcim/interface.html:122 templates/ipam/prefix.html:96 -#: virtualization/forms/model_forms.py:331 +#: dcim/forms/bulk_edit.py:1393 dcim/forms/filtersets.py:1231 +#: dcim/forms/model_forms.py:1185 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 msgid "Addressing" msgstr "" -#: dcim/forms/bulk_edit.py:1394 dcim/forms/filtersets.py:645 -#: dcim/forms/model_forms.py:1185 virtualization/forms/model_forms.py:332 +#: dcim/forms/bulk_edit.py:1394 dcim/forms/filtersets.py:651 +#: dcim/forms/model_forms.py:1186 virtualization/forms/model_forms.py:353 msgid "Operation" msgstr "" -#: dcim/forms/bulk_edit.py:1395 dcim/forms/filtersets.py:1224 -#: dcim/forms/model_forms.py:879 dcim/forms/model_forms.py:1187 +#: dcim/forms/bulk_edit.py:1395 dcim/forms/filtersets.py:1232 +#: dcim/forms/model_forms.py:880 dcim/forms/model_forms.py:1188 msgid "PoE" msgstr "" -#: dcim/forms/bulk_edit.py:1396 dcim/forms/model_forms.py:1186 -#: templates/dcim/interface.html:93 virtualization/forms/bulk_edit.py:264 -#: virtualization/forms/model_forms.py:333 +#: dcim/forms/bulk_edit.py:1396 dcim/forms/model_forms.py:1187 +#: templates/dcim/interface.html:101 virtualization/forms/bulk_edit.py:266 +#: virtualization/forms/model_forms.py:354 msgid "Related Interfaces" msgstr "" -#: dcim/forms/bulk_edit.py:1397 dcim/forms/model_forms.py:1188 -#: virtualization/forms/bulk_edit.py:265 -#: virtualization/forms/model_forms.py:334 +#: dcim/forms/bulk_edit.py:1397 dcim/forms/model_forms.py:1189 +#: virtualization/forms/bulk_edit.py:267 +#: virtualization/forms/model_forms.py:355 msgid "802.1Q Switching" msgstr "" @@ -2862,9 +3010,9 @@ msgid "available options" msgstr "" #: dcim/forms/bulk_import.py:133 dcim/forms/bulk_import.py:480 -#: dcim/forms/bulk_import.py:1270 ipam/forms/bulk_import.py:177 -#: ipam/forms/bulk_import.py:444 virtualization/forms/bulk_import.py:62 -#: virtualization/forms/bulk_import.py:88 +#: dcim/forms/bulk_import.py:1270 ipam/forms/bulk_import.py:174 +#: ipam/forms/bulk_import.py:441 virtualization/forms/bulk_import.py:63 +#: virtualization/forms/bulk_import.py:89 msgid "Assigned site" msgstr "" @@ -2909,7 +3057,7 @@ msgid "Rack's location (if any)" msgstr "" #: dcim/forms/bulk_import.py:268 dcim/forms/model_forms.py:246 -#: dcim/tables/racks.py:153 templates/dcim/rackreservation.html:11 +#: dcim/tables/racks.py:153 templates/dcim/rackreservation.html:12 #: templates/dcim/rackreservation.html:52 msgid "Units" msgstr "" @@ -2958,29 +3106,29 @@ msgstr "" msgid "Device type model" msgstr "" -#: dcim/forms/bulk_import.py:439 virtualization/forms/bulk_import.py:125 +#: dcim/forms/bulk_import.py:439 virtualization/forms/bulk_import.py:126 msgid "Assigned platform" msgstr "" #: dcim/forms/bulk_import.py:447 dcim/forms/bulk_import.py:451 -#: dcim/forms/model_forms.py:460 +#: dcim/forms/model_forms.py:461 msgid "Virtual chassis" msgstr "" -#: dcim/forms/bulk_import.py:454 dcim/forms/model_forms.py:449 -#: dcim/tables/devices.py:231 extras/filtersets.py:470 -#: extras/forms/filtersets.py:305 ipam/forms/bulk_edit.py:480 -#: ipam/forms/model_forms.py:590 templates/dcim/device.html:256 +#: dcim/forms/bulk_import.py:454 dcim/forms/model_forms.py:450 +#: dcim/tables/devices.py:231 extras/filtersets.py:501 +#: extras/forms/filtersets.py:330 ipam/forms/bulk_edit.py:478 +#: ipam/forms/model_forms.py:588 templates/dcim/device.html:239 #: templates/virtualization/cluster.html:11 #: templates/virtualization/virtualmachine.html:92 #: templates/virtualization/virtualmachine.html:102 -#: virtualization/filtersets.py:153 virtualization/filtersets.py:268 -#: virtualization/forms/bulk_edit.py:126 virtualization/forms/bulk_import.py:91 -#: virtualization/forms/filtersets.py:95 virtualization/forms/filtersets.py:116 -#: virtualization/forms/filtersets.py:192 -#: virtualization/forms/model_forms.py:81 -#: virtualization/forms/model_forms.py:178 -#: virtualization/tables/virtualmachines.py:55 +#: virtualization/filtersets.py:156 virtualization/filtersets.py:271 +#: 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/tables/virtualmachines.py:57 msgid "Cluster" msgstr "" @@ -3024,7 +3172,7 @@ msgstr "" msgid "The device in which this module is installed" msgstr "" -#: dcim/forms/bulk_import.py:584 dcim/forms/model_forms.py:561 +#: dcim/forms/bulk_import.py:584 dcim/forms/model_forms.py:562 msgid "Module bay" msgstr "" @@ -3036,7 +3184,7 @@ msgstr "" msgid "The type of module" msgstr "" -#: dcim/forms/bulk_import.py:601 dcim/forms/model_forms.py:574 +#: dcim/forms/bulk_import.py:601 dcim/forms/model_forms.py:575 msgid "Replicate components" msgstr "" @@ -3046,11 +3194,11 @@ msgid "" "by default)" msgstr "" -#: dcim/forms/bulk_import.py:606 dcim/forms/model_forms.py:580 +#: dcim/forms/bulk_import.py:606 dcim/forms/model_forms.py:581 msgid "Adopt components" msgstr "" -#: dcim/forms/bulk_import.py:608 dcim/forms/model_forms.py:583 +#: dcim/forms/bulk_import.py:608 dcim/forms/model_forms.py:584 msgid "Adopt already existing components" msgstr "" @@ -3079,15 +3227,15 @@ msgstr "" msgid "Electrical phase (for three-phase circuits)" msgstr "" -#: dcim/forms/bulk_import.py:774 dcim/forms/model_forms.py:1113 -#: virtualization/forms/bulk_import.py:154 -#: virtualization/forms/model_forms.py:287 +#: dcim/forms/bulk_import.py:774 dcim/forms/model_forms.py:1114 +#: virtualization/forms/bulk_import.py:155 +#: virtualization/forms/model_forms.py:308 msgid "Parent interface" msgstr "" -#: dcim/forms/bulk_import.py:781 dcim/forms/model_forms.py:1121 -#: virtualization/forms/bulk_import.py:161 -#: virtualization/forms/model_forms.py:295 +#: dcim/forms/bulk_import.py:781 dcim/forms/model_forms.py:1122 +#: virtualization/forms/bulk_import.py:162 +#: virtualization/forms/model_forms.py:316 msgid "Bridged interface" msgstr "" @@ -3111,7 +3259,7 @@ msgstr "" msgid "Physical medium" msgstr "" -#: dcim/forms/bulk_import.py:805 dcim/forms/filtersets.py:1256 +#: dcim/forms/bulk_import.py:805 dcim/forms/filtersets.py:1265 msgid "Duplex" msgstr "" @@ -3123,14 +3271,14 @@ msgstr "" msgid "Poe type" msgstr "" -#: dcim/forms/bulk_import.py:825 virtualization/forms/bulk_import.py:167 +#: dcim/forms/bulk_import.py:825 virtualization/forms/bulk_import.py:168 msgid "IEEE 802.1Q operational mode (for L2 interfaces)" msgstr "" -#: dcim/forms/bulk_import.py:832 ipam/forms/bulk_import.py:163 -#: ipam/forms/bulk_import.py:249 ipam/forms/bulk_import.py:285 -#: ipam/forms/filtersets.py:200 ipam/forms/filtersets.py:270 -#: ipam/forms/filtersets.py:325 virtualization/forms/bulk_import.py:174 +#: dcim/forms/bulk_import.py:832 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 msgid "Assigned VRF" msgstr "" @@ -3142,8 +3290,8 @@ msgstr "" msgid "Wireless role (AP/station)" msgstr "" -#: dcim/forms/bulk_import.py:884 dcim/forms/model_forms.py:892 -#: dcim/forms/model_forms.py:1368 dcim/forms/object_import.py:122 +#: dcim/forms/bulk_import.py:884 dcim/forms/model_forms.py:893 +#: dcim/forms/model_forms.py:1369 dcim/forms/object_import.py:122 msgid "Rear port" msgstr "" @@ -3156,7 +3304,7 @@ msgstr "" msgid "Physical medium classification" msgstr "" -#: dcim/forms/bulk_import.py:961 dcim/tables/devices.py:824 +#: dcim/forms/bulk_import.py:961 dcim/tables/devices.py:841 msgid "Installed device" msgstr "" @@ -3228,8 +3376,8 @@ msgstr "" msgid "Connection status" msgstr "" -#: dcim/forms/bulk_import.py:1221 dcim/forms/model_forms.py:688 -#: dcim/tables/devices.py:1007 templates/dcim/device.html:147 +#: dcim/forms/bulk_import.py:1221 dcim/forms/model_forms.py:689 +#: dcim/tables/devices.py:1028 templates/dcim/device.html:130 #: templates/dcim/virtualchassis.html:28 templates/dcim/virtualchassis.html:60 msgid "Master" msgstr "" @@ -3258,10 +3406,10 @@ msgstr "" msgid "Single or three-phase" msgstr "" -#: dcim/forms/common.py:24 dcim/models/device_components.py:529 +#: 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:222 +#: virtualization/forms/bulk_edit.py:224 msgid "MTU" msgstr "" @@ -3295,7 +3443,7 @@ msgstr "" msgid "Power Panel" msgstr "" -#: dcim/forms/connections.py:54 dcim/forms/model_forms.py:669 +#: dcim/forms/connections.py:54 dcim/forms/model_forms.py:670 #: templates/dcim/powerfeed.html:22 templates/dcim/powerport.html:84 msgid "Power Feed" msgstr "" @@ -3304,104 +3452,99 @@ msgstr "" msgid "Side" msgstr "" -#: dcim/forms/filtersets.py:140 +#: dcim/forms/filtersets.py:141 msgid "Parent region" msgstr "" -#: dcim/forms/filtersets.py:154 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 +#: 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 msgid "Parent group" msgstr "" -#: dcim/forms/filtersets.py:244 dcim/forms/filtersets.py:328 +#: dcim/forms/filtersets.py:246 dcim/forms/filtersets.py:331 msgid "Function" msgstr "" -#: dcim/forms/filtersets.py:415 dcim/forms/model_forms.py:308 +#: dcim/forms/filtersets.py:418 dcim/forms/model_forms.py:308 #: templates/inc/panels/image_attachments.html:5 msgid "Images" msgstr "" -#: dcim/forms/filtersets.py:416 dcim/forms/filtersets.py:540 -#: dcim/forms/filtersets.py:649 +#: dcim/forms/filtersets.py:419 dcim/forms/filtersets.py:544 +#: dcim/forms/filtersets.py:655 msgid "Components" msgstr "" -#: dcim/forms/filtersets.py:437 +#: dcim/forms/filtersets.py:441 msgid "Subdevice role" msgstr "" -#: dcim/forms/filtersets.py:652 extras/forms/model_forms.py:496 -#: templates/extras/configrevision.html:171 users/forms/model_forms.py:63 -msgid "Miscellaneous" -msgstr "" - -#: dcim/forms/filtersets.py:710 +#: dcim/forms/filtersets.py:717 msgid "Model" msgstr "" -#: dcim/forms/filtersets.py:761 +#: dcim/forms/filtersets.py:768 msgid "Virtual chassis member" msgstr "" -#: dcim/forms/filtersets.py:1115 +#: dcim/forms/filtersets.py:1123 msgid "Cabled" msgstr "" -#: dcim/forms/filtersets.py:1122 +#: dcim/forms/filtersets.py:1130 msgid "Occupied" msgstr "" -#: dcim/forms/filtersets.py:1147 dcim/forms/filtersets.py:1169 -#: dcim/forms/filtersets.py:1191 dcim/forms/filtersets.py:1208 -#: dcim/forms/filtersets.py:1228 dcim/tables/devices.py:367 +#: 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:367 #: templates/dcim/consoleport.html:59 templates/dcim/consoleserverport.html:59 -#: templates/dcim/frontport.html:74 templates/dcim/interface.html:142 +#: 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 msgid "Connection" msgstr "" -#: dcim/forms/filtersets.py:1236 dcim/forms/model_forms.py:1476 +#: dcim/forms/filtersets.py:1245 dcim/forms/model_forms.py:1477 #: templates/dcim/virtualdevicecontext.html:16 msgid "Virtual Device Context" msgstr "" -#: dcim/forms/filtersets.py:1239 extras/forms/bulk_edit.py:294 -#: extras/forms/bulk_import.py:177 extras/forms/filtersets.py:454 -#: extras/forms/model_forms.py:445 extras/tables/tables.py:482 +#: dcim/forms/filtersets.py:1248 extras/forms/bulk_edit.py:315 +#: extras/forms/bulk_import.py:239 extras/forms/filtersets.py:479 +#: extras/forms/model_forms.py:548 extras/tables/tables.py:482 #: templates/extras/journalentry.html:33 msgid "Kind" msgstr "" -#: dcim/forms/filtersets.py:1268 +#: dcim/forms/filtersets.py:1277 msgid "Mgmt only" msgstr "" -#: dcim/forms/filtersets.py:1280 dcim/forms/model_forms.py:1179 -#: dcim/models/device_components.py:627 templates/dcim/interface.html:130 +#: dcim/forms/filtersets.py:1289 dcim/forms/model_forms.py:1180 +#: dcim/models/device_components.py:630 templates/dcim/interface.html:134 msgid "WWN" msgstr "" -#: dcim/forms/filtersets.py:1300 +#: dcim/forms/filtersets.py:1309 msgid "Wireless channel" msgstr "" -#: dcim/forms/filtersets.py:1304 +#: dcim/forms/filtersets.py:1313 msgid "Channel frequency (MHz)" msgstr "" -#: dcim/forms/filtersets.py:1308 +#: dcim/forms/filtersets.py:1317 msgid "Channel width (MHz)" msgstr "" -#: dcim/forms/filtersets.py:1312 templates/dcim/interface.html:86 +#: dcim/forms/filtersets.py:1321 templates/dcim/interface.html:86 msgid "Transmit power (dBm)" msgstr "" -#: dcim/forms/filtersets.py:1335 dcim/forms/filtersets.py:1357 +#: dcim/forms/filtersets.py:1344 dcim/forms/filtersets.py:1366 #: dcim/tables/devices.py:344 templates/dcim/cable.html:12 #: templates/dcim/cable_edit.html:46 templates/dcim/cable_trace.html:43 #: templates/dcim/frontport.html:84 @@ -3410,7 +3553,7 @@ msgstr "" msgid "Cable" msgstr "" -#: dcim/forms/filtersets.py:1425 dcim/tables/devices.py:934 +#: dcim/forms/filtersets.py:1434 dcim/tables/devices.py:951 msgid "Discovered" msgstr "" @@ -3459,110 +3602,113 @@ msgstr "" msgid "The lowest-numbered unit occupied by the device" msgstr "" -#: dcim/forms/model_forms.py:468 +#: dcim/forms/model_forms.py:469 msgid "The position in the virtual chassis this device is identified by" msgstr "" -#: dcim/forms/model_forms.py:472 templates/dcim/device.html:148 +#: dcim/forms/model_forms.py:473 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:111 +#: tenancy/forms/filtersets.py:109 msgid "Priority" msgstr "" -#: dcim/forms/model_forms.py:473 +#: dcim/forms/model_forms.py:474 msgid "The priority of the device in the virtual chassis" msgstr "" -#: dcim/forms/model_forms.py:577 +#: dcim/forms/model_forms.py:578 msgid "Automatically populate components associated with this module type" msgstr "" -#: dcim/forms/model_forms.py:622 +#: dcim/forms/model_forms.py:623 msgid "Maximum length is 32767 (any unit)" msgstr "" -#: dcim/forms/model_forms.py:670 +#: dcim/forms/model_forms.py:671 msgid "Characteristics" msgstr "" -#: dcim/forms/model_forms.py:1129 +#: dcim/forms/model_forms.py:1130 msgid "LAG interface" msgstr "" -#: dcim/forms/model_forms.py:1183 dcim/forms/model_forms.py:1344 -#: dcim/tables/connections.py:65 ipam/forms/bulk_import.py:320 -#: ipam/forms/bulk_import.py:557 ipam/forms/model_forms.py:272 -#: ipam/forms/model_forms.py:281 ipam/forms/model_forms.py:807 -#: ipam/forms/model_forms.py:816 ipam/tables/fhrp.py:64 ipam/tables/ip.py:368 -#: ipam/tables/vlans.py:165 templates/circuits/inc/circuit_termination.html:78 +#: dcim/forms/model_forms.py:1184 dcim/forms/model_forms.py:1345 +#: dcim/tables/connections.py:65 ipam/forms/bulk_import.py:317 +#: ipam/forms/model_forms.py:270 ipam/forms/model_forms.py:279 +#: 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:186 templates/dcim/interface.html:318 +#: templates/dcim/interface.html:190 templates/dcim/interface.html:322 #: templates/dcim/inventoryitem_edit.html:54 templates/dcim/rearport.html:109 #: templates/ipam/fhrpgroupassignment_edit.html:11 #: templates/virtualization/vminterface.html:19 +#: templates/vpn/tunneltermination.html:32 #: templates/wireless/inc/wirelesslink_interface.html:10 #: templates/wireless/wirelesslink.html:10 #: templates/wireless/wirelesslink.html:49 -#: virtualization/forms/model_forms.py:330 wireless/forms/model_forms.py:112 -#: wireless/forms/model_forms.py:152 +#: virtualization/forms/model_forms.py:351 vpn/forms/bulk_import.py:292 +#: vpn/forms/model_forms.py:94 vpn/forms/model_forms.py:129 +#: vpn/forms/model_forms.py:241 vpn/forms/model_forms.py:430 +#: vpn/forms/model_forms.py:439 vpn/tables/tunnels.py:87 +#: wireless/forms/model_forms.py:112 wireless/forms/model_forms.py:152 msgid "Interface" msgstr "" -#: dcim/forms/model_forms.py:1277 +#: dcim/forms/model_forms.py:1278 msgid "Child Device" msgstr "" -#: dcim/forms/model_forms.py:1278 +#: dcim/forms/model_forms.py:1279 msgid "" "Child devices must first be created and assigned to the site and rack of the " "parent device." msgstr "" -#: dcim/forms/model_forms.py:1320 +#: dcim/forms/model_forms.py:1321 msgid "Console port" msgstr "" -#: dcim/forms/model_forms.py:1328 +#: dcim/forms/model_forms.py:1329 msgid "Console server port" msgstr "" -#: dcim/forms/model_forms.py:1336 +#: dcim/forms/model_forms.py:1337 msgid "Front port" msgstr "" -#: dcim/forms/model_forms.py:1352 +#: dcim/forms/model_forms.py:1353 msgid "Power outlet" msgstr "" -#: dcim/forms/model_forms.py:1372 templates/dcim/inventoryitem.html:17 +#: dcim/forms/model_forms.py:1373 templates/dcim/inventoryitem.html:17 #: templates/dcim/inventoryitem_edit.html:10 msgid "Inventory Item" msgstr "" -#: dcim/forms/model_forms.py:1424 +#: dcim/forms/model_forms.py:1425 msgid "An InventoryItem can only be assigned to a single component." msgstr "" -#: dcim/forms/model_forms.py:1438 templates/dcim/inventoryitemrole.html:15 +#: dcim/forms/model_forms.py:1439 templates/dcim/inventoryitemrole.html:15 msgid "Inventory Item Role" msgstr "" -#: dcim/forms/model_forms.py:1458 templates/dcim/device.html:212 +#: dcim/forms/model_forms.py:1459 templates/dcim/device.html:195 #: templates/dcim/virtualdevicecontext.html:33 #: templates/virtualization/virtualmachine.html:51 msgid "Primary IPv4" msgstr "" -#: dcim/forms/model_forms.py:1467 templates/dcim/device.html:228 +#: dcim/forms/model_forms.py:1468 templates/dcim/device.html:211 #: templates/dcim/virtualdevicecontext.html:44 #: templates/virtualization/virtualmachine.html:67 msgid "Primary IPv6" msgstr "" -#: dcim/forms/object_create.py:47 dcim/forms/object_create.py:181 -#: dcim/forms/object_create.py:321 +#: dcim/forms/object_create.py:47 dcim/forms/object_create.py:198 +#: dcim/forms/object_create.py:354 msgid "" "Alphanumeric ranges are supported. (Must match the number of objects being " "created.)" @@ -3575,714 +3721,733 @@ msgid "" "expected." msgstr "" -#: dcim/forms/object_create.py:109 dcim/forms/object_create.py:253 +#: dcim/forms/object_create.py:109 dcim/forms/object_create.py:270 #: dcim/tables/devices.py:281 msgid "Rear ports" msgstr "" -#: dcim/forms/object_create.py:110 dcim/forms/object_create.py:254 +#: dcim/forms/object_create.py:110 dcim/forms/object_create.py:271 msgid "Select one rear port assignment for each front port being created." msgstr "" -#: dcim/forms/object_create.py:233 +#: dcim/forms/object_create.py:163 +#, 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 #, 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:375 dcim/tables/devices.py:1013 +#: dcim/forms/object_create.py:319 +#, 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:1034 #: ipam/tables/fhrp.py:31 templates/dcim/virtualchassis.html:54 #: templates/dcim/virtualchassis_edit.html:48 templates/ipam/fhrpgroup.html:39 msgid "Members" msgstr "" -#: dcim/forms/object_create.py:384 +#: dcim/forms/object_create.py:417 msgid "Initial position" msgstr "" -#: dcim/forms/object_create.py:387 +#: dcim/forms/object_create.py:420 msgid "" "Position of the first member device. Increases by one for each additional " "member." msgstr "" -#: dcim/forms/object_create.py:401 +#: dcim/forms/object_create.py:434 msgid "A position must be specified for the first VC member." msgstr "" -#: dcim/models/cables.py:63 dcim/models/device_component_templates.py:56 -#: dcim/models/device_components.py:64 extras/models/customfields.py:102 +#: dcim/models/cables.py:62 dcim/models/device_component_templates.py:55 +#: dcim/models/device_components.py:63 extras/models/customfields.py:108 msgid "label" msgstr "" -#: dcim/models/cables.py:72 +#: dcim/models/cables.py:71 msgid "length" msgstr "" -#: dcim/models/cables.py:79 +#: dcim/models/cables.py:78 msgid "length unit" msgstr "" -#: dcim/models/cables.py:94 +#: dcim/models/cables.py:93 msgid "cable" msgstr "" -#: dcim/models/cables.py:95 +#: dcim/models/cables.py:94 msgid "cables" msgstr "" -#: dcim/models/cables.py:247 ipam/models/asns.py:37 +#: dcim/models/cables.py:190 +msgid "A and B terminations cannot connect to the same object." +msgstr "" + +#: dcim/models/cables.py:257 ipam/models/asns.py:37 msgid "end" msgstr "" -#: dcim/models/cables.py:297 +#: dcim/models/cables.py:310 msgid "cable termination" msgstr "" -#: dcim/models/cables.py:298 +#: dcim/models/cables.py:311 msgid "cable terminations" msgstr "" -#: dcim/models/cables.py:421 extras/models/configs.py:50 +#: dcim/models/cables.py:434 extras/models/configs.py:50 msgid "is active" msgstr "" -#: dcim/models/cables.py:425 +#: dcim/models/cables.py:438 msgid "is complete" msgstr "" -#: dcim/models/cables.py:429 +#: dcim/models/cables.py:442 msgid "is split" msgstr "" -#: dcim/models/cables.py:435 +#: dcim/models/cables.py:450 msgid "cable path" msgstr "" -#: dcim/models/cables.py:436 +#: dcim/models/cables.py:451 msgid "cable paths" msgstr "" -#: dcim/models/device_component_templates.py:47 +#: dcim/models/device_component_templates.py:46 #, python-brace-format msgid "" "{module} is accepted as a substitution for the module bay position when " "attached to a module type." msgstr "" -#: dcim/models/device_component_templates.py:59 -#: dcim/models/device_components.py:67 +#: dcim/models/device_component_templates.py:58 +#: dcim/models/device_components.py:66 msgid "Physical label" msgstr "" -#: dcim/models/device_component_templates.py:104 +#: dcim/models/device_component_templates.py:103 msgid "Component templates cannot be moved to a different device type." msgstr "" -#: dcim/models/device_component_templates.py:155 +#: dcim/models/device_component_templates.py:154 msgid "" "A component template cannot be associated with both a device type and a " "module type." msgstr "" -#: dcim/models/device_component_templates.py:159 +#: dcim/models/device_component_templates.py:158 msgid "" "A component template must be associated with either a device type or a " "module type." msgstr "" -#: dcim/models/device_component_templates.py:187 +#: dcim/models/device_component_templates.py:186 msgid "console port template" msgstr "" -#: dcim/models/device_component_templates.py:188 +#: dcim/models/device_component_templates.py:187 msgid "console port templates" msgstr "" -#: dcim/models/device_component_templates.py:221 +#: dcim/models/device_component_templates.py:220 msgid "console server port template" msgstr "" -#: dcim/models/device_component_templates.py:222 +#: dcim/models/device_component_templates.py:221 msgid "console server port templates" msgstr "" -#: dcim/models/device_component_templates.py:253 -#: dcim/models/device_components.py:354 +#: dcim/models/device_component_templates.py:252 +#: dcim/models/device_components.py:353 msgid "maximum draw" msgstr "" -#: dcim/models/device_component_templates.py:260 -#: dcim/models/device_components.py:361 +#: dcim/models/device_component_templates.py:259 +#: dcim/models/device_components.py:360 msgid "allocated draw" msgstr "" -#: dcim/models/device_component_templates.py:270 +#: dcim/models/device_component_templates.py:269 msgid "power port template" msgstr "" -#: dcim/models/device_component_templates.py:271 +#: dcim/models/device_component_templates.py:270 msgid "power port templates" msgstr "" -#: dcim/models/device_component_templates.py:290 -#: dcim/models/device_components.py:384 +#: dcim/models/device_component_templates.py:289 +#: dcim/models/device_components.py:383 #, python-brace-format msgid "Allocated draw cannot exceed the maximum draw ({maximum_draw}W)." msgstr "" -#: dcim/models/device_component_templates.py:322 -#: dcim/models/device_components.py:479 +#: dcim/models/device_component_templates.py:321 +#: dcim/models/device_components.py:478 msgid "feed leg" msgstr "" -#: dcim/models/device_component_templates.py:326 -#: dcim/models/device_components.py:483 +#: dcim/models/device_component_templates.py:325 +#: dcim/models/device_components.py:482 msgid "Phase (for three-phase feeds)" msgstr "" -#: dcim/models/device_component_templates.py:332 +#: dcim/models/device_component_templates.py:331 msgid "power outlet template" msgstr "" -#: dcim/models/device_component_templates.py:333 +#: dcim/models/device_component_templates.py:332 msgid "power outlet templates" msgstr "" -#: dcim/models/device_component_templates.py:342 +#: dcim/models/device_component_templates.py:341 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device type" msgstr "" -#: dcim/models/device_component_templates.py:346 +#: dcim/models/device_component_templates.py:345 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same module type" msgstr "" -#: dcim/models/device_component_templates.py:398 -#: dcim/models/device_components.py:609 +#: dcim/models/device_component_templates.py:397 +#: dcim/models/device_components.py:612 msgid "management only" msgstr "" -#: dcim/models/device_component_templates.py:406 -#: dcim/models/device_components.py:552 +#: dcim/models/device_component_templates.py:405 +#: dcim/models/device_components.py:551 msgid "bridge interface" msgstr "" -#: dcim/models/device_component_templates.py:424 -#: dcim/models/device_components.py:634 +#: dcim/models/device_component_templates.py:423 +#: dcim/models/device_components.py:637 msgid "wireless role" msgstr "" -#: dcim/models/device_component_templates.py:430 +#: dcim/models/device_component_templates.py:429 msgid "interface template" msgstr "" -#: dcim/models/device_component_templates.py:431 +#: dcim/models/device_component_templates.py:430 msgid "interface templates" msgstr "" -#: dcim/models/device_component_templates.py:438 -#: dcim/models/device_components.py:796 -#: virtualization/models/virtualmachines.py:340 +#: dcim/models/device_component_templates.py:437 +#: dcim/models/device_components.py:805 +#: virtualization/models/virtualmachines.py:398 msgid "An interface cannot be bridged to itself." msgstr "" -#: dcim/models/device_component_templates.py:441 +#: dcim/models/device_component_templates.py:440 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same device type" msgstr "" -#: dcim/models/device_component_templates.py:445 +#: dcim/models/device_component_templates.py:444 #, python-brace-format msgid "Bridge interface ({bridge}) must belong to the same module type" msgstr "" -#: dcim/models/device_component_templates.py:501 -#: dcim/models/device_components.py:976 +#: dcim/models/device_component_templates.py:500 +#: dcim/models/device_components.py:985 msgid "rear port position" msgstr "" -#: dcim/models/device_component_templates.py:526 +#: dcim/models/device_component_templates.py:525 msgid "front port template" msgstr "" -#: dcim/models/device_component_templates.py:527 +#: dcim/models/device_component_templates.py:526 msgid "front port templates" msgstr "" -#: dcim/models/device_component_templates.py:537 +#: dcim/models/device_component_templates.py:536 #, python-brace-format msgid "Rear port ({name}) must belong to the same device type" msgstr "" -#: dcim/models/device_component_templates.py:543 +#: dcim/models/device_component_templates.py:542 #, python-brace-format msgid "" "Invalid rear port position ({position}); rear port {name} has only {count} " "positions" msgstr "" -#: dcim/models/device_component_templates.py:596 -#: dcim/models/device_components.py:1045 +#: dcim/models/device_component_templates.py:595 +#: dcim/models/device_components.py:1054 msgid "positions" msgstr "" -#: dcim/models/device_component_templates.py:607 +#: dcim/models/device_component_templates.py:606 msgid "rear port template" msgstr "" -#: dcim/models/device_component_templates.py:608 +#: dcim/models/device_component_templates.py:607 msgid "rear port templates" msgstr "" -#: dcim/models/device_component_templates.py:637 -#: dcim/models/device_components.py:1086 +#: dcim/models/device_component_templates.py:636 +#: dcim/models/device_components.py:1095 msgid "position" msgstr "" -#: dcim/models/device_component_templates.py:640 -#: dcim/models/device_components.py:1089 +#: dcim/models/device_component_templates.py:639 +#: dcim/models/device_components.py:1098 msgid "Identifier to reference when renaming installed components" msgstr "" -#: dcim/models/device_component_templates.py:646 +#: dcim/models/device_component_templates.py:645 msgid "module bay template" msgstr "" -#: dcim/models/device_component_templates.py:647 +#: dcim/models/device_component_templates.py:646 msgid "module bay templates" msgstr "" -#: dcim/models/device_component_templates.py:674 +#: dcim/models/device_component_templates.py:673 msgid "device bay template" msgstr "" -#: dcim/models/device_component_templates.py:675 +#: dcim/models/device_component_templates.py:674 msgid "device bay templates" msgstr "" -#: dcim/models/device_component_templates.py:688 +#: dcim/models/device_component_templates.py:687 #, python-brace-format msgid "" "Subdevice role of device type ({device_type}) must be set to \"parent\" to " "allow device bays." msgstr "" -#: dcim/models/device_component_templates.py:743 -#: dcim/models/device_components.py:1215 +#: dcim/models/device_component_templates.py:742 +#: dcim/models/device_components.py:1224 msgid "part ID" msgstr "" -#: dcim/models/device_component_templates.py:745 -#: dcim/models/device_components.py:1217 +#: dcim/models/device_component_templates.py:744 +#: dcim/models/device_components.py:1226 msgid "Manufacturer-assigned part identifier" msgstr "" -#: dcim/models/device_component_templates.py:759 +#: dcim/models/device_component_templates.py:761 msgid "inventory item template" msgstr "" -#: dcim/models/device_component_templates.py:760 +#: dcim/models/device_component_templates.py:762 msgid "inventory item templates" msgstr "" -#: dcim/models/device_components.py:107 +#: dcim/models/device_components.py:106 msgid "Components cannot be moved to a different device." msgstr "" -#: dcim/models/device_components.py:146 +#: dcim/models/device_components.py:145 msgid "cable end" msgstr "" -#: dcim/models/device_components.py:152 +#: dcim/models/device_components.py:151 msgid "mark connected" msgstr "" -#: dcim/models/device_components.py:154 +#: dcim/models/device_components.py:153 msgid "Treat as if a cable is connected" msgstr "" -#: dcim/models/device_components.py:172 +#: dcim/models/device_components.py:171 msgid "Must specify cable end (A or B) when attaching a cable." msgstr "" -#: dcim/models/device_components.py:176 +#: dcim/models/device_components.py:175 msgid "Cable end must not be set without a cable." msgstr "" -#: dcim/models/device_components.py:180 +#: dcim/models/device_components.py:179 msgid "Cannot mark as connected with a cable attached." msgstr "" -#: dcim/models/device_components.py:204 +#: dcim/models/device_components.py:203 #, python-brace-format msgid "{class_name} models must declare a parent_object property" msgstr "" -#: dcim/models/device_components.py:289 dcim/models/device_components.py:318 -#: dcim/models/device_components.py:351 dcim/models/device_components.py:469 +#: dcim/models/device_components.py:288 dcim/models/device_components.py:317 +#: dcim/models/device_components.py:350 dcim/models/device_components.py:468 msgid "Physical port type" msgstr "" -#: dcim/models/device_components.py:292 dcim/models/device_components.py:321 +#: dcim/models/device_components.py:291 dcim/models/device_components.py:320 msgid "speed" msgstr "" -#: dcim/models/device_components.py:296 dcim/models/device_components.py:325 +#: dcim/models/device_components.py:295 dcim/models/device_components.py:324 msgid "Port speed in bits per second" msgstr "" -#: dcim/models/device_components.py:302 +#: dcim/models/device_components.py:301 msgid "console port" msgstr "" -#: dcim/models/device_components.py:303 +#: dcim/models/device_components.py:302 msgid "console ports" msgstr "" -#: dcim/models/device_components.py:331 +#: dcim/models/device_components.py:330 msgid "console server port" msgstr "" -#: dcim/models/device_components.py:332 +#: dcim/models/device_components.py:331 msgid "console server ports" msgstr "" -#: dcim/models/device_components.py:371 +#: dcim/models/device_components.py:370 msgid "power port" msgstr "" -#: dcim/models/device_components.py:372 +#: dcim/models/device_components.py:371 msgid "power ports" msgstr "" -#: dcim/models/device_components.py:489 +#: dcim/models/device_components.py:488 msgid "power outlet" msgstr "" -#: dcim/models/device_components.py:490 +#: dcim/models/device_components.py:489 msgid "power outlets" msgstr "" -#: dcim/models/device_components.py:501 +#: dcim/models/device_components.py:500 #, python-brace-format msgid "Parent power port ({power_port}) must belong to the same device" msgstr "" -#: dcim/models/device_components.py:532 +#: dcim/models/device_components.py:531 vpn/models/crypto.py:81 +#: vpn/models/crypto.py:214 msgid "mode" msgstr "" -#: dcim/models/device_components.py:536 +#: dcim/models/device_components.py:535 msgid "IEEE 802.1Q tagging strategy" msgstr "" -#: dcim/models/device_components.py:544 +#: dcim/models/device_components.py:543 msgid "parent interface" msgstr "" -#: dcim/models/device_components.py:600 +#: dcim/models/device_components.py:603 msgid "parent LAG" msgstr "" -#: dcim/models/device_components.py:610 +#: dcim/models/device_components.py:613 msgid "This interface is used only for out-of-band management" msgstr "" -#: dcim/models/device_components.py:615 +#: dcim/models/device_components.py:618 msgid "speed (Kbps)" msgstr "" -#: dcim/models/device_components.py:618 +#: dcim/models/device_components.py:621 msgid "duplex" msgstr "" -#: dcim/models/device_components.py:628 +#: dcim/models/device_components.py:631 msgid "64-bit World Wide Name" msgstr "" -#: dcim/models/device_components.py:640 +#: dcim/models/device_components.py:643 msgid "wireless channel" msgstr "" -#: dcim/models/device_components.py:647 +#: dcim/models/device_components.py:650 msgid "channel frequency (MHz)" msgstr "" -#: dcim/models/device_components.py:648 dcim/models/device_components.py:656 +#: dcim/models/device_components.py:651 dcim/models/device_components.py:659 msgid "Populated by selected channel (if set)" msgstr "" -#: dcim/models/device_components.py:662 +#: dcim/models/device_components.py:665 msgid "transmit power (dBm)" msgstr "" -#: dcim/models/device_components.py:687 wireless/models.py:116 +#: dcim/models/device_components.py:690 wireless/models.py:116 msgid "wireless LANs" msgstr "" -#: dcim/models/device_components.py:695 -#: virtualization/models/virtualmachines.py:266 +#: dcim/models/device_components.py:698 +#: virtualization/models/virtualmachines.py:328 msgid "untagged VLAN" msgstr "" -#: dcim/models/device_components.py:701 -#: virtualization/models/virtualmachines.py:272 +#: dcim/models/device_components.py:704 +#: virtualization/models/virtualmachines.py:334 msgid "tagged VLANs" msgstr "" -#: dcim/models/device_components.py:737 -#: virtualization/models/virtualmachines.py:309 +#: dcim/models/device_components.py:746 +#: virtualization/models/virtualmachines.py:370 msgid "interface" msgstr "" -#: dcim/models/device_components.py:738 -#: virtualization/models/virtualmachines.py:310 +#: dcim/models/device_components.py:747 +#: virtualization/models/virtualmachines.py:371 msgid "interfaces" msgstr "" -#: dcim/models/device_components.py:749 +#: dcim/models/device_components.py:758 #, python-brace-format msgid "{display_type} interfaces cannot have a cable attached." msgstr "" -#: dcim/models/device_components.py:757 +#: dcim/models/device_components.py:766 #, python-brace-format msgid "{display_type} interfaces cannot be marked as connected." msgstr "" -#: dcim/models/device_components.py:766 -#: virtualization/models/virtualmachines.py:325 +#: dcim/models/device_components.py:775 +#: virtualization/models/virtualmachines.py:383 msgid "An interface cannot be its own parent." msgstr "" -#: dcim/models/device_components.py:770 +#: dcim/models/device_components.py:779 msgid "Only virtual interfaces may be assigned to a parent interface." msgstr "" -#: dcim/models/device_components.py:777 +#: dcim/models/device_components.py:786 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to a different device " "({device})" msgstr "" -#: dcim/models/device_components.py:783 +#: dcim/models/device_components.py:792 #, python-brace-format msgid "" "The selected parent interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "" -#: dcim/models/device_components.py:803 +#: dcim/models/device_components.py:812 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different device " "({device})." msgstr "" -#: dcim/models/device_components.py:809 +#: dcim/models/device_components.py:818 #, python-brace-format msgid "" "The selected bridge interface ({interface}) belongs to {device}, which is " "not part of virtual chassis {virtual_chassis}." msgstr "" -#: dcim/models/device_components.py:820 +#: dcim/models/device_components.py:829 msgid "Virtual interfaces cannot have a parent LAG interface." msgstr "" -#: dcim/models/device_components.py:824 +#: dcim/models/device_components.py:833 msgid "A LAG interface cannot be its own parent." msgstr "" -#: dcim/models/device_components.py:831 +#: dcim/models/device_components.py:840 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to a different device ({device})." msgstr "" -#: dcim/models/device_components.py:837 +#: dcim/models/device_components.py:846 #, python-brace-format msgid "" "The selected LAG interface ({lag}) belongs to {device}, which is not part of " "virtual chassis {virtual_chassis}." msgstr "" -#: dcim/models/device_components.py:848 +#: dcim/models/device_components.py:857 msgid "Virtual interfaces cannot have a PoE mode." msgstr "" -#: dcim/models/device_components.py:852 +#: dcim/models/device_components.py:861 msgid "Virtual interfaces cannot have a PoE type." msgstr "" -#: dcim/models/device_components.py:858 +#: dcim/models/device_components.py:867 msgid "Must specify PoE mode when designating a PoE type." msgstr "" -#: dcim/models/device_components.py:865 +#: dcim/models/device_components.py:874 msgid "Wireless role may be set only on wireless interfaces." msgstr "" -#: dcim/models/device_components.py:867 +#: dcim/models/device_components.py:876 msgid "Channel may be set only on wireless interfaces." msgstr "" -#: dcim/models/device_components.py:873 +#: dcim/models/device_components.py:882 msgid "Channel frequency may be set only on wireless interfaces." msgstr "" -#: dcim/models/device_components.py:877 +#: dcim/models/device_components.py:886 msgid "Cannot specify custom frequency with channel selected." msgstr "" -#: dcim/models/device_components.py:883 +#: dcim/models/device_components.py:892 msgid "Channel width may be set only on wireless interfaces." msgstr "" -#: dcim/models/device_components.py:885 +#: dcim/models/device_components.py:894 msgid "Cannot specify custom width with channel selected." msgstr "" -#: dcim/models/device_components.py:893 +#: dcim/models/device_components.py:902 #, python-brace-format msgid "" "The untagged VLAN ({untagged_vlan}) must belong to the same site as the " "interface's parent device, or it must be global." msgstr "" -#: dcim/models/device_components.py:982 +#: dcim/models/device_components.py:991 msgid "Mapped position on corresponding rear port" msgstr "" -#: dcim/models/device_components.py:998 +#: dcim/models/device_components.py:1007 msgid "front port" msgstr "" -#: dcim/models/device_components.py:999 +#: dcim/models/device_components.py:1008 msgid "front ports" msgstr "" -#: dcim/models/device_components.py:1013 +#: dcim/models/device_components.py:1022 #, python-brace-format msgid "Rear port ({rear_port}) must belong to the same device" msgstr "" -#: dcim/models/device_components.py:1021 +#: dcim/models/device_components.py:1030 #, python-brace-format msgid "" "Invalid rear port position ({rear_port_position}): Rear port {name} has only " "{positions} positions." msgstr "" -#: dcim/models/device_components.py:1051 +#: dcim/models/device_components.py:1060 msgid "Number of front ports which may be mapped" msgstr "" -#: dcim/models/device_components.py:1056 +#: dcim/models/device_components.py:1065 msgid "rear port" msgstr "" -#: dcim/models/device_components.py:1057 +#: dcim/models/device_components.py:1066 msgid "rear ports" msgstr "" -#: dcim/models/device_components.py:1071 +#: dcim/models/device_components.py:1080 #, python-brace-format msgid "" "The number of positions cannot be less than the number of mapped front ports " "({frontport_count})" msgstr "" -#: dcim/models/device_components.py:1095 +#: dcim/models/device_components.py:1104 msgid "module bay" msgstr "" -#: dcim/models/device_components.py:1096 +#: dcim/models/device_components.py:1105 msgid "module bays" msgstr "" -#: dcim/models/device_components.py:1109 +#: dcim/models/device_components.py:1118 msgid "parent_bay" msgstr "" -#: dcim/models/device_components.py:1117 +#: dcim/models/device_components.py:1126 msgid "device bay" msgstr "" -#: dcim/models/device_components.py:1118 +#: dcim/models/device_components.py:1127 msgid "device bays" msgstr "" -#: dcim/models/device_components.py:1128 +#: dcim/models/device_components.py:1137 #, python-brace-format msgid "This type of device ({device_type}) does not support device bays." msgstr "" -#: dcim/models/device_components.py:1134 +#: dcim/models/device_components.py:1143 msgid "Cannot install a device into itself." msgstr "" -#: dcim/models/device_components.py:1142 +#: dcim/models/device_components.py:1151 #, python-brace-format msgid "" "Cannot install the specified device; device is already installed in {bay}." msgstr "" -#: dcim/models/device_components.py:1163 +#: dcim/models/device_components.py:1172 msgid "inventory item role" msgstr "" -#: dcim/models/device_components.py:1164 +#: dcim/models/device_components.py:1173 msgid "inventory item roles" msgstr "" -#: dcim/models/device_components.py:1221 dcim/models/devices.py:595 -#: dcim/models/devices.py:1168 dcim/models/racks.py:113 +#: dcim/models/device_components.py:1230 dcim/models/devices.py:595 +#: dcim/models/devices.py:1173 dcim/models/racks.py:113 msgid "serial number" msgstr "" -#: dcim/models/device_components.py:1229 dcim/models/devices.py:603 -#: dcim/models/devices.py:1175 dcim/models/racks.py:120 +#: dcim/models/device_components.py:1238 dcim/models/devices.py:603 +#: dcim/models/devices.py:1180 dcim/models/racks.py:120 msgid "asset tag" msgstr "" -#: dcim/models/device_components.py:1230 +#: dcim/models/device_components.py:1239 msgid "A unique tag used to identify this item" msgstr "" -#: dcim/models/device_components.py:1233 +#: dcim/models/device_components.py:1242 msgid "discovered" msgstr "" -#: dcim/models/device_components.py:1235 +#: dcim/models/device_components.py:1244 msgid "This item was automatically discovered" msgstr "" -#: dcim/models/device_components.py:1250 +#: dcim/models/device_components.py:1262 msgid "inventory item" msgstr "" -#: dcim/models/device_components.py:1251 +#: dcim/models/device_components.py:1263 msgid "inventory items" msgstr "" -#: dcim/models/device_components.py:1262 +#: dcim/models/device_components.py:1274 msgid "Cannot assign self as parent." msgstr "" -#: dcim/models/device_components.py:1270 +#: dcim/models/device_components.py:1282 msgid "Parent inventory item does not belong to the same device." msgstr "" -#: dcim/models/device_components.py:1276 +#: dcim/models/device_components.py:1288 msgid "Cannot move an inventory item with dependent children" msgstr "" -#: dcim/models/device_components.py:1284 +#: dcim/models/device_components.py:1296 msgid "Cannot assign inventory item to component on another device" msgstr "" @@ -4319,7 +4484,7 @@ msgid "exclude from utilization" msgstr "" #: dcim/models/devices.py:112 -msgid "Exclude from rack utilization calculations." +msgid "Devices of this type are excluded when calculating rack utilization." msgstr "" #: dcim/models/devices.py:116 @@ -4327,7 +4492,7 @@ msgid "is full depth" msgstr "" #: dcim/models/devices.py:117 -msgid "Device consumes both front and rear rack faces" +msgid "Device consumes both front and rear rack faces." msgstr "" #: dcim/models/devices.py:123 @@ -4420,7 +4585,7 @@ msgstr "" msgid "Chassis serial number, assigned by the manufacturer" msgstr "" -#: dcim/models/devices.py:604 dcim/models/devices.py:1176 +#: dcim/models/devices.py:604 dcim/models/devices.py:1181 msgid "A unique tag used to identify this device" msgstr "" @@ -4432,13 +4597,13 @@ msgstr "" msgid "rack face" msgstr "" -#: dcim/models/devices.py:658 dcim/models/devices.py:1385 -#: virtualization/models/virtualmachines.py:97 +#: dcim/models/devices.py:658 dcim/models/devices.py:1390 +#: virtualization/models/virtualmachines.py:98 msgid "primary IPv4" msgstr "" -#: dcim/models/devices.py:666 dcim/models/devices.py:1393 -#: virtualization/models/virtualmachines.py:105 +#: dcim/models/devices.py:666 dcim/models/devices.py:1398 +#: virtualization/models/virtualmachines.py:106 msgid "primary IPv6" msgstr "" @@ -4573,74 +4738,74 @@ msgstr "" msgid "A device assigned to a virtual chassis must have its position defined." msgstr "" -#: dcim/models/devices.py:1183 +#: dcim/models/devices.py:1188 msgid "module" msgstr "" -#: dcim/models/devices.py:1184 +#: dcim/models/devices.py:1189 msgid "modules" msgstr "" -#: dcim/models/devices.py:1200 +#: dcim/models/devices.py:1205 #, python-brace-format msgid "" "Module must be installed within a module bay belonging to the assigned " "device ({device})." msgstr "" -#: dcim/models/devices.py:1304 +#: dcim/models/devices.py:1309 msgid "domain" msgstr "" -#: dcim/models/devices.py:1317 dcim/models/devices.py:1318 +#: dcim/models/devices.py:1322 dcim/models/devices.py:1323 msgid "virtual chassis" msgstr "" -#: dcim/models/devices.py:1333 +#: dcim/models/devices.py:1338 #, python-brace-format msgid "The selected master ({master}) is not assigned to this virtual chassis." msgstr "" -#: dcim/models/devices.py:1349 +#: dcim/models/devices.py:1354 #, 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:1374 ipam/models/l2vpn.py:37 +#: dcim/models/devices.py:1379 vpn/models/l2vpn.py:37 msgid "identifier" msgstr "" -#: dcim/models/devices.py:1375 +#: dcim/models/devices.py:1380 msgid "Numeric identifier unique to the parent device" msgstr "" -#: dcim/models/devices.py:1403 extras/models/models.py:629 -#: netbox/models/__init__.py:114 +#: dcim/models/devices.py:1408 extras/models/models.py:129 +#: extras/models/models.py:724 netbox/models/__init__.py:114 msgid "comments" msgstr "" -#: dcim/models/devices.py:1419 +#: dcim/models/devices.py:1424 msgid "virtual device context" msgstr "" -#: dcim/models/devices.py:1420 +#: dcim/models/devices.py:1425 msgid "virtual device contexts" msgstr "" -#: dcim/models/devices.py:1452 +#: dcim/models/devices.py:1457 #, python-brace-format msgid "{ip} is not an IPv{family} address." msgstr "" -#: dcim/models/devices.py:1458 +#: dcim/models/devices.py:1463 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:260 extras/models/models.py:469 -#: extras/models/search.py:48 ipam/models/ip.py:193 +#: extras/models/models.py:343 extras/models/models.py:552 +#: extras/models/search.py:50 ipam/models/ip.py:193 msgid "weight" msgstr "" @@ -4705,8 +4870,8 @@ msgstr "" #: dcim/models/power.py:178 #, python-brace-format msgid "" -"Rack {rack} ({site}) and power panel {powerpanel} ({powerpanel_site}) are in " -"different sites" +"Rack {rack} ({rack_site}) and power panel {powerpanel} ({powerpanel_site}) " +"are in different sites." msgstr "" #: dcim/models/power.py:189 @@ -4729,9 +4894,9 @@ msgstr "" msgid "Locally-assigned identifier" msgstr "" -#: dcim/models/racks.py:108 ipam/forms/bulk_import.py:203 -#: ipam/forms/bulk_import.py:268 ipam/forms/bulk_import.py:303 -#: ipam/forms/bulk_import.py:470 virtualization/forms/bulk_import.py:111 +#: dcim/models/racks.py:108 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 "" @@ -4755,114 +4920,114 @@ msgstr "" msgid "starting unit" msgstr "" -#: dcim/models/racks.py:144 +#: dcim/models/racks.py:145 msgid "Starting unit for rack" msgstr "" -#: dcim/models/racks.py:148 +#: dcim/models/racks.py:149 msgid "descending units" msgstr "" -#: dcim/models/racks.py:149 +#: dcim/models/racks.py:150 msgid "Units are numbered top-to-bottom" msgstr "" -#: dcim/models/racks.py:152 +#: dcim/models/racks.py:153 msgid "outer width" msgstr "" -#: dcim/models/racks.py:155 +#: dcim/models/racks.py:156 msgid "Outer dimension of rack (width)" msgstr "" -#: dcim/models/racks.py:158 +#: dcim/models/racks.py:159 msgid "outer depth" msgstr "" -#: dcim/models/racks.py:161 +#: dcim/models/racks.py:162 msgid "Outer dimension of rack (depth)" msgstr "" -#: dcim/models/racks.py:164 +#: dcim/models/racks.py:165 msgid "outer unit" msgstr "" -#: dcim/models/racks.py:170 +#: dcim/models/racks.py:171 msgid "max weight" msgstr "" -#: dcim/models/racks.py:173 +#: dcim/models/racks.py:174 msgid "Maximum load capacity for the rack" msgstr "" -#: dcim/models/racks.py:181 +#: dcim/models/racks.py:182 msgid "mounting depth" msgstr "" -#: dcim/models/racks.py:185 +#: dcim/models/racks.py:186 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:219 +#: dcim/models/racks.py:220 msgid "rack" msgstr "" -#: dcim/models/racks.py:220 +#: dcim/models/racks.py:221 msgid "racks" msgstr "" -#: dcim/models/racks.py:235 +#: dcim/models/racks.py:236 #, python-brace-format msgid "Assigned location must belong to parent site ({site})." msgstr "" -#: dcim/models/racks.py:239 +#: dcim/models/racks.py:240 msgid "Must specify a unit when setting an outer width/depth" msgstr "" -#: dcim/models/racks.py:243 +#: dcim/models/racks.py:244 msgid "Must specify a unit when setting a maximum weight" msgstr "" -#: dcim/models/racks.py:253 +#: dcim/models/racks.py:254 #, python-brace-format msgid "" "Rack must be at least {min_height}U tall to house currently installed " "devices." msgstr "" -#: dcim/models/racks.py:260 +#: dcim/models/racks.py:261 #, python-brace-format msgid "" "Rack unit numbering must begin at {position} or less to house currently " "installed devices." msgstr "" -#: dcim/models/racks.py:268 +#: dcim/models/racks.py:269 #, python-brace-format msgid "Location must be from the same site, {site}." msgstr "" -#: dcim/models/racks.py:521 +#: dcim/models/racks.py:522 msgid "units" msgstr "" -#: dcim/models/racks.py:547 +#: dcim/models/racks.py:548 msgid "rack reservation" msgstr "" -#: dcim/models/racks.py:548 +#: dcim/models/racks.py:549 msgid "rack reservations" msgstr "" -#: dcim/models/racks.py:565 +#: dcim/models/racks.py:566 #, python-brace-format msgid "Invalid unit(s) for {height}U rack: {unit_list}" msgstr "" -#: dcim/models/racks.py:578 +#: dcim/models/racks.py:579 #, python-brace-format msgid "The following units have already been reserved: {unit_list}" msgstr "" @@ -5008,7 +5173,7 @@ msgstr "" msgid "Reachable" msgstr "" -#: dcim/tables/connections.py:46 dcim/tables/devices.py:518 +#: dcim/tables/connections.py:46 dcim/tables/devices.py:524 #: templates/dcim/inventoryitem_edit.html:64 templates/dcim/poweroutlet.html:47 #: templates/dcim/powerport.html:18 msgid "Power Port" @@ -5017,7 +5182,7 @@ 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:124 virtualization/tables/clusters.py:83 +#: virtualization/forms/model_forms.py:125 virtualization/tables/clusters.py:83 #: virtualization/views.py:211 msgid "Devices" msgstr "" @@ -5028,7 +5193,7 @@ msgid "VMs" msgstr "" #: dcim/tables/devices.py:133 dcim/tables/devices.py:245 -#: extras/forms/model_forms.py:403 templates/dcim/device.html:131 +#: extras/forms/model_forms.py:506 templates/dcim/device.html:114 #: templates/dcim/device/render_config.html:11 #: templates/dcim/device/render_config.html:15 #: templates/dcim/devicerole.html:47 templates/dcim/platform.html:44 @@ -5036,25 +5201,25 @@ msgstr "" #: templates/virtualization/virtualmachine.html:47 #: templates/virtualization/virtualmachine/render_config.html:11 #: templates/virtualization/virtualmachine/render_config.html:15 -#: virtualization/tables/virtualmachines.py:88 +#: virtualization/tables/virtualmachines.py:93 msgid "Config Template" msgstr "" -#: dcim/tables/devices.py:216 dcim/tables/devices.py:1048 -#: ipam/forms/model_forms.py:298 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 -#: virtualization/tables/virtualmachines.py:79 +#: dcim/tables/devices.py:216 dcim/tables/devices.py:1069 +#: 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 +#: virtualization/tables/virtualmachines.py:81 msgid "IP Address" msgstr "" -#: dcim/tables/devices.py:220 dcim/tables/devices.py:1052 -#: virtualization/tables/virtualmachines.py:70 +#: dcim/tables/devices.py:220 dcim/tables/devices.py:1073 +#: virtualization/tables/virtualmachines.py:72 msgid "IPv4 Address" msgstr "" -#: dcim/tables/devices.py:224 dcim/tables/devices.py:1056 -#: virtualization/tables/virtualmachines.py:74 +#: dcim/tables/devices.py:224 dcim/tables/devices.py:1077 +#: virtualization/tables/virtualmachines.py:76 msgid "IPv6 Address" msgstr "" @@ -5091,16 +5256,17 @@ msgstr "" msgid "Power outlets" msgstr "" -#: dcim/tables/devices.py:275 dcim/tables/devices.py:1061 +#: dcim/tables/devices.py:275 dcim/tables/devices.py:1082 #: dcim/tables/devicetypes.py:125 dcim/views.py:1002 dcim/views.py:1241 #: dcim/views.py:1927 netbox/navigation/menu.py:82 -#: netbox/navigation/menu.py:220 templates/dcim/device/base.html:37 +#: netbox/navigation/menu.py:238 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/virtualization/virtualmachine/base.html:27 #: templates/virtualization/virtualmachine_list.html:14 -#: virtualization/tables/virtualmachines.py:85 virtualization/views.py:368 +#: virtualization/tables/virtualmachines.py:87 virtualization/views.py:368 #: wireless/tables/wirelesslan.py:55 msgid "Interfaces" msgstr "" @@ -5138,63 +5304,90 @@ msgstr "" msgid "Mark Connected" msgstr "" -#: dcim/tables/devices.py:567 ipam/forms/model_forms.py:709 -#: ipam/tables/fhrp.py:28 ipam/views.py:599 ipam/views.py:673 +#: dcim/tables/devices.py:470 +msgid "Maximum draw (W)" +msgstr "" + +#: dcim/tables/devices.py:473 +msgid "Allocated draw (W)" +msgstr "" + +#: dcim/tables/devices.py:573 ipam/forms/model_forms.py:707 +#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:671 #: netbox/navigation/menu.py:146 netbox/navigation/menu.py:148 -#: templates/dcim/interface.html:347 templates/ipam/ipaddress_bulk_add.html:15 -#: templates/ipam/service.html:43 templates/virtualization/vminterface.html:84 +#: templates/dcim/interface.html:351 templates/ipam/ipaddress_bulk_add.html:15 +#: templates/ipam/service.html:43 templates/virtualization/vminterface.html:88 +#: vpn/tables/tunnels.py:94 msgid "IP Addresses" msgstr "" -#: dcim/tables/devices.py:573 netbox/navigation/menu.py:190 +#: dcim/tables/devices.py:579 netbox/navigation/menu.py:190 #: templates/ipam/inc/panels/fhrp_groups.html:5 msgid "FHRP Groups" msgstr "" -#: dcim/tables/devices.py:604 dcim/tables/devicetypes.py:224 +#: dcim/tables/devices.py:591 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:74 +msgid "Tunnel" +msgstr "" + +#: dcim/tables/devices.py:616 dcim/tables/devicetypes.py:224 #: templates/dcim/interface.html:66 msgid "Management Only" msgstr "" -#: dcim/tables/devices.py:612 +#: dcim/tables/devices.py:624 msgid "Wireless link" msgstr "" -#: dcim/tables/devices.py:622 +#: dcim/tables/devices.py:634 msgid "VDCs" msgstr "" -#: dcim/tables/devices.py:706 +#: dcim/tables/devices.py:642 dcim/tables/devicetypes.py:48 +#: dcim/tables/devicetypes.py:140 dcim/views.py:1077 dcim/views.py:2020 +#: netbox/navigation/menu.py:91 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 +msgid "Inventory Items" +msgstr "" + +#: dcim/tables/devices.py:723 #: 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:192 templates/dcim/inventoryitem_edit.html:69 +#: templates/dcim/interface.html:196 templates/dcim/inventoryitem_edit.html:69 #: templates/dcim/rearport.html:18 templates/dcim/rearport.html:115 msgid "Rear Port" msgstr "" -#: dcim/tables/devices.py:871 templates/dcim/modulebay.html:51 +#: dcim/tables/devices.py:888 templates/dcim/modulebay.html:51 msgid "Installed Module" msgstr "" -#: dcim/tables/devices.py:874 +#: dcim/tables/devices.py:891 msgid "Module Serial" msgstr "" -#: dcim/tables/devices.py:878 +#: dcim/tables/devices.py:895 msgid "Module Asset Tag" msgstr "" -#: dcim/tables/devices.py:887 +#: dcim/tables/devices.py:904 msgid "Module Status" msgstr "" -#: dcim/tables/devices.py:929 dcim/tables/devicetypes.py:308 +#: dcim/tables/devices.py:946 dcim/tables/devicetypes.py:308 #: templates/dcim/inventoryitem.html:41 msgid "Component" msgstr "" -#: dcim/tables/devices.py:980 +#: dcim/tables/devices.py:1001 msgid "Items" msgstr "" @@ -5207,17 +5400,8 @@ msgstr "" msgid "Module Types" msgstr "" -#: dcim/tables/devicetypes.py:48 dcim/tables/devicetypes.py:140 -#: dcim/views.py:1077 dcim/views.py:2020 netbox/navigation/menu.py:91 -#: 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 -msgid "Inventory Items" -msgstr "" - -#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:354 -#: extras/forms/model_forms.py:311 netbox/navigation/menu.py:66 +#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:379 +#: extras/forms/model_forms.py:414 netbox/navigation/menu.py:66 msgid "Platforms" msgstr "" @@ -5296,8 +5480,8 @@ msgstr "" msgid "Module Bays" msgstr "" -#: dcim/tables/power.py:36 netbox/navigation/menu.py:263 -#: templates/dcim/powerpanel.html:53 templates/extras/configrevision.html:59 +#: dcim/tables/power.py:36 netbox/navigation/menu.py:282 +#: templates/core/configrevision.html:59 templates/dcim/powerpanel.html:53 msgid "Power Feeds" msgstr "" @@ -5314,8 +5498,8 @@ msgstr "" msgid "Racks" msgstr "" -#: dcim/tables/racks.py:73 templates/dcim/device.html:340 -#: templates/dcim/rack.html:102 +#: dcim/tables/racks.py:73 templates/dcim/device.html:323 +#: templates/dcim/rack.html:95 msgid "Height" msgstr "" @@ -5323,11 +5507,11 @@ msgstr "" msgid "Space" msgstr "" -#: dcim/tables/racks.py:96 templates/dcim/rack.html:112 +#: dcim/tables/racks.py:96 templates/dcim/rack.html:105 msgid "Outer Width" msgstr "" -#: dcim/tables/racks.py:100 templates/dcim/rack.html:122 +#: dcim/tables/racks.py:100 templates/dcim/rack.html:115 msgid "Outer Depth" msgstr "" @@ -5336,9 +5520,9 @@ msgid "Max Weight" msgstr "" #: dcim/tables/sites.py:30 dcim/tables/sites.py:57 -#: extras/forms/filtersets.py:334 extras/forms/model_forms.py:291 -#: ipam/forms/bulk_edit.py:130 ipam/forms/model_forms.py:154 -#: ipam/tables/asn.py:65 netbox/navigation/menu.py:16 +#: extras/forms/filtersets.py:359 extras/forms/model_forms.py:394 +#: 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 msgid "Sites" msgstr "" @@ -5356,16 +5540,20 @@ msgstr "" msgid "Non-Racked Devices" msgstr "" -#: dcim/views.py:2033 extras/forms/model_forms.py:351 +#: dcim/views.py:2033 extras/forms/model_forms.py:454 #: templates/extras/configcontext.html:10 -#: virtualization/forms/model_forms.py:226 virtualization/views.py:386 +#: virtualization/forms/model_forms.py:228 virtualization/views.py:408 msgid "Config Context" msgstr "" -#: dcim/views.py:2043 virtualization/views.py:396 +#: dcim/views.py:2043 virtualization/views.py:418 msgid "Render Config" msgstr "" +#: dcim/views.py:2971 ipam/tables/ip.py:233 +msgid "Children" +msgstr "" + #: extras/choices.py:27 extras/forms/misc.py:14 msgid "Text" msgstr "" @@ -5410,7 +5598,7 @@ msgstr "" msgid "Multiple objects" msgstr "" -#: extras/choices.py:50 templates/extras/customfield.html:69 +#: extras/choices.py:50 templates/extras/customfield.html:69 vpn/choices.py:20 #: wireless/choices.py:27 msgid "Disabled" msgstr "" @@ -5423,735 +5611,744 @@ msgstr "" msgid "Exact" msgstr "" +#: extras/choices.py:63 +msgid "Always" +msgstr "" + #: extras/choices.py:64 -msgid "Read/write" +msgid "If set" msgstr "" -#: extras/choices.py:65 -msgid "Read-only" -msgstr "" - -#: extras/choices.py:66 +#: extras/choices.py:65 extras/choices.py:78 msgid "Hidden" msgstr "" -#: extras/choices.py:67 -msgid "Hidden (if unset)" +#: extras/choices.py:76 +msgid "Yes" msgstr "" -#: extras/choices.py:94 templates/tenancy/contact.html:58 +#: extras/choices.py:77 +msgid "No" +msgstr "" + +#: extras/choices.py:105 templates/tenancy/contact.html:58 #: tenancy/forms/bulk_edit.py:117 wireless/forms/model_forms.py:159 msgid "Link" msgstr "" -#: extras/choices.py:108 +#: extras/choices.py:119 msgid "Newest" msgstr "" -#: extras/choices.py:109 +#: extras/choices.py:120 msgid "Oldest" msgstr "" -#: extras/choices.py:125 templates/generic/object.html:51 +#: extras/choices.py:136 templates/generic/object.html:51 msgid "Updated" msgstr "" -#: extras/choices.py:126 +#: extras/choices.py:137 msgid "Deleted" msgstr "" -#: extras/choices.py:143 extras/choices.py:165 +#: extras/choices.py:154 extras/choices.py:176 msgid "Info" msgstr "" -#: extras/choices.py:144 extras/choices.py:164 +#: extras/choices.py:155 extras/choices.py:175 msgid "Success" msgstr "" -#: extras/choices.py:145 extras/choices.py:166 +#: extras/choices.py:156 extras/choices.py:177 msgid "Warning" msgstr "" -#: extras/choices.py:146 +#: extras/choices.py:157 msgid "Danger" msgstr "" -#: extras/choices.py:163 utilities/choices.py:190 +#: extras/choices.py:174 utilities/choices.py:190 msgid "Default" msgstr "" -#: extras/choices.py:167 +#: extras/choices.py:178 msgid "Failure" msgstr "" -#: extras/choices.py:174 +#: extras/choices.py:185 msgid "Hourly" msgstr "" -#: extras/choices.py:175 +#: extras/choices.py:186 msgid "12 hours" msgstr "" -#: extras/choices.py:176 +#: extras/choices.py:187 msgid "Daily" msgstr "" -#: extras/choices.py:177 +#: extras/choices.py:188 msgid "Weekly" msgstr "" -#: extras/choices.py:178 +#: extras/choices.py:189 msgid "30 days" msgstr "" -#: extras/choices.py:243 extras/tables/tables.py:283 -#: templates/dcim/virtualchassis_edit.html:108 templates/extras/webhook.html:33 +#: extras/choices.py:254 extras/tables/tables.py:287 +#: 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 #: templates/ipam/inc/ipaddress_edit_header.html:10 msgid "Create" msgstr "" -#: extras/choices.py:244 extras/tables/tables.py:286 -#: templates/extras/webhook.html:37 +#: extras/choices.py:255 extras/tables/tables.py:290 +#: templates/extras/eventrule.html:55 msgid "Update" msgstr "" -#: extras/choices.py:245 extras/tables/tables.py:289 +#: extras/choices.py:256 extras/tables/tables.py:293 #: templates/circuits/inc/circuit_termination.html:22 #: templates/dcim/devicetype/component_templates.html:24 #: templates/dcim/inc/panels/inventory_items.html:29 #: templates/dcim/moduletype/component_templates.html:24 -#: templates/dcim/powerpanel.html:71 templates/extras/report_list.html:34 -#: templates/extras/script_list.html:33 templates/extras/webhook.html:41 +#: 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:23 +#: 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 msgid "Delete" msgstr "" -#: extras/choices.py:269 utilities/choices.py:143 utilities/choices.py:191 +#: extras/choices.py:280 utilities/choices.py:143 utilities/choices.py:191 msgid "Blue" msgstr "" -#: extras/choices.py:270 utilities/choices.py:142 utilities/choices.py:192 +#: extras/choices.py:281 utilities/choices.py:142 utilities/choices.py:192 msgid "Indigo" msgstr "" -#: extras/choices.py:271 utilities/choices.py:140 utilities/choices.py:193 +#: extras/choices.py:282 utilities/choices.py:140 utilities/choices.py:193 msgid "Purple" msgstr "" -#: extras/choices.py:272 utilities/choices.py:137 utilities/choices.py:194 +#: extras/choices.py:283 utilities/choices.py:137 utilities/choices.py:194 msgid "Pink" msgstr "" -#: extras/choices.py:273 utilities/choices.py:136 utilities/choices.py:195 +#: extras/choices.py:284 utilities/choices.py:136 utilities/choices.py:195 msgid "Red" msgstr "" -#: extras/choices.py:274 utilities/choices.py:154 utilities/choices.py:196 +#: extras/choices.py:285 utilities/choices.py:154 utilities/choices.py:196 msgid "Orange" msgstr "" -#: extras/choices.py:275 utilities/choices.py:152 utilities/choices.py:197 +#: extras/choices.py:286 utilities/choices.py:152 utilities/choices.py:197 msgid "Yellow" msgstr "" -#: extras/choices.py:276 utilities/choices.py:149 utilities/choices.py:198 +#: extras/choices.py:287 utilities/choices.py:149 utilities/choices.py:198 msgid "Green" msgstr "" -#: extras/choices.py:277 utilities/choices.py:146 utilities/choices.py:199 +#: extras/choices.py:288 utilities/choices.py:146 utilities/choices.py:199 msgid "Teal" msgstr "" -#: extras/choices.py:278 utilities/choices.py:145 utilities/choices.py:200 +#: extras/choices.py:289 utilities/choices.py:145 utilities/choices.py:200 msgid "Cyan" msgstr "" -#: extras/choices.py:279 utilities/choices.py:201 +#: extras/choices.py:290 utilities/choices.py:201 msgid "Gray" msgstr "" -#: extras/choices.py:280 utilities/choices.py:160 utilities/choices.py:202 +#: extras/choices.py:291 utilities/choices.py:160 utilities/choices.py:202 msgid "Black" msgstr "" -#: extras/choices.py:281 utilities/choices.py:161 utilities/choices.py:203 +#: extras/choices.py:292 utilities/choices.py:161 utilities/choices.py:203 msgid "White" msgstr "" +#: extras/choices.py:306 extras/forms/model_forms.py:233 +#: extras/forms/model_forms.py:321 templates/extras/webhook.html:11 +msgid "Webhook" +msgstr "" + +#: extras/choices.py:307 templates/extras/script/base.html:29 +msgid "Script" +msgstr "" + #: extras/dashboard/forms.py:38 msgid "Widget type" msgstr "" -#: extras/dashboard/widgets.py:146 +#: extras/dashboard/widgets.py:148 msgid "Note" msgstr "" -#: extras/dashboard/widgets.py:147 +#: extras/dashboard/widgets.py:149 msgid "Display some arbitrary custom content. Markdown is supported." msgstr "" -#: extras/dashboard/widgets.py:160 +#: extras/dashboard/widgets.py:162 msgid "Object Counts" msgstr "" -#: extras/dashboard/widgets.py:161 +#: extras/dashboard/widgets.py:163 msgid "" "Display a set of NetBox models and the number of objects created for each " "type." msgstr "" -#: extras/dashboard/widgets.py:171 +#: extras/dashboard/widgets.py:173 msgid "Filters to apply when counting the number of objects" msgstr "" -#: extras/dashboard/widgets.py:207 +#: extras/dashboard/widgets.py:209 msgid "Object List" msgstr "" -#: extras/dashboard/widgets.py:208 +#: extras/dashboard/widgets.py:210 msgid "Display an arbitrary list of objects." msgstr "" -#: extras/dashboard/widgets.py:221 +#: extras/dashboard/widgets.py:223 msgid "The default number of objects to display" msgstr "" -#: extras/dashboard/widgets.py:268 +#: extras/dashboard/widgets.py:270 msgid "RSS Feed" msgstr "" -#: extras/dashboard/widgets.py:273 +#: extras/dashboard/widgets.py:275 msgid "Embed an RSS feed from an external website." msgstr "" -#: extras/dashboard/widgets.py:280 +#: extras/dashboard/widgets.py:282 msgid "Feed URL" msgstr "" -#: extras/dashboard/widgets.py:285 +#: extras/dashboard/widgets.py:287 msgid "The maximum number of objects to display" msgstr "" -#: extras/dashboard/widgets.py:290 +#: extras/dashboard/widgets.py:292 msgid "How long to stored the cached content (in seconds)" msgstr "" -#: extras/dashboard/widgets.py:342 templates/account/base.html:10 +#: extras/dashboard/widgets.py:344 templates/account/base.html:10 #: templates/account/bookmarks.html:7 templates/inc/profile_button.html:29 msgid "Bookmarks" msgstr "" -#: extras/dashboard/widgets.py:346 +#: extras/dashboard/widgets.py:348 msgid "Show your personal bookmarks" msgstr "" -#: extras/filtersets.py:176 extras/filtersets.py:511 extras/filtersets.py:539 +#: extras/filtersets.py:207 extras/filtersets.py:542 extras/filtersets.py:570 msgid "Data file (ID)" msgstr "" -#: extras/filtersets.py:448 virtualization/forms/filtersets.py:111 +#: extras/filtersets.py:479 virtualization/forms/filtersets.py:114 msgid "Cluster type" msgstr "" -#: extras/filtersets.py:454 virtualization/filtersets.py:93 -#: virtualization/filtersets.py:143 +#: extras/filtersets.py:485 virtualization/filtersets.py:95 +#: virtualization/filtersets.py:146 msgid "Cluster type (slug)" msgstr "" -#: extras/filtersets.py:459 ipam/forms/bulk_edit.py:477 -#: ipam/forms/model_forms.py:587 virtualization/forms/filtersets.py:105 +#: extras/filtersets.py:490 ipam/forms/bulk_edit.py:475 +#: ipam/forms/model_forms.py:585 virtualization/forms/filtersets.py:108 msgid "Cluster group" msgstr "" -#: extras/filtersets.py:465 virtualization/filtersets.py:132 +#: extras/filtersets.py:496 virtualization/filtersets.py:135 msgid "Cluster group (slug)" msgstr "" -#: extras/filtersets.py:475 tenancy/forms/forms.py:16 tenancy/forms/forms.py:39 +#: extras/filtersets.py:506 tenancy/forms/forms.py:16 tenancy/forms/forms.py:39 msgid "Tenant group" msgstr "" -#: extras/filtersets.py:481 tenancy/filtersets.py:151 tenancy/filtersets.py:171 +#: extras/filtersets.py:512 tenancy/filtersets.py:163 tenancy/filtersets.py:183 msgid "Tenant group (slug)" msgstr "" -#: extras/filtersets.py:497 templates/extras/tag.html:12 +#: extras/filtersets.py:528 templates/extras/tag.html:12 msgid "Tag" msgstr "" -#: extras/filtersets.py:503 +#: extras/filtersets.py:534 msgid "Tag (slug)" msgstr "" -#: extras/filtersets.py:563 extras/forms/filtersets.py:413 +#: extras/filtersets.py:594 extras/forms/filtersets.py:438 msgid "Has local config context data" msgstr "" -#: extras/filtersets.py:588 +#: extras/filtersets.py:619 msgid "User name" msgstr "" -#: extras/forms/bulk_edit.py:31 extras/forms/filtersets.py:58 +#: extras/forms/bulk_edit.py:32 extras/forms/filtersets.py:56 msgid "Group name" msgstr "" -#: extras/forms/bulk_edit.py:39 extras/forms/filtersets.py:66 -#: extras/tables/tables.py:72 templates/extras/customfield.html:39 +#: 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 msgid "Required" msgstr "" -#: extras/forms/bulk_edit.py:52 extras/forms/bulk_import.py:56 -#: extras/forms/filtersets.py:80 extras/models/customfields.py:187 -msgid "UI visibility" +#: extras/forms/bulk_edit.py:53 extras/forms/bulk_import.py:57 +#: extras/forms/filtersets.py:78 extras/models/customfields.py:193 +msgid "UI visible" msgstr "" -#: extras/forms/bulk_edit.py:58 extras/forms/filtersets.py:83 +#: extras/forms/bulk_edit.py:58 extras/forms/bulk_import.py:63 +#: extras/forms/filtersets.py:83 extras/models/customfields.py:200 +msgid "UI editable" +msgstr "" + +#: extras/forms/bulk_edit.py:63 extras/forms/filtersets.py:86 msgid "Is cloneable" msgstr "" -#: extras/forms/bulk_edit.py:97 extras/forms/filtersets.py:123 +#: extras/forms/bulk_edit.py:102 extras/forms/filtersets.py:126 msgid "New window" msgstr "" -#: extras/forms/bulk_edit.py:106 +#: extras/forms/bulk_edit.py:111 msgid "Button class" msgstr "" -#: extras/forms/bulk_edit.py:123 extras/forms/filtersets.py:161 -#: extras/models/models.py:356 +#: extras/forms/bulk_edit.py:128 extras/forms/filtersets.py:164 +#: extras/models/models.py:439 msgid "MIME type" msgstr "" -#: extras/forms/bulk_edit.py:128 extras/forms/filtersets.py:164 +#: extras/forms/bulk_edit.py:133 extras/forms/filtersets.py:167 msgid "File extension" msgstr "" -#: extras/forms/bulk_edit.py:133 extras/forms/filtersets.py:168 +#: extras/forms/bulk_edit.py:138 extras/forms/filtersets.py:171 msgid "As attachment" msgstr "" -#: extras/forms/bulk_edit.py:161 extras/forms/filtersets.py:210 -#: extras/tables/tables.py:236 templates/extras/savedfilter.html:30 +#: extras/forms/bulk_edit.py:166 extras/forms/filtersets.py:213 +#: extras/tables/tables.py:214 templates/extras/savedfilter.html:30 msgid "Shared" msgstr "" -#: extras/forms/bulk_edit.py:182 -msgid "On create" -msgstr "" - -#: extras/forms/bulk_edit.py:187 -msgid "On update" -msgstr "" - -#: extras/forms/bulk_edit.py:192 -msgid "On delete" -msgstr "" - -#: extras/forms/bulk_edit.py:197 -msgid "On job start" -msgstr "" - -#: extras/forms/bulk_edit.py:202 -msgid "On job end" -msgstr "" - -#: extras/forms/bulk_edit.py:209 extras/forms/filtersets.py:239 -#: extras/models/models.py:100 +#: extras/forms/bulk_edit.py:189 extras/forms/filtersets.py:242 +#: extras/models/models.py:204 msgid "HTTP method" msgstr "" -#: extras/forms/bulk_edit.py:213 templates/extras/webhook.html:66 +#: extras/forms/bulk_edit.py:193 extras/forms/filtersets.py:236 +#: templates/extras/webhook.html:37 msgid "Payload URL" msgstr "" -#: extras/forms/bulk_edit.py:218 extras/models/models.py:146 +#: extras/forms/bulk_edit.py:198 extras/models/models.py:244 msgid "SSL verification" msgstr "" -#: extras/forms/bulk_edit.py:221 templates/extras/webhook.html:74 +#: extras/forms/bulk_edit.py:201 templates/extras/webhook.html:45 msgid "Secret" msgstr "" -#: extras/forms/bulk_edit.py:226 +#: extras/forms/bulk_edit.py:206 msgid "CA file path" msgstr "" -#: extras/forms/bulk_edit.py:261 +#: extras/forms/bulk_edit.py:225 +msgid "On create" +msgstr "" + +#: extras/forms/bulk_edit.py:230 +msgid "On update" +msgstr "" + +#: extras/forms/bulk_edit.py:235 +msgid "On delete" +msgstr "" + +#: extras/forms/bulk_edit.py:240 +msgid "On job start" +msgstr "" + +#: extras/forms/bulk_edit.py:245 +msgid "On job end" +msgstr "" + +#: extras/forms/bulk_edit.py:282 msgid "Is active" msgstr "" -#: extras/forms/bulk_import.py:31 extras/forms/bulk_import.py:91 -#: extras/forms/bulk_import.py:107 extras/forms/bulk_import.py:131 -#: extras/forms/bulk_import.py:145 extras/forms/filtersets.py:111 -#: extras/forms/filtersets.py:157 extras/forms/filtersets.py:198 -#: extras/forms/model_forms.py:46 extras/forms/model_forms.py:119 -#: extras/forms/model_forms.py:147 extras/forms/model_forms.py:189 -#: extras/forms/model_forms.py:227 +#: extras/forms/bulk_import.py:34 extras/forms/bulk_import.py:115 +#: extras/forms/bulk_import.py:130 extras/forms/bulk_import.py:153 +#: extras/forms/bulk_import.py:177 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:154 extras/forms/model_forms.py:195 +#: extras/forms/model_forms.py:251 msgid "Content types" msgstr "" -#: extras/forms/bulk_import.py:34 extras/forms/bulk_import.py:94 -#: extras/forms/bulk_import.py:110 extras/forms/bulk_import.py:133 -#: extras/forms/bulk_import.py:148 tenancy/forms/bulk_import.py:96 +#: extras/forms/bulk_import.py:36 extras/forms/bulk_import.py:117 +#: extras/forms/bulk_import.py:132 extras/forms/bulk_import.py:155 +#: extras/forms/bulk_import.py:179 tenancy/forms/bulk_import.py:96 msgid "One or more assigned object types" msgstr "" -#: extras/forms/bulk_import.py:39 +#: extras/forms/bulk_import.py:41 msgid "Field data type (e.g. text, integer, etc.)" msgstr "" -#: extras/forms/bulk_import.py:42 extras/forms/filtersets.py:50 -#: extras/forms/filtersets.py:234 extras/forms/model_forms.py:51 -#: extras/forms/model_forms.py:215 tenancy/forms/filtersets.py:93 +#: 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:221 tenancy/forms/filtersets.py:91 msgid "Object type" msgstr "" -#: extras/forms/bulk_import.py:46 +#: extras/forms/bulk_import.py:47 msgid "Object type (for object or multi-object fields)" msgstr "" -#: extras/forms/bulk_import.py:49 extras/forms/filtersets.py:75 +#: extras/forms/bulk_import.py:50 extras/forms/filtersets.py:73 msgid "Choice set" msgstr "" -#: extras/forms/bulk_import.py:53 +#: extras/forms/bulk_import.py:54 msgid "Choice set (for selection fields)" msgstr "" -#: extras/forms/bulk_import.py:58 -msgid "How the custom field is displayed in the user interface" +#: extras/forms/bulk_import.py:60 +msgid "Whether the custom field is displayed in the UI" msgstr "" -#: extras/forms/bulk_import.py:74 +#: extras/forms/bulk_import.py:66 +msgid "Whether the custom field is editable in the UI" +msgstr "" + +#: extras/forms/bulk_import.py:82 msgid "The base set of predefined choices to use (if any)" msgstr "" -#: extras/forms/bulk_import.py:79 -msgid "Comma-separated list of field choices" +#: extras/forms/bulk_import.py:88 +msgid "" +"Quoted string of comma-separated field choices with optional labels " +"separated by colon: \"choice1:First Choice,choice2:Second Choice\"" msgstr "" -#: extras/forms/bulk_import.py:174 +#: extras/forms/bulk_import.py:182 +msgid "Action object" +msgstr "" + +#: extras/forms/bulk_import.py:184 +msgid "Webhook name or script as dotted path module.Class" +msgstr "" + +#: extras/forms/bulk_import.py:236 msgid "Assigned object type" msgstr "" -#: extras/forms/bulk_import.py:179 +#: extras/forms/bulk_import.py:241 msgid "The classification of entry" msgstr "" -#: extras/forms/filtersets.py:55 +#: extras/forms/filtersets.py:53 msgid "Field type" msgstr "" -#: extras/forms/filtersets.py:94 extras/tables/tables.py:87 +#: extras/forms/filtersets.py:97 extras/tables/tables.py:65 #: templates/generic/bulk_import.html:148 msgid "Choices" msgstr "" -#: extras/forms/filtersets.py:138 extras/forms/filtersets.py:302 -#: extras/forms/filtersets.py:392 extras/forms/model_forms.py:346 -#: templates/core/job.html:80 templates/extras/configcontext.html:86 +#: extras/forms/filtersets.py:141 extras/forms/filtersets.py:327 +#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:449 +#: templates/core/job.html:86 templates/extras/configcontext.html:86 +#: templates/extras/eventrule.html:111 msgid "Data" msgstr "" -#: extras/forms/filtersets.py:149 extras/forms/filtersets.py:316 -#: extras/forms/filtersets.py:402 utilities/choices.py:219 +#: 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 msgid "Data file" msgstr "" -#: extras/forms/filtersets.py:182 +#: extras/forms/filtersets.py:185 msgid "Content type" msgstr "" -#: extras/forms/filtersets.py:229 extras/forms/model_forms.py:234 -#: templates/extras/webhook.html:28 +#: extras/forms/filtersets.py:232 extras/models/models.py:209 +msgid "HTTP content type" +msgstr "" + +#: extras/forms/filtersets.py:254 extras/forms/model_forms.py:269 +#: templates/extras/eventrule.html:46 msgid "Events" msgstr "" -#: extras/forms/filtersets.py:253 +#: extras/forms/filtersets.py:264 +msgid "Action type" +msgstr "" + +#: extras/forms/filtersets.py:278 msgid "Object creations" msgstr "" -#: extras/forms/filtersets.py:260 +#: extras/forms/filtersets.py:285 msgid "Object updates" msgstr "" -#: extras/forms/filtersets.py:267 +#: extras/forms/filtersets.py:292 msgid "Object deletions" msgstr "" -#: extras/forms/filtersets.py:274 +#: extras/forms/filtersets.py:299 msgid "Job starts" msgstr "" -#: extras/forms/filtersets.py:281 extras/forms/model_forms.py:250 +#: extras/forms/filtersets.py:306 extras/forms/model_forms.py:289 msgid "Job terminations" msgstr "" -#: extras/forms/filtersets.py:290 +#: extras/forms/filtersets.py:315 msgid "Tagged object type" msgstr "" -#: extras/forms/filtersets.py:295 +#: extras/forms/filtersets.py:320 msgid "Allowed object type" msgstr "" -#: extras/forms/filtersets.py:324 extras/forms/model_forms.py:281 +#: extras/forms/filtersets.py:349 extras/forms/model_forms.py:384 #: netbox/navigation/menu.py:19 msgid "Regions" msgstr "" -#: extras/forms/filtersets.py:329 extras/forms/model_forms.py:286 +#: extras/forms/filtersets.py:354 extras/forms/model_forms.py:389 msgid "Site groups" msgstr "" -#: extras/forms/filtersets.py:339 extras/forms/model_forms.py:296 +#: extras/forms/filtersets.py:364 extras/forms/model_forms.py:399 #: netbox/navigation/menu.py:21 msgid "Locations" msgstr "" -#: extras/forms/filtersets.py:344 extras/forms/model_forms.py:301 +#: extras/forms/filtersets.py:369 extras/forms/model_forms.py:404 msgid "Device types" msgstr "" -#: extras/forms/filtersets.py:349 extras/forms/model_forms.py:306 +#: extras/forms/filtersets.py:374 extras/forms/model_forms.py:409 msgid "Roles" msgstr "" -#: extras/forms/filtersets.py:359 extras/forms/model_forms.py:316 +#: extras/forms/filtersets.py:384 extras/forms/model_forms.py:419 msgid "Cluster types" msgstr "" -#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:321 +#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:424 msgid "Cluster groups" msgstr "" -#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:326 -#: netbox/navigation/menu.py:224 netbox/navigation/menu.py:226 +#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:429 +#: netbox/navigation/menu.py:243 netbox/navigation/menu.py:245 #: templates/virtualization/clustertype.html:33 #: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45 msgid "Clusters" msgstr "" -#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:331 +#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:434 msgid "Tenant groups" msgstr "" -#: extras/forms/filtersets.py:429 extras/forms/filtersets.py:470 +#: extras/forms/filtersets.py:454 extras/forms/filtersets.py:495 msgid "After" msgstr "" -#: extras/forms/filtersets.py:434 extras/forms/filtersets.py:475 +#: extras/forms/filtersets.py:459 extras/forms/filtersets.py:500 msgid "Before" msgstr "" -#: extras/forms/filtersets.py:465 extras/tables/tables.py:426 +#: extras/forms/filtersets.py:490 extras/tables/tables.py:426 #: templates/extras/htmx/report_result.html:43 #: templates/extras/objectchange.html:34 msgid "Time" msgstr "" -#: extras/forms/filtersets.py:479 extras/tables/tables.py:440 +#: extras/forms/filtersets.py:504 extras/forms/model_forms.py:271 +#: extras/tables/tables.py:440 templates/extras/eventrule.html:90 #: templates/extras/objectchange.html:50 msgid "Action" msgstr "" -#: extras/forms/mixins.py:71 extras/forms/model_forms.py:195 -#: templates/extras/savedfilter.html:10 -msgid "Saved Filter" -msgstr "" - -#: extras/forms/model_forms.py:56 +#: extras/forms/model_forms.py:50 msgid "Type of the related object (for object/multi-object fields only)" msgstr "" -#: extras/forms/model_forms.py:64 templates/extras/customfield.html:11 +#: extras/forms/model_forms.py:58 templates/extras/customfield.html:11 msgid "Custom Field" msgstr "" -#: extras/forms/model_forms.py:67 templates/extras/customfield.html:60 +#: extras/forms/model_forms.py:61 templates/extras/customfield.html:60 msgid "Behavior" msgstr "" -#: extras/forms/model_forms.py:68 +#: extras/forms/model_forms.py:62 msgid "Values" msgstr "" -#: extras/forms/model_forms.py:69 extras/forms/model_forms.py:494 -#: templates/extras/configrevision.html:147 -msgid "Validation" -msgstr "" - -#: extras/forms/model_forms.py:77 +#: extras/forms/model_forms.py:71 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:80 +#: extras/forms/model_forms.py:74 msgid "" "This will be displayed as help text for the form field. Markdown is " "supported." msgstr "" -#: extras/forms/model_forms.py:97 +#: extras/forms/model_forms.py:91 msgid "" "Enter one choice per line. An optional label may be specified for each " -"choice by appending it with a comma. Example:" +"choice by appending it with a colon. Example:" msgstr "" -#: extras/forms/model_forms.py:125 templates/extras/customlink.html:10 +#: extras/forms/model_forms.py:132 templates/extras/customlink.html:10 msgid "Custom Link" msgstr "" -#: extras/forms/model_forms.py:126 +#: extras/forms/model_forms.py:133 msgid "Templates" msgstr "" -#: extras/forms/model_forms.py:138 +#: extras/forms/model_forms.py:145 msgid "" "Jinja2 template code for the link text. Reference the object as " "{{ object }}. Links which render as empty text will not be " "displayed." msgstr "" -#: extras/forms/model_forms.py:141 +#: extras/forms/model_forms.py:148 msgid "" "Jinja2 template code for the link URL. Reference the object as " "{{ object }}." msgstr "" -#: extras/forms/model_forms.py:152 extras/forms/model_forms.py:397 +#: extras/forms/model_forms.py:158 extras/forms/model_forms.py:500 msgid "Template code" msgstr "" -#: extras/forms/model_forms.py:158 templates/extras/exporttemplate.html:17 +#: extras/forms/model_forms.py:164 templates/extras/exporttemplate.html:17 msgid "Export Template" msgstr "" -#: extras/forms/model_forms.py:160 +#: extras/forms/model_forms.py:166 msgid "Rendering" msgstr "" -#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:422 +#: extras/forms/model_forms.py:180 extras/forms/model_forms.py:525 msgid "Template content is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:181 extras/forms/model_forms.py:429 +#: extras/forms/model_forms.py:187 extras/forms/model_forms.py:532 msgid "Must specify either local content or a data file" msgstr "" -#: extras/forms/model_forms.py:233 templates/extras/webhook.html:11 -msgid "Webhook" +#: extras/forms/model_forms.py:201 netbox/forms/mixins.py:68 +#: templates/extras/savedfilter.html:10 +msgid "Saved Filter" msgstr "" -#: extras/forms/model_forms.py:235 templates/extras/webhook.html:57 +#: extras/forms/model_forms.py:234 templates/extras/webhook.html:28 msgid "HTTP Request" msgstr "" -#: extras/forms/model_forms.py:238 templates/extras/webhook.html:116 -msgid "Conditions" -msgstr "" - -#: extras/forms/model_forms.py:239 templates/extras/webhook.html:82 +#: extras/forms/model_forms.py:237 templates/extras/webhook.html:53 msgid "SSL" msgstr "" -#: extras/forms/model_forms.py:246 +#: extras/forms/model_forms.py:255 +msgid "Action choice" +msgstr "" + +#: extras/forms/model_forms.py:260 +msgid "Enter conditions in JSON format." +msgstr "" + +#: extras/forms/model_forms.py:264 +msgid "" +"Enter parameters to pass to the action in JSON format." +msgstr "" + +#: extras/forms/model_forms.py:268 templates/extras/eventrule.html:11 +msgid "Event Rule" +msgstr "" + +#: extras/forms/model_forms.py:270 templates/extras/eventrule.html:78 +msgid "Conditions" +msgstr "" + +#: extras/forms/model_forms.py:285 msgid "Creations" msgstr "" -#: extras/forms/model_forms.py:247 +#: extras/forms/model_forms.py:286 msgid "Updates" msgstr "" -#: extras/forms/model_forms.py:248 +#: extras/forms/model_forms.py:287 msgid "Deletions" msgstr "" -#: extras/forms/model_forms.py:249 +#: extras/forms/model_forms.py:288 msgid "Job executions" msgstr "" -#: extras/forms/model_forms.py:262 users/forms/model_forms.py:285 +#: extras/forms/model_forms.py:366 users/forms/model_forms.py:285 msgid "Object types" msgstr "" -#: extras/forms/model_forms.py:336 netbox/navigation/menu.py:40 +#: extras/forms/model_forms.py:439 netbox/navigation/menu.py:40 #: tenancy/tables/tenants.py:22 msgid "Tenants" msgstr "" -#: extras/forms/model_forms.py:353 ipam/forms/filtersets.py:145 -#: templates/extras/configcontext.html:62 templates/ipam/ipaddress.html:62 -#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87 -#: users/forms/model_forms.py:323 +#: extras/forms/model_forms.py:456 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:323 msgid "Assignment" msgstr "" -#: extras/forms/model_forms.py:379 +#: extras/forms/model_forms.py:482 msgid "Data is populated from the remote source selected below." msgstr "" -#: extras/forms/model_forms.py:385 +#: extras/forms/model_forms.py:488 msgid "Must specify either local data or a data file" msgstr "" -#: extras/forms/model_forms.py:404 templates/core/datafile.html:65 +#: extras/forms/model_forms.py:507 templates/core/datafile.html:65 msgid "Content" msgstr "" -#: extras/forms/model_forms.py:488 templates/dcim/rack_elevation_list.html:6 -#: templates/extras/configrevision.html:43 -msgid "Rack Elevations" -msgstr "" - -#: extras/forms/model_forms.py:490 netbox/navigation/menu.py:142 -#: templates/extras/configrevision.html:79 -msgid "IPAM" -msgstr "" - -#: extras/forms/model_forms.py:491 templates/extras/configrevision.html:95 -msgid "Security" -msgstr "" - -#: extras/forms/model_forms.py:492 templates/extras/configrevision.html:107 -msgid "Banners" -msgstr "" - -#: extras/forms/model_forms.py:493 templates/extras/configrevision.html:131 -msgid "Pagination" -msgstr "" - -#: extras/forms/model_forms.py:495 templates/account/preferences.html:6 -#: templates/extras/configrevision.html:159 -msgid "User Preferences" -msgstr "" - -#: extras/forms/model_forms.py:499 -msgid "Config Revision" -msgstr "" - -#: extras/forms/model_forms.py:537 -msgid "This parameter has been defined statically and cannot be modified." -msgstr "" - -#: extras/forms/model_forms.py:545 -#, python-brace-format -msgid "Current value: {value}" -msgstr "" - -#: extras/forms/model_forms.py:547 -msgid " (default)" -msgstr "" - #: extras/forms/reports.py:18 extras/forms/scripts.py:24 msgid "Schedule at" msgstr "" @@ -6193,38 +6390,43 @@ msgstr "" msgid "Interval at which this script is re-run (in minutes)" msgstr "" -#: extras/models/change_logging.py:23 +#: extras/models/change_logging.py:24 msgid "time" msgstr "" -#: extras/models/change_logging.py:36 +#: extras/models/change_logging.py:37 msgid "user name" msgstr "" -#: extras/models/change_logging.py:41 +#: extras/models/change_logging.py:42 msgid "request ID" msgstr "" -#: extras/models/change_logging.py:46 extras/models/staging.py:69 +#: extras/models/change_logging.py:47 extras/models/staging.py:69 msgid "action" msgstr "" -#: extras/models/change_logging.py:80 +#: extras/models/change_logging.py:81 msgid "pre-change data" msgstr "" -#: extras/models/change_logging.py:86 +#: extras/models/change_logging.py:87 msgid "post-change data" msgstr "" -#: extras/models/change_logging.py:96 +#: extras/models/change_logging.py:101 msgid "object change" msgstr "" -#: extras/models/change_logging.py:97 +#: extras/models/change_logging.py:102 msgid "object changes" msgstr "" +#: extras/models/change_logging.py:118 +#, python-brace-format +msgid "Change logging is not supported for this object type ({type})." +msgstr "" + #: extras/models/configs.py:130 msgid "config context" msgstr "" @@ -6270,112 +6472,112 @@ msgstr "" msgid "config templates" msgstr "" -#: extras/models/customfields.py:66 +#: extras/models/customfields.py:72 msgid "The object(s) to which this field applies." msgstr "" -#: extras/models/customfields.py:73 +#: extras/models/customfields.py:79 msgid "The type of data this custom field holds" msgstr "" -#: extras/models/customfields.py:80 +#: extras/models/customfields.py:86 msgid "The type of NetBox object this field maps to (for object fields)" msgstr "" -#: extras/models/customfields.py:86 +#: extras/models/customfields.py:92 msgid "Internal field name" msgstr "" -#: extras/models/customfields.py:90 +#: extras/models/customfields.py:96 msgid "Only alphanumeric characters and underscores are allowed." msgstr "" -#: extras/models/customfields.py:95 +#: extras/models/customfields.py:101 msgid "Double underscores are not permitted in custom field names." msgstr "" -#: extras/models/customfields.py:106 +#: extras/models/customfields.py:112 msgid "" "Name of the field as displayed to users (if not provided, 'the field's name " "will be used)" msgstr "" -#: extras/models/customfields.py:110 extras/models/models.py:264 +#: extras/models/customfields.py:116 extras/models/models.py:347 msgid "group name" msgstr "" -#: extras/models/customfields.py:113 +#: extras/models/customfields.py:119 msgid "Custom fields within the same group will be displayed together" msgstr "" -#: extras/models/customfields.py:121 +#: extras/models/customfields.py:127 msgid "required" msgstr "" -#: extras/models/customfields.py:123 +#: extras/models/customfields.py:129 msgid "" "If true, this field is required when creating new objects or editing an " "existing object." msgstr "" -#: extras/models/customfields.py:126 +#: extras/models/customfields.py:132 msgid "search weight" msgstr "" -#: extras/models/customfields.py:129 +#: extras/models/customfields.py:135 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:134 +#: extras/models/customfields.py:140 msgid "filter logic" msgstr "" -#: extras/models/customfields.py:138 +#: extras/models/customfields.py:144 msgid "" "Loose matches any instance of a given string; exact matches the entire field." msgstr "" -#: extras/models/customfields.py:141 +#: extras/models/customfields.py:147 msgid "default" msgstr "" -#: extras/models/customfields.py:145 +#: extras/models/customfields.py:151 msgid "" "Default value for the field (must be a JSON value). Encapsulate strings with " "double quotes (e.g. \"Foo\")." msgstr "" -#: extras/models/customfields.py:150 +#: extras/models/customfields.py:156 msgid "display weight" msgstr "" -#: extras/models/customfields.py:151 +#: extras/models/customfields.py:157 msgid "Fields with higher weights appear lower in a form." msgstr "" -#: extras/models/customfields.py:156 +#: extras/models/customfields.py:162 msgid "minimum value" msgstr "" -#: extras/models/customfields.py:157 +#: extras/models/customfields.py:163 msgid "Minimum allowed value (for numeric fields)" msgstr "" -#: extras/models/customfields.py:162 +#: extras/models/customfields.py:168 msgid "maximum value" msgstr "" -#: extras/models/customfields.py:163 +#: extras/models/customfields.py:169 msgid "Maximum allowed value (for numeric fields)" msgstr "" -#: extras/models/customfields.py:169 +#: extras/models/customfields.py:175 msgid "validation regex" msgstr "" -#: extras/models/customfields.py:171 +#: extras/models/customfields.py:177 #, python-brace-format msgid "" "Regular expression to enforce on text field values. Use ^ and $ to force " @@ -6383,166 +6585,166 @@ msgid "" "values to exactly three uppercase letters." msgstr "" -#: extras/models/customfields.py:179 +#: extras/models/customfields.py:185 msgid "choice set" msgstr "" -#: extras/models/customfields.py:188 -msgid "Specifies the visibility of custom field in the UI" +#: extras/models/customfields.py:194 +msgid "Specifies whether the custom field is displayed in the UI" msgstr "" -#: extras/models/customfields.py:192 +#: extras/models/customfields.py:201 +msgid "Specifies whether the custom field value can be edited in the UI" +msgstr "" + +#: extras/models/customfields.py:205 msgid "is cloneable" msgstr "" -#: extras/models/customfields.py:193 +#: extras/models/customfields.py:206 msgid "Replicate this value when cloning objects" msgstr "" -#: extras/models/customfields.py:206 +#: extras/models/customfields.py:219 msgid "custom field" msgstr "" -#: extras/models/customfields.py:207 +#: extras/models/customfields.py:220 msgid "custom fields" msgstr "" -#: extras/models/customfields.py:290 +#: extras/models/customfields.py:309 #, python-brace-format msgid "Invalid default value \"{value}\": {error}" msgstr "" -#: extras/models/customfields.py:297 +#: extras/models/customfields.py:316 msgid "A minimum value may be set only for numeric fields" msgstr "" -#: extras/models/customfields.py:299 +#: extras/models/customfields.py:318 msgid "A maximum value may be set only for numeric fields" msgstr "" -#: extras/models/customfields.py:309 +#: extras/models/customfields.py:328 msgid "Regular expression validation is supported only for text and URL fields" msgstr "" -#: extras/models/customfields.py:319 +#: extras/models/customfields.py:338 msgid "Selection fields must specify a set of choices." msgstr "" -#: extras/models/customfields.py:323 +#: extras/models/customfields.py:342 msgid "Choices may be set only on selection fields." msgstr "" -#: extras/models/customfields.py:330 +#: extras/models/customfields.py:349 msgid "Object fields must define an object type." msgstr "" -#: extras/models/customfields.py:335 +#: extras/models/customfields.py:354 #, python-brace-format msgid "{type} fields may not define an object type." msgstr "" -#: extras/models/customfields.py:415 +#: extras/models/customfields.py:434 msgid "True" msgstr "" -#: extras/models/customfields.py:416 +#: extras/models/customfields.py:435 msgid "False" msgstr "" -#: extras/models/customfields.py:498 +#: extras/models/customfields.py:517 #, python-brace-format msgid "Values must match this regex: {regex}" msgstr "" -#: extras/models/customfields.py:513 -msgid "Field is set to read-only." -msgstr "" - -#: extras/models/customfields.py:595 +#: extras/models/customfields.py:612 msgid "Value must be a string." msgstr "" -#: extras/models/customfields.py:597 +#: extras/models/customfields.py:614 #, python-brace-format msgid "Value must match regex '{regex}'" msgstr "" -#: extras/models/customfields.py:602 +#: extras/models/customfields.py:619 msgid "Value must be an integer." msgstr "" -#: extras/models/customfields.py:605 extras/models/customfields.py:620 +#: extras/models/customfields.py:622 extras/models/customfields.py:637 #, python-brace-format msgid "Value must be at least {minimum}" msgstr "" -#: extras/models/customfields.py:609 extras/models/customfields.py:624 +#: extras/models/customfields.py:626 extras/models/customfields.py:641 #, python-brace-format msgid "Value must not exceed {maximum}" msgstr "" -#: extras/models/customfields.py:617 +#: extras/models/customfields.py:634 msgid "Value must be a decimal." msgstr "" -#: extras/models/customfields.py:629 +#: extras/models/customfields.py:646 msgid "Value must be true or false." msgstr "" -#: extras/models/customfields.py:637 +#: extras/models/customfields.py:654 msgid "Date values must be in ISO 8601 format (YYYY-MM-DD)." msgstr "" -#: extras/models/customfields.py:646 +#: extras/models/customfields.py:663 msgid "Date and time values must be in ISO 8601 format (YYYY-MM-DD HH:MM:SS)." msgstr "" -#: extras/models/customfields.py:653 +#: extras/models/customfields.py:670 #, python-brace-format msgid "Invalid choice ({value}) for choice set {choiceset}." msgstr "" -#: extras/models/customfields.py:663 +#: extras/models/customfields.py:680 #, python-brace-format msgid "Invalid choice(s) ({value}) for choice set {choiceset}." msgstr "" -#: extras/models/customfields.py:672 +#: extras/models/customfields.py:689 #, python-brace-format msgid "Value must be an object ID, not {type}" msgstr "" -#: extras/models/customfields.py:678 +#: extras/models/customfields.py:695 #, python-brace-format msgid "Value must be a list of object IDs, not {type}" msgstr "" -#: extras/models/customfields.py:682 +#: extras/models/customfields.py:699 #, python-brace-format msgid "Found invalid object ID: {id}" msgstr "" -#: extras/models/customfields.py:685 +#: extras/models/customfields.py:702 msgid "Required field cannot be empty." msgstr "" -#: extras/models/customfields.py:704 +#: extras/models/customfields.py:721 msgid "Base set of predefined choices (optional)" msgstr "" -#: extras/models/customfields.py:716 +#: extras/models/customfields.py:733 msgid "Choices are automatically ordered alphabetically" msgstr "" -#: extras/models/customfields.py:723 +#: extras/models/customfields.py:740 msgid "custom field choice set" msgstr "" -#: extras/models/customfields.py:724 +#: extras/models/customfields.py:741 msgid "custom field choice sets" msgstr "" -#: extras/models/customfields.py:760 +#: extras/models/customfields.py:777 msgid "Must define base or extra choices." msgstr "" @@ -6562,76 +6764,103 @@ msgstr "" msgid "dashboards" msgstr "" -#: extras/models/models.py:50 +#: extras/models/models.py:49 msgid "object types" msgstr "" -#: extras/models/models.py:52 -msgid "The object(s) to which this Webhook applies." +#: extras/models/models.py:50 +msgid "The object(s) to which this rule applies." msgstr "" -#: extras/models/models.py:60 +#: extras/models/models.py:63 msgid "on create" msgstr "" -#: extras/models/models.py:62 +#: extras/models/models.py:65 msgid "Triggers when a matching object is created." msgstr "" -#: extras/models/models.py:65 +#: extras/models/models.py:68 msgid "on update" msgstr "" -#: extras/models/models.py:67 +#: extras/models/models.py:70 msgid "Triggers when a matching object is updated." msgstr "" -#: extras/models/models.py:70 +#: extras/models/models.py:73 msgid "on delete" msgstr "" -#: extras/models/models.py:72 +#: extras/models/models.py:75 msgid "Triggers when a matching object is deleted." msgstr "" -#: extras/models/models.py:75 +#: extras/models/models.py:78 msgid "on job start" msgstr "" -#: extras/models/models.py:77 +#: extras/models/models.py:80 msgid "Triggers when a job for a matching object is started." msgstr "" -#: extras/models/models.py:80 +#: extras/models/models.py:83 msgid "on job end" msgstr "" -#: extras/models/models.py:82 +#: extras/models/models.py:85 msgid "Triggers when a job for a matching object terminates." msgstr "" -#: extras/models/models.py:88 +#: extras/models/models.py:92 +msgid "conditions" +msgstr "" + +#: extras/models/models.py:95 +msgid "" +"A set of conditions which determine whether the event will be generated." +msgstr "" + +#: extras/models/models.py:103 +msgid "action type" +msgstr "" + +#: extras/models/models.py:126 +msgid "Additional data to pass to the action object" +msgstr "" + +#: extras/models/models.py:138 +msgid "event rule" +msgstr "" + +#: extras/models/models.py:139 +msgid "event rules" +msgstr "" + +#: extras/models/models.py:155 +msgid "" +"At least one event type must be selected: create, update, delete, job start, " +"and/or job end." +msgstr "" + +#: extras/models/models.py:196 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:105 -msgid "HTTP content type" -msgstr "" - -#: extras/models/models.py:107 +#: extras/models/models.py:211 msgid "" "The complete list of official content types is available here." msgstr "" -#: extras/models/models.py:112 +#: extras/models/models.py:216 msgid "additional headers" msgstr "" -#: extras/models/models.py:115 +#: extras/models/models.py:219 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: " @@ -6639,11 +6868,11 @@ msgid "" "as the request body (below)." msgstr "" -#: extras/models/models.py:121 +#: extras/models/models.py:225 msgid "body template" msgstr "" -#: extras/models/models.py:124 +#: extras/models/models.py:228 msgid "" "Jinja2 template for a custom request body. If blank, a JSON object " "representing the change will be included. Available context data includes: " @@ -6651,238 +6880,204 @@ msgid "" "username, request_id, and data." msgstr "" -#: extras/models/models.py:130 +#: extras/models/models.py:234 msgid "secret" msgstr "" -#: extras/models/models.py:134 +#: extras/models/models.py:238 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:139 -msgid "conditions" -msgstr "" - -#: extras/models/models.py:142 -msgid "" -"A set of conditions which determine whether the webhook will be generated." -msgstr "" - -#: extras/models/models.py:147 +#: extras/models/models.py:245 msgid "Enable SSL certificate verification. Disable with caution!" msgstr "" -#: extras/models/models.py:153 templates/extras/webhook.html:91 +#: extras/models/models.py:251 templates/extras/webhook.html:62 msgid "CA File Path" msgstr "" -#: extras/models/models.py:155 +#: extras/models/models.py:253 msgid "" "The specific CA certificate file to use for SSL verification. Leave blank to " "use the system defaults." msgstr "" -#: extras/models/models.py:167 +#: extras/models/models.py:264 msgid "webhook" msgstr "" -#: extras/models/models.py:168 +#: extras/models/models.py:265 msgid "webhooks" msgstr "" -#: extras/models/models.py:188 -msgid "" -"At least one event type must be selected: create, update, delete, job_start, " -"and/or job_end." -msgstr "" - -#: extras/models/models.py:200 +#: extras/models/models.py:283 msgid "Do not specify a CA certificate file if SSL verification is disabled." msgstr "" -#: extras/models/models.py:240 +#: extras/models/models.py:323 msgid "The object type(s) to which this link applies." msgstr "" -#: extras/models/models.py:252 +#: extras/models/models.py:335 msgid "link text" msgstr "" -#: extras/models/models.py:253 +#: extras/models/models.py:336 msgid "Jinja2 template code for link text" msgstr "" -#: extras/models/models.py:256 +#: extras/models/models.py:339 msgid "link URL" msgstr "" -#: extras/models/models.py:257 +#: extras/models/models.py:340 msgid "Jinja2 template code for link URL" msgstr "" -#: extras/models/models.py:267 +#: extras/models/models.py:350 msgid "Links with the same group will appear as a dropdown menu" msgstr "" -#: extras/models/models.py:270 +#: extras/models/models.py:353 msgid "button class" msgstr "" -#: extras/models/models.py:274 +#: extras/models/models.py:357 msgid "" "The class of the first link in a group will be used for the dropdown button" msgstr "" -#: extras/models/models.py:277 +#: extras/models/models.py:360 msgid "new window" msgstr "" -#: extras/models/models.py:279 +#: extras/models/models.py:362 msgid "Force link to open in a new window" msgstr "" -#: extras/models/models.py:288 +#: extras/models/models.py:371 msgid "custom link" msgstr "" -#: extras/models/models.py:289 +#: extras/models/models.py:372 msgid "custom links" msgstr "" -#: extras/models/models.py:336 +#: extras/models/models.py:419 msgid "The object type(s) to which this template applies." msgstr "" -#: extras/models/models.py:349 +#: extras/models/models.py:432 msgid "" "Jinja2 template code. The list of objects being exported is passed as a " "context variable named queryset." msgstr "" -#: extras/models/models.py:357 +#: extras/models/models.py:440 msgid "Defaults to text/plain; charset=utf-8" msgstr "" -#: extras/models/models.py:360 +#: extras/models/models.py:443 msgid "file extension" msgstr "" -#: extras/models/models.py:363 +#: extras/models/models.py:446 msgid "Extension to append to the rendered filename" msgstr "" -#: extras/models/models.py:366 +#: extras/models/models.py:449 msgid "as attachment" msgstr "" -#: extras/models/models.py:368 +#: extras/models/models.py:451 msgid "Download file as attachment" msgstr "" -#: extras/models/models.py:377 +#: extras/models/models.py:460 msgid "export template" msgstr "" -#: extras/models/models.py:378 +#: extras/models/models.py:461 msgid "export templates" msgstr "" -#: extras/models/models.py:395 +#: extras/models/models.py:478 #, python-brace-format msgid "\"{name}\" is a reserved name. Please choose a different name." msgstr "" -#: extras/models/models.py:445 +#: extras/models/models.py:528 msgid "The object type(s) to which this filter applies." msgstr "" -#: extras/models/models.py:477 +#: extras/models/models.py:560 msgid "shared" msgstr "" -#: extras/models/models.py:490 +#: extras/models/models.py:573 msgid "saved filter" msgstr "" -#: extras/models/models.py:491 +#: extras/models/models.py:574 msgid "saved filters" msgstr "" -#: extras/models/models.py:509 +#: extras/models/models.py:592 msgid "Filter parameters must be stored as a dictionary of keyword arguments." msgstr "" -#: extras/models/models.py:537 +#: extras/models/models.py:620 msgid "image height" msgstr "" -#: extras/models/models.py:540 +#: extras/models/models.py:623 msgid "image width" msgstr "" -#: extras/models/models.py:554 +#: extras/models/models.py:640 msgid "image attachment" msgstr "" -#: extras/models/models.py:555 +#: extras/models/models.py:641 msgid "image attachments" msgstr "" -#: extras/models/models.py:623 +#: extras/models/models.py:655 +#, python-brace-format +msgid "Image attachments cannot be assigned to this object type ({type})." +msgstr "" + +#: extras/models/models.py:718 msgid "kind" msgstr "" -#: extras/models/models.py:634 +#: extras/models/models.py:732 msgid "journal entry" msgstr "" -#: extras/models/models.py:635 +#: extras/models/models.py:733 msgid "journal entries" msgstr "" -#: extras/models/models.py:651 +#: extras/models/models.py:748 #, python-brace-format msgid "Journaling is not supported for this object type ({type})." msgstr "" -#: extras/models/models.py:690 +#: extras/models/models.py:790 msgid "bookmark" msgstr "" -#: extras/models/models.py:691 +#: extras/models/models.py:791 msgid "bookmarks" msgstr "" -#: extras/models/models.py:708 -msgid "comment" -msgstr "" - -#: extras/models/models.py:715 -msgid "configuration data" -msgstr "" - -#: extras/models/models.py:722 -msgid "config revision" -msgstr "" - -#: extras/models/models.py:723 -msgid "config revisions" -msgstr "" - -#: extras/models/models.py:727 -msgid "Default configuration" -msgstr "" - -#: extras/models/models.py:729 -msgid "Current configuration" -msgstr "" - -#: extras/models/models.py:730 +#: extras/models/models.py:804 #, python-brace-format -msgid "Config revision #{id}" +msgid "Bookmarks cannot be assigned to this object type ({type})." msgstr "" #: extras/models/reports.py:46 @@ -6901,23 +7096,23 @@ msgstr "" msgid "script modules" msgstr "" -#: extras/models/search.py:22 +#: extras/models/search.py:24 msgid "timestamp" msgstr "" -#: extras/models/search.py:37 +#: extras/models/search.py:39 msgid "field" msgstr "" -#: extras/models/search.py:45 +#: extras/models/search.py:47 msgid "value" msgstr "" -#: extras/models/search.py:54 +#: extras/models/search.py:58 msgid "cached value" msgstr "" -#: extras/models/search.py:55 +#: extras/models/search.py:59 msgid "cached values" msgstr "" @@ -6929,73 +7124,78 @@ msgstr "" msgid "branches" msgstr "" -#: extras/models/staging.py:94 +#: extras/models/staging.py:97 msgid "staged change" msgstr "" -#: extras/models/staging.py:95 +#: extras/models/staging.py:98 msgid "staged changes" msgstr "" -#: extras/models/tags.py:44 +#: extras/models/tags.py:40 msgid "The object type(s) to which this this tag can be applied." msgstr "" -#: extras/models/tags.py:53 +#: extras/models/tags.py:49 msgid "tag" msgstr "" -#: extras/models/tags.py:54 +#: extras/models/tags.py:50 msgid "tags" msgstr "" -#: extras/models/tags.py:80 +#: extras/models/tags.py:78 msgid "tagged item" msgstr "" -#: extras/models/tags.py:81 +#: extras/models/tags.py:79 msgid "tagged items" msgstr "" -#: extras/tables/tables.py:48 users/forms/filtersets.py:47 users/tables.py:39 -msgid "Is Active" +#: extras/signals.py:221 +#, python-brace-format +msgid "Deletion is prevented by a protection rule: {message}" msgstr "" -#: extras/tables/tables.py:69 extras/tables/tables.py:141 -#: extras/tables/tables.py:165 extras/tables/tables.py:230 -#: extras/tables/tables.py:277 +#: extras/tables/tables.py:44 extras/tables/tables.py:119 +#: extras/tables/tables.py:143 extras/tables/tables.py:208 +#: extras/tables/tables.py:281 msgid "Content Types" msgstr "" -#: extras/tables/tables.py:75 templates/extras/customfield.html:82 -msgid "UI Visibility" +#: extras/tables/tables.py:50 +msgid "Visible" msgstr "" -#: extras/tables/tables.py:82 templates/extras/customfield.html:48 +#: 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:90 +#: extras/tables/tables.py:68 msgid "Is Cloneable" msgstr "" -#: extras/tables/tables.py:120 +#: extras/tables/tables.py:98 msgid "Count" msgstr "" -#: extras/tables/tables.py:123 +#: extras/tables/tables.py:101 msgid "Order Alphabetically" msgstr "" -#: extras/tables/tables.py:147 templates/extras/customlink.html:34 +#: extras/tables/tables.py:125 templates/extras/customlink.html:34 msgid "New Window" msgstr "" -#: extras/tables/tables.py:168 +#: extras/tables/tables.py:146 msgid "As Attachment" msgstr "" -#: extras/tables/tables.py:175 extras/tables/tables.py:367 +#: extras/tables/tables.py:153 extras/tables/tables.py:367 #: extras/tables/tables.py:402 templates/core/datafile.html:32 #: templates/dcim/device/render_config.html:23 #: templates/extras/configcontext.html:40 @@ -7006,41 +7206,45 @@ msgstr "" msgid "Data File" msgstr "" -#: extras/tables/tables.py:180 extras/tables/tables.py:379 +#: extras/tables/tables.py:158 extras/tables/tables.py:379 #: extras/tables/tables.py:407 msgid "Synced" msgstr "" -#: extras/tables/tables.py:200 +#: extras/tables/tables.py:178 msgid "Content Type" msgstr "" -#: extras/tables/tables.py:207 +#: extras/tables/tables.py:185 msgid "Image" msgstr "" -#: extras/tables/tables.py:212 +#: extras/tables/tables.py:190 msgid "Size (Bytes)" msgstr "" -#: extras/tables/tables.py:255 extras/tables/tables.py:326 -#: templates/extras/customfield.html:92 +#: extras/tables/tables.py:233 extras/tables/tables.py:326 +#: templates/extras/customfield.html:96 templates/extras/eventrule.html:32 #: templates/users/objectpermission.html:68 users/tables.py:83 msgid "Object Types" msgstr "" -#: extras/tables/tables.py:292 +#: extras/tables/tables.py:255 +msgid "SSL Validation" +msgstr "" + +#: extras/tables/tables.py:278 +msgid "Action Type" +msgstr "" + +#: extras/tables/tables.py:296 msgid "Job Start" msgstr "" -#: extras/tables/tables.py:295 +#: extras/tables/tables.py:299 msgid "Job End" msgstr "" -#: extras/tables/tables.py:298 -msgid "SSL Validation" -msgstr "" - #: extras/tables/tables.py:436 templates/account/profile.html:20 #: templates/users/user.html:22 msgid "Full Name" @@ -7054,7 +7258,25 @@ msgstr "" msgid "Comments (Short)" msgstr "" -#: extras/views.py:836 +#: extras/validators.py:13 +#, python-format +msgid "Ensure this value is equal to %(limit_value)s." +msgstr "" + +#: extras/validators.py:24 +#, python-format +msgid "Ensure this value does not equal %(limit_value)s." +msgstr "" + +#: extras/validators.py:35 +msgid "This field must be empty." +msgstr "" + +#: extras/validators.py:50 +msgid "This field must not be empty." +msgstr "" + +#: extras/views.py:880 msgid "Your dashboard has been reset." msgstr "" @@ -7116,19 +7338,19 @@ msgstr "" msgid "Plaintext" msgstr "" -#: ipam/filtersets.py:47 ipam/filtersets.py:1068 +#: ipam/filtersets.py:47 vpn/filtersets.py:276 msgid "Import target" msgstr "" -#: ipam/filtersets.py:53 ipam/filtersets.py:1074 +#: ipam/filtersets.py:53 vpn/filtersets.py:282 msgid "Import target (name)" msgstr "" -#: ipam/filtersets.py:58 ipam/filtersets.py:1079 +#: ipam/filtersets.py:58 vpn/filtersets.py:287 msgid "Export target" msgstr "" -#: ipam/filtersets.py:64 ipam/filtersets.py:1085 +#: ipam/filtersets.py:64 vpn/filtersets.py:293 msgid "Export target (name)" msgstr "" @@ -7148,8 +7370,8 @@ msgstr "" msgid "Export VRF (RD)" msgstr "" -#: ipam/filtersets.py:132 ipam/filtersets.py:247 ipam/forms/model_forms.py:231 -#: ipam/tables/ip.py:211 templates/ipam/prefix.html:11 +#: ipam/filtersets.py:132 ipam/filtersets.py:247 ipam/forms/model_forms.py:229 +#: ipam/tables/ip.py:211 templates/ipam/prefix.html:12 msgid "Prefix" msgstr "" @@ -7173,106 +7395,103 @@ msgstr "" msgid "Prefixes which contain this prefix or IP" msgstr "" -#: ipam/filtersets.py:338 ipam/filtersets.py:1191 +#: ipam/filtersets.py:270 ipam/filtersets.py:538 ipam/forms/bulk_edit.py:326 +#: ipam/forms/filtersets.py:191 ipam/forms/filtersets.py:317 +msgid "Mask length" +msgstr "" + +#: ipam/filtersets.py:339 vpn/filtersets.py:399 msgid "VLAN (ID)" msgstr "" -#: ipam/filtersets.py:342 ipam/filtersets.py:1186 +#: ipam/filtersets.py:343 vpn/filtersets.py:394 msgid "VLAN number (1-4094)" msgstr "" -#: ipam/filtersets.py:436 ipam/filtersets.py:440 ipam/filtersets.py:532 -#: ipam/forms/model_forms.py:446 templates/tenancy/contact.html:54 +#: ipam/filtersets.py:437 ipam/filtersets.py:441 ipam/filtersets.py:533 +#: ipam/forms/model_forms.py:444 templates/tenancy/contact.html:54 #: tenancy/forms/bulk_edit.py:112 msgid "Address" msgstr "" -#: ipam/filtersets.py:444 +#: ipam/filtersets.py:445 msgid "Ranges which contain this prefix or IP" msgstr "" -#: ipam/filtersets.py:472 ipam/filtersets.py:528 +#: ipam/filtersets.py:473 ipam/filtersets.py:529 msgid "Parent prefix" msgstr "" -#: ipam/filtersets.py:536 ipam/forms/bulk_edit.py:328 -#: ipam/forms/filtersets.py:195 ipam/forms/filtersets.py:320 -msgid "Mask length" -msgstr "" - -#: ipam/filtersets.py:572 ipam/filtersets.py:807 ipam/filtersets.py:1026 -#: ipam/filtersets.py:1149 +#: ipam/filtersets.py:582 ipam/filtersets.py:812 ipam/filtersets.py:1031 +#: vpn/filtersets.py:357 msgid "Virtual machine (name)" msgstr "" -#: ipam/filtersets.py:577 ipam/filtersets.py:812 ipam/filtersets.py:1020 -#: ipam/filtersets.py:1154 virtualization/filtersets.py:273 +#: ipam/filtersets.py:587 ipam/filtersets.py:817 ipam/filtersets.py:1025 +#: virtualization/filtersets.py:276 virtualization/filtersets.py:315 +#: vpn/filtersets.py:362 msgid "Virtual machine (ID)" msgstr "" -#: ipam/filtersets.py:583 ipam/filtersets.py:1160 +#: ipam/filtersets.py:593 vpn/filtersets.py:97 vpn/filtersets.py:368 msgid "Interface (name)" msgstr "" -#: ipam/filtersets.py:588 ipam/filtersets.py:1165 +#: ipam/filtersets.py:598 vpn/filtersets.py:102 vpn/filtersets.py:373 msgid "Interface (ID)" msgstr "" -#: ipam/filtersets.py:594 ipam/filtersets.py:1171 +#: ipam/filtersets.py:604 vpn/filtersets.py:108 vpn/filtersets.py:379 msgid "VM interface (name)" msgstr "" -#: ipam/filtersets.py:599 +#: ipam/filtersets.py:609 vpn/filtersets.py:113 msgid "VM interface (ID)" msgstr "" -#: ipam/filtersets.py:604 +#: ipam/filtersets.py:614 msgid "FHRP group (ID)" msgstr "" -#: ipam/filtersets.py:608 +#: ipam/filtersets.py:618 msgid "Is assigned to an interface" msgstr "" -#: ipam/filtersets.py:612 +#: ipam/filtersets.py:622 msgid "Is assigned" msgstr "" -#: ipam/filtersets.py:1031 +#: ipam/filtersets.py:1036 msgid "IP address (ID)" msgstr "" -#: ipam/filtersets.py:1037 ipam/models/ip.py:786 +#: ipam/filtersets.py:1042 ipam/models/ip.py:787 msgid "IP address" msgstr "" -#: ipam/filtersets.py:1112 -msgid "L2VPN (slug)" +#: ipam/filtersets.py:1068 +msgid "Primary IPv4 (ID)" msgstr "" -#: ipam/filtersets.py:1176 -msgid "VM Interface (ID)" -msgstr "" - -#: ipam/filtersets.py:1182 -msgid "VLAN (name)" +#: ipam/filtersets.py:1073 +msgid "Primary IPv6 (ID)" msgstr "" #: ipam/forms/bulk_create.py:14 msgid "Address pattern" msgstr "" -#: ipam/forms/bulk_edit.py:87 +#: ipam/forms/bulk_edit.py:85 msgid "Is private" msgstr "" -#: ipam/forms/bulk_edit.py:108 ipam/forms/bulk_edit.py:137 -#: ipam/forms/bulk_edit.py:162 ipam/forms/bulk_import.py:91 -#: ipam/forms/bulk_import.py:111 ipam/forms/bulk_import.py:131 -#: ipam/forms/filtersets.py:113 ipam/forms/filtersets.py:128 -#: ipam/forms/filtersets.py:151 ipam/forms/model_forms.py:95 -#: ipam/forms/model_forms.py:110 ipam/forms/model_forms.py:132 -#: ipam/forms/model_forms.py:150 ipam/models/asns.py:31 ipam/models/asns.py:103 +#: 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_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/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 @@ -7280,44 +7499,44 @@ msgstr "" msgid "RIR" msgstr "" -#: ipam/forms/bulk_edit.py:170 +#: ipam/forms/bulk_edit.py:168 msgid "Date added" msgstr "" -#: ipam/forms/bulk_edit.py:231 +#: ipam/forms/bulk_edit.py:229 msgid "Prefix length" msgstr "" -#: ipam/forms/bulk_edit.py:254 ipam/forms/filtersets.py:240 +#: ipam/forms/bulk_edit.py:252 ipam/forms/filtersets.py:236 #: templates/ipam/prefix.html:86 msgid "Is a pool" msgstr "" -#: ipam/forms/bulk_edit.py:259 ipam/forms/bulk_edit.py:303 +#: ipam/forms/bulk_edit.py:257 ipam/forms/bulk_edit.py:301 #: ipam/models/ip.py:271 ipam/models/ip.py:538 #, python-format msgid "Treat as 100% utilized" msgstr "" -#: ipam/forms/bulk_edit.py:351 ipam/models/ip.py:771 +#: ipam/forms/bulk_edit.py:349 ipam/models/ip.py:771 msgid "DNS name" msgstr "" -#: ipam/forms/bulk_edit.py:372 ipam/forms/bulk_edit.py:571 -#: ipam/forms/bulk_import.py:396 ipam/forms/bulk_import.py:480 -#: ipam/forms/bulk_import.py:506 ipam/forms/filtersets.py:379 -#: ipam/forms/filtersets.py:513 templates/ipam/fhrpgroup.html:23 +#: ipam/forms/bulk_edit.py:370 ipam/forms/bulk_edit.py:569 +#: 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 msgid "Protocol" msgstr "" -#: ipam/forms/bulk_edit.py:379 ipam/forms/filtersets.py:386 +#: ipam/forms/bulk_edit.py:377 ipam/forms/filtersets.py:383 #: ipam/tables/fhrp.py:22 templates/ipam/fhrpgroup.html:27 msgid "Group ID" msgstr "" -#: ipam/forms/bulk_edit.py:384 ipam/forms/filtersets.py:391 +#: ipam/forms/bulk_edit.py:382 ipam/forms/filtersets.py:388 #: wireless/forms/bulk_edit.py:67 wireless/forms/bulk_edit.py:114 #: wireless/forms/bulk_import.py:62 wireless/forms/bulk_import.py:65 #: wireless/forms/bulk_import.py:104 wireless/forms/bulk_import.py:107 @@ -7325,12 +7544,12 @@ msgstr "" msgid "Authentication type" msgstr "" -#: ipam/forms/bulk_edit.py:389 ipam/forms/filtersets.py:395 +#: ipam/forms/bulk_edit.py:387 ipam/forms/filtersets.py:392 msgid "Authentication key" msgstr "" -#: ipam/forms/bulk_edit.py:406 ipam/forms/filtersets.py:372 -#: ipam/forms/model_forms.py:457 netbox/navigation/menu.py:356 +#: ipam/forms/bulk_edit.py:404 ipam/forms/filtersets.py:369 +#: ipam/forms/model_forms.py:455 netbox/navigation/menu.py:376 #: templates/ipam/fhrpgroup.html:51 #: templates/wireless/inc/authentication_attrs.html:5 #: wireless/forms/bulk_edit.py:90 wireless/forms/bulk_edit.py:137 @@ -7339,364 +7558,333 @@ msgstr "" msgid "Authentication" msgstr "" -#: ipam/forms/bulk_edit.py:416 +#: ipam/forms/bulk_edit.py:414 msgid "Minimum child VLAN VID" msgstr "" -#: ipam/forms/bulk_edit.py:422 +#: ipam/forms/bulk_edit.py:420 msgid "Maximum child VLAN VID" msgstr "" -#: ipam/forms/bulk_edit.py:430 ipam/forms/model_forms.py:529 +#: ipam/forms/bulk_edit.py:428 ipam/forms/model_forms.py:527 msgid "Scope type" msgstr "" -#: ipam/forms/bulk_edit.py:491 ipam/forms/model_forms.py:602 +#: ipam/forms/bulk_edit.py:489 ipam/forms/model_forms.py:600 #: ipam/tables/vlans.py:71 templates/ipam/vlangroup.html:39 msgid "Scope" msgstr "" -#: ipam/forms/bulk_edit.py:562 +#: ipam/forms/bulk_edit.py:560 msgid "Site & Group" msgstr "" -#: ipam/forms/bulk_edit.py:576 ipam/forms/model_forms.py:665 -#: ipam/forms/model_forms.py:699 ipam/tables/services.py:19 +#: ipam/forms/bulk_edit.py:574 ipam/forms/model_forms.py:663 +#: ipam/forms/model_forms.py:697 ipam/tables/services.py:19 #: ipam/tables/services.py:49 templates/ipam/service.html:39 #: templates/ipam/servicetemplate.html:24 msgid "Ports" msgstr "" -#: ipam/forms/bulk_import.py:50 +#: ipam/forms/bulk_import.py:47 msgid "Import route targets" msgstr "" -#: ipam/forms/bulk_import.py:56 +#: ipam/forms/bulk_import.py:53 msgid "Export route targets" msgstr "" -#: ipam/forms/bulk_import.py:94 ipam/forms/bulk_import.py:114 -#: ipam/forms/bulk_import.py:134 +#: ipam/forms/bulk_import.py:91 ipam/forms/bulk_import.py:111 +#: ipam/forms/bulk_import.py:131 msgid "Assigned RIR" msgstr "" -#: ipam/forms/bulk_import.py:184 +#: ipam/forms/bulk_import.py:181 msgid "VLAN's group (if any)" msgstr "" -#: ipam/forms/bulk_import.py:187 ipam/forms/bulk_import.py:564 -#: ipam/forms/filtersets.py:603 ipam/forms/model_forms.py:221 -#: ipam/forms/model_forms.py:804 ipam/models/vlans.py:213 ipam/tables/ip.py:254 -#: templates/ipam/l2vpntermination_edit.html:17 templates/ipam/prefix.html:61 -#: templates/ipam/vlan.html:12 templates/ipam/vlan/base.html:6 -#: templates/ipam/vlan_edit.html:10 templates/wireless/wirelesslan.html:31 +#: 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:299 +#: vpn/forms/filtersets.py:280 vpn/forms/model_forms.py:427 #: wireless/forms/bulk_edit.py:54 wireless/forms/bulk_import.py:48 #: wireless/forms/model_forms.py:49 wireless/models.py:101 msgid "VLAN" msgstr "" -#: ipam/forms/bulk_import.py:310 +#: ipam/forms/bulk_import.py:307 msgid "Parent device of assigned interface (if any)" msgstr "" -#: ipam/forms/bulk_import.py:313 ipam/forms/bulk_import.py:499 -#: ipam/forms/bulk_import.py:550 ipam/forms/model_forms.py:693 -#: virtualization/filtersets.py:279 virtualization/forms/bulk_edit.py:197 -#: virtualization/forms/bulk_import.py:145 -#: virtualization/forms/filtersets.py:200 -#: virtualization/forms/model_forms.py:280 +#: ipam/forms/bulk_import.py:310 ipam/forms/bulk_import.py:496 +#: ipam/forms/model_forms.py:691 virtualization/filtersets.py:282 +#: virtualization/filtersets.py:321 virtualization/forms/bulk_edit.py:199 +#: virtualization/forms/bulk_edit.py:325 +#: 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 +#: vpn/forms/bulk_import.py:285 msgid "Virtual machine" msgstr "" -#: ipam/forms/bulk_import.py:317 +#: ipam/forms/bulk_import.py:314 msgid "Parent VM of assigned interface (if any)" msgstr "" -#: ipam/forms/bulk_import.py:324 +#: ipam/forms/bulk_import.py:321 msgid "Assigned interface" msgstr "" -#: ipam/forms/bulk_import.py:327 +#: ipam/forms/bulk_import.py:324 msgid "Is primary" msgstr "" -#: ipam/forms/bulk_import.py:328 +#: ipam/forms/bulk_import.py:325 msgid "Make this the primary IP for the assigned device" msgstr "" -#: ipam/forms/bulk_import.py:367 +#: ipam/forms/bulk_import.py:364 msgid "No device or virtual machine specified; cannot set as primary IP" msgstr "" -#: ipam/forms/bulk_import.py:371 +#: ipam/forms/bulk_import.py:368 msgid "No interface specified; cannot set as primary IP" msgstr "" -#: ipam/forms/bulk_import.py:400 +#: ipam/forms/bulk_import.py:397 msgid "Auth type" msgstr "" -#: ipam/forms/bulk_import.py:415 +#: ipam/forms/bulk_import.py:412 msgid "Scope type (app & model)" msgstr "" -#: ipam/forms/bulk_import.py:421 +#: ipam/forms/bulk_import.py:418 #, python-brace-format msgid "Minimum child VLAN VID (default: {minimum})" msgstr "" -#: ipam/forms/bulk_import.py:427 +#: ipam/forms/bulk_import.py:424 #, python-brace-format msgid "Maximum child VLAN VID (default: {maximum})" msgstr "" -#: ipam/forms/bulk_import.py:451 +#: ipam/forms/bulk_import.py:448 msgid "Assigned VLAN group" msgstr "" -#: ipam/forms/bulk_import.py:482 ipam/forms/bulk_import.py:508 +#: ipam/forms/bulk_import.py:479 ipam/forms/bulk_import.py:505 msgid "IP protocol" msgstr "" -#: ipam/forms/bulk_import.py:496 +#: ipam/forms/bulk_import.py:493 msgid "Required if not assigned to a VM" msgstr "" -#: ipam/forms/bulk_import.py:503 +#: ipam/forms/bulk_import.py:500 msgid "Required if not assigned to a device" msgstr "" -#: ipam/forms/bulk_import.py:526 -msgid "L2VPN type" +#: ipam/forms/bulk_import.py:525 +#, python-brace-format +msgid "{ip} is not assigned to this device/VM." msgstr "" -#: ipam/forms/bulk_import.py:547 -msgid "Parent device (for interface)" -msgstr "" - -#: ipam/forms/bulk_import.py:554 -msgid "Parent virtual machine (for interface)" -msgstr "" - -#: ipam/forms/bulk_import.py:561 -msgid "Assigned interface (device or VM)" -msgstr "" - -#: ipam/forms/bulk_import.py:594 -msgid "Cannot import device and VM interface terminations simultaneously." -msgstr "" - -#: ipam/forms/bulk_import.py:596 -msgid "Each termination must specify either an interface or a VLAN." -msgstr "" - -#: ipam/forms/bulk_import.py:598 -msgid "Cannot assign both an interface and a VLAN." -msgstr "" - -#: ipam/forms/filtersets.py:50 ipam/forms/model_forms.py:62 -#: ipam/forms/model_forms.py:780 netbox/navigation/menu.py:177 +#: ipam/forms/filtersets.py:46 ipam/forms/model_forms.py:60 +#: netbox/navigation/menu.py:177 vpn/forms/model_forms.py:403 msgid "Route Targets" msgstr "" -#: ipam/forms/filtersets.py:56 ipam/forms/filtersets.py:544 -#: ipam/forms/model_forms.py:49 ipam/forms/model_forms.py:767 +#: ipam/forms/filtersets.py:52 ipam/forms/model_forms.py:47 +#: vpn/forms/filtersets.py:221 vpn/forms/model_forms.py:390 msgid "Import targets" msgstr "" -#: ipam/forms/filtersets.py:61 ipam/forms/filtersets.py:549 -#: ipam/forms/model_forms.py:54 ipam/forms/model_forms.py:772 +#: ipam/forms/filtersets.py:57 ipam/forms/model_forms.py:52 +#: vpn/forms/filtersets.py:226 vpn/forms/model_forms.py:395 msgid "Export targets" msgstr "" -#: ipam/forms/filtersets.py:76 +#: ipam/forms/filtersets.py:72 msgid "Imported by VRF" msgstr "" -#: ipam/forms/filtersets.py:81 +#: ipam/forms/filtersets.py:77 msgid "Exported by VRF" msgstr "" -#: ipam/forms/filtersets.py:90 ipam/tables/ip.py:89 templates/ipam/rir.html:33 +#: ipam/forms/filtersets.py:86 ipam/tables/ip.py:89 templates/ipam/rir.html:33 msgid "Private" msgstr "" -#: ipam/forms/filtersets.py:108 ipam/forms/filtersets.py:190 -#: ipam/forms/filtersets.py:265 ipam/forms/filtersets.py:315 +#: ipam/forms/filtersets.py:104 ipam/forms/filtersets.py:186 +#: ipam/forms/filtersets.py:261 ipam/forms/filtersets.py:312 msgid "Address family" msgstr "" -#: ipam/forms/filtersets.py:122 templates/ipam/asnrange.html:26 +#: ipam/forms/filtersets.py:118 templates/ipam/asnrange.html:26 msgid "Range" msgstr "" -#: ipam/forms/filtersets.py:131 +#: ipam/forms/filtersets.py:127 msgid "Start" msgstr "" -#: ipam/forms/filtersets.py:135 +#: ipam/forms/filtersets.py:131 msgid "End" msgstr "" -#: ipam/forms/filtersets.py:185 +#: ipam/forms/filtersets.py:181 msgid "Search within" msgstr "" -#: ipam/forms/filtersets.py:206 ipam/forms/filtersets.py:331 +#: ipam/forms/filtersets.py:202 ipam/forms/filtersets.py:328 msgid "Present in VRF" msgstr "" -#: ipam/forms/filtersets.py:247 ipam/forms/filtersets.py:286 +#: ipam/forms/filtersets.py:243 ipam/forms/filtersets.py:282 #, python-format msgid "Marked as 100% utilized" msgstr "" -#: ipam/forms/filtersets.py:301 +#: ipam/forms/filtersets.py:297 msgid "Device/VM" msgstr "" -#: ipam/forms/filtersets.py:336 +#: ipam/forms/filtersets.py:333 msgid "Assigned Device" msgstr "" -#: ipam/forms/filtersets.py:341 +#: ipam/forms/filtersets.py:338 msgid "Assigned VM" msgstr "" -#: ipam/forms/filtersets.py:355 +#: ipam/forms/filtersets.py:352 msgid "Assigned to an interface" msgstr "" -#: ipam/forms/filtersets.py:362 templates/ipam/ipaddress.html:54 +#: ipam/forms/filtersets.py:359 templates/ipam/ipaddress.html:54 msgid "DNS Name" msgstr "" -#: ipam/forms/filtersets.py:404 ipam/forms/filtersets.py:496 -#: ipam/models/vlans.py:154 templates/ipam/vlan.html:34 +#: ipam/forms/filtersets.py:401 ipam/forms/filtersets.py:494 +#: ipam/models/vlans.py:156 templates/ipam/vlan.html:34 msgid "VLAN ID" msgstr "" -#: ipam/forms/filtersets.py:436 +#: ipam/forms/filtersets.py:433 msgid "Minimum VID" msgstr "" -#: ipam/forms/filtersets.py:442 +#: ipam/forms/filtersets.py:439 msgid "Maximum VID" msgstr "" -#: ipam/forms/filtersets.py:518 +#: ipam/forms/filtersets.py:516 msgid "Port" msgstr "" -#: ipam/forms/filtersets.py:558 ipam/tables/ip.py:424 -#: templates/ipam/l2vpntermination.html:19 -msgid "Assigned Object" -msgstr "" - -#: ipam/forms/filtersets.py:570 -msgid "Assigned Object Type" -msgstr "" - -#: ipam/forms/filtersets.py:612 ipam/tables/vlans.py:191 -#: templates/ipam/ipaddress_edit.html:47 -#: templates/ipam/l2vpntermination_edit.html:27 -#: templates/ipam/service_create.html:22 templates/ipam/service_edit.html:21 +#: 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 -#: virtualization/forms/filtersets.py:186 -#: virtualization/forms/model_forms.py:221 -#: virtualization/tables/virtualmachines.py:110 +#: 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 +#: virtualization/tables/virtualmachines.py:115 +#: virtualization/tables/virtualmachines.py:168 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:269 msgid "Virtual Machine" msgstr "" -#: ipam/forms/model_forms.py:115 ipam/tables/ip.py:116 -#: templates/ipam/aggregate.html:11 templates/ipam/prefix.html:38 +#: ipam/forms/model_forms.py:113 ipam/tables/ip.py:116 +#: templates/ipam/aggregate.html:11 templates/ipam/prefix.html:39 msgid "Aggregate" msgstr "" -#: ipam/forms/model_forms.py:136 templates/ipam/asnrange.html:12 +#: ipam/forms/model_forms.py:134 templates/ipam/asnrange.html:12 msgid "ASN Range" msgstr "" -#: ipam/forms/model_forms.py:232 +#: ipam/forms/model_forms.py:230 msgid "Site/VLAN Assignment" msgstr "" -#: ipam/forms/model_forms.py:258 templates/ipam/iprange.html:11 +#: ipam/forms/model_forms.py:256 templates/ipam/iprange.html:11 msgid "IP Range" msgstr "" -#: ipam/forms/model_forms.py:287 ipam/forms/model_forms.py:456 +#: ipam/forms/model_forms.py:285 ipam/forms/model_forms.py:454 #: templates/ipam/fhrpgroup.html:19 templates/ipam/ipaddress_edit.html:52 msgid "FHRP Group" msgstr "" -#: ipam/forms/model_forms.py:302 +#: ipam/forms/model_forms.py:300 msgid "Make this the primary IP for the device/VM" msgstr "" -#: ipam/forms/model_forms.py:353 +#: ipam/forms/model_forms.py:351 msgid "An IP address can only be assigned to a single object." msgstr "" -#: ipam/forms/model_forms.py:359 ipam/models/ip.py:877 +#: ipam/forms/model_forms.py:357 ipam/models/ip.py:878 msgid "" "Cannot reassign IP address while it is designated as the primary IP for the " "parent object" msgstr "" -#: ipam/forms/model_forms.py:369 +#: ipam/forms/model_forms.py:367 msgid "" "Only IP addresses assigned to an interface can be designated as primary IPs." msgstr "" -#: ipam/forms/model_forms.py:375 +#: ipam/forms/model_forms.py:373 #, python-brace-format msgid "{ip} is a network ID, which may not be assigned to an interface." msgstr "" -#: ipam/forms/model_forms.py:381 +#: ipam/forms/model_forms.py:379 #, python-brace-format msgid "{ip} is a broadcast address, which may not be assigned to an interface." msgstr "" -#: ipam/forms/model_forms.py:458 +#: ipam/forms/model_forms.py:456 msgid "Virtual IP Address" msgstr "" -#: ipam/forms/model_forms.py:600 ipam/forms/model_forms.py:639 +#: ipam/forms/model_forms.py:598 ipam/forms/model_forms.py:637 #: 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:601 +#: ipam/forms/model_forms.py:599 msgid "Child VLANs" msgstr "" -#: ipam/forms/model_forms.py:670 ipam/forms/model_forms.py:704 +#: ipam/forms/model_forms.py:668 ipam/forms/model_forms.py:702 msgid "" "Comma-separated list of one or more port numbers. A range may be specified " "using a hyphen." msgstr "" -#: ipam/forms/model_forms.py:675 templates/ipam/servicetemplate.html:12 +#: ipam/forms/model_forms.py:673 templates/ipam/servicetemplate.html:12 msgid "Service Template" msgstr "" -#: ipam/forms/model_forms.py:726 +#: ipam/forms/model_forms.py:724 msgid "Service template" msgstr "" -#: ipam/forms/model_forms.py:846 -msgid "A termination must specify an interface or VLAN." -msgstr "" - -#: ipam/forms/model_forms.py:848 -msgid "" -"A termination can only have one terminating object (an interface or VLAN)." -msgstr "" - #: ipam/models/asns.py:34 msgid "start" msgstr "" @@ -7722,39 +7910,39 @@ msgstr "" msgid "16- or 32-bit autonomous system number" msgstr "" -#: ipam/models/fhrp.py:23 +#: ipam/models/fhrp.py:22 msgid "group ID" msgstr "" -#: ipam/models/fhrp.py:31 ipam/models/services.py:22 +#: ipam/models/fhrp.py:30 ipam/models/services.py:22 msgid "protocol" msgstr "" -#: ipam/models/fhrp.py:39 wireless/models.py:27 +#: ipam/models/fhrp.py:38 wireless/models.py:27 msgid "authentication type" msgstr "" -#: ipam/models/fhrp.py:44 +#: ipam/models/fhrp.py:43 msgid "authentication key" msgstr "" -#: ipam/models/fhrp.py:57 +#: ipam/models/fhrp.py:56 msgid "FHRP group" msgstr "" -#: ipam/models/fhrp.py:58 +#: ipam/models/fhrp.py:57 msgid "FHRP groups" msgstr "" -#: ipam/models/fhrp.py:94 tenancy/models/contacts.py:133 +#: ipam/models/fhrp.py:93 tenancy/models/contacts.py:134 msgid "priority" msgstr "" -#: ipam/models/fhrp.py:111 +#: ipam/models/fhrp.py:113 msgid "FHRP group assignment" msgstr "" -#: ipam/models/fhrp.py:112 +#: ipam/models/fhrp.py:114 msgid "FHRP group assignments" msgstr "" @@ -7808,7 +7996,7 @@ msgid "" "({aggregate})." msgstr "" -#: ipam/models/ip.py:199 ipam/models/ip.py:736 +#: ipam/models/ip.py:199 ipam/models/ip.py:736 vpn/models/tunnels.py:114 msgid "role" msgstr "" @@ -7852,12 +8040,12 @@ msgstr "" msgid "Cannot create prefix with /0 mask." msgstr "" -#: ipam/models/ip.py:323 ipam/models/ip.py:853 +#: ipam/models/ip.py:323 ipam/models/ip.py:854 #, python-brace-format msgid "VRF {vrf}" msgstr "" -#: ipam/models/ip.py:323 ipam/models/ip.py:853 +#: ipam/models/ip.py:323 ipam/models/ip.py:854 msgid "global table" msgstr "" @@ -7918,7 +8106,7 @@ msgstr "" msgid "Defined range exceeds maximum supported size ({max_size})" msgstr "" -#: ipam/models/ip.py:710 tenancy/models/contacts.py:81 +#: ipam/models/ip.py:710 tenancy/models/contacts.py:82 msgid "address" msgstr "" @@ -7942,47 +8130,23 @@ msgstr "" msgid "Hostname or FQDN (not case-sensitive)" msgstr "" -#: ipam/models/ip.py:787 ipam/models/services.py:94 +#: ipam/models/ip.py:788 ipam/models/services.py:94 msgid "IP addresses" msgstr "" -#: ipam/models/ip.py:843 +#: ipam/models/ip.py:844 msgid "Cannot create IP address with /0 mask." msgstr "" -#: ipam/models/ip.py:855 +#: ipam/models/ip.py:856 #, python-brace-format msgid "Duplicate IP address found in {table}: {ipaddress}" msgstr "" -#: ipam/models/ip.py:884 +#: ipam/models/ip.py:885 msgid "Only IPv6 addresses can be assigned SLAAC status" msgstr "" -#: ipam/models/l2vpn.py:64 netbox/navigation/menu.py:205 -msgid "L2VPNs" -msgstr "" - -#: ipam/models/l2vpn.py:113 -msgid "L2VPN termination" -msgstr "" - -#: ipam/models/l2vpn.py:114 -msgid "L2VPN terminations" -msgstr "" - -#: ipam/models/l2vpn.py:132 -#, python-brace-format -msgid "L2VPN Termination already assigned ({assigned_object})" -msgstr "" - -#: ipam/models/l2vpn.py:144 -#, python-brace-format -msgid "" -"{l2vpn_type} L2VPNs cannot have more than two terminations; found " -"{terminations_count} already defined." -msgstr "" - #: ipam/models/services.py:33 msgid "port numbers" msgstr "" @@ -8016,72 +8180,72 @@ msgstr "" msgid "A service must be associated with either a device or a virtual machine." msgstr "" -#: ipam/models/vlans.py:50 +#: ipam/models/vlans.py:49 msgid "minimum VLAN ID" msgstr "" -#: ipam/models/vlans.py:56 +#: ipam/models/vlans.py:55 msgid "Lowest permissible ID of a child VLAN" msgstr "" -#: ipam/models/vlans.py:59 +#: ipam/models/vlans.py:58 msgid "maximum VLAN ID" msgstr "" -#: ipam/models/vlans.py:65 +#: ipam/models/vlans.py:64 msgid "Highest permissible ID of a child VLAN" msgstr "" -#: ipam/models/vlans.py:83 +#: ipam/models/vlans.py:85 msgid "VLAN groups" msgstr "" -#: ipam/models/vlans.py:93 +#: ipam/models/vlans.py:95 msgid "Cannot set scope_type without scope_id." msgstr "" -#: ipam/models/vlans.py:95 +#: ipam/models/vlans.py:97 msgid "Cannot set scope_id without scope_type." msgstr "" -#: ipam/models/vlans.py:100 +#: ipam/models/vlans.py:102 msgid "Maximum child VID must be greater than or equal to minimum child VID" msgstr "" -#: ipam/models/vlans.py:143 +#: ipam/models/vlans.py:145 msgid "The specific site to which this VLAN is assigned (if any)" msgstr "" -#: ipam/models/vlans.py:151 +#: ipam/models/vlans.py:153 msgid "VLAN group (optional)" msgstr "" -#: ipam/models/vlans.py:159 +#: ipam/models/vlans.py:161 msgid "Numeric VLAN ID (1-4094)" msgstr "" -#: ipam/models/vlans.py:177 +#: ipam/models/vlans.py:179 msgid "Operational status of this VLAN" msgstr "" -#: ipam/models/vlans.py:185 +#: ipam/models/vlans.py:187 msgid "The primary function of this VLAN" msgstr "" -#: ipam/models/vlans.py:214 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 -#: ipam/views.py:942 netbox/navigation/menu.py:181 +#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78 +#: ipam/views.py:940 netbox/navigation/menu.py:181 #: netbox/navigation/menu.py:183 msgid "VLANs" msgstr "" -#: ipam/models/vlans.py:229 +#: ipam/models/vlans.py:230 #, python-brace-format msgid "" "VLAN is assigned to group {group} (scope: {scope}); cannot also assign to " "site {site}." msgstr "" -#: ipam/models/vlans.py:237 +#: ipam/models/vlans.py:238 #, python-brace-format msgid "VID must be between {minimum} and {maximum} for VLANs in group {group}" msgstr "" @@ -8119,15 +8283,15 @@ msgstr "" msgid "route targets" msgstr "" -#: ipam/tables/asn.py:51 +#: ipam/tables/asn.py:52 msgid "ASDOT" msgstr "" -#: ipam/tables/asn.py:56 +#: ipam/tables/asn.py:57 msgid "Site Count" msgstr "" -#: ipam/tables/asn.py:61 +#: ipam/tables/asn.py:62 msgid "Provider Count" msgstr "" @@ -8141,13 +8305,13 @@ msgid "Added" msgstr "" #: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138 -#: ipam/views.py:351 netbox/navigation/menu.py:153 +#: ipam/views.py:349 netbox/navigation/menu.py:153 #: netbox/navigation/menu.py:155 templates/ipam/vlan.html:87 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:280 +#: 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 msgid "Utilization" @@ -8165,10 +8329,6 @@ msgstr "" msgid "Depth" msgstr "" -#: ipam/tables/ip.py:233 -msgid "Children" -msgstr "" - #: ipam/tables/ip.py:261 msgid "Pool" msgstr "" @@ -8193,20 +8353,9 @@ msgstr "" msgid "Assigned" msgstr "" -#: ipam/tables/l2vpn.py:27 ipam/tables/vrfs.py:36 -msgid "Import Targets" -msgstr "" - -#: ipam/tables/l2vpn.py:32 ipam/tables/vrfs.py:41 -msgid "Export Targets" -msgstr "" - -#: ipam/tables/l2vpn.py:69 -msgid "Object Parent" -msgstr "" - -#: ipam/tables/l2vpn.py:74 -msgid "Object Site" +#: ipam/tables/ip.py:424 templates/vpn/l2vpntermination.html:19 +#: vpn/forms/filtersets.py:235 +msgid "Assigned Object" msgstr "" #: ipam/tables/vlans.py:68 @@ -8226,27 +8375,35 @@ msgstr "" msgid "Unique" msgstr "" -#: ipam/views.py:538 +#: ipam/tables/vrfs.py:36 vpn/tables/l2vpn.py:27 +msgid "Import Targets" +msgstr "" + +#: ipam/tables/vrfs.py:41 vpn/tables/l2vpn.py:32 +msgid "Export Targets" +msgstr "" + +#: ipam/views.py:536 msgid "Child Prefixes" msgstr "" -#: ipam/views.py:573 +#: ipam/views.py:571 msgid "Child Ranges" msgstr "" -#: ipam/views.py:870 +#: ipam/views.py:868 msgid "Related IPs" msgstr "" -#: ipam/views.py:1093 +#: ipam/views.py:1091 msgid "Device Interfaces" msgstr "" -#: ipam/views.py:1111 +#: ipam/views.py:1109 msgid "VM Interfaces" msgstr "" -#: netbox/config/parameters.py:22 templates/extras/configrevision.html:111 +#: netbox/config/parameters.py:22 templates/core/configrevision.html:111 msgid "Login banner" msgstr "" @@ -8254,7 +8411,7 @@ msgstr "" msgid "Additional content to display on the login page" msgstr "" -#: netbox/config/parameters.py:33 templates/extras/configrevision.html:115 +#: netbox/config/parameters.py:33 templates/core/configrevision.html:115 msgid "Maintenance banner" msgstr "" @@ -8262,7 +8419,7 @@ msgstr "" msgid "Additional content to display when in maintenance mode" msgstr "" -#: netbox/config/parameters.py:44 templates/extras/configrevision.html:119 +#: netbox/config/parameters.py:44 templates/core/configrevision.html:119 msgid "Top banner" msgstr "" @@ -8270,7 +8427,7 @@ msgstr "" msgid "Additional content to display at the top of every page" msgstr "" -#: netbox/config/parameters.py:55 templates/extras/configrevision.html:123 +#: netbox/config/parameters.py:55 templates/core/configrevision.html:123 msgid "Bottom banner" msgstr "" @@ -8286,7 +8443,7 @@ msgstr "" msgid "Enforce unique IP addressing within the global table" msgstr "" -#: netbox/config/parameters.py:75 templates/extras/configrevision.html:87 +#: netbox/config/parameters.py:75 templates/core/configrevision.html:87 msgid "Prefer IPv4" msgstr "" @@ -8334,7 +8491,7 @@ msgstr "" msgid "Default max utilization for powerfeeds" msgstr "" -#: netbox/config/parameters.py:123 templates/extras/configrevision.html:99 +#: netbox/config/parameters.py:123 templates/core/configrevision.html:99 msgid "Allowed URL schemes" msgstr "" @@ -8350,7 +8507,7 @@ msgstr "" msgid "Maximum page size" msgstr "" -#: netbox/config/parameters.py:150 templates/extras/configrevision.html:151 +#: netbox/config/parameters.py:150 templates/core/configrevision.html:151 msgid "Custom validators" msgstr "" @@ -8358,51 +8515,59 @@ msgstr "" msgid "Custom validation rules (JSON)" msgstr "" -#: netbox/config/parameters.py:164 +#: netbox/config/parameters.py:160 templates/core/configrevision.html:161 +msgid "Protection rules" +msgstr "" + +#: netbox/config/parameters.py:162 +msgid "Deletion protection rules (JSON)" +msgstr "" + +#: netbox/config/parameters.py:172 msgid "Default preferences" msgstr "" -#: netbox/config/parameters.py:166 +#: netbox/config/parameters.py:174 msgid "Default preferences for new users" msgstr "" -#: netbox/config/parameters.py:173 templates/extras/configrevision.html:175 +#: netbox/config/parameters.py:181 templates/core/configrevision.html:197 msgid "Maintenance mode" msgstr "" -#: netbox/config/parameters.py:175 +#: netbox/config/parameters.py:183 msgid "Enable maintenance mode" msgstr "" -#: netbox/config/parameters.py:180 templates/extras/configrevision.html:179 +#: netbox/config/parameters.py:188 templates/core/configrevision.html:201 msgid "GraphQL enabled" msgstr "" -#: netbox/config/parameters.py:182 +#: netbox/config/parameters.py:190 msgid "Enable the GraphQL API" msgstr "" -#: netbox/config/parameters.py:187 templates/extras/configrevision.html:183 +#: netbox/config/parameters.py:195 templates/core/configrevision.html:205 msgid "Changelog retention" msgstr "" -#: netbox/config/parameters.py:189 +#: netbox/config/parameters.py:197 msgid "Days to retain changelog history (set to zero for unlimited)" msgstr "" -#: netbox/config/parameters.py:194 +#: netbox/config/parameters.py:202 msgid "Job result retention" msgstr "" -#: netbox/config/parameters.py:196 +#: netbox/config/parameters.py:204 msgid "Days to retain job result history (set to zero for unlimited)" msgstr "" -#: netbox/config/parameters.py:201 templates/extras/configrevision.html:191 +#: netbox/config/parameters.py:209 templates/core/configrevision.html:213 msgid "Maps URL" msgstr "" -#: netbox/config/parameters.py:203 +#: netbox/config/parameters.py:211 msgid "Base URL for mapping geographic locations" msgstr "" @@ -8434,35 +8599,35 @@ msgstr "" msgid "Id" msgstr "" -#: netbox/forms/base.py:107 +#: netbox/forms/base.py:105 msgid "Add tags" msgstr "" -#: netbox/forms/base.py:112 +#: netbox/forms/base.py:110 msgid "Remove tags" msgstr "" -#: netbox/models/features.py:422 +#: netbox/models/features.py:434 msgid "Remote data source" msgstr "" -#: netbox/models/features.py:432 +#: netbox/models/features.py:444 msgid "data path" msgstr "" -#: netbox/models/features.py:436 +#: netbox/models/features.py:448 msgid "Path to remote file (relative to data source root)" msgstr "" -#: netbox/models/features.py:439 +#: netbox/models/features.py:451 msgid "auto sync enabled" msgstr "" -#: netbox/models/features.py:441 +#: netbox/models/features.py:453 msgid "Enable automatic synchronization of data when the data file is updated" msgstr "" -#: netbox/models/features.py:444 +#: netbox/models/features.py:456 msgid "date synced" msgstr "" @@ -8506,7 +8671,7 @@ msgstr "" msgid "Device Roles" msgstr "" -#: netbox/navigation/menu.py:68 templates/dcim/device.html:179 +#: netbox/navigation/menu.py:68 templates/dcim/device.html:162 #: templates/dcim/virtualdevicecontext.html:8 msgid "Virtual Device Contexts" msgstr "" @@ -8567,74 +8732,122 @@ msgstr "" msgid "Service Templates" msgstr "" -#: netbox/navigation/menu.py:192 templates/dcim/device.html:321 +#: netbox/navigation/menu.py:192 templates/dcim/device.html:304 #: templates/ipam/ipaddress.html:122 -#: templates/virtualization/virtualmachine.html:155 +#: templates/virtualization/virtualmachine.html:157 msgid "Services" msgstr "" #: netbox/navigation/menu.py:199 -msgid "Overlay" +msgid "VPN" msgstr "" -#: netbox/navigation/menu.py:206 templates/ipam/l2vpn.html:57 +#: netbox/navigation/menu.py:203 netbox/navigation/menu.py:205 +#: vpn/tables/tunnels.py:24 +msgid "Tunnels" +msgstr "" + +#: netbox/navigation/menu.py:206 templates/vpn/tunnelgroup.html:8 +msgid "Tunnel Groups" +msgstr "" + +#: netbox/navigation/menu.py:207 +msgid "Tunnel Terminations" +msgstr "" + +#: netbox/navigation/menu.py:211 netbox/navigation/menu.py:213 +#: 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:54 msgid "Terminations" msgstr "" -#: netbox/navigation/menu.py:213 templates/dcim/device_edit.html:78 +#: netbox/navigation/menu.py:220 +msgid "IKE Proposals" +msgstr "" + +#: netbox/navigation/menu.py:221 templates/vpn/ikeproposal.html:42 +msgid "IKE Policies" +msgstr "" + +#: netbox/navigation/menu.py:222 +msgid "IPSec Proposals" +msgstr "" + +#: netbox/navigation/menu.py:223 templates/vpn/ipsecproposal.html:38 +msgid "IPSec Policies" +msgstr "" + +#: netbox/navigation/menu.py:224 templates/vpn/ikepolicy.html:39 +#: templates/vpn/ipsecpolicy.html:26 +msgid "IPSec Profiles" +msgstr "" + +#: netbox/navigation/menu.py:231 templates/dcim/device_edit.html:78 msgid "Virtualization" msgstr "" -#: netbox/navigation/menu.py:217 netbox/navigation/menu.py:219 +#: netbox/navigation/menu.py:235 netbox/navigation/menu.py:237 #: virtualization/views.py:186 msgid "Virtual Machines" msgstr "" -#: netbox/navigation/menu.py:227 +#: netbox/navigation/menu.py:239 +#: templates/virtualization/virtualmachine.html:177 +#: templates/virtualization/virtualmachine/base.html:32 +#: templates/virtualization/virtualmachine_list.html:21 +#: virtualization/tables/virtualmachines.py:90 virtualization/views.py:389 +msgid "Virtual Disks" +msgstr "" + +#: netbox/navigation/menu.py:246 msgid "Cluster Types" msgstr "" -#: netbox/navigation/menu.py:228 +#: netbox/navigation/menu.py:247 msgid "Cluster Groups" msgstr "" -#: netbox/navigation/menu.py:242 +#: netbox/navigation/menu.py:261 msgid "Circuit Types" msgstr "" -#: netbox/navigation/menu.py:246 netbox/navigation/menu.py:248 +#: netbox/navigation/menu.py:265 netbox/navigation/menu.py:267 msgid "Providers" msgstr "" -#: netbox/navigation/menu.py:249 templates/circuits/provider.html:53 +#: netbox/navigation/menu.py:268 templates/circuits/provider.html:53 msgid "Provider Accounts" msgstr "" -#: netbox/navigation/menu.py:250 +#: netbox/navigation/menu.py:269 msgid "Provider Networks" msgstr "" -#: netbox/navigation/menu.py:264 +#: netbox/navigation/menu.py:283 msgid "Power Panels" msgstr "" -#: netbox/navigation/menu.py:275 +#: netbox/navigation/menu.py:294 msgid "Configurations" msgstr "" -#: netbox/navigation/menu.py:277 +#: netbox/navigation/menu.py:296 msgid "Config Contexts" msgstr "" -#: netbox/navigation/menu.py:278 +#: netbox/navigation/menu.py:297 msgid "Config Templates" msgstr "" -#: netbox/navigation/menu.py:285 netbox/navigation/menu.py:289 +#: netbox/navigation/menu.py:304 netbox/navigation/menu.py:308 msgid "Customization" msgstr "" -#: netbox/navigation/menu.py:291 +#: 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/rack_edit.html:81 @@ -8643,108 +8856,112 @@ msgstr "" #: 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/l2vpntermination_edit.html:51 -#: templates/ipam/service_create.html:75 templates/ipam/service_edit.html:62 -#: templates/ipam/vlan_edit.html:63 +#: 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 msgid "Custom Fields" msgstr "" -#: netbox/navigation/menu.py:292 +#: netbox/navigation/menu.py:311 msgid "Custom Field Choices" msgstr "" -#: netbox/navigation/menu.py:293 +#: netbox/navigation/menu.py:312 msgid "Custom Links" msgstr "" -#: netbox/navigation/menu.py:294 +#: netbox/navigation/menu.py:313 msgid "Export Templates" msgstr "" -#: netbox/navigation/menu.py:295 +#: netbox/navigation/menu.py:314 msgid "Saved Filters" msgstr "" -#: netbox/navigation/menu.py:297 +#: netbox/navigation/menu.py:316 msgid "Image Attachments" msgstr "" -#: netbox/navigation/menu.py:301 +#: netbox/navigation/menu.py:320 msgid "Reports & Scripts" msgstr "" -#: netbox/navigation/menu.py:321 +#: netbox/navigation/menu.py:340 msgid "Operations" msgstr "" -#: netbox/navigation/menu.py:325 +#: netbox/navigation/menu.py:344 msgid "Integrations" msgstr "" -#: netbox/navigation/menu.py:327 +#: netbox/navigation/menu.py:346 msgid "Data Sources" msgstr "" -#: netbox/navigation/menu.py:328 +#: netbox/navigation/menu.py:347 +msgid "Event Rules" +msgstr "" + +#: netbox/navigation/menu.py:348 msgid "Webhooks" msgstr "" -#: netbox/navigation/menu.py:332 netbox/navigation/menu.py:336 +#: netbox/navigation/menu.py:352 netbox/navigation/menu.py:356 #: 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:342 +#: netbox/navigation/menu.py:362 msgid "Logging" msgstr "" -#: netbox/navigation/menu.py:344 +#: netbox/navigation/menu.py:364 msgid "Journal Entries" msgstr "" -#: netbox/navigation/menu.py:345 templates/extras/objectchange.html:8 +#: netbox/navigation/menu.py:365 templates/extras/objectchange.html:8 #: templates/extras/objectchange_list.html:4 msgid "Change Log" msgstr "" -#: netbox/navigation/menu.py:352 templates/inc/profile_button.html:18 +#: netbox/navigation/menu.py:372 templates/inc/profile_button.html:18 msgid "Admin" msgstr "" -#: netbox/navigation/menu.py:361 templates/users/group.html:27 +#: netbox/navigation/menu.py:381 templates/users/group.html:27 #: users/forms/model_forms.py:242 users/forms/model_forms.py:255 #: users/forms/model_forms.py:309 users/tables.py:105 msgid "Users" msgstr "" -#: netbox/navigation/menu.py:384 users/forms/model_forms.py:182 +#: netbox/navigation/menu.py:404 users/forms/model_forms.py:182 #: users/forms/model_forms.py:195 users/forms/model_forms.py:314 #: users/tables.py:35 users/tables.py:109 msgid "Groups" msgstr "" -#: netbox/navigation/menu.py:406 templates/account/base.html:21 +#: netbox/navigation/menu.py:426 templates/account/base.html:21 #: templates/inc/profile_button.html:39 msgid "API Tokens" msgstr "" -#: netbox/navigation/menu.py:413 users/forms/model_forms.py:188 +#: netbox/navigation/menu.py:433 users/forms/model_forms.py:188 #: users/forms/model_forms.py:197 users/forms/model_forms.py:248 #: users/forms/model_forms.py:256 msgid "Permissions" msgstr "" -#: netbox/navigation/menu.py:425 +#: netbox/navigation/menu.py:445 msgid "Current Config" msgstr "" -#: netbox/navigation/menu.py:431 +#: netbox/navigation/menu.py:451 msgid "Config Revisions" msgstr "" -#: netbox/navigation/menu.py:471 templates/500.html:35 +#: netbox/navigation/menu.py:491 templates/500.html:35 #: templates/account/preferences.html:29 msgid "Plugins" msgstr "" @@ -8781,19 +8998,19 @@ msgstr "" msgid "Toggle Dropdown" msgstr "" -#: netbox/tables/columns.py:542 +#: netbox/tables/columns.py:542 templates/core/job.html:40 msgid "Error" msgstr "" -#: netbox/tables/tables.py:234 templates/generic/bulk_import.html:115 +#: netbox/tables/tables.py:243 templates/generic/bulk_import.html:115 msgid "Field" msgstr "" -#: netbox/tables/tables.py:237 +#: netbox/tables/tables.py:246 msgid "Value" msgstr "" -#: netbox/tables/tables.py:246 +#: netbox/tables/tables.py:259 msgid "No results found" msgstr "" @@ -8866,6 +9083,8 @@ 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:372 msgid "Profile" msgstr "" @@ -8878,10 +9097,10 @@ msgid "Change Password" msgstr "" #: templates/account/password.html:17 templates/account/preferences.html:82 +#: templates/core/configrevision_restore.html:80 #: templates/dcim/devicebay_populate.html:34 #: templates/dcim/virtualchassis_add_member.html:24 #: templates/dcim/virtualchassis_edit.html:104 -#: templates/extras/configrevision_restore.html:80 #: 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 @@ -8889,8 +9108,8 @@ msgstr "" #: 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:19 -#: templates/htmx/delete_form.html:21 templates/ipam/ipaddress_assign.html:31 +#: templates/generic/object_edit.html:76 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 "" @@ -8973,14 +9192,14 @@ msgstr "" #: templates/circuits/inc/circuit_termination.html:154 #: templates/dcim/devicebay.html:66 #: templates/dcim/inc/panels/inventory_items.html:37 -#: templates/dcim/interface.html:302 templates/dcim/modulebay.html:79 -#: templates/extras/configcontext.html:73 +#: 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/extras/object_configcontext.html:28 #: templates/extras/objectchange.html:128 -#: templates/extras/objectchange.html:145 templates/extras/webhook.html:122 -#: templates/extras/webhook.html:134 templates/extras/webhook.html:146 -#: templates/inc/panel_table.html:12 templates/inc/panels/comments.html:12 +#: templates/extras/objectchange.html:145 templates/extras/webhook.html:79 +#: templates/extras/webhook.html:91 templates/inc/panel_table.html:12 +#: 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:56 @@ -8998,7 +9217,7 @@ msgstr "" #: templates/account/token.html:11 templates/account/token.html:19 #: templates/users/token.html:6 templates/users/token.html:14 -#: users/forms/filtersets.py:123 +#: users/forms/filtersets.py:121 msgid "Token" msgstr "" @@ -9106,7 +9325,7 @@ msgstr "" #: templates/circuits/circuittermination_edit.html:9 #: templates/circuits/inc/circuit_termination.html:81 -#: templates/dcim/frontport.html:128 templates/dcim/interface.html:195 +#: templates/dcim/frontport.html:128 templates/dcim/interface.html:199 #: templates/dcim/rearport.html:118 msgid "Circuit Termination" msgstr "" @@ -9153,6 +9372,7 @@ 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 "" @@ -9170,7 +9390,7 @@ msgstr "" #: templates/circuits/inc/circuit_termination.html:59 #: templates/dcim/frontport.html:87 #: templates/dcim/inc/connection_endpoints.html:7 -#: templates/dcim/interface.html:156 templates/dcim/rearport.html:83 +#: templates/dcim/interface.html:160 templates/dcim/rearport.html:83 msgid "Trace" msgstr "" @@ -9196,8 +9416,8 @@ 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:182 -#: templates/dcim/interface.html:202 templates/dcim/powerfeed.html:136 +#: 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 msgid "Connect" @@ -9206,7 +9426,7 @@ 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:189 templates/dcim/inventoryitem_edit.html:49 +#: templates/dcim/interface.html:193 templates/dcim/inventoryitem_edit.html:49 #: templates/dcim/rearport.html:112 msgid "Front Port" msgstr "" @@ -9235,11 +9455,82 @@ msgstr "" msgid "Provider Account" msgstr "" +#: templates/core/configrevision.html:47 +msgid "Default unit height" +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 +msgid "Comment" +msgstr "" + +#: templates/core/configrevision_restore.html:8 +#: templates/core/configrevision_restore.html:43 +#: templates/core/configrevision_restore.html:79 +msgid "Restore" +msgstr "" + +#: templates/core/configrevision_restore.html:21 +msgid "Config revisions" +msgstr "" + +#: templates/core/configrevision_restore.html:54 +msgid "Parameter" +msgstr "" + +#: templates/core/configrevision_restore.html:55 +msgid "Current Value" +msgstr "" + +#: templates/core/configrevision_restore.html:56 +msgid "New Value" +msgstr "" + +#: templates/core/configrevision_restore.html:66 +msgid "Changed" +msgstr "" + #: templates/core/datafile.html:47 msgid "Last Updated" msgstr "" #: templates/core/datafile.html:51 templates/ipam/iprange.html:28 +#: templates/virtualization/virtualdisk.html:30 msgid "Size" msgstr "" @@ -9276,15 +9567,15 @@ msgstr "" msgid "Job" msgstr "" -#: templates/core/job.html:39 templates/extras/journalentry.html:29 +#: templates/core/job.html:45 templates/extras/journalentry.html:29 msgid "Created By" msgstr "" -#: templates/core/job.html:48 +#: templates/core/job.html:54 msgid "Scheduling" msgstr "" -#: templates/core/job.html:60 +#: templates/core/job.html:66 #, python-format msgid "every %(interval)s seconds" msgstr "" @@ -9369,7 +9660,7 @@ msgid "Rename Selected" msgstr "" #: templates/dcim/consoleport.html:67 templates/dcim/consoleserverport.html:67 -#: templates/dcim/frontport.html:105 templates/dcim/interface.html:178 +#: templates/dcim/frontport.html:105 templates/dcim/interface.html:182 #: templates/dcim/poweroutlet.html:73 templates/dcim/powerport.html:73 msgid "Not Connected" msgstr "" @@ -9379,85 +9670,85 @@ msgstr "" msgid "Console Server Port" msgstr "" -#: templates/dcim/device.html:52 +#: templates/dcim/device.html:35 msgid "Highlight device" msgstr "" -#: templates/dcim/device.html:74 +#: templates/dcim/device.html:57 msgid "Not racked" msgstr "" -#: templates/dcim/device.html:81 templates/dcim/site.html:109 +#: templates/dcim/device.html:64 templates/dcim/site.html:96 msgid "GPS Coordinates" msgstr "" -#: templates/dcim/device.html:87 templates/dcim/site.html:115 +#: templates/dcim/device.html:70 templates/dcim/site.html:102 msgid "Map It" msgstr "" -#: templates/dcim/device.html:127 templates/dcim/inventoryitem.html:57 +#: templates/dcim/device.html:110 templates/dcim/inventoryitem.html:57 #: templates/dcim/module.html:79 templates/dcim/modulebay.html:73 -#: templates/dcim/rack.html:69 +#: templates/dcim/rack.html:62 msgid "Asset Tag" msgstr "" -#: templates/dcim/device.html:170 +#: templates/dcim/device.html:153 msgid "View Virtual Chassis" msgstr "" -#: templates/dcim/device.html:187 +#: templates/dcim/device.html:170 msgid "Create VDC" msgstr "" -#: templates/dcim/device.html:196 templates/dcim/device_edit.html:64 -#: virtualization/forms/model_forms.py:224 +#: templates/dcim/device.html:179 templates/dcim/device_edit.html:64 +#: virtualization/forms/model_forms.py:226 msgid "Management" msgstr "" -#: templates/dcim/device.html:217 templates/dcim/device.html:233 +#: templates/dcim/device.html:200 templates/dcim/device.html:216 #: templates/virtualization/virtualmachine.html:56 #: templates/virtualization/virtualmachine.html:72 msgid "NAT for" msgstr "" -#: templates/dcim/device.html:219 templates/dcim/device.html:235 +#: templates/dcim/device.html:202 templates/dcim/device.html:218 #: templates/virtualization/virtualmachine.html:58 #: templates/virtualization/virtualmachine.html:74 msgid "NAT" msgstr "" -#: templates/dcim/device.html:271 templates/dcim/rack.html:77 +#: templates/dcim/device.html:254 templates/dcim/rack.html:70 msgid "Power Utilization" msgstr "" -#: templates/dcim/device.html:276 +#: templates/dcim/device.html:259 msgid "Input" msgstr "" -#: templates/dcim/device.html:277 +#: templates/dcim/device.html:260 msgid "Outlets" msgstr "" -#: templates/dcim/device.html:278 +#: templates/dcim/device.html:261 msgid "Allocated" msgstr "" -#: templates/dcim/device.html:287 templates/dcim/device.html:289 -#: templates/dcim/device.html:305 templates/dcim/powerfeed.html:70 +#: templates/dcim/device.html:270 templates/dcim/device.html:272 +#: templates/dcim/device.html:288 templates/dcim/powerfeed.html:70 msgid "VA" msgstr "" -#: templates/dcim/device.html:299 +#: templates/dcim/device.html:282 msgctxt "Leg of a power feed" msgid "Leg" msgstr "" -#: templates/dcim/device.html:329 -#: templates/virtualization/virtualmachine.html:163 +#: templates/dcim/device.html:312 +#: templates/virtualization/virtualmachine.html:165 msgid "Add a service" msgstr "" -#: templates/dcim/device.html:336 templates/dcim/rack.html:84 +#: templates/dcim/device.html:319 templates/dcim/rack.html:77 #: templates/dcim/rack_edit.html:38 msgid "Dimensions" msgstr "" @@ -9465,6 +9756,7 @@ 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 +#: templates/virtualization/virtualmachine/base.html:22 #: templates/virtualization/virtualmachine_list.html:8 msgid "Add Components" msgstr "" @@ -9502,7 +9794,6 @@ msgid "Hide Disconnected" msgstr "" #: templates/dcim/device/interfaces.html:28 -#: templates/virtualization/virtualmachine/base.html:21 msgid "Add Interfaces" msgstr "" @@ -9575,6 +9866,7 @@ msgstr "" #: templates/dcim/moduletype/component_templates.html:18 #: templates/generic/bulk_rename.html:34 #: templates/virtualization/virtualmachine/interfaces.html:11 +#: templates/virtualization/virtualmachine/virtual_disks.html:11 msgid "Rename" msgstr "" @@ -9658,7 +9950,7 @@ msgstr "" msgid "Rear Port Position" msgstr "" -#: templates/dcim/frontport.html:79 templates/dcim/interface.html:146 +#: 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 msgid "Marked as Connected" @@ -9735,40 +10027,40 @@ msgstr "" msgid "802.1Q Mode" msgstr "" -#: templates/dcim/interface.html:126 +#: templates/dcim/interface.html:130 #: templates/virtualization/vminterface.html:62 msgid "MAC Address" msgstr "" -#: templates/dcim/interface.html:153 +#: templates/dcim/interface.html:157 msgid "Wireless Link" msgstr "" -#: templates/dcim/interface.html:222 +#: templates/dcim/interface.html:226 vpn/choices.py:55 msgid "Peer" msgstr "" -#: templates/dcim/interface.html:234 +#: templates/dcim/interface.html:238 #: templates/wireless/inc/wirelesslink_interface.html:26 msgid "Channel" msgstr "" -#: templates/dcim/interface.html:243 +#: templates/dcim/interface.html:247 #: templates/wireless/inc/wirelesslink_interface.html:32 msgid "Channel Frequency" msgstr "" -#: templates/dcim/interface.html:246 templates/dcim/interface.html:254 -#: templates/dcim/interface.html:265 templates/dcim/interface.html:273 +#: templates/dcim/interface.html:250 templates/dcim/interface.html:258 +#: templates/dcim/interface.html:269 templates/dcim/interface.html:277 msgid "MHz" msgstr "" -#: templates/dcim/interface.html:262 +#: templates/dcim/interface.html:266 #: templates/wireless/inc/wirelesslink_interface.html:42 msgid "Channel Width" msgstr "" -#: templates/dcim/interface.html:291 templates/wireless/wirelesslan.html:15 +#: 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 @@ -9776,18 +10068,18 @@ msgstr "" msgid "SSID" msgstr "" -#: templates/dcim/interface.html:312 +#: templates/dcim/interface.html:316 msgid "LAG Members" msgstr "" -#: templates/dcim/interface.html:331 +#: templates/dcim/interface.html:335 msgid "No member interfaces" msgstr "" -#: templates/dcim/interface.html:355 templates/ipam/fhrpgroup.html:80 +#: templates/dcim/interface.html:359 templates/ipam/fhrpgroup.html:80 #: templates/ipam/iprange/ip_addresses.html:7 #: templates/ipam/prefix/ip_addresses.html:7 -#: templates/virtualization/vminterface.html:92 +#: templates/virtualization/vminterface.html:96 msgid "Add IP Address" msgstr "" @@ -9820,11 +10112,11 @@ msgstr "" msgid "Child Locations" msgstr "" -#: templates/dcim/location.html:84 templates/dcim/site.html:150 +#: templates/dcim/location.html:84 templates/dcim/site.html:137 msgid "Add a Location" msgstr "" -#: templates/dcim/location.html:98 templates/dcim/site.html:164 +#: templates/dcim/location.html:98 templates/dcim/site.html:151 msgid "Add a Device" msgstr "" @@ -9874,47 +10166,47 @@ msgstr "" msgid "Allocated Draw" msgstr "" -#: templates/dcim/rack.html:73 +#: templates/dcim/rack.html:66 msgid "Space Utilization" msgstr "" -#: templates/dcim/rack.html:103 +#: templates/dcim/rack.html:96 msgid "descending" msgstr "" -#: templates/dcim/rack.html:103 +#: templates/dcim/rack.html:96 msgid "ascending" msgstr "" -#: templates/dcim/rack.html:106 +#: templates/dcim/rack.html:99 msgid "Starting Unit" msgstr "" -#: templates/dcim/rack.html:132 +#: templates/dcim/rack.html:125 msgid "Mounting Depth" msgstr "" -#: templates/dcim/rack.html:142 +#: templates/dcim/rack.html:135 msgid "Rack Weight" msgstr "" -#: templates/dcim/rack.html:152 templates/dcim/rack_edit.html:67 +#: templates/dcim/rack.html:145 templates/dcim/rack_edit.html:67 msgid "Maximum Weight" msgstr "" -#: templates/dcim/rack.html:162 +#: templates/dcim/rack.html:155 msgid "Total Weight" msgstr "" -#: templates/dcim/rack.html:180 templates/dcim/rack_elevation_list.html:16 +#: templates/dcim/rack.html:173 templates/dcim/rack_elevation_list.html:16 msgid "Images and Labels" msgstr "" -#: templates/dcim/rack.html:181 templates/dcim/rack_elevation_list.html:17 +#: templates/dcim/rack.html:174 templates/dcim/rack_elevation_list.html:17 msgid "Images only" msgstr "" -#: templates/dcim/rack.html:182 templates/dcim/rack_elevation_list.html:18 +#: templates/dcim/rack.html:175 templates/dcim/rack_elevation_list.html:18 msgid "Labels only" msgstr "" @@ -9974,31 +10266,31 @@ msgstr "" msgid "Add Region" msgstr "" -#: templates/dcim/site.html:69 +#: templates/dcim/site.html:56 msgid "Facility" msgstr "" -#: templates/dcim/site.html:77 +#: templates/dcim/site.html:64 msgid "Time Zone" msgstr "" -#: templates/dcim/site.html:80 +#: templates/dcim/site.html:67 msgid "UTC" msgstr "" -#: templates/dcim/site.html:81 +#: templates/dcim/site.html:68 msgid "Site time" msgstr "" -#: templates/dcim/site.html:88 +#: templates/dcim/site.html:75 msgid "Physical Address" msgstr "" -#: templates/dcim/site.html:94 +#: templates/dcim/site.html:81 msgid "Map" msgstr "" -#: templates/dcim/site.html:105 +#: templates/dcim/site.html:92 msgid "Shipping Address" msgstr "" @@ -10058,7 +10350,7 @@ msgid "" "chassis %(name)s?" msgstr "" -#: templates/dcim/virtualdevicecontext.html:29 templates/ipam/l2vpn.html:19 +#: templates/dcim/virtualdevicecontext.html:29 templates/vpn/l2vpn.html:19 msgid "Identifier" msgstr "" @@ -10158,6 +10450,8 @@ 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:171 vpn/tables/crypto.py:61 msgid "Version" msgstr "" @@ -10179,76 +10473,6 @@ msgstr "" msgid "Sync Data" msgstr "" -#: templates/extras/configrevision.html:47 -msgid "Default unit height" -msgstr "" - -#: templates/extras/configrevision.html:51 -msgid "Default unit width" -msgstr "" - -#: templates/extras/configrevision.html:63 -msgid "Default voltage" -msgstr "" - -#: templates/extras/configrevision.html:67 -msgid "Default amperage" -msgstr "" - -#: templates/extras/configrevision.html:71 -msgid "Default max utilization" -msgstr "" - -#: templates/extras/configrevision.html:83 -msgid "Enforce global unique" -msgstr "" - -#: templates/extras/configrevision.html:135 -msgid "Paginate count" -msgstr "" - -#: templates/extras/configrevision.html:139 -msgid "Max page size" -msgstr "" - -#: templates/extras/configrevision.html:163 -msgid "Default user preferences" -msgstr "" - -#: templates/extras/configrevision.html:187 -msgid "Job retention" -msgstr "" - -#: templates/extras/configrevision.html:199 -msgid "Comment" -msgstr "" - -#: templates/extras/configrevision_restore.html:8 -#: templates/extras/configrevision_restore.html:43 -#: templates/extras/configrevision_restore.html:79 -msgid "Restore" -msgstr "" - -#: templates/extras/configrevision_restore.html:21 -msgid "Config revisions" -msgstr "" - -#: templates/extras/configrevision_restore.html:54 -msgid "Parameter" -msgstr "" - -#: templates/extras/configrevision_restore.html:55 -msgid "Current Value" -msgstr "" - -#: templates/extras/configrevision_restore.html:56 -msgid "New Value" -msgstr "" - -#: templates/extras/configrevision_restore.html:66 -msgid "Changed" -msgstr "" - #: templates/extras/configtemplate.html:58 msgid "Environment Parameters" msgstr "" @@ -10282,19 +10506,27 @@ msgstr "" msgid "Display Weight" msgstr "" -#: templates/extras/customfield.html:104 -msgid "Validation Rules" +#: templates/extras/customfield.html:82 +msgid "UI Visible" +msgstr "" + +#: templates/extras/customfield.html:86 +msgid "UI Editable" msgstr "" #: templates/extras/customfield.html:108 -msgid "Minimum Value" +msgid "Validation Rules" msgstr "" #: templates/extras/customfield.html:112 -msgid "Maximum Value" +msgid "Minimum Value" msgstr "" #: templates/extras/customfield.html:116 +msgid "Maximum Value" +msgstr "" + +#: templates/extras/customfield.html:120 msgid "Regular Expression" msgstr "" @@ -10303,7 +10535,7 @@ msgid "Button Class" msgstr "" #: templates/extras/customlink.html:41 templates/extras/exporttemplate.html:73 -#: templates/extras/savedfilter.html:41 templates/extras/webhook.html:102 +#: templates/extras/savedfilter.html:41 msgid "Assigned Models" msgstr "" @@ -10363,6 +10595,14 @@ msgstr "" msgid "HTTP" msgstr "" +#: templates/extras/eventrule.html:63 +msgid "Job start" +msgstr "" + +#: templates/extras/eventrule.html:67 +msgid "Job end" +msgstr "" + #: templates/extras/exporttemplate.html:29 msgid "MIME Type" msgstr "" @@ -10572,10 +10812,6 @@ msgstr "" msgid "Run Script" msgstr "" -#: templates/extras/script/base.html:29 -msgid "Script" -msgstr "" - #: templates/extras/script_list.html:44 #, python-format msgid "" @@ -10617,31 +10853,23 @@ msgstr "" msgid "Tagged Objects" msgstr "" -#: templates/extras/webhook.html:45 -msgid "Job start" -msgstr "" - -#: templates/extras/webhook.html:49 -msgid "Job end" -msgstr "" - -#: templates/extras/webhook.html:62 +#: templates/extras/webhook.html:33 msgid "HTTP Method" msgstr "" -#: templates/extras/webhook.html:70 +#: templates/extras/webhook.html:41 msgid "HTTP Content Type" msgstr "" -#: templates/extras/webhook.html:87 +#: templates/extras/webhook.html:58 msgid "SSL Verification" msgstr "" -#: templates/extras/webhook.html:128 +#: templates/extras/webhook.html:73 msgid "Additional Headers" msgstr "" -#: templates/extras/webhook.html:140 +#: templates/extras/webhook.html:85 msgid "Body Template" msgstr "" @@ -10868,6 +11096,10 @@ msgid "" "%(object_type)s %(object)s?" msgstr "" +#: templates/htmx/delete_form.html:17 +msgid "The following objects will be deleted as a result of this action." +msgstr "" + #: templates/htmx/object_selector.html:5 msgid "Select" msgstr "" @@ -10927,7 +11159,7 @@ msgid "Configure Table" msgstr "" #: templates/ipam/aggregate.html:15 templates/ipam/ipaddress.html:17 -#: templates/ipam/iprange.html:16 templates/ipam/prefix.html:15 +#: templates/ipam/iprange.html:16 templates/ipam/prefix.html:16 msgid "Family" msgstr "" @@ -10993,7 +11225,7 @@ msgid "Show All" msgstr "" #: templates/ipam/ipaddress.html:26 templates/ipam/iprange.html:48 -#: templates/ipam/prefix.html:24 +#: templates/ipam/prefix.html:25 msgid "Global" msgstr "" @@ -11037,18 +11269,6 @@ msgstr "" msgid "Marked fully utilized" msgstr "" -#: templates/ipam/l2vpn.html:11 templates/ipam/l2vpntermination.html:10 -msgid "L2VPN Attributes" -msgstr "" - -#: templates/ipam/l2vpn.html:65 -msgid "Add a Termination" -msgstr "" - -#: templates/ipam/l2vpntermination_edit.html:9 -msgid "L2VPN Termination" -msgstr "" - #: templates/ipam/prefix.html:112 msgid "Child IPs" msgstr "" @@ -11223,10 +11443,10 @@ msgid "" "Click here to attempt loading NetBox again." msgstr "" -#: templates/tenancy/contact.html:18 tenancy/filtersets.py:123 -#: tenancy/forms/bulk_edit.py:136 tenancy/forms/filtersets.py:103 -#: tenancy/forms/forms.py:56 tenancy/forms/model_forms.py:112 -#: tenancy/forms/model_forms.py:135 tenancy/tables/contacts.py:98 +#: templates/tenancy/contact.html:18 tenancy/filtersets.py:135 +#: 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 msgid "Contact" msgstr "" @@ -11248,7 +11468,7 @@ msgid "Contact Assignment" msgstr "" #: templates/tenancy/contactgroup.html:19 tenancy/forms/forms.py:66 -#: tenancy/forms/model_forms.py:79 +#: tenancy/forms/model_forms.py:76 msgid "Contact Group" msgstr "" @@ -11256,8 +11476,8 @@ msgstr "" msgid "Add Contact Group" msgstr "" -#: templates/tenancy/contactrole.html:15 tenancy/filtersets.py:128 -#: tenancy/forms/forms.py:61 tenancy/forms/model_forms.py:93 +#: templates/tenancy/contactrole.html:15 tenancy/filtersets.py:140 +#: tenancy/forms/forms.py:61 tenancy/forms/model_forms.py:90 msgid "Contact Role" msgstr "" @@ -11269,7 +11489,7 @@ msgstr "" msgid "Add Tenant" msgstr "" -#: templates/tenancy/tenantgroup.html:27 tenancy/forms/model_forms.py:34 +#: templates/tenancy/tenantgroup.html:27 tenancy/forms/model_forms.py:31 #: tenancy/tables/columns.py:51 tenancy/tables/columns.py:61 msgid "Tenant Group" msgstr "" @@ -11283,11 +11503,11 @@ msgid "Assigned Permissions" msgstr "" #: templates/users/objectpermission.html:6 -#: templates/users/objectpermission.html:14 users/forms/filtersets.py:69 +#: templates/users/objectpermission.html:14 users/forms/filtersets.py:67 msgid "Permission" msgstr "" -#: templates/users/objectpermission.html:33 users/forms/filtersets.py:70 +#: templates/users/objectpermission.html:33 users/forms/filtersets.py:68 #: users/forms/model_forms.py:321 msgid "Actions" msgstr "" @@ -11323,12 +11543,13 @@ msgid "Memory" msgstr "" #: templates/virtualization/cluster.html:74 -#: templates/virtualization/virtualmachine.html:142 +#: templates/virtualization/virtualmachine.html:143 msgid "Disk Space" msgstr "" #: templates/virtualization/cluster.html:77 -#: templates/virtualization/virtualmachine.html:145 +#: templates/virtualization/virtualdisk.html:33 +#: templates/virtualization/virtualmachine.html:147 msgctxt "Abbreviation for gigabyte" msgid "GB" msgstr "" @@ -11364,22 +11585,169 @@ msgid "Add Cluster" msgstr "" #: templates/virtualization/clustergroup.html:20 -#: virtualization/forms/model_forms.py:50 +#: virtualization/forms/model_forms.py:51 msgid "Cluster Group" msgstr "" #: templates/virtualization/clustertype.html:20 #: templates/virtualization/virtualmachine.html:111 -#: virtualization/forms/model_forms.py:34 +#: virtualization/forms/model_forms.py:35 msgid "Cluster Type" msgstr "" +#: templates/virtualization/virtualdisk.html:18 +msgid "Virtual Disk" +msgstr "" + #: templates/virtualization/virtualmachine.html:124 -#: virtualization/forms/bulk_edit.py:187 -#: virtualization/forms/model_forms.py:225 +#: virtualization/forms/bulk_edit.py:189 +#: virtualization/forms/model_forms.py:227 msgid "Resources" msgstr "" +#: templates/virtualization/virtualmachine.html:185 +msgid "Add Virtual Disk" +msgstr "" + +#: templates/vpn/ikepolicy.html:10 templates/vpn/ipsecprofile.html:35 +#: vpn/tables/crypto.py:166 +msgid "IKE Policy" +msgstr "" + +#: templates/vpn/ikepolicy.html:22 +msgid "IKE Version" +msgstr "" + +#: templates/vpn/ikepolicy.html:30 +msgid "Pre-Shared Key" +msgstr "" + +#: templates/vpn/ikepolicy.html:34 +#: templates/wireless/inc/authentication_attrs.html:21 +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:310 vpn/forms/model_forms.py:345 +#: vpn/tables/crypto.py:68 vpn/tables/crypto.py:134 +msgid "Proposals" +msgstr "" + +#: templates/vpn/ikeproposal.html:10 +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 +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 +#: vpn/forms/bulk_import.py:149 vpn/forms/bulk_import.py:193 +#: vpn/forms/filtersets.py:103 vpn/forms/filtersets.py:151 +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 +#: vpn/forms/bulk_import.py:153 vpn/forms/bulk_import.py:197 +#: vpn/forms/filtersets.py:108 vpn/forms/filtersets.py:156 +msgid "Authentication algorithm" +msgstr "" + +#: templates/vpn/ikeproposal.html:34 +msgid "DH group" +msgstr "" + +#: templates/vpn/ikeproposal.html:38 templates/vpn/ipsecproposal.html:30 +#: vpn/forms/bulk_edit.py:183 vpn/models/crypto.py:134 +msgid "SA lifetime (seconds)" +msgstr "" + +#: templates/vpn/ipsecpolicy.html:10 templates/vpn/ipsecprofile.html:70 +#: vpn/tables/crypto.py:170 +msgid "IPSec Policy" +msgstr "" + +#: templates/vpn/ipsecpolicy.html:22 vpn/forms/bulk_edit.py:211 +#: vpn/models/crypto.py:181 +msgid "PFS group" +msgstr "" + +#: templates/vpn/ipsecprofile.html:10 vpn/forms/model_forms.py:53 +msgid "IPSec Profile" +msgstr "" + +#: templates/vpn/ipsecprofile.html:94 vpn/tables/crypto.py:137 +msgid "PFS Group" +msgstr "" + +#: templates/vpn/ipsecproposal.html:10 +msgid "IPSec Proposal" +msgstr "" + +#: templates/vpn/ipsecproposal.html:34 vpn/forms/bulk_edit.py:187 +#: vpn/models/crypto.py:140 +msgid "SA lifetime (KB)" +msgstr "" + +#: templates/vpn/l2vpn.html:11 templates/vpn/l2vpntermination.html:10 +msgid "L2VPN Attributes" +msgstr "" + +#: templates/vpn/l2vpn.html:65 templates/vpn/tunnel.html:81 +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 +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 +#: vpn/models/crypto.py:238 vpn/tables/tunnels.py:47 +msgid "IPSec profile" +msgstr "" + +#: templates/vpn/tunnel.html:46 vpn/forms/bulk_edit.py:68 +#: vpn/forms/filtersets.py:67 +msgid "Tunnel ID" +msgstr "" + +#: templates/vpn/tunnelgroup.html:14 +msgid "Add Tunnel" +msgstr "" + +#: templates/vpn/tunnelgroup.html:24 vpn/forms/model_forms.py:35 +#: vpn/forms/model_forms.py:48 +msgid "Tunnel Group" +msgstr "" + +#: templates/vpn/tunneltermination.html:10 +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:97 +msgid "Outside IP" +msgstr "" + +#: templates/vpn/tunneltermination.html:53 +msgid "Peer Terminations" +msgstr "" + #: templates/wireless/inc/authentication_attrs.html:13 msgid "Cipher" msgstr "" @@ -11388,10 +11756,6 @@ msgstr "" msgid "PSK" msgstr "" -#: templates/wireless/inc/authentication_attrs.html:21 -msgid "Show Secret" -msgstr "" - #: templates/wireless/inc/wirelesslink_interface.html:35 #: templates/wireless/inc/wirelesslink_interface.html:45 msgctxt "Abbreviation for megahertz" @@ -11430,39 +11794,39 @@ msgstr "" msgid "Inactive" msgstr "" -#: tenancy/filtersets.py:30 tenancy/filtersets.py:56 +#: tenancy/filtersets.py:29 tenancy/filtersets.py:55 tenancy/filtersets.py:97 msgid "Contact group (ID)" msgstr "" -#: tenancy/filtersets.py:36 tenancy/filtersets.py:63 +#: tenancy/filtersets.py:35 tenancy/filtersets.py:62 tenancy/filtersets.py:104 msgid "Contact group (slug)" msgstr "" -#: tenancy/filtersets.py:92 +#: tenancy/filtersets.py:91 msgid "Contact (ID)" msgstr "" -#: tenancy/filtersets.py:96 +#: tenancy/filtersets.py:108 msgid "Contact role (ID)" msgstr "" -#: tenancy/filtersets.py:102 +#: tenancy/filtersets.py:114 msgid "Contact role (slug)" msgstr "" -#: tenancy/filtersets.py:134 +#: tenancy/filtersets.py:146 msgid "Contact group" msgstr "" -#: tenancy/filtersets.py:145 tenancy/filtersets.py:164 +#: tenancy/filtersets.py:157 tenancy/filtersets.py:176 msgid "Tenant group (ID)" msgstr "" -#: tenancy/filtersets.py:197 +#: tenancy/filtersets.py:209 msgid "Tenant Group (ID)" msgstr "" -#: tenancy/filtersets.py:204 +#: tenancy/filtersets.py:216 msgid "Tenant Group (slug)" msgstr "" @@ -11474,54 +11838,59 @@ msgstr "" msgid "Assigned contact" msgstr "" -#: tenancy/models/contacts.py:31 +#: tenancy/models/contacts.py:32 msgid "contact group" msgstr "" -#: tenancy/models/contacts.py:32 +#: tenancy/models/contacts.py:33 msgid "contact groups" msgstr "" -#: tenancy/models/contacts.py:47 +#: tenancy/models/contacts.py:48 msgid "contact role" msgstr "" -#: tenancy/models/contacts.py:48 +#: tenancy/models/contacts.py:49 msgid "contact roles" msgstr "" -#: tenancy/models/contacts.py:67 +#: tenancy/models/contacts.py:68 msgid "title" msgstr "" -#: tenancy/models/contacts.py:72 +#: tenancy/models/contacts.py:73 msgid "phone" msgstr "" -#: tenancy/models/contacts.py:77 +#: tenancy/models/contacts.py:78 msgid "email" msgstr "" -#: tenancy/models/contacts.py:86 +#: tenancy/models/contacts.py:87 msgid "link" msgstr "" -#: tenancy/models/contacts.py:102 +#: tenancy/models/contacts.py:103 msgid "contact" msgstr "" -#: tenancy/models/contacts.py:103 +#: tenancy/models/contacts.py:104 msgid "contacts" msgstr "" -#: tenancy/models/contacts.py:149 +#: tenancy/models/contacts.py:153 msgid "contact assignment" msgstr "" -#: tenancy/models/contacts.py:150 +#: tenancy/models/contacts.py:154 msgid "contact assignments" msgstr "" +#: tenancy/models/contacts.py:170 +#, python-brace-format +msgid "Contacts cannot be assigned to this object type ({type})." +msgstr "" + #: tenancy/models/tenants.py:32 msgid "tenant group" msgstr "" @@ -11546,27 +11915,27 @@ msgstr "" msgid "tenants" msgstr "" -#: tenancy/tables/contacts.py:107 +#: tenancy/tables/contacts.py:112 msgid "Contact Title" msgstr "" -#: tenancy/tables/contacts.py:111 +#: tenancy/tables/contacts.py:116 msgid "Contact Phone" msgstr "" -#: tenancy/tables/contacts.py:115 +#: tenancy/tables/contacts.py:120 msgid "Contact Email" msgstr "" -#: tenancy/tables/contacts.py:119 +#: tenancy/tables/contacts.py:124 msgid "Contact Address" msgstr "" -#: tenancy/tables/contacts.py:123 +#: tenancy/tables/contacts.py:128 msgid "Contact Link" msgstr "" -#: tenancy/tables/contacts.py:127 +#: tenancy/tables/contacts.py:132 msgid "Contact Description" msgstr "" @@ -11594,27 +11963,27 @@ msgstr "" msgid "If no key is provided, one will be generated automatically." msgstr "" -#: users/forms/filtersets.py:54 users/tables.py:42 +#: users/forms/filtersets.py:52 users/tables.py:42 msgid "Is Staff" msgstr "" -#: users/forms/filtersets.py:61 users/tables.py:45 +#: users/forms/filtersets.py:59 users/tables.py:45 msgid "Is Superuser" msgstr "" -#: users/forms/filtersets.py:94 users/tables.py:89 +#: users/forms/filtersets.py:92 users/tables.py:89 msgid "Can View" msgstr "" -#: users/forms/filtersets.py:101 users/tables.py:92 +#: users/forms/filtersets.py:99 users/tables.py:92 msgid "Can Add" msgstr "" -#: users/forms/filtersets.py:108 users/tables.py:95 +#: users/forms/filtersets.py:106 users/tables.py:95 msgid "Can Change" msgstr "" -#: users/forms/filtersets.py:115 users/tables.py:98 +#: users/forms/filtersets.py:113 users/tables.py:98 msgid "Can Delete" msgstr "" @@ -11688,7 +12057,7 @@ msgstr "" msgid "A user with this username already exists." msgstr "" -#: users/models.py:78 +#: users/models.py:78 vpn/models/crypto.py:42 msgid "group" msgstr "" @@ -11696,75 +12065,75 @@ msgstr "" msgid "groups" msgstr "" -#: users/models.py:104 users/models.py:105 +#: users/models.py:106 users/models.py:107 msgid "user preferences" msgstr "" -#: users/models.py:172 +#: users/models.py:174 #, python-brace-format msgid "Key '{path}' is a leaf node; cannot assign new keys" msgstr "" -#: users/models.py:184 +#: users/models.py:186 #, python-brace-format msgid "Key '{path}' is a dictionary; cannot assign a non-dictionary value" msgstr "" -#: users/models.py:249 +#: users/models.py:252 msgid "expires" msgstr "" -#: users/models.py:254 +#: users/models.py:257 msgid "last used" msgstr "" -#: users/models.py:259 +#: users/models.py:262 msgid "key" msgstr "" -#: users/models.py:265 +#: users/models.py:268 msgid "write enabled" msgstr "" -#: users/models.py:267 +#: users/models.py:270 msgid "Permit create/update/delete operations using this key" msgstr "" -#: users/models.py:278 +#: users/models.py:281 msgid "allowed IPs" msgstr "" -#: users/models.py:280 +#: users/models.py:283 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:288 +#: users/models.py:291 msgid "token" msgstr "" -#: users/models.py:289 +#: users/models.py:292 msgid "tokens" msgstr "" -#: users/models.py:370 +#: users/models.py:373 msgid "The list of actions granted by this permission" msgstr "" -#: users/models.py:375 +#: users/models.py:378 msgid "constraints" msgstr "" -#: users/models.py:376 +#: users/models.py:379 msgid "Queryset filter matching the applicable objects of the selected type(s)" msgstr "" -#: users/models.py:383 +#: users/models.py:386 msgid "permission" msgstr "" -#: users/models.py:384 +#: users/models.py:387 msgid "permissions" msgstr "" @@ -11861,6 +12230,17 @@ msgstr "" msgid "Tab" msgstr "" +#: utilities/error_handlers.py:20 +#, python-brace-format +msgid "" +"Unable to delete {objects}. {count} dependent objects were " +"found: " +msgstr "" + +#: utilities/error_handlers.py:22 +msgid "More than 50" +msgstr "" + #: utilities/fields.py:162 #, python-format msgid "" @@ -12067,70 +12447,82 @@ msgstr "" msgid "Testing" msgstr "" -#: virtualization/filtersets.py:77 +#: virtualization/filtersets.py:79 msgid "Parent group (ID)" msgstr "" -#: virtualization/filtersets.py:83 +#: virtualization/filtersets.py:85 msgid "Parent group (slug)" msgstr "" -#: virtualization/filtersets.py:87 virtualization/filtersets.py:137 +#: virtualization/filtersets.py:89 virtualization/filtersets.py:140 msgid "Cluster type (ID)" msgstr "" -#: virtualization/filtersets.py:126 +#: virtualization/filtersets.py:129 msgid "Cluster group (ID)" msgstr "" -#: virtualization/filtersets.py:147 virtualization/filtersets.py:262 +#: virtualization/filtersets.py:150 virtualization/filtersets.py:265 msgid "Cluster (ID)" msgstr "" -#: virtualization/forms/bulk_edit.py:163 -#: virtualization/models/virtualmachines.py:112 +#: virtualization/forms/bulk_edit.py:165 +#: virtualization/models/virtualmachines.py:113 msgid "vCPUs" msgstr "" -#: virtualization/forms/bulk_edit.py:167 +#: virtualization/forms/bulk_edit.py:169 msgid "Memory (MB)" msgstr "" -#: virtualization/forms/bulk_edit.py:171 +#: virtualization/forms/bulk_edit.py:173 msgid "Disk (GB)" msgstr "" -#: virtualization/forms/bulk_import.py:43 +#: virtualization/forms/bulk_edit.py:333 virtualization/forms/filtersets.py:243 +msgid "Size (GB)" +msgstr "" + +#: virtualization/forms/bulk_import.py:44 msgid "Type of cluster" msgstr "" -#: virtualization/forms/bulk_import.py:50 +#: virtualization/forms/bulk_import.py:51 msgid "Assigned cluster group" msgstr "" -#: virtualization/forms/bulk_import.py:95 +#: virtualization/forms/bulk_import.py:96 msgid "Assigned cluster" msgstr "" -#: virtualization/forms/bulk_import.py:102 +#: virtualization/forms/bulk_import.py:103 msgid "Assigned device within cluster" msgstr "" -#: virtualization/forms/model_forms.py:155 +#: virtualization/forms/model_forms.py:156 #, python-brace-format msgid "" "{device} belongs to a different site ({device_site}) than the cluster " "({cluster_site})" msgstr "" -#: virtualization/forms/model_forms.py:194 +#: virtualization/forms/model_forms.py:195 msgid "Optionally pin this VM to a specific host device within the cluster" msgstr "" -#: virtualization/forms/model_forms.py:222 +#: virtualization/forms/model_forms.py:224 msgid "Site/Cluster" msgstr "" +#: virtualization/forms/model_forms.py:247 +msgid "Disk size is managed via the attachment of virtual disks." +msgstr "" + +#: virtualization/forms/model_forms.py:375 +msgid "Disk" +msgstr "" + #: virtualization/models/clusters.py:25 msgid "cluster type" msgstr "" @@ -12162,76 +12554,531 @@ msgid "" "{site}" msgstr "" -#: virtualization/models/virtualmachines.py:120 +#: virtualization/models/virtualmachines.py:121 msgid "memory (MB)" msgstr "" -#: virtualization/models/virtualmachines.py:125 +#: virtualization/models/virtualmachines.py:126 msgid "disk (GB)" msgstr "" -#: virtualization/models/virtualmachines.py:154 +#: virtualization/models/virtualmachines.py:159 msgid "Virtual machine name must be unique per cluster." msgstr "" -#: virtualization/models/virtualmachines.py:157 +#: virtualization/models/virtualmachines.py:162 msgid "virtual machine" msgstr "" -#: virtualization/models/virtualmachines.py:158 +#: virtualization/models/virtualmachines.py:163 msgid "virtual machines" msgstr "" -#: virtualization/models/virtualmachines.py:172 +#: virtualization/models/virtualmachines.py:177 msgid "A virtual machine must be assigned to a site and/or cluster." msgstr "" -#: virtualization/models/virtualmachines.py:179 +#: virtualization/models/virtualmachines.py:184 #, python-brace-format msgid "The selected cluster ({cluster}) is not assigned to this site ({site})." msgstr "" -#: virtualization/models/virtualmachines.py:186 +#: virtualization/models/virtualmachines.py:191 msgid "Must specify a cluster when assigning a host device." msgstr "" -#: virtualization/models/virtualmachines.py:191 +#: virtualization/models/virtualmachines.py:196 #, python-brace-format msgid "" "The selected device ({device}) is not assigned to this cluster ({cluster})." msgstr "" -#: virtualization/models/virtualmachines.py:204 +#: virtualization/models/virtualmachines.py:208 +#, 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 #, python-brace-format msgid "Must be an IPv{family} address. ({ip} is an IPv{version} address.)" msgstr "" -#: virtualization/models/virtualmachines.py:213 +#: virtualization/models/virtualmachines.py:231 #, python-brace-format msgid "The specified IP address ({ip}) is not assigned to this VM." msgstr "" -#: virtualization/models/virtualmachines.py:331 +#: virtualization/models/virtualmachines.py:389 #, python-brace-format msgid "" "The selected parent interface ({parent}) belongs to a different virtual " "machine ({virtual_machine})." msgstr "" -#: virtualization/models/virtualmachines.py:346 +#: virtualization/models/virtualmachines.py:404 #, python-brace-format msgid "" "The selected bridge interface ({bridge}) belongs to a different virtual " "machine ({virtual_machine})." msgstr "" -#: virtualization/models/virtualmachines.py:357 +#: virtualization/models/virtualmachines.py:415 #, 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 +msgid "size (GB)" +msgstr "" + +#: virtualization/models/virtualmachines.py:431 +msgid "virtual disk" +msgstr "" + +#: virtualization/models/virtualmachines.py:432 +msgid "virtual disks" +msgstr "" + +#: vpn/choices.py:31 +msgid "IPsec - Transport" +msgstr "" + +#: vpn/choices.py:32 +msgid "IPsec - Tunnel" +msgstr "" + +#: vpn/choices.py:33 +msgid "IP-in-IP" +msgstr "" + +#: vpn/choices.py:34 +msgid "GRE" +msgstr "" + +#: vpn/choices.py:56 +msgid "Hub" +msgstr "" + +#: vpn/choices.py:57 +msgid "Spoke" +msgstr "" + +#: vpn/choices.py:80 +msgid "Aggressive" +msgstr "" + +#: vpn/choices.py:81 +msgid "Main" +msgstr "" + +#: vpn/choices.py:92 +msgid "Pre-shared keys" +msgstr "" + +#: vpn/choices.py:93 +msgid "Certificates" +msgstr "" + +#: vpn/choices.py:94 +msgid "RSA signatures" +msgstr "" + +#: vpn/choices.py:95 +msgid "DSA signatures" +msgstr "" + +#: vpn/choices.py:178 vpn/choices.py:179 vpn/choices.py:180 vpn/choices.py:181 +#: vpn/choices.py:182 vpn/choices.py:183 vpn/choices.py:184 vpn/choices.py:185 +#: vpn/choices.py:186 vpn/choices.py:187 vpn/choices.py:188 vpn/choices.py:189 +#: vpn/choices.py:190 vpn/choices.py:191 vpn/choices.py:192 vpn/choices.py:193 +#: vpn/choices.py:194 vpn/choices.py:195 vpn/choices.py:196 vpn/choices.py:197 +#: vpn/choices.py:198 vpn/choices.py:199 vpn/choices.py:200 +#, python-brace-format +msgid "Group {n}" +msgstr "" + +#: vpn/choices.py:240 +msgid "Ethernet Private LAN" +msgstr "" + +#: vpn/choices.py:241 +msgid "Ethernet Virtual Private LAN" +msgstr "" + +#: vpn/choices.py:244 +msgid "Ethernet Private Tree" +msgstr "" + +#: vpn/choices.py:245 +msgid "Ethernet Virtual Private Tree" +msgstr "" + +#: vpn/filtersets.py:41 +msgid "Tunnel group (ID)" +msgstr "" + +#: vpn/filtersets.py:47 +msgid "Tunnel group (slug)" +msgstr "" + +#: vpn/filtersets.py:54 +msgid "IPSec profile (ID)" +msgstr "" + +#: vpn/filtersets.py:60 +msgid "IPSec profile (name)" +msgstr "" + +#: vpn/filtersets.py:81 +msgid "Tunnel (ID)" +msgstr "" + +#: vpn/filtersets.py:87 +msgid "Tunnel (name)" +msgstr "" + +#: vpn/filtersets.py:118 +msgid "Outside IP (ID)" +msgstr "" + +#: vpn/filtersets.py:235 +msgid "IKE policy (ID)" +msgstr "" + +#: vpn/filtersets.py:241 +msgid "IKE policy (name)" +msgstr "" + +#: vpn/filtersets.py:245 +msgid "IPSec policy (ID)" +msgstr "" + +#: vpn/filtersets.py:251 +msgid "IPSec policy (name)" +msgstr "" + +#: vpn/filtersets.py:320 +msgid "L2VPN (slug)" +msgstr "" + +#: vpn/filtersets.py:384 +msgid "VM Interface (ID)" +msgstr "" + +#: vpn/filtersets.py:390 +msgid "VLAN (name)" +msgstr "" + +#: vpn/forms/bulk_edit.py:44 vpn/forms/bulk_import.py:42 +#: vpn/forms/filtersets.py:53 +msgid "Tunnel group" +msgstr "" + +#: vpn/forms/bulk_edit.py:116 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 +msgid "Pre-shared key" +msgstr "" + +#: vpn/forms/bulk_edit.py:238 vpn/forms/bulk_import.py:234 +#: vpn/forms/filtersets.py:196 vpn/forms/model_forms.py:363 +#: vpn/models/crypto.py:103 +msgid "IKE policy" +msgstr "" + +#: vpn/forms/bulk_edit.py:243 vpn/forms/bulk_import.py:239 +#: vpn/forms/filtersets.py:201 vpn/forms/model_forms.py:367 +#: vpn/models/crypto.py:197 +msgid "IPSec policy" +msgstr "" + +#: vpn/forms/bulk_import.py:50 +msgid "Tunnel encapsulation" +msgstr "" + +#: vpn/forms/bulk_import.py:83 +msgid "Operational role" +msgstr "" + +#: vpn/forms/bulk_import.py:90 +msgid "Parent device of assigned interface" +msgstr "" + +#: vpn/forms/bulk_import.py:97 +msgid "Parent VM of assigned interface" +msgstr "" + +#: vpn/forms/bulk_import.py:104 +msgid "Device or virtual machine interface" +msgstr "" + +#: vpn/forms/bulk_import.py:181 +msgid "IKE proposal(s)" +msgstr "" + +#: vpn/forms/bulk_import.py:211 vpn/models/crypto.py:185 +msgid "Diffie-Hellman group for Perfect Forward Secrecy" +msgstr "" + +#: vpn/forms/bulk_import.py:217 +msgid "IPSec proposal(s)" +msgstr "" + +#: vpn/forms/bulk_import.py:231 +msgid "IPSec protocol" +msgstr "" + +#: vpn/forms/bulk_import.py:261 +msgid "L2VPN type" +msgstr "" + +#: vpn/forms/bulk_import.py:282 +msgid "Parent device (for interface)" +msgstr "" + +#: vpn/forms/bulk_import.py:289 +msgid "Parent virtual machine (for interface)" +msgstr "" + +#: vpn/forms/bulk_import.py:296 +msgid "Assigned interface (device or VM)" +msgstr "" + +#: vpn/forms/bulk_import.py:329 +msgid "Cannot import device and VM interface terminations simultaneously." +msgstr "" + +#: vpn/forms/bulk_import.py:331 +msgid "Each termination must specify either an interface or a VLAN." +msgstr "" + +#: vpn/forms/bulk_import.py:333 +msgid "Cannot assign both an interface and a VLAN." +msgstr "" + +#: vpn/forms/filtersets.py:127 +msgid "IKE version" +msgstr "" + +#: vpn/forms/filtersets.py:139 vpn/forms/filtersets.py:172 +#: vpn/forms/model_forms.py:293 vpn/forms/model_forms.py:328 +msgid "Proposal" +msgstr "" + +#: vpn/forms/filtersets.py:247 +msgid "Assigned Object Type" +msgstr "" + +#: vpn/forms/model_forms.py:147 +msgid "First Termination" +msgstr "" + +#: vpn/forms/model_forms.py:151 +msgid "Second Termination" +msgstr "" + +#: vpn/forms/model_forms.py:198 +msgid "This parameter is required when defining a termination." +msgstr "" + +#: vpn/forms/model_forms.py:314 vpn/forms/model_forms.py:349 +msgid "Policy" +msgstr "" + +#: vpn/forms/model_forms.py:469 +msgid "A termination must specify an interface or VLAN." +msgstr "" + +#: vpn/forms/model_forms.py:471 +msgid "" +"A termination can only have one terminating object (an interface or VLAN)." +msgstr "" + +#: vpn/models/crypto.py:33 +msgid "encryption algorithm" +msgstr "" + +#: vpn/models/crypto.py:37 +msgid "authentication algorithm" +msgstr "" + +#: vpn/models/crypto.py:44 +msgid "Diffie-Hellman group ID" +msgstr "" + +#: vpn/models/crypto.py:50 +msgid "Security association lifetime (in seconds)" +msgstr "" + +#: vpn/models/crypto.py:59 +msgid "IKE proposal" +msgstr "" + +#: vpn/models/crypto.py:60 +msgid "IKE proposals" +msgstr "" + +#: vpn/models/crypto.py:76 +msgid "version" +msgstr "" + +#: vpn/models/crypto.py:87 vpn/models/crypto.py:178 +msgid "proposals" +msgstr "" + +#: vpn/models/crypto.py:90 wireless/models.py:38 +msgid "pre-shared key" +msgstr "" + +#: vpn/models/crypto.py:104 +msgid "IKE policies" +msgstr "" + +#: vpn/models/crypto.py:124 +msgid "encryption" +msgstr "" + +#: vpn/models/crypto.py:129 +msgid "authentication" +msgstr "" + +#: vpn/models/crypto.py:137 +msgid "Security association lifetime (seconds)" +msgstr "" + +#: vpn/models/crypto.py:143 +msgid "Security association lifetime (in kilobytes)" +msgstr "" + +#: vpn/models/crypto.py:152 +msgid "IPSec proposal" +msgstr "" + +#: vpn/models/crypto.py:153 +msgid "IPSec proposals" +msgstr "" + +#: vpn/models/crypto.py:166 +msgid "Encryption and/or authentication algorithm must be defined" +msgstr "" + +#: vpn/models/crypto.py:198 +msgid "IPSec policies" +msgstr "" + +#: vpn/models/crypto.py:239 +msgid "IPSec profiles" +msgstr "" + +#: vpn/models/l2vpn.py:116 +msgid "L2VPN termination" +msgstr "" + +#: vpn/models/l2vpn.py:117 +msgid "L2VPN terminations" +msgstr "" + +#: vpn/models/l2vpn.py:135 +#, python-brace-format +msgid "L2VPN Termination already assigned ({assigned_object})" +msgstr "" + +#: vpn/models/l2vpn.py:147 +#, python-brace-format +msgid "" +"{l2vpn_type} L2VPNs cannot have more than two terminations; found " +"{terminations_count} already defined." +msgstr "" + +#: vpn/models/tunnels.py:26 +msgid "tunnel group" +msgstr "" + +#: vpn/models/tunnels.py:27 +msgid "tunnel groups" +msgstr "" + +#: vpn/models/tunnels.py:53 +msgid "encapsulation" +msgstr "" + +#: vpn/models/tunnels.py:72 +msgid "tunnel ID" +msgstr "" + +#: vpn/models/tunnels.py:94 +msgid "tunnel" +msgstr "" + +#: vpn/models/tunnels.py:95 +msgid "tunnels" +msgstr "" + +#: vpn/models/tunnels.py:153 +msgid "An object may be terminated to only one tunnel at a time." +msgstr "" + +#: vpn/models/tunnels.py:156 +msgid "tunnel termination" +msgstr "" + +#: vpn/models/tunnels.py:157 +msgid "tunnel terminations" +msgstr "" + +#: vpn/models/tunnels.py:174 +#, python-brace-format +msgid "{name} is already attached to a tunnel ({tunnel})." +msgstr "" + +#: vpn/tables/crypto.py:22 +msgid "Authentication Method" +msgstr "" + +#: vpn/tables/crypto.py:25 vpn/tables/crypto.py:97 +msgid "Encryption Algorithm" +msgstr "" + +#: vpn/tables/crypto.py:28 vpn/tables/crypto.py:100 +msgid "Authentication Algorithm" +msgstr "" + +#: vpn/tables/crypto.py:34 +msgid "SA Lifetime" +msgstr "" + +#: vpn/tables/crypto.py:71 +msgid "Pre-shared Key" +msgstr "" + +#: vpn/tables/crypto.py:103 +msgid "SA Lifetime (Seconds)" +msgstr "" + +#: vpn/tables/crypto.py:106 +msgid "SA Lifetime (KB)" +msgstr "" + +#: vpn/tables/l2vpn.py:69 +msgid "Object Parent" +msgstr "" + +#: vpn/tables/l2vpn.py:74 +msgid "Object Site" +msgstr "" + +#: vpn/tables/tunnels.py:84 +msgid "Host" +msgstr "" + #: wireless/choices.py:11 msgid "Access point" msgstr "" @@ -12259,11 +13106,6 @@ msgstr "" msgid "Authentication cipher" msgstr "" -#: wireless/forms/bulk_edit.py:78 wireless/forms/bulk_edit.py:125 -#: wireless/forms/filtersets.py:63 wireless/forms/filtersets.py:97 -msgid "Pre-shared key" -msgstr "" - #: wireless/forms/bulk_import.py:52 msgid "Bridged VLAN" msgstr "" @@ -12284,10 +13126,6 @@ msgstr "" msgid "authentication cipher" msgstr "" -#: wireless/models.py:38 -msgid "pre-shared key" -msgstr "" - #: wireless/models.py:68 msgid "wireless LAN group" msgstr ""