diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml
index 21e66ec05be..b87d627edc2 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yaml
@@ -26,7 +26,7 @@ body:
attributes:
label: NetBox Version
description: What version of NetBox are you currently running?
- placeholder: v4.0.1
+ placeholder: v4.0.2
validations:
required: true
- type: dropdown
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml
index 671fdbf87a2..6c245c7ef41 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yaml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yaml
@@ -14,7 +14,7 @@ body:
attributes:
label: NetBox version
description: What version of NetBox are you currently running?
- placeholder: v4.0.1
+ placeholder: v4.0.2
validations:
required: true
- type: dropdown
diff --git a/.github/workflows/close-stale-issues.yml b/.github/workflows/close-stale-issues.yml
index a1bbb0b7efa..7a29c8f08e9 100644
--- a/.github/workflows/close-stale-issues.yml
+++ b/.github/workflows/close-stale-issues.yml
@@ -7,6 +7,7 @@ on:
workflow_dispatch:
permissions:
+ actions: write
issues: write
pull-requests: write
diff --git a/base_requirements.txt b/base_requirements.txt
index 305df4dbaed..9912f1d6b18 100644
--- a/base_requirements.txt
+++ b/base_requirements.txt
@@ -131,7 +131,7 @@ social-auth-app-django
strawberry-graphql
# Strawberry GraphQL Django extension
-# https://github.com/strawberry-graphql/strawberry-django/blob/main/CHANGELOG.md
+# https://github.com/strawberry-graphql/strawberry-django/releases
strawberry-graphql-django
# SVG image rendering (used for rack elevations)
diff --git a/docs/configuration/security.md b/docs/configuration/security.md
index 45d5bed3f39..15702f6490f 100644
--- a/docs/configuration/security.md
+++ b/docs/configuration/security.md
@@ -159,9 +159,12 @@ Note that enabling this setting causes NetBox to update a user's session in the
## LOGIN_REQUIRED
-Default: False
+Default: True
+
+When enabled, only authenticated users are permitted to access any part of NetBox. Disabling this will allow unauthenticated users to access most areas of NetBox (but not make any changes).
-Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users are permitted to access most data in NetBox but not make any changes.
+!!! info "Changed in NetBox v4.0.2"
+ Prior to NetBox v4.0.2, this setting was disabled by default.
---
diff --git a/docs/configuration/system.md b/docs/configuration/system.md
index d0814bca6c2..a1e0ebb17f9 100644
--- a/docs/configuration/system.md
+++ b/docs/configuration/system.md
@@ -198,3 +198,11 @@ If `STORAGE_BACKEND` is not defined, this setting will be ignored.
Default: UTC
The time zone NetBox will use when dealing with dates and times. It is recommended to use UTC time unless you have a specific need to use a local time zone. Please see the [list of available time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
+
+---
+
+## TRANSLATION_ENABLED
+
+Default: True
+
+Enables language translation for the user interface. (This parameter maps to Django's [USE_I18N](https://docs.djangoproject.com/en/stable/ref/settings/#std-setting-USE_I18N) setting.)
diff --git a/docs/release-notes/version-4.0.md b/docs/release-notes/version-4.0.md
index 42926243b29..0970b0357c5 100644
--- a/docs/release-notes/version-4.0.md
+++ b/docs/release-notes/version-4.0.md
@@ -1,5 +1,28 @@
# NetBox v4.0
+## v4.0.2 (2024-05-14)
+
+!!! warning "Important"
+ This release includes an important security fix, and is a strongly recommended update for all users. More details will follow.
+
+### Enhancements
+
+* [#15119](https://github.com/netbox-community/netbox/issues/15119) - Add cluster & cluster group UI filter fields for VLAN groups
+* [#16090](https://github.com/netbox-community/netbox/issues/16090) - Include current NetBox version when an unsupported plugin is detected
+* [#16096](https://github.com/netbox-community/netbox/issues/16096) - Introduce the `ENABLE_TRANSLATION` configuration parameter
+* [#16107](https://github.com/netbox-community/netbox/issues/16107) - Change the default value for `LOGIN_REQUIRED` to True
+* [#16127](https://github.com/netbox-community/netbox/issues/16127) - Add integration point for unsupported settings
+
+### Bug Fixes
+
+* [#16077](https://github.com/netbox-community/netbox/issues/16077) - Fix display of parameter values when viewing configuration revisions
+* [#16078](https://github.com/netbox-community/netbox/issues/16078) - Fix integer filters mistakenly marked as required for GraphQL API
+* [#16101](https://github.com/netbox-community/netbox/issues/16101) - Fix initial loading of pagination widget for dynamic object tables
+* [#16123](https://github.com/netbox-community/netbox/issues/16123) - Fix custom script execution via REST API
+* [#16124](https://github.com/netbox-community/netbox/issues/16124) - Fix GraphQL API support for querying virtual machine interfaces
+
+---
+
## v4.0.1 (2024-05-09)
### Enhancements
diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py
index abe8301a22a..67099523105 100644
--- a/netbox/dcim/views.py
+++ b/netbox/dcim/views.py
@@ -2093,7 +2093,6 @@ class DeviceVirtualMachinesView(generic.ObjectChildrenView):
child_model = VirtualMachine
table = VirtualMachineTable
filterset = VirtualMachineFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('Virtual Machines'),
badge=lambda obj: VirtualMachine.objects.filter(cluster=obj.cluster, device=obj).count(),
@@ -2986,7 +2985,6 @@ class InventoryItemChildrenView(generic.ObjectChildrenView):
child_model = InventoryItem
table = tables.InventoryItemTable
filterset = filtersets.InventoryItemFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('Children'),
badge=lambda obj: obj.child_items.count(),
diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py
index 0a53037412f..1f76467b5e2 100644
--- a/netbox/extras/api/views.py
+++ b/netbox/extras/api/views.py
@@ -240,9 +240,9 @@ def post(self, request, pk):
raise RQWorkerNotRunningException()
if input_serializer.is_valid():
- script.result = Job.enqueue(
+ Job.enqueue(
run_script,
- instance=script.module,
+ instance=script,
name=script.python_class.class_name,
user=request.user,
data=input_serializer.data['data'],
diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py
index 3738f31028d..8c78ad0dec1 100644
--- a/netbox/extras/tables/tables.py
+++ b/netbox/extras/tables/tables.py
@@ -1,10 +1,10 @@
import json
import django_tables2 as tables
-from django.conf import settings
from django.utils.translation import gettext_lazy as _
from extras.models import *
+from netbox.constants import EMPTY_TABLE_TEXT
from netbox.tables import BaseTable, NetBoxTable, columns
from .template_code import *
@@ -550,7 +550,7 @@ class ScriptResultsTable(BaseTable):
)
class Meta(BaseTable.Meta):
- empty_text = _('No results found')
+ empty_text = _(EMPTY_TABLE_TEXT)
fields = (
'index', 'time', 'status', 'message',
)
@@ -581,7 +581,7 @@ class ReportResultsTable(BaseTable):
)
class Meta(BaseTable.Meta):
- empty_text = _('No results found')
+ empty_text = _(EMPTY_TABLE_TEXT)
fields = (
'index', 'method', 'time', 'status', 'object', 'url', 'message',
)
diff --git a/netbox/ipam/forms/filtersets.py b/netbox/ipam/forms/filtersets.py
index 6610bcaf3cc..807205aef39 100644
--- a/netbox/ipam/forms/filtersets.py
+++ b/netbox/ipam/forms/filtersets.py
@@ -10,7 +10,7 @@
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, add_blank_choice
from utilities.forms.fields import DynamicModelChoiceField, DynamicModelMultipleChoiceField, TagFilterField
from utilities.forms.rendering import FieldSet
-from virtualization.models import VirtualMachine
+from virtualization.models import VirtualMachine, ClusterGroup, Cluster
from vpn.models import L2VPN
__all__ = (
@@ -405,6 +405,7 @@ class VLANGroupFilterForm(NetBoxModelFilterSetForm):
fieldsets = (
FieldSet('q', 'filter_id', 'tag'),
FieldSet('region', 'sitegroup', 'site', 'location', 'rack', name=_('Location')),
+ FieldSet('cluster_group', 'cluster', name=_('Cluster')),
FieldSet('min_vid', 'max_vid', name=_('VLAN ID')),
)
model = VLANGroup
@@ -445,6 +446,17 @@ class VLANGroupFilterForm(NetBoxModelFilterSetForm):
max_value=VLAN_VID_MAX,
label=_('Maximum VID')
)
+ cluster = DynamicModelMultipleChoiceField(
+ queryset=Cluster.objects.all(),
+ required=False,
+ label=_('Cluster')
+ )
+ cluster_group = DynamicModelMultipleChoiceField(
+ queryset=ClusterGroup.objects.all(),
+ required=False,
+ label=_('Cluster group')
+ )
+
tag = TagFilterField(model)
diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py
index 16ee7bbf0c7..20ba35c6b62 100644
--- a/netbox/ipam/tests/test_api.py
+++ b/netbox/ipam/tests/test_api.py
@@ -648,6 +648,9 @@ class IPAddressTest(APIViewTestCases.APIViewTestCase):
bulk_update_data = {
'description': 'New description',
}
+ graphql_filter = {
+ 'address': '192.168.0.1/24',
+ }
@classmethod
def setUpTestData(cls):
diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py
index 044474ec4eb..2c00c318bcd 100644
--- a/netbox/ipam/views.py
+++ b/netbox/ipam/views.py
@@ -214,7 +214,6 @@ class ASNRangeASNsView(generic.ObjectChildrenView):
child_model = ASN
table = tables.ASNTable
filterset = filtersets.ASNFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('ASNs'),
badge=lambda x: x.get_child_asns().count(),
@@ -883,7 +882,6 @@ class IPAddressRelatedIPsView(generic.ObjectChildrenView):
child_model = IPAddress
table = tables.IPAddressTable
filterset = filtersets.IPAddressFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('Related IPs'),
badge=lambda x: x.get_related_ips().count(),
@@ -955,7 +953,6 @@ class VLANGroupVLANsView(generic.ObjectChildrenView):
child_model = VLAN
table = tables.VLANTable
filterset = filtersets.VLANFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('VLANs'),
badge=lambda x: x.get_child_vlans().count(),
@@ -1111,7 +1108,6 @@ class VLANInterfacesView(generic.ObjectChildrenView):
child_model = Interface
table = tables.VLANDevicesTable
filterset = InterfaceFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('Device Interfaces'),
badge=lambda x: x.get_interfaces().count(),
@@ -1129,7 +1125,6 @@ class VLANVMInterfacesView(generic.ObjectChildrenView):
child_model = VMInterface
table = tables.VLANVirtualMachinesTable
filterset = VMInterfaceFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('VM Interfaces'),
badge=lambda x: x.get_vminterfaces().count(),
diff --git a/netbox/netbox/configuration_example.py b/netbox/netbox/configuration_example.py
index b22fd7b2fc7..84ead53390f 100644
--- a/netbox/netbox/configuration_example.py
+++ b/netbox/netbox/configuration_example.py
@@ -157,9 +157,8 @@
# authenticated to NetBox indefinitely.
LOGIN_PERSISTENCE = False
-# Setting this to True will permit only authenticated users to access any part of NetBox. By default, anonymous users
-# are permitted to access most data in NetBox but not make any changes.
-LOGIN_REQUIRED = False
+# Setting this to False will permit unauthenticated users to access most areas of NetBox (but not make any changes).
+LOGIN_REQUIRED = True
# The length of time (in seconds) for which a user will remain logged into the web UI before being prompted to
# re-authenticate. (Default: 1209600 [14 days])
diff --git a/netbox/netbox/constants.py b/netbox/netbox/constants.py
index 6a69280215d..e797f4f295e 100644
--- a/netbox/netbox/constants.py
+++ b/netbox/netbox/constants.py
@@ -41,3 +41,6 @@
# General-purpose tokens
CENSOR_TOKEN = '********'
CENSOR_TOKEN_CHANGED = '***CHANGED***'
+
+# Placeholder text for empty tables
+EMPTY_TABLE_TEXT = 'No results found'
diff --git a/netbox/netbox/graphql/filter_mixins.py b/netbox/netbox/graphql/filter_mixins.py
index bfb95856373..322435c7202 100644
--- a/netbox/netbox/graphql/filter_mixins.py
+++ b/netbox/netbox/graphql/filter_mixins.py
@@ -87,7 +87,7 @@ def map_strawberry_type(field):
pass
elif issubclass(type(field), django_filters.NumberFilter):
should_create_function = True
- attr_type = int
+ attr_type = int | None
elif issubclass(type(field), django_filters.ModelMultipleChoiceFilter):
should_create_function = True
attr_type = List[str] | None
diff --git a/netbox/netbox/plugins/__init__.py b/netbox/netbox/plugins/__init__.py
index 8db945e7413..e2f0f22fce4 100644
--- a/netbox/netbox/plugins/__init__.py
+++ b/netbox/netbox/plugins/__init__.py
@@ -138,13 +138,15 @@ def validate(cls, user_config, netbox_version):
min_version = version.parse(cls.min_version)
if current_version < min_version:
raise ImproperlyConfigured(
- f"Plugin {cls.__module__} requires NetBox minimum version {cls.min_version}."
+ f"Plugin {cls.__module__} requires NetBox minimum version {cls.min_version} (current: "
+ f"{netbox_version})."
)
if cls.max_version is not None:
max_version = version.parse(cls.max_version)
if current_version > max_version:
raise ImproperlyConfigured(
- f"Plugin {cls.__module__} requires NetBox maximum version {cls.max_version}."
+ f"Plugin {cls.__module__} requires NetBox maximum version {cls.max_version} (current: "
+ f"{netbox_version})."
)
# Verify required configuration settings
diff --git a/netbox/netbox/preferences.py b/netbox/netbox/preferences.py
index d560ef1ddd3..d911aabb08e 100644
--- a/netbox/netbox/preferences.py
+++ b/netbox/netbox/preferences.py
@@ -23,7 +23,7 @@ def get_page_lengths():
),
description=_('Enable dynamic UI navigation'),
default=False,
- experimental=True
+ warning=_('Experimental feature')
),
'locale.language': UserPreference(
label=_('Language'),
@@ -31,7 +31,12 @@ def get_page_lengths():
('', _('Auto')),
*settings.LANGUAGES,
),
- description=_('Forces UI translation to the specified language.')
+ description=_('Forces UI translation to the specified language'),
+ warning=(
+ _("Support for translation has been disabled locally")
+ if not settings.TRANSLATION_ENABLED
+ else ''
+ )
),
'pagination.per_page': UserPreference(
label=_('Page length'),
diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
index 8fba7cffcbd..dd8ffa2bd92 100644
--- a/netbox/netbox/settings.py
+++ b/netbox/netbox/settings.py
@@ -25,7 +25,7 @@
# Environment setup
#
-VERSION = '4.0.1'
+VERSION = '4.0.2'
HOSTNAME = platform.node()
# Set the base directory two levels up
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -105,7 +105,7 @@
LANGUAGE_COOKIE_PATH = CSRF_COOKIE_PATH
LOGGING = getattr(configuration, 'LOGGING', {})
LOGIN_PERSISTENCE = getattr(configuration, 'LOGIN_PERSISTENCE', False)
-LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', False)
+LOGIN_REQUIRED = getattr(configuration, 'LOGIN_REQUIRED', True)
LOGIN_TIMEOUT = getattr(configuration, 'LOGIN_TIMEOUT', None)
LOGOUT_REDIRECT_URL = getattr(configuration, 'LOGOUT_REDIRECT_URL', 'home')
MEDIA_ROOT = getattr(configuration, 'MEDIA_ROOT', os.path.join(BASE_DIR, 'media')).rstrip('/')
@@ -156,6 +156,7 @@
STORAGE_BACKEND = getattr(configuration, 'STORAGE_BACKEND', None)
STORAGE_CONFIG = getattr(configuration, 'STORAGE_CONFIG', {})
TIME_ZONE = getattr(configuration, 'TIME_ZONE', 'UTC')
+TRANSLATION_ENABLED = getattr(configuration, 'TRANSLATION_ENABLED', True)
# Load any dynamic configuration parameters which have been hard-coded in the configuration file
for param in CONFIG_PARAMS:
@@ -445,6 +446,9 @@ def _setting(name, default=None):
# Use timezone-aware datetime objects
USE_TZ = True
+# Toggle language translation support
+USE_I18N = TRANSLATION_ENABLED
+
# WSGI
WSGI_APPLICATION = 'netbox.wsgi.application'
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
@@ -801,3 +805,10 @@ def _setting(name, default=None):
RQ_QUEUES.update({
f"{plugin_name}.{queue}": RQ_PARAMS for queue in plugin_config.queues
})
+
+# UNSUPPORTED FUNCTIONALITY: Import any local overrides.
+try:
+ from .local_settings import *
+ _UNSUPPORTED_SETTINGS = True
+except ImportError:
+ pass
diff --git a/netbox/netbox/tables/tables.py b/netbox/netbox/tables/tables.py
index 38f7248e647..2697c4bc0ee 100644
--- a/netbox/netbox/tables/tables.py
+++ b/netbox/netbox/tables/tables.py
@@ -14,6 +14,7 @@
from core.models import ObjectType
from extras.choices import *
from extras.models import CustomField, CustomLink
+from netbox.constants import EMPTY_TABLE_TEXT
from netbox.registry import registry
from netbox.tables import columns
from utilities.paginator import EnhancedPaginator, get_paginate_count
@@ -258,7 +259,7 @@ class Meta:
attrs = {
'class': 'table table-hover object-list',
}
- empty_text = _('No results found')
+ empty_text = _(EMPTY_TABLE_TEXT)
def __init__(self, data, highlight=None, **kwargs):
self.highlight = highlight
diff --git a/netbox/netbox/tests/test_plugins.py b/netbox/netbox/tests/test_plugins.py
index 24bc5300593..9ce20e204c5 100644
--- a/netbox/netbox/tests/test_plugins.py
+++ b/netbox/netbox/tests/test_plugins.py
@@ -42,6 +42,7 @@ def test_admin(self):
url = reverse('admin:dummy_plugin_dummymodel_add')
self.assertEqual(url, '/admin/dummy_plugin/dummymodel/add/')
+ @override_settings(LOGIN_REQUIRED=False)
def test_views(self):
# Test URL resolution
@@ -53,7 +54,7 @@ def test_views(self):
response = client.get(url)
self.assertEqual(response.status_code, 200)
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False)
def test_api_views(self):
# Test URL resolution
@@ -65,6 +66,7 @@ def test_api_views(self):
response = client.get(url)
self.assertEqual(response.status_code, 200)
+ @override_settings(LOGIN_REQUIRED=False)
def test_registered_views(self):
# Test URL resolution
diff --git a/netbox/netbox/tests/test_views.py b/netbox/netbox/tests/test_views.py
index 1942471b0d2..ccba73baa96 100644
--- a/netbox/netbox/tests/test_views.py
+++ b/netbox/netbox/tests/test_views.py
@@ -1,24 +1,76 @@
import urllib.parse
-from utilities.testing import TestCase
from django.urls import reverse
+from django.test import override_settings
+
+from dcim.models import Site
+from netbox.constants import EMPTY_TABLE_TEXT
+from netbox.search.backends import search_backend
+from utilities.testing import TestCase
class HomeViewTestCase(TestCase):
def test_home(self):
-
url = reverse('home')
-
response = self.client.get(url)
self.assertHttpStatus(response, 200)
+
+class SearchViewTestCase(TestCase):
+
+ @classmethod
+ def setUpTestData(cls):
+ sites = (
+ Site(name='Site Alpha', slug='alpha', description='Red'),
+ Site(name='Site Bravo', slug='bravo', description='Red'),
+ Site(name='Site Charlie', slug='charlie', description='Green'),
+ Site(name='Site Delta', slug='delta', description='Green'),
+ Site(name='Site Echo', slug='echo', description='Blue'),
+ Site(name='Site Foxtrot', slug='foxtrot', description='Blue'),
+ )
+ Site.objects.bulk_create(sites)
+ search_backend.cache(sites)
+
def test_search(self):
+ url = reverse('search')
+ response = self.client.get(url)
+ self.assertHttpStatus(response, 200)
+
+ def test_search_query(self):
+ url = reverse('search')
+ params = {
+ 'q': 'red',
+ }
+ query = urllib.parse.urlencode(params)
+
+ # Test without view permission
+ response = self.client.get(f'{url}?{query}')
+ self.assertHttpStatus(response, 200)
+ content = str(response.content)
+ self.assertIn(EMPTY_TABLE_TEXT, content)
+
+ # Add view permissions & query again. Only matching objects should be listed
+ self.add_permissions('dcim.view_site')
+ response = self.client.get(f'{url}?{query}')
+ self.assertHttpStatus(response, 200)
+ content = str(response.content)
+ self.assertIn('Site Alpha', content)
+ self.assertIn('Site Bravo', content)
+ self.assertNotIn('Site Charlie', content)
+ self.assertNotIn('Site Delta', content)
+ self.assertNotIn('Site Echo', content)
+ self.assertNotIn('Site Foxtrot', content)
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ def test_search_no_results(self):
url = reverse('search')
params = {
- 'q': 'foo',
+ 'q': 'xxxxxxxxx', # Matches nothing
}
+ query = urllib.parse.urlencode(params)
- response = self.client.get('{}?{}'.format(url, urllib.parse.urlencode(params)))
+ response = self.client.get(f'{url}?{query}')
self.assertHttpStatus(response, 200)
+ content = str(response.content)
+ self.assertIn(EMPTY_TABLE_TEXT, content)
diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py
index 65ab490e0cf..243ae2547d8 100644
--- a/netbox/netbox/views/generic/object_views.py
+++ b/netbox/netbox/views/generic/object_views.py
@@ -93,6 +93,7 @@ class ObjectChildrenView(ObjectView, ActionsMixin, TableMixin):
child_model = None
table = None
filterset = None
+ template_name = 'generic/object_children.html'
def get_children(self, request, parent):
"""
diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json
index e11df252065..6a971332e37 100644
--- a/netbox/project-static/package.json
+++ b/netbox/project-static/package.json
@@ -30,7 +30,7 @@
"gridstack": "10.1.2",
"htmx.org": "1.9.12",
"query-string": "9.0.0",
- "sass": "1.77.0",
+ "sass": "1.77.1",
"tom-select": "2.3.1",
"typeface-inter": "3.18.1",
"typeface-roboto-mono": "1.1.13"
diff --git a/netbox/project-static/yarn.lock b/netbox/project-static/yarn.lock
index e7d96b9e50b..5a8df2293d5 100644
--- a/netbox/project-static/yarn.lock
+++ b/netbox/project-static/yarn.lock
@@ -1816,9 +1816,9 @@ ignore@^5.2.0:
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
immutable@^4.0.0:
- version "4.3.5"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.5.tgz#f8b436e66d59f99760dc577f5c99a4fd2a5cc5a0"
- integrity sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==
+ version "4.3.6"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.6.tgz#6a05f7858213238e587fb83586ffa3b4b27f0447"
+ integrity sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==
import-fresh@^3.2.1:
version "3.3.0"
@@ -2482,10 +2482,10 @@ safe-regex-test@^1.0.3:
es-errors "^1.3.0"
is-regex "^1.1.4"
-sass@1.77.0:
- version "1.77.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.0.tgz#e736c69aff9fae4a4e6dae60a979eee9c942f321"
- integrity sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw==
+sass@1.77.1:
+ version "1.77.1"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.77.1.tgz#018cdfb206afd14724030c02e9fefd8f30a76cd0"
+ integrity sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
diff --git a/netbox/templates/core/configrevision.html b/netbox/templates/core/configrevision.html
index 0aa7b3f0528..71831e161f2 100644
--- a/netbox/templates/core/configrevision.html
+++ b/netbox/templates/core/configrevision.html
@@ -33,7 +33,7 @@
- {% include 'core/inc/config_data.html' with config=config.data %}
+ {% include 'core/inc/config_data.html' with config=object.data %}
diff --git a/netbox/templates/core/system.html b/netbox/templates/core/system.html
index 95aa4bdb312..320038ac661 100644
--- a/netbox/templates/core/system.html
+++ b/netbox/templates/core/system.html
@@ -40,7 +40,7 @@
{{ stats.django_version }} |
- {% trans "PotsgreSQL version" %} |
+ {% trans "PostgreSQL version" %} |
{{ stats.postgresql_version }} |
diff --git a/netbox/templates/htmx/table.html b/netbox/templates/htmx/table.html
index 155e7f9c3e2..f93c86a348b 100644
--- a/netbox/templates/htmx/table.html
+++ b/netbox/templates/htmx/table.html
@@ -2,15 +2,17 @@
{% load helpers %}
{% load render_table from django_tables2 %}
-{% with preferences|get_key:"pagination.placement" as paginator_placement %}
- {% if paginator_placement == 'top' or paginator_placement == 'both' %}
- {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page placement='top' %}
- {% endif %}
- {% render_table table 'inc/table_htmx.html' %}
- {% if paginator_placement != 'top' %}
- {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page %}
- {% endif %}
-{% endwith %}
+
+ {% with preferences|get_key:"pagination.placement" as paginator_placement %}
+ {% if paginator_placement == 'top' or paginator_placement == 'both' %}
+ {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page placement='top' %}
+ {% endif %}
+ {% render_table table 'inc/table_htmx.html' %}
+ {% if paginator_placement != 'top' %}
+ {% include 'inc/paginator.html' with htmx=True table=table paginator=table.paginator page=table.page %}
+ {% endif %}
+ {% endwith %}
+
{# Include the updated object count for display elsewhere on the page #}
{{ table.rows|length }}
diff --git a/netbox/templates/inc/paginator.html b/netbox/templates/inc/paginator.html
index 5c94d9569e9..122cdf05011 100644
--- a/netbox/templates/inc/paginator.html
+++ b/netbox/templates/inc/paginator.html
@@ -5,7 +5,8 @@
diff --git a/netbox/templates/inc/table_htmx.html b/netbox/templates/inc/table_htmx.html
index 06d3d9b721f..446a77643c3 100644
--- a/netbox/templates/inc/table_htmx.html
+++ b/netbox/templates/inc/table_htmx.html
@@ -1,5 +1,5 @@
{% load django_tables2 %}
-
+
{% if table.show_header %}
\n"
"Language-Team: LANGUAGE \n"
@@ -20,7 +20,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr ""
@@ -51,7 +51,7 @@ msgstr ""
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr ""
@@ -60,8 +60,8 @@ msgid "Your preferences have been updated."
msgstr ""
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr ""
@@ -72,7 +72,7 @@ msgstr ""
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69 ipam/choices.py:154
#: templates/extras/configcontext.html:25 templates/users/user.html:37
#: users/forms/bulk_edit.py:38 virtualization/choices.py:22
@@ -81,7 +81,7 @@ msgid "Active"
msgstr ""
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr ""
@@ -155,8 +155,8 @@ msgstr ""
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -251,7 +251,7 @@ msgstr ""
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -274,7 +274,7 @@ msgstr ""
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -434,7 +434,7 @@ msgstr ""
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -484,7 +484,7 @@ msgstr ""
#: ipam/forms/bulk_import.py:256 ipam/forms/bulk_import.py:292
#: ipam/forms/bulk_import.py:458 ipam/forms/filtersets.py:209
#: ipam/forms/filtersets.py:274 ipam/forms/filtersets.py:348
-#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:457
+#: ipam/forms/filtersets.py:501 ipam/forms/model_forms.py:457
#: ipam/tables/ip.py:236 ipam/tables/ip.py:309 ipam/tables/ip.py:359
#: ipam/tables/ip.py:421 ipam/tables/ip.py:448 ipam/tables/vlans.py:122
#: ipam/tables/vlans.py:227 templates/circuits/circuit.html:34
@@ -500,7 +500,7 @@ msgstr ""
#: templates/virtualization/virtualmachine.html:19 templates/vpn/tunnel.html:25
#: templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118 virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80 virtualization/forms/filtersets.py:62
#: virtualization/forms/filtersets.py:160 virtualization/tables/clusters.py:74
@@ -542,7 +542,7 @@ msgstr ""
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -678,8 +678,8 @@ msgstr ""
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12 templates/dcim/location.html:26
#: templates/dcim/powerpanel.html:26 templates/dcim/rack.html:26
@@ -715,8 +715,8 @@ msgstr ""
#: dcim/forms/object_create.py:375 dcim/tables/devices.py:148
#: dcim/tables/sites.py:85 extras/filtersets.py:455 ipam/forms/bulk_edit.py:206
#: ipam/forms/bulk_edit.py:438 ipam/forms/bulk_edit.py:512
-#: ipam/forms/filtersets.py:216 ipam/forms/filtersets.py:414
-#: ipam/forms/filtersets.py:463 ipam/forms/model_forms.py:562
+#: ipam/forms/filtersets.py:216 ipam/forms/filtersets.py:415
+#: ipam/forms/filtersets.py:475 ipam/forms/model_forms.py:562
#: templates/dcim/device.html:17 templates/dcim/rack.html:16
#: templates/dcim/rackreservation.html:22 templates/dcim/region.html:26
#: templates/dcim/site.html:30 templates/ipam/prefix.html:49
@@ -735,8 +735,8 @@ msgstr ""
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -760,8 +760,8 @@ msgstr ""
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45 virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
#: virtualization/forms/filtersets.py:239 vpn/forms/filtersets.py:213
@@ -1156,7 +1156,7 @@ msgstr ""
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr ""
@@ -1224,7 +1224,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr ""
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr ""
@@ -1287,8 +1287,8 @@ msgid "Ignore rules"
msgstr ""
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1361,8 +1361,8 @@ msgstr ""
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr ""
@@ -1392,7 +1392,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr ""
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1429,7 +1429,7 @@ msgid "User Preferences"
msgstr ""
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr ""
@@ -1504,7 +1504,7 @@ msgid "type"
msgstr ""
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr ""
@@ -1683,7 +1683,7 @@ msgstr ""
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1692,7 +1692,7 @@ msgstr ""
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1737,7 +1737,7 @@ msgstr ""
msgid "Host"
msgstr ""
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr ""
@@ -1804,7 +1804,7 @@ msgid "Staging"
msgstr ""
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr ""
@@ -1864,7 +1864,7 @@ msgstr ""
msgid "Millimeters"
msgstr ""
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr ""
@@ -1938,7 +1938,7 @@ msgstr ""
msgid "Side to rear"
msgstr ""
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr ""
@@ -1966,8 +1966,8 @@ msgstr ""
msgid "Proprietary"
msgstr ""
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr ""
@@ -1980,22 +1980,22 @@ msgstr ""
msgid "Physical"
msgstr ""
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr ""
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr ""
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr ""
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2005,152 +2005,152 @@ msgstr ""
msgid "Bridge"
msgstr ""
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr ""
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr ""
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr ""
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr ""
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr ""
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr ""
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr ""
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr ""
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr ""
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr ""
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr ""
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr ""
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr ""
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr ""
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr ""
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr ""
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr ""
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr ""
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr ""
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr ""
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr ""
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr ""
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr ""
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr ""
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr ""
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr ""
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr ""
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr ""
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr ""
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr ""
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr ""
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr ""
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr ""
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr ""
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr ""
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr ""
@@ -2521,7 +2521,7 @@ msgstr ""
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2610,7 +2610,7 @@ msgid "Power panel (ID)"
msgstr ""
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2697,7 +2697,7 @@ msgstr ""
#: ipam/forms/bulk_import.py:261 ipam/forms/bulk_import.py:297
#: ipam/forms/bulk_import.py:463 ipam/forms/filtersets.py:236
#: ipam/forms/filtersets.py:282 ipam/forms/filtersets.py:353
-#: ipam/forms/filtersets.py:497 ipam/forms/model_forms.py:186
+#: ipam/forms/filtersets.py:509 ipam/forms/model_forms.py:186
#: ipam/forms/model_forms.py:219 ipam/forms/model_forms.py:248
#: ipam/forms/model_forms.py:680 ipam/tables/ip.py:257 ipam/tables/ip.py:313
#: ipam/tables/ip.py:363 ipam/tables/vlans.py:126 ipam/tables/vlans.py:230
@@ -2809,7 +2809,7 @@ msgstr ""
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148 ipam/forms/bulk_edit.py:465
-#: ipam/forms/filtersets.py:434 ipam/forms/model_forms.py:601
+#: ipam/forms/filtersets.py:435 ipam/forms/model_forms.py:601
#: templates/dcim/device.html:29 templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
#: templates/dcim/rack/base.html:4 templates/dcim/rackreservation.html:19
@@ -2959,7 +2959,7 @@ msgstr ""
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3157,7 +3157,7 @@ msgid "Mode"
msgstr ""
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3354,6 +3354,7 @@ msgstr ""
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3765,7 +3766,7 @@ msgstr ""
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr ""
@@ -5530,7 +5531,7 @@ msgstr ""
#: dcim/tables/sites.py:143 extras/tables/tables.py:435
#: netbox/navigation/menu.py:56 netbox/navigation/menu.py:60
#: netbox/navigation/menu.py:62 virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr ""
@@ -5540,7 +5541,7 @@ msgid "VMs"
msgstr ""
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5608,8 +5609,8 @@ msgid "Power outlets"
msgstr ""
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5617,7 +5618,7 @@ msgstr ""
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr ""
@@ -5664,7 +5665,7 @@ msgid "Allocated draw (W)"
msgstr ""
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5696,7 +5697,7 @@ msgid "VDCs"
msgstr ""
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5739,7 +5740,7 @@ msgid "Module Types"
msgstr ""
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr ""
@@ -5760,60 +5761,60 @@ msgstr ""
msgid "Instances"
msgstr ""
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr ""
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr ""
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr ""
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr ""
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr ""
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr ""
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr ""
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -5859,42 +5860,47 @@ msgid "Max Weight"
msgstr ""
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr ""
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr ""
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr ""
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr ""
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr ""
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr ""
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr ""
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440 netbox/navigation/menu.py:234
+#: netbox/navigation/menu.py:236 virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr ""
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr ""
@@ -6063,7 +6069,7 @@ msgstr ""
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr ""
@@ -6139,11 +6145,11 @@ msgid "White"
msgstr ""
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr ""
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr ""
@@ -6291,7 +6297,8 @@ msgid "Cluster type (slug)"
msgstr ""
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr ""
@@ -6307,7 +6314,7 @@ msgstr ""
msgid "Tenant group (slug)"
msgstr ""
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr ""
@@ -6426,7 +6433,7 @@ msgstr ""
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr ""
@@ -6525,9 +6532,8 @@ msgid "Choices"
msgstr ""
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr ""
@@ -6570,7 +6576,7 @@ msgstr ""
msgid "Job starts"
msgstr ""
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr ""
@@ -6582,44 +6588,44 @@ msgstr ""
msgid "Allowed object type"
msgstr ""
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr ""
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr ""
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr ""
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr ""
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr ""
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr ""
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr ""
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr ""
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr ""
@@ -6637,7 +6643,7 @@ msgstr ""
msgid "Time"
msgstr ""
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6698,7 +6704,7 @@ msgid ""
"Jinja2 template code for the link URL. Reference the object as {example}."
msgstr ""
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr ""
@@ -6710,11 +6716,11 @@ msgstr ""
msgid "Rendering"
msgstr ""
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr ""
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr ""
@@ -6753,44 +6759,44 @@ msgstr ""
msgid "Conditions"
msgstr ""
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr ""
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr ""
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr ""
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr ""
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr ""
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr ""
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr ""
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr ""
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr ""
@@ -7711,11 +7717,6 @@ msgstr ""
msgid "Device Roles"
msgstr ""
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr ""
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -7734,19 +7735,13 @@ msgid "Line"
msgstr ""
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr ""
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr ""
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr ""
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr ""
@@ -8116,7 +8111,7 @@ msgstr ""
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24 templates/ipam/service.html:32
#: templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8361,20 +8356,20 @@ msgstr ""
msgid "DNS Name"
msgstr ""
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr ""
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr ""
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr ""
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -8702,7 +8697,7 @@ msgstr ""
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
msgstr ""
#: ipam/models/ip.py:589
@@ -8852,7 +8847,7 @@ msgid "The primary function of this VLAN"
msgstr ""
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr ""
@@ -8924,7 +8919,7 @@ msgid "Added"
msgstr ""
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr ""
@@ -9023,23 +9018,23 @@ msgid ""
"are allowed in DNS names"
msgstr ""
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr ""
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr ""
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr ""
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr ""
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr ""
@@ -9575,7 +9570,7 @@ msgstr ""
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr ""
@@ -9697,44 +9692,44 @@ msgid "Admin"
msgstr ""
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr ""
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr ""
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr ""
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr ""
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr ""
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr ""
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr ""
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr ""
@@ -9797,47 +9792,55 @@ msgstr ""
msgid "Enable dynamic UI navigation"
msgstr ""
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr ""
+
#: netbox/preferences.py:29
msgid "Language"
msgstr ""
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
+msgid "Forces UI translation to the specified language"
+msgstr ""
+
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
msgstr ""
-#: netbox/preferences.py:37
+#: netbox/preferences.py:42
msgid "Page length"
msgstr ""
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr ""
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr ""
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr ""
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr ""
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr ""
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr ""
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr ""
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr ""
@@ -9854,31 +9857,31 @@ msgstr ""
msgid "Cannot delete stores from registry"
msgstr ""
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr ""
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr ""
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr ""
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr ""
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr ""
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr ""
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr ""
@@ -9894,11 +9897,16 @@ msgstr ""
msgid "Error"
msgstr ""
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr ""
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr ""
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr ""
@@ -9919,7 +9927,7 @@ msgstr ""
msgid "Journal"
msgstr ""
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr ""
@@ -9958,7 +9966,7 @@ msgstr ""
msgid "The complete exception is provided below"
msgstr ""
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr ""
@@ -10013,7 +10021,7 @@ msgstr ""
#: templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr ""
@@ -10056,7 +10064,7 @@ msgid "Columns"
msgstr ""
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr ""
@@ -10104,7 +10112,6 @@ msgstr ""
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10240,7 +10247,7 @@ msgstr ""
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10575,39 +10582,39 @@ msgstr ""
msgid "System Status"
msgstr ""
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr ""
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
+#: templates/core/system.html:43
+msgid "PostgreSQL version"
msgstr ""
-#: templates/core/system.html:43
+#: templates/core/system.html:47
msgid "Database name"
msgstr ""
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr ""
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr ""
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr ""
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr ""
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr ""
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr ""
@@ -11308,7 +11315,7 @@ msgstr ""
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr ""
@@ -11620,19 +11627,11 @@ msgstr ""
msgid "Indefinite"
msgstr ""
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr ""
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr ""
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr ""
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr ""
@@ -12012,20 +12011,20 @@ msgid ""
"%(prerequisite_model)s."
msgstr ""
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr ""
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr ""
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr ""
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr ""
@@ -12087,11 +12086,11 @@ msgstr ""
msgid "Virtual IP Addresses"
msgstr ""
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr ""
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr ""
@@ -12132,11 +12131,11 @@ msgstr ""
msgid "Assign an IP Address"
msgstr ""
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr ""
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr ""
@@ -12257,11 +12256,11 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr ""
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr ""
@@ -12374,7 +12373,7 @@ msgstr ""
msgid "View"
msgstr ""
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr ""
@@ -12853,60 +12852,60 @@ msgstr ""
msgid "Can Delete"
msgstr ""
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr ""
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
"accessible once the token has been created."
msgstr ""
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for "
"no restrictions. Example: 10.1.1.0/24,192.168.10.16/32,2001:"
"db8:1::/64
"
msgstr ""
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr ""
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr ""
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr ""
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr ""
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr ""
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
"objects will result in a logical OR operation."
msgstr ""
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr ""
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr ""
@@ -13068,18 +13067,14 @@ msgstr ""
msgid "More than 50"
msgstr ""
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr ""
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
"in the format 'app.model'"
msgstr ""
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo
index c0fa4f9d8f2..f276eedd898 100644
Binary files a/netbox/translations/es/LC_MESSAGES/django.mo and b/netbox/translations/es/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/es/LC_MESSAGES/django.po b/netbox/translations/es/LC_MESSAGES/django.po
index f4cd43118b3..4db765e3c76 100644
--- a/netbox/translations/es/LC_MESSAGES/django.po
+++ b/netbox/translations/es/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Spanish (https://app.transifex.com/netbox-community/teams/178115/es/)\n"
@@ -23,7 +23,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Llave"
@@ -55,7 +55,7 @@ msgstr "Utilizado por última vez"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "IPs permitidas"
@@ -64,8 +64,8 @@ msgid "Your preferences have been updated."
msgstr "Se han actualizado tus preferencias."
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "Planificado"
@@ -76,7 +76,7 @@ msgstr "Aprovisionamiento"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -86,7 +86,7 @@ msgid "Active"
msgstr "Activo"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "Desconectado"
@@ -160,8 +160,8 @@ msgstr "Grupo de sitios (slug)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -261,7 +261,7 @@ msgstr "Terminación A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -284,7 +284,7 @@ msgstr "Red de proveedores (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -448,7 +448,7 @@ msgstr "Color"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -498,7 +498,7 @@ msgstr "Cuenta de proveedor"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -514,7 +514,7 @@ msgstr "Cuenta de proveedor"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -558,7 +558,7 @@ msgstr "Estado"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -696,8 +696,8 @@ msgstr "Red de proveedores"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -736,7 +736,7 @@ msgstr "Contactos"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -756,8 +756,8 @@ msgstr "Región"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -781,8 +781,8 @@ msgstr "Grupo de sitios"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1187,7 +1187,7 @@ msgstr "Completado"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "Falló"
@@ -1255,7 +1255,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "Solo se usa para clonar con HTTP (S)"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "Contraseña"
@@ -1319,8 +1319,8 @@ msgid "Ignore rules"
msgstr "Ignorar las reglas"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1393,8 +1393,8 @@ msgstr "Completado antes"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "usuario"
@@ -1426,7 +1426,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Elevaciones de estanterías"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1463,7 +1463,7 @@ msgid "User Preferences"
msgstr "Preferencias de usuario"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "Misceláneo"
@@ -1538,7 +1538,7 @@ msgid "type"
msgstr "tipo"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1725,7 +1725,7 @@ msgstr "Última actualización"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1734,7 +1734,7 @@ msgstr "ID"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1779,7 +1779,7 @@ msgstr "Trabajadores"
msgid "Host"
msgstr "Anfitrión"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "Puerto"
@@ -1846,7 +1846,7 @@ msgid "Staging"
msgstr "Puesta en escena"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Desmantelamiento"
@@ -1906,7 +1906,7 @@ msgstr "Obsoleto"
msgid "Millimeters"
msgstr "Milímetros"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "Pulgadas"
@@ -1981,7 +1981,7 @@ msgstr "De derecha a izquierda"
msgid "Side to rear"
msgstr "De lado a atrás"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "Pasivo"
@@ -2009,8 +2009,8 @@ msgstr "Internacional/ITA"
msgid "Proprietary"
msgstr "Proprietario"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "Otros"
@@ -2023,22 +2023,22 @@ msgstr "ITA/Internacional"
msgid "Physical"
msgstr "Físico"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "Virtual"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "inalámbrico"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "Interfaces virtuales"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2048,152 +2048,152 @@ msgstr "Interfaces virtuales"
msgid "Bridge"
msgstr "puente"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "Grupo de agregación de enlaces (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "Ethernet (fijo)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "Ethernet (modular)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "Ethernet (placa base)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "Celular"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "serie"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "Coaxial"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "Apilamiento"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "Mitad"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "Lleno"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "Auto"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "Acceso"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Etiquetado"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "Etiquetado (Todos)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "Estándar IEEE"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "Pasivo 24 V (2 pares)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "Pasivo de 24 V (4 pares)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "Pasivo 48 V (2 pares)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "Pasivo de 48 V (4 pares)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "Cobre"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "Fibra óptica"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "Fibra"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "Conectado"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "Kilómetros"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "Medidores"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "Centímetros"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "Millas"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "Pies"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "Kilogramos"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "Gramos"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "Libras"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "Onzas"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "Primaria"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "Redundante"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "Monofásico"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "Trifásico"
@@ -2564,7 +2564,7 @@ msgstr "L2VPN (ID)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2653,7 +2653,7 @@ msgid "Power panel (ID)"
msgstr "Panel de alimentación (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2742,7 +2742,7 @@ msgstr "Zona horaria"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2855,7 +2855,7 @@ msgstr "Unidad de peso"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -3006,7 +3006,7 @@ msgstr "Plataforma"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3206,7 +3206,7 @@ msgid "Mode"
msgstr "Modo"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3404,6 +3404,7 @@ msgstr "Chasis virtual"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3827,7 +3828,7 @@ msgstr "Conexión"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "Amable"
@@ -5733,7 +5734,7 @@ msgstr "Accesible"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "Dispositivos"
@@ -5743,7 +5744,7 @@ msgid "VMs"
msgstr "VM"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5811,8 +5812,8 @@ msgid "Power outlets"
msgstr "tomas de corriente"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5820,7 +5821,7 @@ msgstr "tomas de corriente"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "Interfaces"
@@ -5867,7 +5868,7 @@ msgid "Allocated draw (W)"
msgstr "Sorteo asignado (W)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5899,7 +5900,7 @@ msgid "VDCs"
msgstr "VDC"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5942,7 +5943,7 @@ msgid "Module Types"
msgstr "Tipos de módulos"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "Plataformas"
@@ -5963,60 +5964,60 @@ msgstr "Altura en U"
msgid "Instances"
msgstr "Instancias"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "Puertos de consola"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "Puertos de servidor de consola"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "Puertos de alimentación"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "Tomas de corriente"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "Puertos frontales"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "Puertos traseros"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "Bahías de dispositivos"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -6062,42 +6063,48 @@ msgid "Max Weight"
msgstr "Peso máximo"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "Sitios"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr "El caso de prueba debe establecer peer_termination_type"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "Desconectado {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "Reservaciones"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "Dispositivos no rakeados"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "Contexto de configuración"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "Configuración de renderizado"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "Máquinas virtuales"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "Niños"
@@ -6266,7 +6273,7 @@ msgstr "30 días"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "Crear"
@@ -6342,11 +6349,11 @@ msgid "White"
msgstr "blanco"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Webhook"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "Guión"
@@ -6501,7 +6508,8 @@ msgid "Cluster type (slug)"
msgstr "Tipo de clúster (babosa)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "Grupo de clústeres"
@@ -6519,7 +6527,7 @@ msgstr "Grupo de inquilinos"
msgid "Tenant group (slug)"
msgstr "Grupo de inquilinos (slug)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "Etiqueta"
@@ -6638,7 +6646,7 @@ msgstr "Está activo"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "Tipos de objetos"
@@ -6742,9 +6750,8 @@ msgid "Choices"
msgstr "Opciones"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "Datos"
@@ -6787,7 +6794,7 @@ msgstr "Eliminaciones de objetos"
msgid "Job starts"
msgstr "Comienza el trabajo"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "Cese de puestos"
@@ -6799,44 +6806,44 @@ msgstr "Tipo de objeto etiquetado"
msgid "Allowed object type"
msgstr "Tipo de objeto permitido"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "Regiones"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "Grupos de sitios"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "Ubicaciones"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "Tipos de dispositivos"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "Funciones"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "Tipos de clústeres"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "Grupos de clústeres"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "Clústers"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "Grupos de inquilinos"
@@ -6854,7 +6861,7 @@ msgstr "Antes"
msgid "Time"
msgstr "Hora"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6926,7 +6933,7 @@ msgstr ""
"Código de plantilla Jinja2 para la URL del enlace. Haga referencia al objeto"
" como {example}."
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "Código de plantilla"
@@ -6938,13 +6945,13 @@ msgstr "Plantilla de exportación"
msgid "Rendering"
msgstr "Renderización"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr ""
"El contenido de la plantilla se rellena desde la fuente remota seleccionada "
"a continuación."
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "Debe especificar el contenido local o un archivo de datos"
@@ -6987,45 +6994,45 @@ msgstr "Regla del evento"
msgid "Conditions"
msgstr "Condiciones"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "Creaciones"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "Actualizaciones"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "Eliminaciones"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "Ejecuciones de trabajos"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "Inquilinos"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "Asignación"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr ""
"Los datos se rellenan desde la fuente remota seleccionada a continuación."
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "Debe especificar datos locales o un archivo de datos"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "Contenido"
@@ -8018,11 +8025,6 @@ msgstr "Fin del trabajo"
msgid "Device Roles"
msgstr "Funciones del dispositivo"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "Máquinas virtuales"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -8041,19 +8043,13 @@ msgid "Line"
msgstr "Línea"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "Nivel"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "Mensaje"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "No se han encontrado resultados"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "Método"
@@ -8427,7 +8423,7 @@ msgstr "Nombre DNS"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8676,20 +8672,20 @@ msgstr "Asignado a una interfaz"
msgid "DNS Name"
msgstr "Nombre DNS"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "IDENTIFICADOR DE VLAN"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "VID mínimo"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "VID máximo"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -9031,10 +9027,9 @@ msgstr "Las máscaras de direcciones IP iniciales y finales deben coincidir"
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
msgstr ""
-"La dirección final debe ser inferior a la dirección inicial "
-"({start_address})"
+"La dirección final debe ser mayor que la dirección inicial ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
@@ -9196,7 +9191,7 @@ msgid "The primary function of this VLAN"
msgstr "La función principal de esta VLAN"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLAN"
@@ -9272,7 +9267,7 @@ msgid "Added"
msgstr "Añadido"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "Prefijos"
@@ -9373,23 +9368,23 @@ msgstr ""
"Solo se permiten caracteres alfanuméricos, asteriscos, guiones, puntos y "
"guiones bajos en los nombres DNS"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "Prefijos infantiles"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "Rangos infantiles"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "IPs relacionadas"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "Interfaces de dispositivos"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "Interfaces de VM"
@@ -9942,7 +9937,7 @@ msgstr "Virtualización"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "Discos virtuales"
@@ -10064,44 +10059,44 @@ msgid "Admin"
msgstr "Admin"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "usuarios"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "Grupos"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "Tokens de API"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr "Permisos"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "Sistema"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "Historial de configuración"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "Tareas en segundo plano"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "Plugins"
@@ -10171,49 +10166,56 @@ msgstr "Navegación HTMX"
msgid "Enable dynamic UI navigation"
msgstr "Habilitar la navegación dinámica por interfaz de usuario"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "Función experimental"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "Idioma"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
-msgstr ""
-"Fuerza la traducción de la interfaz de usuario al idioma especificado."
+msgid "Forces UI translation to the specified language"
+msgstr "Fuerza la traducción de la interfaz de usuario al idioma especificado"
+
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "La compatibilidad con la traducción se ha desactivado localmente"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "Longitud de página"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "El número predeterminado de objetos que se mostrarán por página"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr "Colocación del paginador"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr "Parte inferior"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr "Parte superior"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "Ambos"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr ""
"Dónde se mostrarán los controles del paginador en relación con una tabla"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "Formato de datos"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr ""
"La sintaxis preferida para mostrar datos genéricos en la interfaz de usuario"
@@ -10231,31 +10233,31 @@ msgstr "No se pueden agregar tiendas al registro después de la inicialización"
msgid "Cannot delete stores from registry"
msgstr "No se pueden eliminar las tiendas del registro"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "Inglés"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "española"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "francesa"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "japonés"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "portugués"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "rusa"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "turca"
@@ -10271,11 +10273,16 @@ msgstr "Alternar menú desplegable"
msgid "Error"
msgstr "Error"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "No {model_name} encontrado"
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "Campo"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr "Valor"
@@ -10296,7 +10303,7 @@ msgstr "Registro de cambios"
msgid "Journal"
msgstr "diario"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr "{class_name} debe implementar get_children ()"
@@ -10339,7 +10346,7 @@ msgstr ""
msgid "The complete exception is provided below"
msgstr "La excepción completa se proporciona a continuación"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr "Versión de Python"
@@ -10394,7 +10401,7 @@ msgstr "Cambiar contraseña"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "Cancelar"
@@ -10437,7 +10444,7 @@ msgid "Columns"
msgstr "Columnas"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "No se encontró ninguno"
@@ -10485,7 +10492,6 @@ msgstr "Grupos asignados"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10621,7 +10627,7 @@ msgstr "Añadir"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10958,39 +10964,39 @@ msgstr "Exportación"
msgid "System Status"
msgstr "Estado del sistema"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "Versión Django"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
+#: templates/core/system.html:43
+msgid "PostgreSQL version"
msgstr "Versión PostgreSQL"
-#: templates/core/system.html:43
+#: templates/core/system.html:47
msgid "Database name"
msgstr "Nombre de base de datos"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "Tamaño de base de datos"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "No disponible"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "Trabajadores de RQ"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "cola predeterminada"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "Hora del sistema"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "Configuración actual"
@@ -11696,7 +11702,7 @@ msgstr "Agregar nuevo miembro"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "Acciones"
@@ -12040,20 +12046,12 @@ msgstr "días"
msgid "Indefinite"
msgstr "Indefinido"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "Contexto renderizado"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "Contexto local"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr ""
"El contexto de configuración local sobrescribe todos los contextos fuente"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "Contextos de origen"
@@ -12453,20 +12451,20 @@ msgstr ""
"Antes de poder añadir un %(model)s primero debes crear un "
"%(prerequisite_model)s."
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "Selección de páginas"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "Mostrando %(start)s-%(end)s de %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "Opciones de paginación"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "Por página"
@@ -12528,11 +12526,11 @@ msgstr "Clave de autenticación"
msgid "Virtual IP Addresses"
msgstr "Direcciones IP virtuales"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "Asignar IP"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "Creación masiva"
@@ -12573,11 +12571,11 @@ msgstr "NAT (exterior)"
msgid "Assign an IP Address"
msgstr "Asignar una dirección IP"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "Seleccione la dirección IP"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "Resultados de la búsqueda"
@@ -12698,11 +12696,11 @@ msgstr "Logotipo de NetBox"
msgid "Errors"
msgstr "Errores"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "Iniciar sesión"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "O"
@@ -12825,7 +12823,7 @@ msgstr "Permiso"
msgid "View"
msgstr "Ver"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "Restricciones"
@@ -13305,11 +13303,11 @@ msgstr "Puede cambiar"
msgid "Can Delete"
msgstr "Puede eliminar"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "Interfaz de usuario"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -13319,7 +13317,7 @@ msgstr ""
"su clave antes de enviar este formulario, ya que es posible que ya "
"no se pueda acceder a él una vez que se haya creado el token."
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13329,33 +13327,33 @@ msgstr ""
"blanco para que no haya restricciones. Ejemplo: 10.1.1.0/24, "
"192.168.10.16/32, 2001:db 8:1: :/64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "Confirme la contraseña"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr "Introduce la misma contraseña que antes para verificarla."
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"¡Las contraseñas no coinciden! Compruebe los datos introducidos e inténtelo "
"de nuevo."
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "Acciones adicionales"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "Acciones concedidas además de las enumeradas anteriormente"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr "Objetos"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13366,11 +13364,11 @@ msgstr ""
"este tipo. Una lista de varios objetos dará como resultado una operación OR "
"lógica."
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "Debe seleccionarse al menos una acción."
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtro no válido para {model}: {error}"
@@ -13551,12 +13549,7 @@ msgstr ""
msgid "More than 50"
msgstr "Más de 50"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr ""
-"El conjunto de consultas personalizado no se puede usar para esta búsqueda."
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13565,7 +13558,7 @@ msgstr ""
"%s(%r) no es válido. El parámetro to_model de CounterCacheField debe ser una"
" cadena con el formato 'app.model'"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/translations/fr/LC_MESSAGES/django.mo b/netbox/translations/fr/LC_MESSAGES/django.mo
index 05d27dadd7b..c20c3a06e65 100644
Binary files a/netbox/translations/fr/LC_MESSAGES/django.mo and b/netbox/translations/fr/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/fr/LC_MESSAGES/django.po b/netbox/translations/fr/LC_MESSAGES/django.po
index 5aeea306326..75b5c4e56f7 100644
--- a/netbox/translations/fr/LC_MESSAGES/django.po
+++ b/netbox/translations/fr/LC_MESSAGES/django.po
@@ -14,7 +14,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: French (https://app.transifex.com/netbox-community/teams/178115/fr/)\n"
@@ -26,7 +26,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Clé"
@@ -58,7 +58,7 @@ msgstr "Dernière utilisation"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "IP autorisées"
@@ -67,8 +67,8 @@ msgid "Your preferences have been updated."
msgstr "Vos préférences ont été mises à jour."
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "Planifié"
@@ -79,7 +79,7 @@ msgstr "Approvisionnement"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -89,7 +89,7 @@ msgid "Active"
msgstr "Actif"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "Hors ligne"
@@ -163,8 +163,8 @@ msgstr "Groupe de sites (slug)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -264,7 +264,7 @@ msgstr "Résiliation A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -287,7 +287,7 @@ msgstr "Réseau fournisseur (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -451,7 +451,7 @@ msgstr "Couleur"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -501,7 +501,7 @@ msgstr "Identifiant de compte du prestataire"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -517,7 +517,7 @@ msgstr "Identifiant de compte du prestataire"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -561,7 +561,7 @@ msgstr "Statut"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -699,8 +699,8 @@ msgstr "Réseau de fournisseurs"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -739,7 +739,7 @@ msgstr "Contacts"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -759,8 +759,8 @@ msgstr "Région"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -784,8 +784,8 @@ msgstr "Groupe de sites"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1191,7 +1191,7 @@ msgstr "Terminé"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "Échoué"
@@ -1259,7 +1259,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "Utilisé uniquement pour le clonage avec HTTP(S)"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "Mot de passe"
@@ -1323,8 +1323,8 @@ msgid "Ignore rules"
msgstr "Ignorer les règles"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1397,8 +1397,8 @@ msgstr "Terminé avant"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "Utilisateur"
@@ -1432,7 +1432,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Élévations des baies"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1469,7 +1469,7 @@ msgid "User Preferences"
msgstr "Préférences de l'utilisateur"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "Divers"
@@ -1545,7 +1545,7 @@ msgid "type"
msgstr "type"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1733,7 +1733,7 @@ msgstr "Dernière mise à jour"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1742,7 +1742,7 @@ msgstr "IDENTIFIANT"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1787,7 +1787,7 @@ msgstr "Travailleurs"
msgid "Host"
msgstr "Hôte"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "Port"
@@ -1854,7 +1854,7 @@ msgid "Staging"
msgstr "Mise en scène"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Démantèlement"
@@ -1914,7 +1914,7 @@ msgstr "Obsolète"
msgid "Millimeters"
msgstr "Millimètres"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "Pouces"
@@ -1989,7 +1989,7 @@ msgstr "De droite à gauche"
msgid "Side to rear"
msgstr "D'un côté à l'arrière"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "Passif"
@@ -2017,8 +2017,8 @@ msgstr "International/ITA"
msgid "Proprietary"
msgstr "Propriétaire"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "Autres"
@@ -2031,22 +2031,22 @@ msgstr "ITA/International"
msgid "Physical"
msgstr "Physique"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "Virtuel"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "Sans fil"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "Interfaces virtuelles"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2056,152 +2056,152 @@ msgstr "Interfaces virtuelles"
msgid "Bridge"
msgstr "Passerelle"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "Groupe d'agrégation de liens (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "Ethernet (fixe)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "Ethernet (modulaire)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "Ethernet (panneau arrière)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "Cellulaire"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "Série"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "Coaxiale"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "Empilage"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "La moitié"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "Complet"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "Automatique"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "Accès"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Tagué"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "Tagué (Tous)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "Norme IEEE"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "24 V passif (2 paires)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "24 V passif (4 paires)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "48 V passif (2 paires)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "48 V passif (4 paires)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "Cuivre"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "fibre optique"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "Fibre"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "Connecté"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "Kilomètres"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "Compteurs"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "Centimètres"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "Miles"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "Pieds"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "Kilogrammes"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "Grammes"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "Livres"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "Onces"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "Primaire"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "Redondant"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "Monophasé"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "Triphasé"
@@ -2572,7 +2572,7 @@ msgstr "L2VPN (IDENTIFIANT)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2661,7 +2661,7 @@ msgid "Power panel (ID)"
msgstr "Panneau d'alimentation (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2750,7 +2750,7 @@ msgstr "Fuseau horaire"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2863,7 +2863,7 @@ msgstr "Unité de poids"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -3014,7 +3014,7 @@ msgstr "Plateforme"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3214,7 +3214,7 @@ msgid "Mode"
msgstr "Mode"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3412,6 +3412,7 @@ msgstr "Châssis virtuel"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3835,7 +3836,7 @@ msgstr "Connexion"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "Type"
@@ -5738,7 +5739,7 @@ msgstr "Joignable"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "Appareils"
@@ -5748,7 +5749,7 @@ msgid "VMs"
msgstr "machines virtuelles"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5816,8 +5817,8 @@ msgid "Power outlets"
msgstr "Prises de courant"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5825,7 +5826,7 @@ msgstr "Prises de courant"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "Interfaces"
@@ -5872,7 +5873,7 @@ msgid "Allocated draw (W)"
msgstr "Tirage alloué (W)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5904,7 +5905,7 @@ msgid "VDCs"
msgstr "VDC"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5947,7 +5948,7 @@ msgid "Module Types"
msgstr "Types de modules"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "Plateformes"
@@ -5968,60 +5969,60 @@ msgstr "Hauteur en U"
msgid "Instances"
msgstr "Instances"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "Ports de console"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "Ports du serveur de consoles"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "Ports d'alimentation"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "Prises de courant"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "Ports avant"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "Ports arrière"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "Baies pour appareils"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -6067,42 +6068,48 @@ msgid "Max Weight"
msgstr "Poids maximum"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "Sites"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr "Le scénario de test doit définir peer_termination_type"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "Déconnecté {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "Réservations"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "Appareils non rackés"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "Contexte de configuration"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "Configuration du rendu"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "Machines virtuelles"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "Enfants"
@@ -6272,7 +6279,7 @@ msgstr "30 jours"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "Créez"
@@ -6348,11 +6355,11 @@ msgid "White"
msgstr "blanc"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Webhook"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "Scénario"
@@ -6511,7 +6518,8 @@ msgid "Cluster type (slug)"
msgstr "Type de cluster (slug)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "Groupe de clusters"
@@ -6529,7 +6537,7 @@ msgstr "Groupe de locataires"
msgid "Tenant group (slug)"
msgstr "Groupe de locataires (slug)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "Balise"
@@ -6648,7 +6656,7 @@ msgstr "Est actif"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "Types d'objets"
@@ -6751,9 +6759,8 @@ msgid "Choices"
msgstr "Choix"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "Données"
@@ -6796,7 +6803,7 @@ msgstr "Suppressions d'objets"
msgid "Job starts"
msgstr "Début du travail"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "Résiliations d'emploi"
@@ -6808,44 +6815,44 @@ msgstr "Type d'objet balisé"
msgid "Allowed object type"
msgstr "Type d'objet autorisé"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "Régions"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "Groupes de sites"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "Localisations"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "Types d'appareils"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "Rôles"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "Types de clusters"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "Groupes de clusters"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "Clusters"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "Groupes de locataires"
@@ -6863,7 +6870,7 @@ msgstr "Avant"
msgid "Time"
msgstr "Heure"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6935,7 +6942,7 @@ msgid ""
msgstr ""
"Code modèle Jinja2 pour l'URL du lien. Référencez l'objet comme {example}."
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "Code du modèle"
@@ -6947,13 +6954,13 @@ msgstr "Modèle d'exportation"
msgid "Rendering"
msgstr "Rendu"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr ""
"Le contenu du modèle est renseigné à partir de la source distante "
"sélectionnée ci-dessous."
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "Doit spécifier un contenu local ou un fichier de données"
@@ -6994,46 +7001,46 @@ msgstr "Règle de l'événement"
msgid "Conditions"
msgstr "Les conditions"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "Créations"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "mises à jour"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "Suppressions"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "Exécutions de tâches"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "Locataires"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "Affectation"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr ""
"Les données sont renseignées à partir de la source distante sélectionnée ci-"
"dessous."
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "Doit spécifier des données locales ou un fichier de données"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "Contenu"
@@ -8040,11 +8047,6 @@ msgstr "Fin du travail"
msgid "Device Roles"
msgstr "Rôles des appareils"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "Machines virtuelles"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -8063,19 +8065,13 @@ msgid "Line"
msgstr "Ligne"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "Niveau"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "Message"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "Aucun résultat trouvé"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "Méthode"
@@ -8450,7 +8446,7 @@ msgstr "Nom DNS"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8700,20 +8696,20 @@ msgstr "Affecté à une interface"
msgid "DNS Name"
msgstr "Nom DNS"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "IDENTIFIANT DE VLAN"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "VID minimum"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "VID maximum"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -9057,10 +9053,9 @@ msgstr "Les masques d'adresse IP de début et de fin doivent correspondre"
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
msgstr ""
-"L'adresse de fin doit être inférieure à l'adresse de départ "
-"({start_address})"
+"L'adresse de fin doit être supérieure à l'adresse de début ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
@@ -9225,7 +9220,7 @@ msgid "The primary function of this VLAN"
msgstr "La principale fonction de ce VLAN"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLAN"
@@ -9301,7 +9296,7 @@ msgid "Added"
msgstr "Ajouté"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "Préfixes"
@@ -9404,23 +9399,23 @@ msgstr ""
"Seuls les caractères alphanumériques, les astérisques, les tirets, les "
"points et les traits de soulignement sont autorisés dans les noms DNS"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "Préfixes pour enfants"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "Plages pour enfants"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "IP associées"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "Interfaces des appareils"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "Interfaces de machines virtuelles"
@@ -9975,7 +9970,7 @@ msgstr "Virtualisation"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "Disques virtuels"
@@ -10097,44 +10092,44 @@ msgid "Admin"
msgstr "Administrateur"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "Utilisateurs"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "Groupes"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "Jetons d'API"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr "Autorisations"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "Système"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "Historique de configuration"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "Tâches d'arrière-plan"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "Plug-ins"
@@ -10205,49 +10200,57 @@ msgstr "Navigation HTML"
msgid "Enable dynamic UI navigation"
msgstr "Activer la navigation dynamique dans l'interface utilisateur"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "Fonctionnalité expérimentale"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "Langue"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
+msgid "Forces UI translation to the specified language"
msgstr ""
-"Force la traduction de l'interface utilisateur dans la langue spécifiée."
+"Force la traduction de l'interface utilisateur dans la langue spécifiée"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "La prise en charge de la traduction a été désactivée localement"
+
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "Longueur de page"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "Le nombre d'objets par défaut à afficher par page"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr "Emplacement du paginateur"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr "En bas"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr "Haut"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "Les deux"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr ""
"Où les commandes du paginateur seront affichées par rapport à un tableau"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "Format des données"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr ""
"Syntaxe préférée pour afficher des données génériques dans l'interface "
@@ -10266,31 +10269,31 @@ msgstr "Impossible d'ajouter des magasins au registre après l'initialisation"
msgid "Cannot delete stores from registry"
msgstr "Impossible de supprimer des magasins du registre"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "Anglais"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "espagnol"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "français"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "japonais"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "portugais"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "russe"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "Turc"
@@ -10306,11 +10309,16 @@ msgstr "Basculer vers le menu déroulant"
msgid "Error"
msgstr "Erreur"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "Non {model_name} trouvé"
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "Champ"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr "Valeur"
@@ -10331,7 +10339,7 @@ msgstr "Journal des modifications"
msgid "Journal"
msgstr "Journal"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr "{class_name} doit implémenter get_children ()"
@@ -10374,7 +10382,7 @@ msgstr ""
msgid "The complete exception is provided below"
msgstr "L'exception complète est fournie ci-dessous"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr "Version Python"
@@ -10430,7 +10438,7 @@ msgstr "Modifier le mot de passe"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "Annuler"
@@ -10473,7 +10481,7 @@ msgid "Columns"
msgstr "Colonnes"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "Aucun n'a été trouvé"
@@ -10521,7 +10529,6 @@ msgstr "Groupes assignés"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10657,7 +10664,7 @@ msgstr "Ajouter"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10994,39 +11001,39 @@ msgstr "Exporter"
msgid "System Status"
msgstr "État du système"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "Version de Django"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
+#: templates/core/system.html:43
+msgid "PostgreSQL version"
msgstr "Version de PostgreSQL"
-#: templates/core/system.html:43
+#: templates/core/system.html:47
msgid "Database name"
msgstr "Nom de base de données"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "Taille de base de données"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "Non disponible"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "Travailleurs de RQ"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "file d'attente par défaut"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "Heure du système"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "Configuration actuelle"
@@ -11731,7 +11738,7 @@ msgstr "Ajouter un nouveau membre"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "Des actions"
@@ -12078,19 +12085,11 @@ msgstr "jours"
msgid "Indefinite"
msgstr "Indéfini"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "Contexte rendu"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "Contexte local"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr "Le contexte de configuration local remplace tous les contextes source"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "Contextes sources"
@@ -12491,20 +12490,20 @@ msgstr ""
"Avant de pouvoir ajouter un %(model)s vous devez d'abord créer un "
"%(prerequisite_model)s."
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "Sélection de page"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "Montrant %(start)s-%(end)s de %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "Options de pagination"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "Par page"
@@ -12566,11 +12565,11 @@ msgstr "Clé d'authentification"
msgid "Virtual IP Addresses"
msgstr "Adresses IP virtuelles"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "Attribuer une IP"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "Création en bloc"
@@ -12611,11 +12610,11 @@ msgstr "NAT (extérieur)"
msgid "Assign an IP Address"
msgstr "Attribuer une adresse IP"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "Sélectionnez l'adresse IP"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "Résultats de recherche"
@@ -12736,11 +12735,11 @@ msgstr "Logo NetBox"
msgid "Errors"
msgstr "Erreurs"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "Connectez-vous"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "Ou"
@@ -12863,7 +12862,7 @@ msgstr "Autorisation"
msgid "View"
msgstr "Afficher"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "Contraintes"
@@ -13343,11 +13342,11 @@ msgstr "Peut changer"
msgid "Can Delete"
msgstr "Peut supprimer"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "Interface utilisateur"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -13357,7 +13356,7 @@ msgstr ""
"d'enregistrer votre clé avant de soumettre ce formulaire, car il se"
" peut qu'il ne soit plus accessible une fois le jeton créé."
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13367,33 +13366,33 @@ msgstr ""
"Laissez ce champ vide pour éviter toute restriction. Exemple : "
"10.1.1.0/24 192.168.10,16/32 2001 : db 8:1 : /64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "Confirmer mot de passe"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr ""
"Entrez le même mot de passe que précédemment, à des fins de vérification."
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Les mots de passe ne correspondent pas ! Vérifiez votre saisie et réessayez."
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "Actions supplémentaires"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "Actions accordées en plus de celles énumérées ci-dessus"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr "Objets"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13403,11 +13402,11 @@ msgstr ""
"autorisés. Laissez null pour correspondre à tous les objets de ce type. Une "
"liste de plusieurs objets entraînera une opération OR logique."
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "Au moins une action doit être sélectionnée."
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtre non valide pour {model}: {error}"
@@ -13585,13 +13584,7 @@ msgstr ""
msgid "More than 50"
msgstr "Plus de 50"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr ""
-"Le jeu de requêtes personnalisé ne peut pas être utilisé pour cette "
-"recherche."
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13600,7 +13593,7 @@ msgstr ""
"%s(%r) n'est pas valide. Le paramètre to_model de CounterCacheField doit "
"être une chaîne au format « app.model »"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/translations/ja/LC_MESSAGES/django.mo b/netbox/translations/ja/LC_MESSAGES/django.mo
index 258fa9f76aa..c6fa96d0910 100644
Binary files a/netbox/translations/ja/LC_MESSAGES/django.mo and b/netbox/translations/ja/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/ja/LC_MESSAGES/django.po b/netbox/translations/ja/LC_MESSAGES/django.po
index 782f07e3feb..78020e5eb0b 100644
--- a/netbox/translations/ja/LC_MESSAGES/django.po
+++ b/netbox/translations/ja/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Japanese (https://app.transifex.com/netbox-community/teams/178115/ja/)\n"
@@ -25,7 +25,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Key"
@@ -57,7 +57,7 @@ msgstr "最終使用日"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "許可された IP"
@@ -66,19 +66,19 @@ msgid "Your preferences have been updated."
msgstr "設定が更新されました。"
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "計画中"
#: circuits/choices.py:22 netbox/navigation/menu.py:289
msgid "Provisioning"
-msgstr "開通"
+msgstr "プロビジョニング"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -88,14 +88,14 @@ msgid "Active"
msgstr "アクティブ"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "オフライン"
#: circuits/choices.py:25
msgid "Deprovisioning"
-msgstr "解約"
+msgstr "デプロビジョニング"
#: circuits/choices.py:26
msgid "Decommissioned"
@@ -162,8 +162,8 @@ msgstr "サイトグループ (slug)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -263,7 +263,7 @@ msgstr "ターミネーション A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -286,7 +286,7 @@ msgstr "プロバイダネットワーク (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -450,7 +450,7 @@ msgstr "色"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -500,7 +500,7 @@ msgstr "プロバイダアカウント"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -516,7 +516,7 @@ msgstr "プロバイダアカウント"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -560,7 +560,7 @@ msgstr "ステータス"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -698,8 +698,8 @@ msgstr "プロバイダネットワーク"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -738,7 +738,7 @@ msgstr "連絡先"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -758,8 +758,8 @@ msgstr "リージョン"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -783,8 +783,8 @@ msgstr "サイトグループ"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1185,7 +1185,7 @@ msgstr "完了"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "失敗"
@@ -1253,7 +1253,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "HTTP (S) でのcloneに使用されます"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "パスワード"
@@ -1317,8 +1317,8 @@ msgid "Ignore rules"
msgstr "ignoreルール"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1391,8 +1391,8 @@ msgstr "以前に完了"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "ユーザ"
@@ -1422,7 +1422,7 @@ msgstr "同期するファイルをアップロードするか、データファ
msgid "Rack Elevations"
msgstr "ラック図"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1459,7 +1459,7 @@ msgid "User Preferences"
msgstr "ユーザ設定"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "その他"
@@ -1534,7 +1534,7 @@ msgid "type"
msgstr "タイプ"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1714,7 +1714,7 @@ msgstr "最終更新日"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1723,7 +1723,7 @@ msgstr "ID"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1738,7 +1738,7 @@ msgstr "間隔"
#: vpn/forms/bulk_edit.py:141 vpn/forms/bulk_import.py:172
#: vpn/tables/crypto.py:61
msgid "Version"
-msgstr "[バージョン]"
+msgstr "バージョン"
#: core/tables/plugins.py:20
msgid "Package"
@@ -1768,7 +1768,7 @@ msgstr "労働者"
msgid "Host"
msgstr "ホスト"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "ポート"
@@ -1835,7 +1835,7 @@ msgid "Staging"
msgstr "ステージング"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "廃止"
@@ -1895,7 +1895,7 @@ msgstr "廃止済"
msgid "Millimeters"
msgstr "ミリメートル"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "インチ"
@@ -1970,7 +1970,7 @@ msgstr "右から左"
msgid "Side to rear"
msgstr "側面から背面"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "パッシブ"
@@ -1998,8 +1998,8 @@ msgstr "International/ITA"
msgid "Proprietary"
msgstr "独自規格"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "その他"
@@ -2012,22 +2012,22 @@ msgstr "ITA/International"
msgid "Physical"
msgstr "物理"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "仮想"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "無線"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "仮想インタフェース"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2037,152 +2037,152 @@ msgstr "仮想インタフェース"
msgid "Bridge"
msgstr "ブリッジ"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "リンクアグリゲーション (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "イーサネット (固定)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "イーサネット (モジュール)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "イーサネット (バックプレーン)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "セルラー"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "シリアル"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "同軸"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "スタック"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "半二重"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "全二重"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "自動"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "アクセス"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "タグ付き"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "タグ付き (全て)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "IEEE スタンダード"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "パッシブ 24V (2 ペア)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "パッシブ 24V (4ペア)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "パッシブ 48V (2 ペア)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "パッシブ 48V (4ペア)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "カッパー"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "光ファイバー"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "ファイバー"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "接続済"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "キロメートル"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "メートル"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "センチメートル"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "マイル"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "フィート"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "キログラム"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "グラム"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "ポンド"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "オンス"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "プライマリ"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "冗長"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "単相"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "三相"
@@ -2553,7 +2553,7 @@ msgstr "L2VPN (ID)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2642,7 +2642,7 @@ msgid "Power panel (ID)"
msgstr "電源盤 (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2729,7 +2729,7 @@ msgstr "タイムゾーン"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2842,7 +2842,7 @@ msgstr "重量単位"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -2993,7 +2993,7 @@ msgstr "プラットフォーム"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3193,7 +3193,7 @@ msgid "Mode"
msgstr "モード"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3390,6 +3390,7 @@ msgstr "バーチャルシャーシ"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3803,7 +3804,7 @@ msgstr "接続"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "種類"
@@ -5590,7 +5591,7 @@ msgstr "到達可能"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "デバイス"
@@ -5600,7 +5601,7 @@ msgid "VMs"
msgstr "VM"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5668,8 +5669,8 @@ msgid "Power outlets"
msgstr "電源コンセント"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5677,7 +5678,7 @@ msgstr "電源コンセント"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "インタフェース"
@@ -5724,7 +5725,7 @@ msgid "Allocated draw (W)"
msgstr "割当電力 (W)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5756,7 +5757,7 @@ msgid "VDCs"
msgstr "VDC"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5799,7 +5800,7 @@ msgid "Module Types"
msgstr "モジュールタイプ"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "プラットフォーム"
@@ -5820,60 +5821,60 @@ msgstr "U 高さ"
msgid "Instances"
msgstr "インスタンス"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "コンソールポート"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "コンソールサーバポート"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "電源ポート"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "電源コンセント"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "前面ポート"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "背面ポート"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "デバイスベイ"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -5919,42 +5920,48 @@ msgid "Max Weight"
msgstr "最大重量"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "サイト"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr "テストケースは peer_termination_type を設定する必要があります"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "切断されました {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "予約"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "ラック搭載でないデバイス"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "コンフィグコンテキスト"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "レンダーコンフィグ"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "仮想マシン"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "子ども"
@@ -6123,7 +6130,7 @@ msgstr "30 日毎"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "作成"
@@ -6199,11 +6206,11 @@ msgid "White"
msgstr "白"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Webhook"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "スクリプト"
@@ -6351,7 +6358,8 @@ msgid "Cluster type (slug)"
msgstr "クラスタタイプ (slug)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "クラスタグループ"
@@ -6369,7 +6377,7 @@ msgstr "テナントグループ"
msgid "Tenant group (slug)"
msgstr "テナントグループ (slug)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "タグ"
@@ -6488,7 +6496,7 @@ msgstr "有効"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "オブジェクトタイプ"
@@ -6589,9 +6597,8 @@ msgid "Choices"
msgstr "選択肢"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "データ"
@@ -6634,7 +6641,7 @@ msgstr "オブジェクト削除"
msgid "Job starts"
msgstr "ジョブの開始"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "ジョブの終了"
@@ -6646,44 +6653,44 @@ msgstr "タグ付きオブジェクトタイプ"
msgid "Allowed object type"
msgstr "許可されるオブジェクトタイプ"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "リージョン"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "サイトグループ"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "ロケーション"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "デバイスタイプ"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "ロール"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "クラスタタイプ"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "クラスタグループ"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "クラスタ"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "テナントグループ"
@@ -6701,7 +6708,7 @@ msgstr "以前"
msgid "Time"
msgstr "時間"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6764,7 +6771,7 @@ msgid ""
"Jinja2 template code for the link URL. Reference the object as {example}."
msgstr "リンク URL の Jinja2 テンプレートコード。オブジェクトを次のように参照します。 {example}。"
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "テンプレートコード"
@@ -6776,11 +6783,11 @@ msgstr "テンプレートをエクスポート"
msgid "Rendering"
msgstr "レンダリング"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr "選択したリモートソースから、テンプレートコンテンツが入力されます。"
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "ローカルコンテンツまたはデータファイルのいずれかを指定する必要があります"
@@ -6819,44 +6826,44 @@ msgstr "イベントルール"
msgid "Conditions"
msgstr "条件"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "作成"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "更新"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "削除"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "ジョブの実行"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "テナント"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "割当"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr "データは、以下で選択したリモートソースから入力されます。"
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "ローカルデータまたはデータファイルのいずれかを指定する必要があります"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "コンテンツ"
@@ -7799,11 +7806,6 @@ msgstr "ジョブ終了"
msgid "Device Roles"
msgstr "デバイスロール"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "[仮想マシン]"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -7822,19 +7824,13 @@ msgid "Line"
msgstr "ライン"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "レベル"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "メッセージ"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "結果が見つかりません"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "メソッド"
@@ -8158,7 +8154,7 @@ msgstr "アドレスパターン"
#: ipam/forms/bulk_edit.py:48
msgid "Enforce unique space"
-msgstr "IPアドレスの重複を禁止する"
+msgstr "重複を禁止する"
#: ipam/forms/bulk_edit.py:86
msgid "Is private"
@@ -8204,7 +8200,7 @@ msgstr "DNS ネーム"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8450,20 +8446,20 @@ msgstr "インタフェースに割当済"
msgid "DNS Name"
msgstr "DNS名"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "VLAN ID"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "最小 VID"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "VID の最大値"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -8720,7 +8716,7 @@ msgstr "このプレフィックスの主な機能"
#: ipam/models/ip.py:264
msgid "is a pool"
-msgstr "プールです"
+msgstr "プールか"
#: ipam/models/ip.py:266
msgid "All IP addresses within this prefix are considered usable"
@@ -8728,7 +8724,7 @@ msgstr "このプレフィックス内のすべての IP アドレスが使用
#: ipam/models/ip.py:269 ipam/models/ip.py:536
msgid "mark utilized"
-msgstr "使用済みマーク"
+msgstr "使用済み"
#: ipam/models/ip.py:293
msgid "prefixes"
@@ -8750,7 +8746,7 @@ msgstr "グローバルテーブル"
#: ipam/models/ip.py:325
#, python-brace-format
msgid "Duplicate prefix found in {table}: {prefix}"
-msgstr "に重複したプレフィックスが見つかりました {table}: {prefix}"
+msgstr "重複したプレフィックスが見つかりました {table}: {prefix}"
#: ipam/models/ip.py:494
msgid "start address"
@@ -8766,11 +8762,11 @@ msgstr "終了アドレス"
#: ipam/models/ip.py:525
msgid "Operational status of this range"
-msgstr "この範囲の運用状況"
+msgstr "この範囲の動作状況"
#: ipam/models/ip.py:533
msgid "The primary function of this range"
-msgstr "このシリーズの主な機能"
+msgstr "この範囲の主な機能"
#: ipam/models/ip.py:547
msgid "IP range"
@@ -8782,22 +8778,22 @@ msgstr "IP アドレス範囲"
#: ipam/models/ip.py:564
msgid "Starting and ending IP address versions must match"
-msgstr "開始 IP アドレスと終了 IP アドレスのバージョンが一致している必要があります"
+msgstr "開始・終了 IP アドレスのバージョンが一致している必要があります"
#: ipam/models/ip.py:570
msgid "Starting and ending IP address masks must match"
-msgstr "開始 IP アドレスマスクと終了 IP アドレスマスクは一致する必要があります"
+msgstr "開始・終了 IP アドレスマスクは一致する必要があります"
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
-msgstr "終了アドレスは開始アドレスより小さくなければなりません ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
+msgstr "終了アドレスは開始アドレスより大きくなければなりません ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
msgid "Defined addresses overlap with range {overlapping_range} in VRF {vrf}"
-msgstr "定義されたアドレスが範囲と重複しています {overlapping_range} VRF で {vrf}"
+msgstr "VRF{vrf}において、定義されたアドレスが範囲{overlapping_range}と重複しています "
#: ipam/models/ip.py:598
#, python-brace-format
@@ -8814,7 +8810,7 @@ msgstr "この IP の動作ステータス"
#: ipam/models/ip.py:740
msgid "The functional role of this IP"
-msgstr "この IP の機能的ロール"
+msgstr "この IP の役割"
#: ipam/models/ip.py:764 templates/ipam/ipaddress.html:72
msgid "NAT (inside)"
@@ -8822,7 +8818,7 @@ msgstr "NAT (インサイド)"
#: ipam/models/ip.py:765
msgid "The IP for which this address is the \"outside\" IP"
-msgstr "このアドレスが「外部」IPであるIP"
+msgstr "このアドレスが「アウトサイド」IPであるIP"
#: ipam/models/ip.py:772
msgid "Hostname or FQDN (not case-sensitive)"
@@ -8839,13 +8835,13 @@ msgstr "/0 マスクで IP アドレスを作成することはできません
#: ipam/models/ip.py:850
#, python-brace-format
msgid "{ip} is a network ID, which may not be assigned to an interface."
-msgstr "{ip} はネットワーク ID で、インタフェースに割り当てることはできません。"
+msgstr "{ip} はネットワーク ID のため、インタフェースに割り当てることはできません。"
#: ipam/models/ip.py:861
#, python-brace-format
msgid ""
"{ip} is a broadcast address, which may not be assigned to an interface."
-msgstr "{ip} はブロードキャストアドレスで、インタフェースに割り当てることはできません。"
+msgstr "{ip} はブロードキャストアドレスのため、インタフェースに割り当てることはできません。"
#: ipam/models/ip.py:875
#, python-brace-format
@@ -8870,7 +8866,7 @@ msgstr "サービステンプレート"
#: ipam/models/services.py:94
msgid "The specific IP addresses (if any) to which this service is bound"
-msgstr "このサービスがバインドされている特定の IP アドレス (存在する場合)"
+msgstr "このサービスがバインドされている IP アドレス (存在する場合)"
#: ipam/models/services.py:101
msgid "service"
@@ -8900,7 +8896,7 @@ msgstr "子VLANの最小許容ID"
#: ipam/models/vlans.py:58
msgid "maximum VLAN ID"
-msgstr "VLAN ID の最大数"
+msgstr "最大VLAN ID"
#: ipam/models/vlans.py:64
msgid "Highest permissible ID of a child VLAN"
@@ -8912,19 +8908,19 @@ msgstr "VLAN グループ"
#: ipam/models/vlans.py:95
msgid "Cannot set scope_type without scope_id."
-msgstr "scope_id なしでスコープタイプを設定することはできません。"
+msgstr "scope_id なしでscope_typeを設定することはできません。"
#: ipam/models/vlans.py:97
msgid "Cannot set scope_id without scope_type."
-msgstr "スコープタイプなしでスコープIDを設定することはできません。"
+msgstr "scope_typeなしでscope_idを設定することはできません。"
#: ipam/models/vlans.py:102
msgid "Maximum child VID must be greater than or equal to minimum child VID"
-msgstr "子供 VID の最大数は、子供 VID の最小値以上でなければなりません"
+msgstr "最大子 VID は、最小子VID の値以上でなければなりません"
#: ipam/models/vlans.py:145
msgid "The specific site to which this VLAN is assigned (if any)"
-msgstr "この VLAN が割り当てられている特定のサイト (存在する場合)"
+msgstr "この VLAN が割り当てられているサイト (存在する場合)"
#: ipam/models/vlans.py:153
msgid "VLAN group (optional)"
@@ -8943,7 +8939,7 @@ msgid "The primary function of this VLAN"
msgstr "この VLAN の主な機能"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLAN"
@@ -8953,24 +8949,24 @@ msgstr "VLAN"
msgid ""
"VLAN is assigned to group {group} (scope: {scope}); cannot also assign to "
"site {site}."
-msgstr "VLANはグループに割り当てられています {group} (スコープ: {scope}); サイトへの割り当てもできません {site}。"
+msgstr "VLANはグループ{group}に割り当てられています (スコープ: {scope}) サイト{site}への割り当てはできません 。"
#: ipam/models/vlans.py:238
#, python-brace-format
msgid "VID must be between {minimum} and {maximum} for VLANs in group {group}"
-msgstr "VID はその間にある必要があります {minimum} そして {maximum} グループ内の VLAN 用 {group}"
+msgstr "グループ{group}内の VLANにおいて、VID は{minimum}から{maximum}の間である必要があります"
#: ipam/models/vrfs.py:30
msgid "route distinguisher"
-msgstr "ルート識別子"
+msgstr "ルート識別子(RD)"
#: ipam/models/vrfs.py:31
msgid "Unique route distinguisher (as defined in RFC 4364)"
-msgstr "一意のルート識別子 (RFC 4364 で定義されているとおり)"
+msgstr "一意のルート識別子 (RFC 4364 におけるRoute Distinguisher)"
#: ipam/models/vrfs.py:42
msgid "enforce unique space"
-msgstr "ユニークな空間を強制"
+msgstr "重複を禁止する"
#: ipam/models/vrfs.py:43
msgid "Prevent duplicate prefixes/IP addresses within this VRF"
@@ -8995,7 +8991,7 @@ msgstr "ルートターゲット"
#: ipam/tables/asn.py:52
msgid "ASDOT"
-msgstr "アズドット"
+msgstr "ASDOT"
#: ipam/tables/asn.py:57
msgid "Site Count"
@@ -9008,14 +9004,14 @@ msgstr "プロバイダ数"
#: ipam/tables/ip.py:94 netbox/navigation/menu.py:166
#: netbox/navigation/menu.py:168
msgid "Aggregates"
-msgstr "アグリゲート"
+msgstr "集約"
#: ipam/tables/ip.py:124
msgid "Added"
-msgstr "追加しました"
+msgstr "追加日"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "プレフィックス"
@@ -9037,7 +9033,7 @@ msgstr "プレフィックス (フラット)"
#: ipam/tables/ip.py:224
msgid "Depth"
-msgstr "奥行き"
+msgstr "階層"
#: ipam/tables/ip.py:261
msgid "Pool"
@@ -9045,7 +9041,7 @@ msgstr "プール"
#: ipam/tables/ip.py:264 ipam/tables/ip.py:317
msgid "Marked Utilized"
-msgstr "「使用済み」とマークされています"
+msgstr "使用済み"
#: ipam/tables/ip.py:301
msgid "Start address"
@@ -9061,7 +9057,7 @@ msgstr "NAT (アウトサイド)"
#: ipam/tables/ip.py:389
msgid "Assigned"
-msgstr "割り当て済み"
+msgstr "割当済み"
#: ipam/tables/ip.py:424 templates/vpn/l2vpntermination.html:16
#: vpn/forms/filtersets.py:240
@@ -9075,11 +9071,11 @@ msgstr "スコープタイプ"
#: ipam/tables/vlans.py:107 ipam/tables/vlans.py:210
#: templates/dcim/inc/interface_vlans_table.html:4
msgid "VID"
-msgstr "ヴィド"
+msgstr "VID"
#: ipam/tables/vrfs.py:30
msgid "RD"
-msgstr "赤"
+msgstr "RD"
#: ipam/tables/vrfs.py:33
msgid "Unique"
@@ -9096,41 +9092,41 @@ msgstr "エクスポートターゲット"
#: ipam/validators.py:9
#, python-brace-format
msgid "{prefix} is not a valid prefix. Did you mean {suggested}?"
-msgstr "{prefix} は有効なプレフィックスではありません。もしかして? {suggested}?"
+msgstr "{prefix} は有効なプレフィックスではありません。もしかして{suggested}?"
#: ipam/validators.py:16
#, python-format
msgid "The prefix length must be less than or equal to %(limit_value)s."
-msgstr "プレフィックスの長さは以下でなければなりません %(limit_value)s。"
+msgstr "プレフィックス長は%(limit_value)s以下でなければなりません 。"
#: ipam/validators.py:24
#, python-format
msgid "The prefix length must be greater than or equal to %(limit_value)s."
-msgstr "プレフィックス長は以下以上でなければなりません %(limit_value)s。"
+msgstr "プレフィックス長は%(limit_value)s以上でなければなりません 。"
#: ipam/validators.py:33
msgid ""
"Only alphanumeric characters, asterisks, hyphens, periods, and underscores "
"are allowed in DNS names"
-msgstr "DNS 名に使用できるのは、英数字、アスタリスク、ハイフン、ピリオド、およびアンダースコアのみです。"
+msgstr "DNS 名に使用できるのは、英数字、アスタリスク、ハイフン、ピリオド、アンダースコアのみです。"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "子プレフィックス"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "子レンジ"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "関連IPアドレス"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "デバイスインタフェース"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "VM インタフェース"
@@ -9142,7 +9138,7 @@ msgstr "このフィールドは空白であってはなりません。"
msgid ""
"Value must be passed directly (e.g. \"foo\": 123); do not use a dictionary "
"or list."
-msgstr "値は直接渡す必要があります (例:「foo」: 123)。辞書やリストは使用しないでください。"
+msgstr "値は直接渡す必要があります (例: \"foo\": 123)。辞書やリストは使用しないでください。"
#: netbox/api/fields.py:89
#, python-brace-format
@@ -9152,16 +9148,16 @@ msgstr "{value} は有効な選択肢ではありません。"
#: netbox/api/fields.py:102
#, python-brace-format
msgid "Invalid content type: {content_type}"
-msgstr "コンテンツタイプが無効です: {content_type}"
+msgstr "コンテントタイプが無効です: {content_type}"
#: netbox/api/fields.py:103
msgid "Invalid value. Specify a content type as '.'."
-msgstr "値が無効です。コンテンツタイプを 'として指定してください。'。"
+msgstr "値が無効です。コンテントタイプを '.'として指定してください。"
#: netbox/authentication/__init__.py:138
#, python-brace-format
msgid "Invalid permission {permission} for model {model}"
-msgstr "権限が無効です {permission} モデル用 {model}"
+msgstr "モデル{model}において権限{permission}が無効です "
#: netbox/choices.py:49
msgid "Dark Red"
@@ -9225,7 +9221,7 @@ msgstr "ダークグレー"
#: netbox/choices.py:131
msgid "Direct"
-msgstr "ダイレクト"
+msgstr "直接"
#: netbox/choices.py:132
msgid "Upload"
@@ -9237,7 +9233,7 @@ msgstr "自動検出"
#: netbox/choices.py:159
msgid "Comma"
-msgstr "コンマ"
+msgstr "カンマ"
#: netbox/choices.py:160
msgid "Semicolon"
@@ -9286,7 +9282,7 @@ msgstr "各ページの下部に表示する追加コンテンツ"
#: netbox/config/parameters.py:68
msgid "Globally unique IP space"
-msgstr "グローバルに唯一無二のIPスペース"
+msgstr "グローバルに一意なIP空間"
#: netbox/config/parameters.py:70
msgid "Enforce unique IP addressing within the global table"
@@ -9306,7 +9302,7 @@ msgstr "ラックユニットの高さ"
#: netbox/config/parameters.py:86
msgid "Default unit height for rendered rack elevations"
-msgstr "レンダリングされたラック高さのデフォルト単位高さ"
+msgstr "ラック図を描画する際の、ユニットの高さのデフォルト値"
#: netbox/config/parameters.py:91
msgid "Rack unit width"
@@ -9314,7 +9310,7 @@ msgstr "ラックユニット幅"
#: netbox/config/parameters.py:93
msgid "Default unit width for rendered rack elevations"
-msgstr "レンダリングされたラック高さのデフォルト単位幅"
+msgstr "ラック図を描画する際の、ユニットの幅のデフォルト値"
#: netbox/config/parameters.py:100
msgid "Powerfeed voltage"
@@ -9350,7 +9346,7 @@ msgstr "ユーザ提供コンテンツの URL に許可されているスキー
#: netbox/config/parameters.py:136
msgid "Default page size"
-msgstr "既定のページサイズ"
+msgstr "デフォルトページサイズ"
#: netbox/config/parameters.py:142
msgid "Maximum page size"
@@ -9358,7 +9354,7 @@ msgstr "最大ページサイズ"
#: netbox/config/parameters.py:150 templates/core/inc/config_data.html:96
msgid "Custom validators"
-msgstr "カスタムバリデーター"
+msgstr "カスタムバリデータ"
#: netbox/config/parameters.py:152
msgid "Custom validation rules (JSON)"
@@ -9366,7 +9362,7 @@ msgstr "カスタム検証ルール (JSON)"
#: netbox/config/parameters.py:160 templates/core/inc/config_data.html:104
msgid "Protection rules"
-msgstr "保護規則"
+msgstr "保護ルール"
#: netbox/config/parameters.py:162
msgid "Deletion protection rules (JSON)"
@@ -9390,7 +9386,7 @@ msgstr "メンテナンスモードを有効にする"
#: netbox/config/parameters.py:188 templates/core/inc/config_data.html:133
msgid "GraphQL enabled"
-msgstr "GraphQL 対応"
+msgstr "GraphQLの有効化"
#: netbox/config/parameters.py:190
msgid "Enable the GraphQL API"
@@ -9402,7 +9398,7 @@ msgstr "変更履歴の保存"
#: netbox/config/parameters.py:197
msgid "Days to retain changelog history (set to zero for unlimited)"
-msgstr "変更履歴の保存日数 (無制限の場合はゼロに設定)"
+msgstr "変更履歴の保存日数 (無制限の場合は0)"
#: netbox/config/parameters.py:202
msgid "Job result retention"
@@ -9410,7 +9406,7 @@ msgstr "ジョブ結果の保存"
#: netbox/config/parameters.py:204
msgid "Days to retain job result history (set to zero for unlimited)"
-msgstr "ジョブの結果履歴を保存する日数 (無制限の場合はゼロに設定)"
+msgstr "ジョブの結果履歴を保存する日数 (無制限の場合は0)"
#: netbox/config/parameters.py:209 templates/core/inc/config_data.html:145
msgid "Maps URL"
@@ -9456,27 +9452,27 @@ msgstr "タグを追加"
#: netbox/forms/base.py:123
msgid "Remove tags"
-msgstr "タグを削除する"
+msgstr "タグを削除"
#: netbox/forms/mixins.py:38
#, python-brace-format
msgid "{class_name} must specify a model class."
-msgstr "{class_name} モデルクラスを指定する必要があります。"
+msgstr "{class_name} はモデルクラスを指定する必要があります。"
#: netbox/models/features.py:277
#, python-brace-format
msgid "Unknown field name '{name}' in custom field data."
-msgstr "不明なフィールド名 '{name}'はカスタムフィールドデータにあります。"
+msgstr "カスタムフィールドデータに、不明なフィールド名 '{name}'が存在します。"
#: netbox/models/features.py:283
#, python-brace-format
msgid "Invalid value for custom field '{name}': {error}"
-msgstr "カスタムフィールド 'の値が無効です{name}': {error}"
+msgstr "カスタムフィールドの値が無効です。'{name}': {error}"
#: netbox/models/features.py:290
#, python-brace-format
msgid "Missing required custom field '{name}'."
-msgstr "必須カスタムフィールド 'が見つかりません{name}'。"
+msgstr "必須カスタムフィールド'{name}'が見つかりません。"
#: netbox/models/features.py:441
msgid "Remote data source"
@@ -9500,12 +9496,12 @@ msgstr "データファイルの更新時にデータの自動同期を有効に
#: netbox/models/features.py:463
msgid "date synced"
-msgstr "日付が同期されました"
+msgstr "同期日付"
#: netbox/models/features.py:557
#, python-brace-format
msgid "{class_name} must implement a sync_data() method."
-msgstr "{class_name} sync_data () メソッドを実装する必要があります。"
+msgstr "{class_name} はsync_data () メソッドを実装する必要があります。"
#: netbox/navigation/menu.py:11
msgid "Organization"
@@ -9635,15 +9631,15 @@ msgstr "L2 VPN"
#: netbox/navigation/menu.py:213 templates/vpn/l2vpn.html:56
#: templates/vpn/tunnel.html:72 vpn/tables/tunnels.py:58
msgid "Terminations"
-msgstr "ターミネーション"
+msgstr "終端"
#: netbox/navigation/menu.py:219
msgid "IKE Proposals"
-msgstr "IKEの提案"
+msgstr "IKEプロポザール"
#: netbox/navigation/menu.py:220 templates/vpn/ikeproposal.html:41
msgid "IKE Policies"
-msgstr "IKE ポリシー"
+msgstr "IKE ポリシ"
#: netbox/navigation/menu.py:221
msgid "IPSec Proposals"
@@ -9651,7 +9647,7 @@ msgstr "IPsec プロポーザル"
#: netbox/navigation/menu.py:222 templates/vpn/ipsecproposal.html:37
msgid "IPSec Policies"
-msgstr "IPsec ポリシー"
+msgstr "IPsec ポリシ"
#: netbox/navigation/menu.py:223 templates/vpn/ikepolicy.html:38
#: templates/vpn/ipsecpolicy.html:25
@@ -9666,7 +9662,7 @@ msgstr "仮想化"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "仮想ディスク"
@@ -9726,7 +9722,7 @@ msgstr "カスタムフィールド"
#: netbox/navigation/menu.py:310
msgid "Custom Field Choices"
-msgstr "カスタムフィールド選択"
+msgstr "カスタムフィールド選択肢"
#: netbox/navigation/menu.py:311
msgid "Custom Links"
@@ -9734,11 +9730,11 @@ msgstr "カスタムリンク"
#: netbox/navigation/menu.py:312
msgid "Export Templates"
-msgstr "テンプレートをエクスポート"
+msgstr "エクスポートテンプレート"
#: netbox/navigation/menu.py:313
msgid "Saved Filters"
-msgstr "保存済みフィルター"
+msgstr "保存済みフィルタ"
#: netbox/navigation/menu.py:315
msgid "Image Attachments"
@@ -9788,44 +9784,44 @@ msgid "Admin"
msgstr "管理者"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "ユーザ"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "グループ"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "API トークン"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
-msgstr "パーミッション"
+msgstr "権限"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "システム"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "設定履歴"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "バックグラウンドタスク"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "プラグイン"
@@ -9839,14 +9835,14 @@ msgstr "ボタンはタプルまたはリストとして渡す必要がありま
#: netbox/plugins/navigation.py:73
msgid "Button color must be a choice within ButtonColorChoices."
-msgstr "ボタンの色はButtonColorChoices内で選択する必要があります。"
+msgstr "ボタンの色はButtonColorChoicesから選択する必要があります。"
#: netbox/plugins/registration.py:25
#, python-brace-format
msgid ""
"PluginTemplateExtension class {template_extension} was passed as an "
"instance!"
-msgstr "プラグインテンプレート拡張クラス {template_extension} インスタンスとして渡されました!"
+msgstr "PluginTemplateExtension クラス {template_extension} がインスタンスとして渡されました!"
#: netbox/plugins/registration.py:31
#, python-brace-format
@@ -9854,7 +9850,7 @@ msgid ""
"{template_extension} is not a subclass of "
"netbox.plugins.PluginTemplateExtension!"
msgstr ""
-"{template_extension} Netbox.plugins.Plugins.PluginTemplate Extension "
+"{template_extension} はnetbox.plugins.Plugins.PluginTemplate Extension "
"のサブクラスではありません!"
#: netbox/plugins/registration.py:37
@@ -9862,26 +9858,26 @@ msgstr ""
msgid ""
"PluginTemplateExtension class {template_extension} does not define a valid "
"model!"
-msgstr "プラグインテンプレート拡張クラス {template_extension} 有効なモデルが定義されていません!"
+msgstr "PluginTemplateExtension クラス {template_extension}は 有効なモデルが定義されていません!"
#: netbox/plugins/registration.py:47
#, python-brace-format
msgid "{item} must be an instance of netbox.plugins.PluginMenuItem"
-msgstr "{item} netbox.Plugins.PluginMenuItem のインスタンスでなければなりません"
+msgstr "{item} はnetbox.Plugins.PluginMenuItem のインスタンスでなければなりません"
#: netbox/plugins/registration.py:60
#, python-brace-format
msgid "{menu_link} must be an instance of netbox.plugins.PluginMenuItem"
-msgstr "{menu_link} netbox.Plugins.PluginMenuItem のインスタンスでなければなりません"
+msgstr "{menu_link} はnetbox.plugins.PluginMenuItem のインスタンスでなければなりません"
#: netbox/plugins/registration.py:65
#, python-brace-format
msgid "{button} must be an instance of netbox.plugins.PluginMenuButton"
-msgstr "{button} Netbox.Plugins.Plugin.MenuButton のインスタンスでなければなりません"
+msgstr "{button} netbox.plugins.Plugin.MenuButton のインスタンスでなければなりません"
#: netbox/plugins/templates.py:35
msgid "extra_context must be a dictionary"
-msgstr "エクストラコンテキストはディクショナリでなければなりません"
+msgstr "extra_contextはディクショナリでなければなりません"
#: netbox/preferences.py:19
msgid "HTMX Navigation"
@@ -9891,47 +9887,55 @@ msgstr "HTMX ナビゲーション"
msgid "Enable dynamic UI navigation"
msgstr "動的 UI ナビゲーションを有効にする"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "実験的機能"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "言語"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
-msgstr "UI を指定された言語に強制的に翻訳します。"
+msgid "Forces UI translation to the specified language"
+msgstr "UI を指定された言語に強制的に翻訳します"
+
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "翻訳のサポートはローカルで無効になっています"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "ページの長さ"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "1 ページに表示するデフォルトのオブジェクト数"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
-msgstr "ページネーターの配置"
+msgstr "ページネータの配置"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
-msgstr "ボトム"
+msgstr "下部"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
-msgstr "トップ"
+msgstr "上部"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "両方"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
-msgstr "ページネーターコントロールがテーブルを基準にして表示される場所"
+msgstr "テーブルを基とした、ページネータが表示される場所"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "データ形式"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr "UI 内で汎用データを表示するための推奨構文"
@@ -9942,37 +9946,37 @@ msgstr "ストアが無効です: {key}"
#: netbox/registry.py:17
msgid "Cannot add stores to registry after initialization"
-msgstr "初期化後にストアをレジストリに追加できない"
+msgstr "初期化後にストアをレジストリに追加できません"
#: netbox/registry.py:20
msgid "Cannot delete stores from registry"
msgstr "レジストリからストアを削除できません"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "英語"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "スペイン語"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "フランス語"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "日本語"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "ポルトガル語"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "ロシア語"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "トルコ語"
@@ -9986,15 +9990,20 @@ msgstr "ドロップダウンを切り替え"
#: netbox/tables/columns.py:552 templates/core/job.html:35
msgid "Error"
-msgstr "[エラー]"
+msgstr "エラー"
+
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "いいえ {model_name} 見つけた"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "フィールド"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
-msgstr "価値"
+msgstr "値"
#: netbox/tests/dummy_plugin/navigation.py:29
msgid "Dummy Plugin"
@@ -10003,7 +10012,7 @@ msgstr "ダミープラグイン"
#: netbox/views/generic/bulk_views.py:405
#, python-brace-format
msgid "Row {i}: Object with ID {id} does not exist"
-msgstr "行 {i}: ID を持つオブジェクト {id} 存在しない"
+msgstr "行 {i}: ID {id}のオブジェクトは存在しません"
#: netbox/views/generic/feature_views.py:38
msgid "Changelog"
@@ -10013,16 +10022,16 @@ msgstr "変更ログ"
msgid "Journal"
msgstr "ジャーナル"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
-msgstr "{class_name} get_children () を実装する必要があります"
+msgstr "{class_name} はget_children () を実装する必要があります"
#: netbox/views/misc.py:43
msgid ""
"There was an error loading the dashboard configuration. A default dashboard "
"is in use."
-msgstr "ダッシュボードの設定をロード中にエラーが発生しました。既定のダッシュボードが使用中です。"
+msgstr "ダッシュボード設定の読込中にエラーが発生しました。デフォルトのダッシュボードが使用中です。"
#: templates/403.html:4
msgid "Access Denied"
@@ -10042,7 +10051,7 @@ msgstr "要求されたページは存在しません"
#: templates/500.html:7 templates/500.html:18
msgid "Server Error"
-msgstr "サーバーエラー"
+msgstr "サーバエラー"
#: templates/500.html:23
msgid "There was a problem with your request. Please contact an administrator"
@@ -10050,23 +10059,23 @@ msgstr "リクエストに問題がありました。管理者に問い合わせ
#: templates/500.html:28
msgid "The complete exception is provided below"
-msgstr "完全な例外は以下のとおりです。"
+msgstr "The complete exception is provided below"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
-msgstr "パイソンバージョン"
+msgstr "Python version"
#: templates/500.html:34 templates/core/system.html:31
msgid "NetBox version"
-msgstr "ネットボックスバージョン"
+msgstr "NetBox version"
#: templates/500.html:36
msgid "None installed"
-msgstr "取付なし"
+msgstr "None installed"
#: templates/500.html:39
msgid "If further assistance is required, please post to the"
-msgstr "さらにサポートが必要な場合は、次のアドレスに投稿してください"
+msgstr "さらにサポートが必要な場合は、以下サイトに投稿してください。"
#: templates/500.html:39
msgid "NetBox discussion forum"
@@ -10074,11 +10083,11 @@ msgstr "NetBox ディスカッションフォーラム"
#: templates/500.html:39
msgid "on GitHub"
-msgstr "GitHub で"
+msgstr "(GitHub)"
#: templates/500.html:42 templates/base/40x.html:17
msgid "Home Page"
-msgstr "[ホームページ]"
+msgstr "ホームページ"
#: templates/account/base.html:7 templates/inc/user_menu.html:27
#: vpn/forms/bulk_edit.py:255 vpn/forms/filtersets.py:189
@@ -10107,7 +10116,7 @@ msgstr "パスワードを変更"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "キャンセル"
@@ -10127,7 +10136,7 @@ msgstr "保存"
#: templates/account/preferences.html:34
msgid "Table Configurations"
-msgstr "テーブル構成"
+msgstr "テーブル設定"
#: templates/account/preferences.html:39
msgid "Clear table preferences"
@@ -10135,7 +10144,7 @@ msgstr "テーブル設定をクリア"
#: templates/account/preferences.html:47
msgid "Toggle All"
-msgstr "[すべて切り替え]"
+msgstr "すべて切り替え"
#: templates/account/preferences.html:49
msgid "Table"
@@ -10150,7 +10159,7 @@ msgid "Columns"
msgstr "コラム"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "何も見つかりませんでした"
@@ -10165,11 +10174,11 @@ msgstr "アカウント詳細"
#: templates/account/profile.html:29 templates/tenancy/contact.html:43
#: templates/users/user.html:25 tenancy/forms/bulk_edit.py:109
msgid "Email"
-msgstr "電子メール"
+msgstr "メール"
#: templates/account/profile.html:33 templates/users/user.html:29
msgid "Account Created"
-msgstr "アカウントが作成されました"
+msgstr "アカウント作成日時"
#: templates/account/profile.html:37 templates/users/user.html:33
msgid "Last Login"
@@ -10198,7 +10207,6 @@ msgstr "割当グループ"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10208,7 +10216,7 @@ msgstr "割当グループ"
#: templates/users/objectpermission.html:87 templates/users/user.html:58
#: templates/users/user.html:68
msgid "None"
-msgstr "[なし]"
+msgstr "なし"
#: templates/account/profile.html:68 templates/users/user.html:78
msgid "Recent Activity"
@@ -10227,7 +10235,7 @@ msgstr "トークン"
#: templates/account/token.html:39 templates/users/token.html:31
#: users/forms/bulk_edit.py:107
msgid "Write enabled"
-msgstr "書き込み有効"
+msgstr "書き込み可能"
#: templates/account/token.html:51 templates/users/token.html:43
msgid "Last used"
@@ -10334,11 +10342,11 @@ msgstr "追加"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
-msgstr "[編集]"
+msgstr "編集"
#: templates/circuits/inc/circuit_termination.html:18
msgid "Swap"
@@ -10481,7 +10489,7 @@ msgstr "パラメータが定義されていません"
#: templates/core/datasource.html:114
msgid "Files"
-msgstr "[ファイル]"
+msgstr "ファイル"
#: templates/core/inc/config_data.html:7
msgid "Rack elevations"
@@ -10619,7 +10627,7 @@ msgstr "キューに入っているジョブ"
#, python-format
msgid ""
"Select all %(count)s %(object_type_plural)s matching query"
-msgstr "[選択] すべて %(count)s %(object_type_plural)s マッチングクエリ"
+msgstr "選択 すべて %(count)s %(object_type_plural)s マッチングクエリ"
#: templates/core/rq_worker.html:10
msgid "Worker Info"
@@ -10669,39 +10677,39 @@ msgstr "エクスポート"
msgid "System Status"
msgstr "システムステータス"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "ジャンゴバージョン"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
-msgstr "PostgreSQL バージョン"
-
#: templates/core/system.html:43
+msgid "PostgreSQL version"
+msgstr "ポスグレ SQL バージョン"
+
+#: templates/core/system.html:47
msgid "Database name"
msgstr "データベース名"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "データベースサイズ"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "ご利用いただけません"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "RQ ワーカー"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "デフォルトキュー"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "システムタイム"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "現在の構成"
@@ -10866,7 +10874,7 @@ msgstr "サービスを追加"
#: templates/virtualization/virtualmachine/base.html:22
#: templates/virtualization/virtualmachine_list.html:8
msgid "Add Components"
-msgstr "[構成要素を追加]"
+msgstr "構成要素を追加"
#: templates/dcim/device/consoleports.html:24
msgid "Add Console Ports"
@@ -10943,7 +10951,7 @@ msgstr "レンダリング設定"
#: templates/dcim/device/render_config.html:55
#: templates/virtualization/virtualmachine/render_config.html:55
msgid "Download"
-msgstr "[ダウンロード]"
+msgstr "ダウンロード"
#: templates/dcim/device/render_config.html:61
#: templates/virtualization/virtualmachine/render_config.html:61
@@ -10962,7 +10970,7 @@ msgstr "リジェネレートslug"
#: templates/dcim/device_edit.html:49 templates/generic/bulk_remove.html:21
#: utilities/templates/helpers/table_config_form.html:23
msgid "Remove"
-msgstr "[削除]"
+msgstr "削除"
#: templates/dcim/device_edit.html:110
msgid "Local Config Context Data"
@@ -10987,7 +10995,7 @@ msgstr "取付済みデバイス"
#: templates/dcim/devicebay_depopulate.html:6
#, python-format
msgid "Remove %(device)s from %(device_bay)s?"
-msgstr "[削除] %(device)s から %(device_bay)s?"
+msgstr "削除 %(device)s から %(device_bay)s?"
#: templates/dcim/devicebay_depopulate.html:13
#, python-format
@@ -11008,7 +11016,7 @@ msgstr "ベイ"
#: templates/dcim/devicerole.html:14 templates/dcim/platform.html:17
msgid "Add Device"
-msgstr "[デバイスを追加]"
+msgstr "デバイスを追加"
#: templates/dcim/devicerole.html:40
msgid "VM Role"
@@ -11016,7 +11024,7 @@ msgstr "VMのロール"
#: templates/dcim/devicetype.html:18 templates/dcim/moduletype.html:18
msgid "Model Name"
-msgstr "[モデル名]"
+msgstr "モデル名"
#: templates/dcim/devicetype.html:25 templates/dcim/moduletype.html:22
msgid "Part Number"
@@ -11104,7 +11112,7 @@ msgstr "クリア"
#: templates/dcim/inc/interface_vlans_table.html:47
msgid "Clear All"
-msgstr "[すべてクリア]"
+msgstr "すべてクリア"
#: templates/dcim/interface.html:17
msgid "Add Child Interface"
@@ -11404,7 +11412,7 @@ msgstr "新しいメンバーを追加"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "アクション"
@@ -11551,11 +11559,11 @@ msgstr "環境パラメータ"
#: templates/extras/configtemplate.html:67
#: templates/extras/exporttemplate.html:79
msgid "Template"
-msgstr "[テンプレート]"
+msgstr "テンプレート"
#: templates/extras/customfield.html:30 templates/extras/customlink.html:21
msgid "Group Name"
-msgstr "[グループ名]"
+msgstr "グループ名"
#: templates/extras/customfield.html:42
msgid "Cloneable"
@@ -11563,7 +11571,7 @@ msgstr "クローン可能"
#: templates/extras/customfield.html:52
msgid "Default Value"
-msgstr "[既定値]"
+msgstr "既定値"
#: templates/extras/customfield.html:61
msgid "Search Weight"
@@ -11591,11 +11599,11 @@ msgstr "検証ルール"
#: templates/extras/customfield.html:106
msgid "Minimum Value"
-msgstr "[最小値]"
+msgstr "最小値"
#: templates/extras/customfield.html:110
msgid "Maximum Value"
-msgstr "[最大値]"
+msgstr "最大値"
#: templates/extras/customfield.html:114
msgid "Regular Expression"
@@ -11680,7 +11688,7 @@ msgstr "マイムタイプ"
#: templates/extras/exporttemplate.html:27
msgid "File Extension"
-msgstr "[ファイル拡張子]"
+msgstr "ファイル拡張子"
#: templates/extras/htmx/script_result.html:10
msgid "Scheduled for"
@@ -11729,19 +11737,11 @@ msgstr "日々"
msgid "Indefinite"
msgstr "無期限"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "レンダリングされたコンテキスト"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "ローカルコンテキスト"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr "ローカル設定コンテキストはすべてのソースコンテキストを上書きします"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "ソースコンテキスト"
@@ -11764,7 +11764,7 @@ msgstr "前へ"
#: templates/extras/objectchange.html:84
msgid "Next"
-msgstr "[次へ]"
+msgstr "次へ"
#: templates/extras/objectchange.html:92
msgid "Object Created"
@@ -11793,7 +11793,7 @@ msgstr "変更後のデータ"
#: templates/extras/objectchange.html:153
#, python-format
msgid "See All %(count)s Changes"
-msgstr "[すべて表示] %(count)s 変更点"
+msgstr "すべて表示 %(count)s 変更点"
#: templates/extras/report/base.html:30
msgid "Report"
@@ -11806,7 +11806,7 @@ msgstr "スクリプトを実行する権限がありません"
#: templates/extras/script.html:40 templates/extras/script.html:44
#: templates/extras/script_list.html:88
msgid "Run Script"
-msgstr "[スクリプトを実行]"
+msgstr "スクリプトを実行"
#: templates/extras/script/jobs.html:16
msgid "Script no longer exists in the source file."
@@ -11893,7 +11893,7 @@ msgstr "一括作成"
#: templates/generic/bulk_add_component.html:34
#: templates/generic/bulk_delete.html:32 templates/generic/bulk_edit.html:33
msgid "Selected Objects"
-msgstr "[選択オブジェクト]"
+msgstr "選択オブジェクト"
#: templates/generic/bulk_add_component.html:58
msgid "to Add"
@@ -11939,7 +11939,7 @@ msgstr "直接インポート"
#: templates/generic/bulk_import.html:30
msgid "Upload File"
-msgstr "[ファイルをアップロード]"
+msgstr "ファイルをアップロード"
#: templates/generic/bulk_import.html:58 templates/generic/bulk_import.html:80
#: templates/generic/bulk_import.html:102
@@ -11964,7 +11964,7 @@ msgstr "フォーマット:YYYY-MM-DD"
#: templates/generic/bulk_import.html:183
msgid "Specify true or false"
-msgstr "[真] または [偽] を指定してください"
+msgstr "真/偽を指定してください"
#: templates/generic/bulk_import.html:195
msgid "Required fields must be specified for all objects."
@@ -12067,7 +12067,7 @@ msgid ""
"Select all %(count)s "
"%(object_type_plural)s matching query"
msgstr ""
-"[選択] すべて %(count)s "
+"選択 すべて %(count)s "
"%(object_type_plural)s マッチングクエリ"
#: templates/home.html:15
@@ -12118,7 +12118,7 @@ msgstr "このアクションの結果、次のオブジェクトが削除され
#: templates/htmx/object_selector.html:5
msgid "Select"
-msgstr "[選択]"
+msgstr "選択"
#: templates/inc/filter_list.html:42
#: utilities/templates/helpers/table_config_form.html:39
@@ -12133,20 +12133,20 @@ msgid ""
msgstr ""
"追加する前に %(model)s 最初に作成する必要があります %(prerequisite_model)s。"
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "ページ選択"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "表示中 %(start)s-%(end)s の %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "ページネーションオプション"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "1 ページあたり"
@@ -12208,17 +12208,17 @@ msgstr "認証キー"
msgid "Virtual IP Addresses"
msgstr "仮想 IP アドレス"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "IP アドレスを割り当てる"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "一括作成"
#: templates/ipam/inc/panels/fhrp_groups.html:10
msgid "Create Group"
-msgstr "[グループを作成]"
+msgstr "グループを作成"
#: templates/ipam/inc/panels/fhrp_groups.html:15
msgid "Assign Group"
@@ -12238,7 +12238,7 @@ msgstr "ショー利用可能"
#: templates/ipam/inc/toggle_available.html:13
msgid "Show All"
-msgstr "[すべて表示]"
+msgstr "すべて表示"
#: templates/ipam/ipaddress.html:23 templates/ipam/iprange.html:45
#: templates/ipam/prefix.html:24
@@ -12253,11 +12253,11 @@ msgstr "NAT (アウトサイド)"
msgid "Assign an IP Address"
msgstr "IP アドレスを割り当てる"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "IP アドレスを選択"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "検索結果"
@@ -12331,7 +12331,7 @@ msgstr "最大長"
#: templates/ipam/rir.html:10
msgid "Add Aggregate"
-msgstr "アグリゲートを追加"
+msgstr "集約を追加"
#: templates/ipam/routetarget.html:38
msgid "Importing VRFs"
@@ -12378,11 +12378,11 @@ msgstr "ネットボックスロゴ"
msgid "Errors"
msgstr "エラー"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "サインイン"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "または"
@@ -12500,7 +12500,7 @@ msgstr "許可"
msgid "View"
msgstr "ビュー"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "制約"
@@ -12980,11 +12980,11 @@ msgstr "変更可能"
msgid "Can Delete"
msgstr "削除可能"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "ユーザインタフェース"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -12993,7 +12993,7 @@ msgstr ""
"キーの長さは 40 文字以上でなければなりません。 キーは必ず記録してください。 "
"このフォームを送信する前に。トークンが作成されるとアクセスできなくなる可能性があるためです。"
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13002,31 +13002,31 @@ msgstr ""
"トークンを使用できる許可された IPv4/IPv6 ネットワーク。制限がない場合は空白のままにしてください。例: "
"10.1.1.0/24,192.168.10.16/32,2001: db 8:1:: /64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "パスワードを確認"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr "確認のため、以前と同じパスワードを入力します。"
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr "パスワードが一致しません!入力内容を確認して、もう一度試してください。"
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "その他のアクション"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "上記以外に付与されたアクション"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
-msgstr "[オブジェクト]"
+msgstr "オブジェクト"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13035,11 +13035,11 @@ msgstr ""
"許可されたオブジェクトのみを返すクエリセットフィルターの JSON 式。null "
"のままにしておくと、このタイプのすべてのオブジェクトに一致します。複数のオブジェクトのリストでは、論理 OR 演算が行われます。"
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "少なくとも 1 つのアクションを選択する必要があります。"
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "のフィルタが無効です {model}: {error}"
@@ -13063,7 +13063,7 @@ msgstr "許可"
#: users/models/permissions.py:53 users/models/users.py:47
msgid "permissions"
-msgstr "許可"
+msgstr "権限"
#: users/models/preferences.py:30 users/models/preferences.py:31
msgid "user preferences"
@@ -13205,11 +13205,7 @@ msgstr "削除できません {objects}。 {count} 依存オブ
msgid "More than 50"
msgstr "50 個以上"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr "カスタムクエリセットはこの検索には使用できません。"
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13218,7 +13214,7 @@ msgstr ""
"%s(%r) は無効です。CounterCacheField の to_model パラメータは 'app.model' "
"形式の文字列でなければなりません"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
@@ -13445,7 +13441,7 @@ msgstr "未定義"
#: utilities/templates/buttons/bookmark.html:9
msgid "Unbookmark"
-msgstr "[ブックマーク解除]"
+msgstr "ブックマーク解除"
#: utilities/templates/buttons/bookmark.html:13
msgid "Bookmark"
@@ -13461,7 +13457,7 @@ msgstr "現在のビュー"
#: utilities/templates/buttons/export.html:8
msgid "All Data"
-msgstr "[すべてのデータ]"
+msgstr "すべてのデータ"
#: utilities/templates/buttons/export.html:28
msgid "Add export template"
@@ -13795,7 +13791,7 @@ msgstr "DSA シグネチャ"
#: vpn/choices.py:198 vpn/choices.py:199 vpn/choices.py:200 vpn/choices.py:201
#, python-brace-format
msgid "Group {n}"
-msgstr "[グループ] {n}"
+msgstr "グループ {n}"
#: vpn/choices.py:241
msgid "Ethernet Private LAN"
diff --git a/netbox/translations/pt/LC_MESSAGES/django.mo b/netbox/translations/pt/LC_MESSAGES/django.mo
index 001c852587a..8ecc863ff56 100644
Binary files a/netbox/translations/pt/LC_MESSAGES/django.mo and b/netbox/translations/pt/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/pt/LC_MESSAGES/django.po b/netbox/translations/pt/LC_MESSAGES/django.po
index 4e480caa8f2..ceeef2aa906 100644
--- a/netbox/translations/pt/LC_MESSAGES/django.po
+++ b/netbox/translations/pt/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Portuguese (https://app.transifex.com/netbox-community/teams/178115/pt/)\n"
@@ -24,7 +24,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Chave"
@@ -56,7 +56,7 @@ msgstr "Usado pela última vez"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "IPs permitidos"
@@ -65,8 +65,8 @@ msgid "Your preferences have been updated."
msgstr "Suas preferências foram atualizadas."
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "Planejado"
@@ -77,7 +77,7 @@ msgstr "Provisionamento"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -87,7 +87,7 @@ msgid "Active"
msgstr "Ativo"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "Off-line"
@@ -161,8 +161,8 @@ msgstr "Grupo de sites (slug)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -262,7 +262,7 @@ msgstr "Rescisão A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -285,7 +285,7 @@ msgstr "Rede do provedor (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -449,7 +449,7 @@ msgstr "Cor"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -499,7 +499,7 @@ msgstr "Conta do provedor"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -515,7 +515,7 @@ msgstr "Conta do provedor"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -559,7 +559,7 @@ msgstr "Status"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -697,8 +697,8 @@ msgstr "Rede de provedores"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -737,7 +737,7 @@ msgstr "Contatos"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -757,8 +757,8 @@ msgstr "Região"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -782,8 +782,8 @@ msgstr "Grupo de sites"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1188,7 +1188,7 @@ msgstr "Concluído"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "Falhou"
@@ -1256,7 +1256,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "Usado apenas para clonagem com HTTP (S)"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "Senha"
@@ -1320,8 +1320,8 @@ msgid "Ignore rules"
msgstr "Ignorar regras"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1394,8 +1394,8 @@ msgstr "Concluído antes"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "Usuário"
@@ -1429,7 +1429,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Elevações da cremalheira"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1466,7 +1466,7 @@ msgid "User Preferences"
msgstr "Preferências do usuário"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "Diversos"
@@ -1541,7 +1541,7 @@ msgid "type"
msgstr "tipo"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1727,7 +1727,7 @@ msgstr "Última atualização"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1736,7 +1736,7 @@ msgstr "CARTEIRA DE IDENTIDADE"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1781,7 +1781,7 @@ msgstr "Trabalhadores"
msgid "Host"
msgstr "Hospedeiro"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "Porto"
@@ -1848,7 +1848,7 @@ msgid "Staging"
msgstr "Encenação"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Descomissionamento"
@@ -1908,7 +1908,7 @@ msgstr "Obsoleto"
msgid "Millimeters"
msgstr "Milímetros"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "Polegadas"
@@ -1983,7 +1983,7 @@ msgstr "Da direita para a esquerda"
msgid "Side to rear"
msgstr "De lado para trás"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "Passivo"
@@ -2011,8 +2011,8 @@ msgstr "Internacional/ITA"
msgid "Proprietary"
msgstr "Proprietário"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "Outros"
@@ -2025,22 +2025,22 @@ msgstr "ITA/Internacional"
msgid "Physical"
msgstr "Físico"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "Virtual"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "Sem fio"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "Interfaces virtuais"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2050,152 +2050,152 @@ msgstr "Interfaces virtuais"
msgid "Bridge"
msgstr "Ponte"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "Grupo de agregação de links (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "Ethernet (fixa)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "Ethernet (modular)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "Ethernet (painel traseiro)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "Celular"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "Serial"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "Coaxial"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "Empilhamento"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "Metade"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "Completo"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "Automático"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "Acesso"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Marcado"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "Marcado (Todos)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "Padrão IEEE"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "24V passivo (2 pares)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "24V passivo (4 pares)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "48V passivo (2 pares)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "48V passivo (4 pares)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "Cobre"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "Fibra óptica"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "Fibra"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "Conectado"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "Quilômetros"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "Metros"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "Centímetros"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "Miles"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "Pés"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "Quilogramas"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "Gramas"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "Libras"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "Onças"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "Primário"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "Redundante"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "Fase única"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "Trifásico"
@@ -2566,7 +2566,7 @@ msgstr "L2VPN (ID)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2655,7 +2655,7 @@ msgid "Power panel (ID)"
msgstr "Painel de alimentação (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2744,7 +2744,7 @@ msgstr "Fuso horário"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2857,7 +2857,7 @@ msgstr "Unidade de peso"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -3008,7 +3008,7 @@ msgstr "Plataforma"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3208,7 +3208,7 @@ msgid "Mode"
msgstr "Modo"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3405,6 +3405,7 @@ msgstr "Chassi virtual"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3826,7 +3827,7 @@ msgstr "Conexão"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "Gentil"
@@ -5715,7 +5716,7 @@ msgstr "Acessível"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "Dispositivos"
@@ -5725,7 +5726,7 @@ msgid "VMs"
msgstr "VMs"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5793,8 +5794,8 @@ msgid "Power outlets"
msgstr "Tomadas elétricas"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5802,7 +5803,7 @@ msgstr "Tomadas elétricas"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "Interfaces"
@@ -5849,7 +5850,7 @@ msgid "Allocated draw (W)"
msgstr "Sorteio alocado (W)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5881,7 +5882,7 @@ msgid "VDCs"
msgstr "VDCs"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5924,7 +5925,7 @@ msgid "Module Types"
msgstr "Tipos de módulo"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "Plataformas"
@@ -5945,60 +5946,60 @@ msgstr "Altura U"
msgid "Instances"
msgstr "Instâncias"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "Portas de console"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "Portas do servidor de console"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "Portas de alimentação"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "Tomadas elétricas"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "Portas frontais"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "Portas traseiras"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "Compartimentos de dispositivos"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -6044,42 +6045,48 @@ msgid "Max Weight"
msgstr "Peso máximo"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "Sites"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr "O caso de teste deve definir peer_termination_type"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "Desconectado {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "Reservas"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "Dispositivos sem rack"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "Contexto de configuração"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "Configuração de renderização"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "Máquinas virtuais"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "Crianças"
@@ -6248,7 +6255,7 @@ msgstr "30 dias"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "Criar"
@@ -6324,11 +6331,11 @@ msgid "White"
msgstr "Branco"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Webhook"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "Roteiro"
@@ -6486,7 +6493,8 @@ msgid "Cluster type (slug)"
msgstr "Tipo de cluster (slug)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "Grupo de clusters"
@@ -6504,7 +6512,7 @@ msgstr "Grupo de inquilinos"
msgid "Tenant group (slug)"
msgstr "Grupo de inquilinos (lesma)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "Tag"
@@ -6623,7 +6631,7 @@ msgstr "Está ativo"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "Tipos de objetos"
@@ -6726,9 +6734,8 @@ msgid "Choices"
msgstr "Escolhas"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "Dados"
@@ -6771,7 +6778,7 @@ msgstr "Exclusões de objetos"
msgid "Job starts"
msgstr "Início do trabalho"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "Rescisões de trabalho"
@@ -6783,44 +6790,44 @@ msgstr "Tipo de objeto marcado"
msgid "Allowed object type"
msgstr "Tipo de objeto permitido"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "Regiões"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "Grupos de sites"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "Localizações"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "Tipos de dispositivos"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "Funções"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "Tipos de cluster"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "Grupos de clusters"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "Clusters"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "Grupos de inquilinos"
@@ -6838,7 +6845,7 @@ msgstr "Antes"
msgid "Time"
msgstr "Tempo"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6910,7 +6917,7 @@ msgstr ""
"Código do modelo Jinja2 para o URL do link. Faça referência ao objeto como "
"{example}."
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "Código do modelo"
@@ -6922,13 +6929,13 @@ msgstr "Modelo de exportação"
msgid "Rendering"
msgstr "Renderização"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr ""
"O conteúdo do modelo é preenchido a partir da fonte remota selecionada "
"abaixo."
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "Deve especificar o conteúdo local ou um arquivo de dados"
@@ -6969,44 +6976,44 @@ msgstr "Regra do evento"
msgid "Conditions"
msgstr "Condições"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "Criações"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "Atualizações"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "Exclusões"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "Execuções de empregos"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "Inquilinos"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "Atribuição"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr "Os dados são preenchidos a partir da fonte remota selecionada abaixo."
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "Deve especificar dados locais ou um arquivo de dados"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "Conteúdo"
@@ -7995,11 +8002,6 @@ msgstr "Fim do trabalho"
msgid "Device Roles"
msgstr "Funções do dispositivo"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "Máquinas virtuais"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -8018,19 +8020,13 @@ msgid "Line"
msgstr "Linha"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "Nível"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "Mensagem"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "Nenhum resultado encontrado"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "Método"
@@ -8404,7 +8400,7 @@ msgstr "Nome DNS"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8653,20 +8649,20 @@ msgstr "Atribuído a uma interface"
msgid "DNS Name"
msgstr "Nome do DNS"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "ID DA VLAN"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "VID mínimo"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "VID máximo"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -9007,9 +9003,9 @@ msgstr "As máscaras de endereço IP inicial e final devem corresponder"
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
msgstr ""
-"O endereço final deve ser menor que o endereço inicial ({start_address})"
+"O endereço final deve ser maior que o endereço inicial ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
@@ -9169,7 +9165,7 @@ msgid "The primary function of this VLAN"
msgstr "A função principal desta VLAN"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLANs"
@@ -9244,7 +9240,7 @@ msgid "Added"
msgstr "Adicionado"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "Prefixos"
@@ -9345,23 +9341,23 @@ msgstr ""
"Somente caracteres alfanuméricos, asteriscos, hífens, pontos e sublinhados "
"são permitidos em nomes DNS"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "Prefixos infantis"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "Intervalos para crianças"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "IPs relacionados"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "Interfaces de dispositivos"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "Interfaces de VM"
@@ -9909,7 +9905,7 @@ msgstr "Virtualização"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "Discos virtuais"
@@ -10031,44 +10027,44 @@ msgid "Admin"
msgstr "Administrador"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "Usuários"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "Grupos"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "Tokens de API"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr "Permissões"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "Sistema"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "Histórico de configuração"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "Tarefas de fundo"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "Plugins"
@@ -10138,47 +10134,55 @@ msgstr "Navegação HTMX"
msgid "Enable dynamic UI navigation"
msgstr "Habilitar navegação dinâmica na interface do usuário"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "Característica experimental"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "Idioma"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
-msgstr "Força a tradução da interface do usuário para o idioma especificado."
+msgid "Forces UI translation to the specified language"
+msgstr "Força a tradução da interface do usuário para o idioma especificado"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "O suporte para tradução foi desativado localmente"
+
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "Comprimento da página"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "O número padrão de objetos a serem exibidos por página"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr "Posicionamento do paginador"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr "Parte inferior"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr "Topo"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "Ambos"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr "Onde os controles do paginador serão exibidos em relação a uma tabela"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "Formato de dados"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr "A sintaxe preferida para exibir dados genéricos na interface"
@@ -10195,31 +10199,31 @@ msgstr "Não é possível adicionar lojas ao registro após a inicialização"
msgid "Cannot delete stores from registry"
msgstr "Não é possível excluir lojas do registro"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "Inglês"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "espanhol"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "francês"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "japonesa"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "portuguesa"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "russa"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "turca"
@@ -10235,11 +10239,16 @@ msgstr "Alternar lista suspensa"
msgid "Error"
msgstr "Erro"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "Não {model_name} encontrado"
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "Campo"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr "Valor"
@@ -10260,7 +10269,7 @@ msgstr "Registro de alterações"
msgid "Journal"
msgstr "Diário"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr "{class_name} deve implementar get_children ()"
@@ -10302,7 +10311,7 @@ msgstr ""
msgid "The complete exception is provided below"
msgstr "A exceção completa é fornecida abaixo"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr "Versão Python"
@@ -10357,7 +10366,7 @@ msgstr "Alterar senha"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "Cancelar"
@@ -10400,7 +10409,7 @@ msgid "Columns"
msgstr "Colunas"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "Nenhum encontrado"
@@ -10448,7 +10457,6 @@ msgstr "Grupos atribuídos"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10584,7 +10592,7 @@ msgstr "Adicionar"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10921,39 +10929,39 @@ msgstr "Exportar"
msgid "System Status"
msgstr "Status do sistema"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "Versão Django"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
+#: templates/core/system.html:43
+msgid "PostgreSQL version"
msgstr "Versão PostgreSQL"
-#: templates/core/system.html:43
+#: templates/core/system.html:47
msgid "Database name"
msgstr "Nome do banco de dados"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "Tamanho do banco de dados"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "Indisponível"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "Trabalhadores de RQ"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "fila padrão"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "Hora do sistema"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "Configuração atual"
@@ -11657,7 +11665,7 @@ msgstr "Adicionar novo membro"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "Ações"
@@ -12000,20 +12008,12 @@ msgstr "dias"
msgid "Indefinite"
msgstr "Indefinido"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "Contexto renderizado"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "Contexto local"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr ""
"O contexto de configuração local substitui todos os contextos de origem"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "Contextos de origem"
@@ -12412,20 +12412,20 @@ msgstr ""
"Antes que você possa adicionar um %(model)s você deve primeiro criar um "
"%(prerequisite_model)s."
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "Seleção de página"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "Mostrando %(start)s-%(end)s do %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "Opções de paginação"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "Por página"
@@ -12487,11 +12487,11 @@ msgstr "Chave de autenticação"
msgid "Virtual IP Addresses"
msgstr "Endereços IP virtuais"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "Atribuir IP"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "Criação em massa"
@@ -12532,11 +12532,11 @@ msgstr "NAT (externo)"
msgid "Assign an IP Address"
msgstr "Atribuir um endereço IP"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "Selecione o endereço IP"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "Resultados da pesquisa"
@@ -12657,11 +12657,11 @@ msgstr "Logotipo da NetBox"
msgid "Errors"
msgstr "Erros"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "Entrar"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "Ou"
@@ -12784,7 +12784,7 @@ msgstr "Permissão"
msgid "View"
msgstr "Visualizar"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "Restrições"
@@ -13264,11 +13264,11 @@ msgstr "Pode mudar"
msgid "Can Delete"
msgstr "Pode excluir"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "Interface de usuário"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -13278,7 +13278,7 @@ msgstr ""
"gravar sua chave antes de enviar este formulário, pois ele pode não"
" estar mais acessível depois que o token for criado."
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13288,31 +13288,31 @@ msgstr ""
"sem restrições. Exemplo: 10.1.1.0/24.192.168.10.16/32, 2001:db 8:1: "
":/64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "Confirme a senha"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr "Digite a mesma senha de antes, para verificação."
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr "As senhas não coincidem! Verifique sua entrada e tente novamente."
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "Ações adicionais"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "Ações concedidas além das listadas acima"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr "Objetos"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13322,11 +13322,11 @@ msgstr ""
"permitidos. Deixe null para corresponder a todos os objetos desse tipo. Uma "
"lista de vários objetos resultará em uma operação OR lógica."
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "Pelo menos uma ação deve ser selecionada."
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Filtro inválido para {model}: {error}"
@@ -13501,12 +13501,7 @@ msgstr ""
msgid "More than 50"
msgstr "Mais de 50"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr ""
-"O conjunto de consultas personalizado não pode ser usado para essa pesquisa."
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13515,7 +13510,7 @@ msgstr ""
"%s(%r) é inválido. O parâmetro to_model para CounterCacheField deve ser uma "
"string no formato 'app.model'"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/translations/ru/LC_MESSAGES/django.mo b/netbox/translations/ru/LC_MESSAGES/django.mo
index eba8b13b1c3..eabb86572c0 100644
Binary files a/netbox/translations/ru/LC_MESSAGES/django.mo and b/netbox/translations/ru/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/ru/LC_MESSAGES/django.po b/netbox/translations/ru/LC_MESSAGES/django.po
index f1da0833416..131d7346750 100644
--- a/netbox/translations/ru/LC_MESSAGES/django.po
+++ b/netbox/translations/ru/LC_MESSAGES/django.po
@@ -11,6 +11,7 @@
# Михаил Башкиров, 2024
# Сергей Стрельцов, 2024
# Artem Kotik, 2024
+# Ivan Petrov, 2024
# Jeremy Stretch, 2024
#
#, fuzzy
@@ -18,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Russian (https://app.transifex.com/netbox-community/teams/178115/ru/)\n"
@@ -30,7 +31,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Ключ"
@@ -62,7 +63,7 @@ msgstr "Последнее использование"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "Разрешенные IP-адреса"
@@ -71,8 +72,8 @@ msgid "Your preferences have been updated."
msgstr "Ваши настройки были обновлены."
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "Запланировано"
@@ -83,7 +84,7 @@ msgstr "Ввод в эксплутацию"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -93,7 +94,7 @@ msgid "Active"
msgstr "Активный"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "Оффлайн"
@@ -167,8 +168,8 @@ msgstr "Группа сайтов (подстрока)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -268,7 +269,7 @@ msgstr "Прекращение действия A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -291,7 +292,7 @@ msgstr "Сеть провайдера (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -455,7 +456,7 @@ msgstr "Цвет"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -505,7 +506,7 @@ msgstr "Аккаунт провайдера"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -521,7 +522,7 @@ msgstr "Аккаунт провайдера"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -565,7 +566,7 @@ msgstr "Статус"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -703,8 +704,8 @@ msgstr "Сеть провайдера"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -743,7 +744,7 @@ msgstr "Контакты"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -763,8 +764,8 @@ msgstr "Регион"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -788,8 +789,8 @@ msgstr "Группа сайтов"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1195,7 +1196,7 @@ msgstr "Завершено"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "Неисправно"
@@ -1263,7 +1264,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "Используется только для клонирования по HTTP (S)"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "Пароль"
@@ -1327,8 +1328,8 @@ msgid "Ignore rules"
msgstr "Правила исключения"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1401,8 +1402,8 @@ msgstr "Завершено до"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "Пользователь"
@@ -1433,7 +1434,7 @@ msgstr "Необходимо загрузить файл или выбрать
msgid "Rack Elevations"
msgstr "Фасады стоек"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1470,7 +1471,7 @@ msgid "User Preferences"
msgstr "Пользовательские настройки"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "Разное"
@@ -1545,7 +1546,7 @@ msgid "type"
msgstr "тип"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1731,7 +1732,7 @@ msgstr "Последнее обновление"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1740,7 +1741,7 @@ msgstr "ID"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1785,7 +1786,7 @@ msgstr "Рабочие"
msgid "Host"
msgstr "Хост"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "Порт"
@@ -1852,7 +1853,7 @@ msgid "Staging"
msgstr "Подготовка к развертыванию"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Вывод из эксплуатации"
@@ -1912,7 +1913,7 @@ msgstr "Выведенный(-ая) из использования"
msgid "Millimeters"
msgstr "Миллиметры"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "Дюймы"
@@ -1987,7 +1988,7 @@ msgstr "Справа налево"
msgid "Side to rear"
msgstr "Бок назад"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "Пассивный"
@@ -2015,8 +2016,8 @@ msgstr "ITA/Международный"
msgid "Proprietary"
msgstr "Проприетарный"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "Другой"
@@ -2029,22 +2030,22 @@ msgstr "ITA/Международный"
msgid "Physical"
msgstr "Физический"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "Виртуальный"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "Беспроводной"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "Виртуальные интерфейсы"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2054,152 +2055,152 @@ msgstr "Виртуальные интерфейсы"
msgid "Bridge"
msgstr "Мост"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "Группа агрегации линков (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "Ethernet (фиксированный)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "Ethernet (модульный)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "Ethernet (объединительная плата)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "Сотовая связь"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "Серийный"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "Коаксиальный"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "Стекирование"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "Полу"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "Полный"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "Авто"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "Доступ"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Тегированный"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "Тегированный (все)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "Стандарт IEEE"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "Пассивный режим 24 В (2 пары)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "Пассивное напряжение 24 В (4 пары)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "Пассивное напряжение 48 В (2 пары)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "Пассивное напряжение 48 В (4 пары)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "Медь"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "Оптоволоконное"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "Волокно"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "Подключено"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "Километры"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "Метры"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "Сантиметры"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "Мили"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "Футы"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "Килограммы"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "Граммы"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "Фунты"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "Унции"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "Основной"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "Резервный"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "Однофазный"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "Трехфазный"
@@ -2570,7 +2571,7 @@ msgstr "L2VPN (ID)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2659,7 +2660,7 @@ msgid "Power panel (ID)"
msgstr "Панель питания (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2748,7 +2749,7 @@ msgstr "Часовой пояс"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2861,7 +2862,7 @@ msgstr "Весовая единица"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -3012,7 +3013,7 @@ msgstr "Платформа"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3212,7 +3213,7 @@ msgid "Mode"
msgstr "Режим"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3409,6 +3410,7 @@ msgstr "Виртуальное шасси"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3832,7 +3834,7 @@ msgstr "Подключение"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "Вид"
@@ -5714,7 +5716,7 @@ msgstr "Доступен"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "Устройства"
@@ -5724,7 +5726,7 @@ msgid "VMs"
msgstr "Виртуальные машины"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5792,8 +5794,8 @@ msgid "Power outlets"
msgstr "Розетки питания"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5801,7 +5803,7 @@ msgstr "Розетки питания"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "Интерфейсы"
@@ -5848,7 +5850,7 @@ msgid "Allocated draw (W)"
msgstr "Выделенная мощность (Вт)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5880,7 +5882,7 @@ msgid "VDCs"
msgstr "Виртуальные контексты устройств(VDCs)"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5923,7 +5925,7 @@ msgid "Module Types"
msgstr "Типы модулей"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "Платформы"
@@ -5944,60 +5946,60 @@ msgstr "Высота U"
msgid "Instances"
msgstr "Инстансы"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "Порты консоли"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "Порты консольного сервера"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "Порты питания"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "Розетки питания"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "Передние порты"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "Задние порты"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "Отсеки для устройств"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -6043,43 +6045,49 @@ msgid "Max Weight"
msgstr "Максимальный вес"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "Сайты"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr ""
"В тестовом примере должно быть установлено значение peer_termination_type"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "Отключен {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "Резервирование"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "Устройства без стоек"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "Контекст конфигурации"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "Конфигурация рендера"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "Виртуальные машины"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "Потомки"
@@ -6248,7 +6256,7 @@ msgstr "30 дней"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "Создайте"
@@ -6324,11 +6332,11 @@ msgid "White"
msgstr "Белый"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Вебхук"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "Сценарий"
@@ -6484,7 +6492,8 @@ msgid "Cluster type (slug)"
msgstr "Тип кластера (подстрока)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "Кластерная группа"
@@ -6502,7 +6511,7 @@ msgstr "Группа тенантов"
msgid "Tenant group (slug)"
msgstr "Группа тенантов (подстрока)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "Тег"
@@ -6621,7 +6630,7 @@ msgstr "Активен"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "Типы объектов"
@@ -6727,9 +6736,8 @@ msgid "Choices"
msgstr "Варианты"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "Данные"
@@ -6772,7 +6780,7 @@ msgstr "Удаление объектов"
msgid "Job starts"
msgstr "Задание начинается"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "Прекращение работы"
@@ -6784,44 +6792,44 @@ msgstr "Тип объекта с тегами"
msgid "Allowed object type"
msgstr "Разрешенный тип объекта"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "Регионы"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "Группы сайтов"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "Локации"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "Типы устройств"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "Роли"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "Типы кластеров"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "Кластерные группы"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "Кластеры"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "Группы тенантов"
@@ -6839,7 +6847,7 @@ msgstr "До"
msgid "Time"
msgstr "Время"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6910,7 +6918,7 @@ msgid ""
msgstr ""
"Код Jinja2 шаблона для URL-адреса. Ссылайтесь на объект как {example}."
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "Код шаблона"
@@ -6922,12 +6930,12 @@ msgstr "Шаблон экспорта"
msgid "Rendering"
msgstr "Рендеринг"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr ""
"Содержимое шаблона заполняется из удаленного источника, выбранного ниже."
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "Необходимо указать локальное содержимое или файл данных"
@@ -6968,44 +6976,44 @@ msgstr "Правило мероприятия"
msgid "Conditions"
msgstr "условия"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "Творения"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "Обновления"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "Удаления"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "Выполнение заданий"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "Тенанты"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "Задание"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr "Данные заполняются из удаленного источника, выбранного ниже."
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "Необходимо указать локальные данные или файл данных"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "Контент"
@@ -7988,11 +7996,6 @@ msgstr "Завершение задания"
msgid "Device Roles"
msgstr "Роли устройств"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "Виртуальные машины"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -8011,19 +8014,13 @@ msgid "Line"
msgstr "Линия"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "Уровень"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "Сообщение"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "Результаты не найдены"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "Метод"
@@ -8393,7 +8390,7 @@ msgstr "DNS-имя"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8642,20 +8639,20 @@ msgstr "Назначено интерфейсу"
msgid "DNS Name"
msgstr "DNS-имя"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "VLAN ID"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "Минимальный VID"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "Максимальное значение VID"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -8996,8 +8993,8 @@ msgstr "Маски начального и конечного IP-адресов
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
-msgstr "Конечный адрес должен быть ниже начального ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
+msgstr "Конечный адрес должен быть больше начального адреса ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
@@ -9155,7 +9152,7 @@ msgid "The primary function of this VLAN"
msgstr "Основная функция этой VLAN"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLAN"
@@ -9231,7 +9228,7 @@ msgid "Added"
msgstr "Добавлено"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "Префиксы"
@@ -9333,23 +9330,23 @@ msgstr ""
"В именах DNS разрешены только буквенно-цифровые символы, звездочки, дефисы, "
"точки и символы подчеркивания"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "Дочерние префиксы"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "Детские диапазоны"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "Связанные IP-адреса"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "Интерфейсы устройств"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "Интерфейсы виртуальных машин"
@@ -9897,7 +9894,7 @@ msgstr "Виртуализация"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "Виртуальные диски"
@@ -10019,44 +10016,44 @@ msgid "Admin"
msgstr "Администратор"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "Пользователи"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "Группы"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "Токены API"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr "Разрешения"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "система"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "История конфигурации"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "Фоновые задачи"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "Плагины"
@@ -10127,48 +10124,56 @@ msgstr "Навигация по HTMX"
msgid "Enable dynamic UI navigation"
msgstr "Включить динамическую навигацию пользовательского интерфейса"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "экспериментальная функция"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "Язык"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
-msgstr "Принудительно переводит пользовательский интерфейс на указанный язык."
+msgid "Forces UI translation to the specified language"
+msgstr "Принудительно переводит пользовательский интерфейс на указанный язык"
+
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "Поддержка перевода отключена локально"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "Длина страницы"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "Количество объектов, отображаемых на странице по умолчанию"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr "Размещение пагинатора"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr "Внизу"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr "Вверху"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "Вверху и внизу"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr ""
"Где элементы управления пагинатором будут отображаться относительно таблицы"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "Формат данных"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr ""
"Предпочтительный синтаксис для отображения общих данных в пользовательском "
@@ -10187,31 +10192,31 @@ msgstr "Невозможно добавить магазины в реестр
msgid "Cannot delete stores from registry"
msgstr "Невозможно удалить магазины из реестра"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "Английский"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "Испанский"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "Французский"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "Японский"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "Португальский"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "Русский"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "Турецкий"
@@ -10227,11 +10232,16 @@ msgstr "Переключить выпадающий список"
msgid "Error"
msgstr "Ошибка"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "Нет {model_name} основать"
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "Поле"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr "Ценность"
@@ -10252,7 +10262,7 @@ msgstr "Журнал изменений"
msgid "Journal"
msgstr "Журнал"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr "{class_name} должен реализовать get_children ()"
@@ -10293,7 +10303,7 @@ msgstr "С вашим запросом возникла проблема. Обр
msgid "The complete exception is provided below"
msgstr "Полное исключение приведено ниже"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr "Версия для Python"
@@ -10348,7 +10358,7 @@ msgstr "Изменить пароль"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "Отменить"
@@ -10391,7 +10401,7 @@ msgid "Columns"
msgstr "Колонны"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "Ничего не найдено"
@@ -10439,7 +10449,6 @@ msgstr "Назначенные группы"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10575,7 +10584,7 @@ msgstr "Добавить"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10912,39 +10921,39 @@ msgstr "Экспорт"
msgid "System Status"
msgstr "Состояние системы"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "Версия для Django"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
+#: templates/core/system.html:43
+msgid "PostgreSQL version"
msgstr "Версия PostgreSQL"
-#: templates/core/system.html:43
+#: templates/core/system.html:47
msgid "Database name"
msgstr "Имя базы данных"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "Размер базы данных"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "Недоступно"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "Работники RQ"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "очередь по умолчанию"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "Системное время"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "Текущая конфигурация"
@@ -11648,7 +11657,7 @@ msgstr "Добавить нового участника"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "Действия"
@@ -11991,19 +12000,11 @@ msgstr "дни"
msgid "Indefinite"
msgstr "Бессрочно"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "Отображаемый контекст"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "Локальный контекст"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr "Локальный контекст конфигурации перезаписывает все исходные контексты"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "Исходные контексты"
@@ -12404,20 +12405,20 @@ msgstr ""
"Прежде чем вы сможете добавить %(model)s вы должны сначала создать "
"%(prerequisite_model)s."
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "Выбор страницы"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "показывая %(start)s-%(end)s из %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "Варианты разбиения на страницы"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "На страницу"
@@ -12479,11 +12480,11 @@ msgstr "Ключ аутентификации"
msgid "Virtual IP Addresses"
msgstr "Виртуальные IP-адреса"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "Назначить IP-адрес"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "Массовое создание"
@@ -12524,11 +12525,11 @@ msgstr "NAT (снаружи)"
msgid "Assign an IP Address"
msgstr "Назначьте IP-адрес"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "Выберите IP-адрес"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "Результаты поиска"
@@ -12649,11 +12650,11 @@ msgstr "Логотип NetBox"
msgid "Errors"
msgstr "Ошибки"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "Войти"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "Или"
@@ -12774,7 +12775,7 @@ msgstr "Разрешение"
msgid "View"
msgstr "Вид"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "Ограничения"
@@ -13079,7 +13080,7 @@ msgstr "Родительская группа арендаторов (ID)"
#: tenancy/filtersets.py:176
msgid "Parent tenant group (slug)"
-msgstr "Родительская группа арендаторов (slug)"
+msgstr "Родительская группа арендаторов (короткая метка)"
#: tenancy/filtersets.py:182 tenancy/filtersets.py:202
msgid "Tenant group (ID)"
@@ -13254,11 +13255,11 @@ msgstr "Может измениться"
msgid "Can Delete"
msgstr "Можно удалить"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "Пользовательский интерфейс"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -13268,7 +13269,7 @@ msgstr ""
"свой ключ до отправки этой формы, так как после создания токена она"
" может быть недоступна."
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13278,33 +13279,33 @@ msgstr ""
"поле пустым, чтобы не было ограничений. Пример: 10.1.1.0/24, "
"192.168.10.16/32, 2001:DB8:1::/64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "Подтвердите пароль"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr "Введите тот же пароль, что и раньше, для проверки."
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Пароли не совпадают! Пожалуйста, проверьте введенные данные и попробуйте "
"снова."
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "Дополнительные действия"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "Действия, предпринятые в дополнение к перечисленным выше"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr "Объекты"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13314,11 +13315,11 @@ msgstr ""
"Оставьте значение null для соответствия всем объектам этого типа. Список из "
"нескольких объектов приведет к логической операции ИЛИ."
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "Должно быть выбрано хотя бы одно действие."
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Неверный фильтр для {model}: {error}"
@@ -13496,11 +13497,7 @@ msgstr ""
msgid "More than 50"
msgstr "Более 50"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr "Настраиваемый набор запросов нельзя использовать для этого поиска."
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13509,7 +13506,7 @@ msgstr ""
"%s(%r) недействителен. Параметр to_model для CounterCacheField должен быть "
"строкой в формате app.model"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/translations/tr/LC_MESSAGES/django.mo b/netbox/translations/tr/LC_MESSAGES/django.mo
index 769ce9292e7..1c548b4d122 100644
Binary files a/netbox/translations/tr/LC_MESSAGES/django.mo and b/netbox/translations/tr/LC_MESSAGES/django.mo differ
diff --git a/netbox/translations/tr/LC_MESSAGES/django.po b/netbox/translations/tr/LC_MESSAGES/django.po
index be4afe1cbaf..ee03173645e 100644
--- a/netbox/translations/tr/LC_MESSAGES/django.po
+++ b/netbox/translations/tr/LC_MESSAGES/django.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-05-06 17:40+0000\n"
+"POT-Creation-Date: 2024-05-14 13:22+0000\n"
"PO-Revision-Date: 2023-10-30 17:48+0000\n"
"Last-Translator: Jeremy Stretch, 2024\n"
"Language-Team: Turkish (https://app.transifex.com/netbox-community/teams/178115/tr/)\n"
@@ -24,7 +24,7 @@ msgstr ""
#: account/tables.py:27 templates/account/token.html:22
#: templates/users/token.html:17 users/forms/bulk_import.py:39
-#: users/forms/model_forms.py:116
+#: users/forms/model_forms.py:113
msgid "Key"
msgstr "Anahtar"
@@ -56,7 +56,7 @@ msgstr "Son Kullanım"
#: account/tables.py:45 templates/account/token.html:55
#: templates/users/token.html:47 users/forms/bulk_edit.py:122
-#: users/forms/model_forms.py:128
+#: users/forms/model_forms.py:125
msgid "Allowed IPs"
msgstr "İzin verilen IP'ler"
@@ -65,8 +65,8 @@ msgid "Your preferences have been updated."
msgstr "Tercihleriniz güncellendi."
#: circuits/choices.py:21 dcim/choices.py:20 dcim/choices.py:102
-#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1425
-#: dcim/choices.py:1501 dcim/choices.py:1551 virtualization/choices.py:20
+#: dcim/choices.py:174 dcim/choices.py:220 dcim/choices.py:1429
+#: dcim/choices.py:1505 dcim/choices.py:1555 virtualization/choices.py:20
#: virtualization/choices.py:45 vpn/choices.py:18
msgid "Planned"
msgstr "Planlanan"
@@ -77,7 +77,7 @@ msgstr "Tedarik"
#: circuits/choices.py:23 core/tables/tasks.py:22 dcim/choices.py:22
#: dcim/choices.py:103 dcim/choices.py:173 dcim/choices.py:219
-#: dcim/choices.py:1500 dcim/choices.py:1550 extras/tables/tables.py:385
+#: dcim/choices.py:1504 dcim/choices.py:1554 extras/tables/tables.py:385
#: ipam/choices.py:31 ipam/choices.py:49 ipam/choices.py:69
#: ipam/choices.py:154 templates/extras/configcontext.html:25
#: templates/users/user.html:37 users/forms/bulk_edit.py:38
@@ -87,7 +87,7 @@ msgid "Active"
msgstr "Aktif"
#: circuits/choices.py:24 dcim/choices.py:172 dcim/choices.py:218
-#: dcim/choices.py:1499 dcim/choices.py:1552 virtualization/choices.py:24
+#: dcim/choices.py:1503 dcim/choices.py:1556 virtualization/choices.py:24
#: virtualization/choices.py:43
msgid "Offline"
msgstr "Çevrim dışı"
@@ -161,8 +161,8 @@ msgstr "Site grubu (kısa ad)"
#: ipam/forms/bulk_edit.py:270 ipam/forms/bulk_edit.py:448
#: ipam/forms/bulk_edit.py:522 ipam/forms/bulk_import.py:170
#: ipam/forms/bulk_import.py:437 ipam/forms/filtersets.py:153
-#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:424
-#: ipam/forms/filtersets.py:477 ipam/forms/model_forms.py:203
+#: ipam/forms/filtersets.py:230 ipam/forms/filtersets.py:425
+#: ipam/forms/filtersets.py:489 ipam/forms/model_forms.py:203
#: ipam/forms/model_forms.py:578 ipam/forms/model_forms.py:673
#: ipam/tables/ip.py:244 ipam/tables/vlans.py:114 ipam/tables/vlans.py:216
#: templates/circuits/inc/circuit_termination.html:32
@@ -262,7 +262,7 @@ msgstr "Fesih A (ID)"
#: ipam/forms/model_forms.py:438 netbox/filtersets.py:275
#: netbox/forms/__init__.py:22 netbox/forms/base.py:165
#: templates/htmx/object_selector.html:28 templates/inc/filter_list.html:45
-#: templates/ipam/ipaddress_assign.html:32 templates/search.html:7
+#: templates/ipam/ipaddress_assign.html:29 templates/search.html:7
#: templates/search.html:26 tenancy/filtersets.py:100 users/filtersets.py:23
#: users/filtersets.py:52 users/filtersets.py:92 users/filtersets.py:140
#: utilities/forms/forms.py:104
@@ -285,7 +285,7 @@ msgstr "Sağlayıcı Ağı (ID)"
#: circuits/forms/model_forms.py:27 circuits/tables/providers.py:33
#: dcim/forms/bulk_edit.py:127 dcim/forms/filtersets.py:188
#: dcim/forms/model_forms.py:122 dcim/tables/sites.py:94
-#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:219
+#: ipam/models/asns.py:126 ipam/tables/asn.py:27 ipam/views.py:218
#: netbox/navigation/menu.py:159 netbox/navigation/menu.py:162
#: templates/circuits/provider.html:23
msgid "ASNs"
@@ -449,7 +449,7 @@ msgstr "Renk"
#: dcim/tables/devices.py:183 dcim/tables/devices.py:815
#: dcim/tables/power.py:77 extras/forms/bulk_import.py:39
#: extras/tables/tables.py:283 extras/tables/tables.py:355
-#: extras/tables/tables.py:473 netbox/tables/tables.py:236
+#: extras/tables/tables.py:473 netbox/tables/tables.py:237
#: templates/circuits/circuit.html:30 templates/core/datasource.html:38
#: templates/dcim/cable.html:15 templates/dcim/consoleport.html:36
#: templates/dcim/consoleserverport.html:36 templates/dcim/frontport.html:36
@@ -499,7 +499,7 @@ msgstr "Sağlayıcı hesabı"
#: 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:209 ipam/forms/filtersets.py:274
-#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:489
+#: ipam/forms/filtersets.py:348 ipam/forms/filtersets.py:501
#: ipam/forms/model_forms.py:457 ipam/tables/ip.py:236 ipam/tables/ip.py:309
#: ipam/tables/ip.py:359 ipam/tables/ip.py:421 ipam/tables/ip.py:448
#: ipam/tables/vlans.py:122 ipam/tables/vlans.py:227
@@ -515,7 +515,7 @@ msgstr "Sağlayıcı hesabı"
#: templates/virtualization/virtualmachine.html:19
#: templates/vpn/tunnel.html:25 templates/wireless/wirelesslan.html:22
#: templates/wireless/wirelesslink.html:17 users/forms/filtersets.py:33
-#: users/forms/model_forms.py:198 virtualization/forms/bulk_edit.py:70
+#: users/forms/model_forms.py:195 virtualization/forms/bulk_edit.py:70
#: virtualization/forms/bulk_edit.py:118
#: virtualization/forms/bulk_import.py:54
#: virtualization/forms/bulk_import.py:80
@@ -559,7 +559,7 @@ msgstr "Durum"
#: ipam/forms/filtersets.py:68 ipam/forms/filtersets.py:100
#: ipam/forms/filtersets.py:120 ipam/forms/filtersets.py:143
#: ipam/forms/filtersets.py:173 ipam/forms/filtersets.py:260
-#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:457
+#: ipam/forms/filtersets.py:303 ipam/forms/filtersets.py:469
#: ipam/tables/ip.py:451 ipam/tables/vlans.py:224
#: templates/circuits/circuit.html:38 templates/dcim/cable.html:23
#: templates/dcim/device.html:78 templates/dcim/location.html:49
@@ -697,8 +697,8 @@ msgstr "Sağlayıcı ağı"
#: dcim/tables/power.py:30 dcim/tables/racks.py:58 dcim/tables/racks.py:143
#: extras/filtersets.py:488 extras/forms/filtersets.py:329
#: ipam/forms/bulk_edit.py:457 ipam/forms/filtersets.py:172
-#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:429
-#: ipam/forms/filtersets.py:455 ipam/forms/model_forms.py:590
+#: ipam/forms/filtersets.py:407 ipam/forms/filtersets.py:430
+#: ipam/forms/filtersets.py:467 ipam/forms/model_forms.py:590
#: templates/dcim/device.html:25 templates/dcim/device_edit.html:30
#: templates/dcim/inc/cable_termination.html:12
#: templates/dcim/location.html:26 templates/dcim/powerpanel.html:26
@@ -737,7 +737,7 @@ msgstr "İletişim"
#: dcim/tables/sites.py:85 extras/filtersets.py:455
#: ipam/forms/bulk_edit.py:206 ipam/forms/bulk_edit.py:438
#: ipam/forms/bulk_edit.py:512 ipam/forms/filtersets.py:216
-#: ipam/forms/filtersets.py:414 ipam/forms/filtersets.py:463
+#: ipam/forms/filtersets.py:415 ipam/forms/filtersets.py:475
#: ipam/forms/model_forms.py:562 templates/dcim/device.html:17
#: templates/dcim/rack.html:16 templates/dcim/rackreservation.html:22
#: templates/dcim/region.html:26 templates/dcim/site.html:30
@@ -757,8 +757,8 @@ msgstr "Bölge"
#: dcim/forms/filtersets.py:1052 dcim/forms/object_create.py:383
#: extras/filtersets.py:472 ipam/forms/bulk_edit.py:211
#: ipam/forms/bulk_edit.py:445 ipam/forms/bulk_edit.py:517
-#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:419
-#: ipam/forms/filtersets.py:468 ipam/forms/model_forms.py:575
+#: ipam/forms/filtersets.py:221 ipam/forms/filtersets.py:420
+#: ipam/forms/filtersets.py:480 ipam/forms/model_forms.py:575
#: virtualization/forms/bulk_edit.py:86 virtualization/forms/filtersets.py:69
#: virtualization/forms/filtersets.py:138
#: virtualization/forms/model_forms.py:98
@@ -782,8 +782,8 @@ msgstr "Site grubu"
#: extras/forms/filtersets.py:450 extras/forms/filtersets.py:488
#: ipam/forms/filtersets.py:99 ipam/forms/filtersets.py:259
#: ipam/forms/filtersets.py:300 ipam/forms/filtersets.py:375
-#: ipam/forms/filtersets.py:456 ipam/forms/filtersets.py:515
-#: ipam/forms/filtersets.py:533 netbox/tables/tables.py:252
+#: ipam/forms/filtersets.py:468 ipam/forms/filtersets.py:527
+#: ipam/forms/filtersets.py:545 netbox/tables/tables.py:253
#: virtualization/forms/filtersets.py:45
#: virtualization/forms/filtersets.py:103
#: virtualization/forms/filtersets.py:194
@@ -1185,7 +1185,7 @@ msgstr "Tamamlandı"
#: core/choices.py:22 core/choices.py:59 core/constants.py:20
#: core/tables/tasks.py:34 dcim/choices.py:176 dcim/choices.py:222
-#: dcim/choices.py:1502 extras/choices.py:226 virtualization/choices.py:47
+#: dcim/choices.py:1506 extras/choices.py:226 virtualization/choices.py:47
msgid "Failed"
msgstr "Başarısız"
@@ -1253,7 +1253,7 @@ msgid "Only used for cloning with HTTP(S)"
msgstr "Yalnızca HTTP (S) ile klonlama için kullanılır"
#: core/data_backends.py:53 templates/account/base.html:17
-#: templates/account/password.html:11 users/forms/model_forms.py:174
+#: templates/account/password.html:11 users/forms/model_forms.py:171
msgid "Password"
msgstr "Şifre"
@@ -1317,8 +1317,8 @@ msgid "Ignore rules"
msgstr "Kuralları yok sayın"
#: core/forms/filtersets.py:27 core/forms/model_forms.py:97
-#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:457
-#: extras/forms/model_forms.py:511 extras/tables/tables.py:154
+#: extras/forms/model_forms.py:174 extras/forms/model_forms.py:454
+#: extras/forms/model_forms.py:508 extras/tables/tables.py:154
#: extras/tables/tables.py:373 extras/tables/tables.py:408
#: templates/core/datasource.html:31
#: templates/dcim/device/render_config.html:18
@@ -1391,8 +1391,8 @@ msgstr "Daha önce tamamlandı"
#: templates/inc/user_menu.html:15 templates/users/token.html:21
#: templates/users/user.html:6 templates/users/user.html:14
#: users/filtersets.py:97 users/filtersets.py:164 users/forms/filtersets.py:85
-#: users/forms/filtersets.py:126 users/forms/model_forms.py:159
-#: users/forms/model_forms.py:196 users/tables.py:19
+#: users/forms/filtersets.py:126 users/forms/model_forms.py:156
+#: users/forms/model_forms.py:193 users/tables.py:19
msgid "User"
msgstr "Kullanıcı"
@@ -1424,7 +1424,7 @@ msgstr ""
msgid "Rack Elevations"
msgstr "Raf Yükseltmeleri"
-#: core/forms/model_forms.py:157 dcim/choices.py:1413
+#: core/forms/model_forms.py:157 dcim/choices.py:1417
#: dcim/forms/bulk_edit.py:867 dcim/forms/bulk_edit.py:1250
#: dcim/forms/bulk_edit.py:1268 dcim/tables/racks.py:89
#: netbox/navigation/menu.py:275 netbox/navigation/menu.py:279
@@ -1461,7 +1461,7 @@ msgid "User Preferences"
msgstr "Kullanıcı Tercihleri"
#: core/forms/model_forms.py:167 dcim/forms/filtersets.py:660
-#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:68
+#: templates/core/inc/config_data.html:127 users/forms/model_forms.py:65
msgid "Miscellaneous"
msgstr "Çeşitli"
@@ -1536,7 +1536,7 @@ msgid "type"
msgstr "türü"
#: core/models/data.py:52 extras/choices.py:37 extras/models/models.py:192
-#: extras/tables/tables.py:582 templates/core/datasource.html:58
+#: extras/tables/tables.py:577 templates/core/datasource.html:58
msgid "URL"
msgstr "URL"
@@ -1721,7 +1721,7 @@ msgstr "Son Güncelleme"
#: core/tables/jobs.py:10 core/tables/tasks.py:76
#: dcim/tables/devicetypes.py:161 extras/tables/tables.py:179
-#: extras/tables/tables.py:350 netbox/tables/tables.py:186
+#: extras/tables/tables.py:350 netbox/tables/tables.py:187
#: templates/dcim/virtualchassis_edit.html:52 utilities/forms/forms.py:73
#: wireless/tables/wirelesslink.py:16
msgid "ID"
@@ -1730,7 +1730,7 @@ msgstr "KİMLİK"
#: core/tables/jobs.py:21 extras/choices.py:41 extras/tables/tables.py:241
#: extras/tables/tables.py:287 extras/tables/tables.py:360
#: extras/tables/tables.py:478 extras/tables/tables.py:509
-#: extras/tables/tables.py:579 netbox/tables/tables.py:240
+#: extras/tables/tables.py:574 netbox/tables/tables.py:241
#: templates/extras/eventrule.html:84 templates/extras/journalentry.html:18
#: templates/extras/objectchange.html:57 tenancy/tables/contacts.py:93
#: vpn/tables/l2vpn.py:64
@@ -1775,7 +1775,7 @@ msgstr "İşçiler"
msgid "Host"
msgstr "Ana bilgisayar"
-#: core/tables/tasks.py:50 ipam/forms/filtersets.py:523
+#: core/tables/tasks.py:50 ipam/forms/filtersets.py:535
msgid "Port"
msgstr "Liman"
@@ -1842,7 +1842,7 @@ msgid "Staging"
msgstr "Sahneleme"
#: dcim/choices.py:23 dcim/choices.py:178 dcim/choices.py:223
-#: dcim/choices.py:1426 virtualization/choices.py:23
+#: dcim/choices.py:1430 virtualization/choices.py:23
#: virtualization/choices.py:48
msgid "Decommissioning"
msgstr "Hizmetten çıkarma"
@@ -1902,7 +1902,7 @@ msgstr "Kullanımdan kaldırıldı"
msgid "Millimeters"
msgstr "Milimetre"
-#: dcim/choices.py:115 dcim/choices.py:1448
+#: dcim/choices.py:115 dcim/choices.py:1452
msgid "Inches"
msgstr "İnç"
@@ -1977,7 +1977,7 @@ msgstr "Sağdan sola"
msgid "Side to rear"
msgstr "Yandan arkaya"
-#: dcim/choices.py:198 dcim/choices.py:1221
+#: dcim/choices.py:198 dcim/choices.py:1225
msgid "Passive"
msgstr "Pasif"
@@ -2005,8 +2005,8 @@ msgstr "Uluslararası/ITA"
msgid "Proprietary"
msgstr "Tescilli"
-#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1137
-#: dcim/choices.py:1139 dcim/choices.py:1344 dcim/choices.py:1346
+#: dcim/choices.py:534 dcim/choices.py:764 dcim/choices.py:1141
+#: dcim/choices.py:1143 dcim/choices.py:1348 dcim/choices.py:1350
#: netbox/navigation/menu.py:187
msgid "Other"
msgstr "Diğer"
@@ -2019,22 +2019,22 @@ msgstr "ITA/Uluslararası"
msgid "Physical"
msgstr "Fiziksel"
-#: dcim/choices.py:795 dcim/choices.py:952
+#: dcim/choices.py:795 dcim/choices.py:954
msgid "Virtual"
msgstr "Sanal"
-#: dcim/choices.py:796 dcim/choices.py:1022 dcim/forms/bulk_edit.py:1408
+#: dcim/choices.py:796 dcim/choices.py:1026 dcim/forms/bulk_edit.py:1408
#: dcim/forms/filtersets.py:1231 dcim/forms/model_forms.py:933
#: dcim/forms/model_forms.py:1341 netbox/navigation/menu.py:127
#: netbox/navigation/menu.py:131 templates/dcim/interface.html:210
msgid "Wireless"
msgstr "Kablosuz"
-#: dcim/choices.py:950
+#: dcim/choices.py:952
msgid "Virtual interfaces"
msgstr "Sanal arayüzler"
-#: dcim/choices.py:953 dcim/forms/bulk_edit.py:1303
+#: dcim/choices.py:955 dcim/forms/bulk_edit.py:1303
#: dcim/forms/bulk_import.py:785 dcim/forms/model_forms.py:919
#: dcim/tables/devices.py:656 templates/dcim/interface.html:106
#: templates/virtualization/vminterface.html:43
@@ -2044,152 +2044,152 @@ msgstr "Sanal arayüzler"
msgid "Bridge"
msgstr "Köprü"
-#: dcim/choices.py:954
+#: dcim/choices.py:956
msgid "Link Aggregation Group (LAG)"
msgstr "Bağlantı Toplama Grubu (LAG)"
-#: dcim/choices.py:958
+#: dcim/choices.py:960
msgid "Ethernet (fixed)"
msgstr "Ethernet (sabit)"
-#: dcim/choices.py:972
+#: dcim/choices.py:974
msgid "Ethernet (modular)"
msgstr "Ethernet (modüler)"
-#: dcim/choices.py:1008
+#: dcim/choices.py:1010
msgid "Ethernet (backplane)"
msgstr "Ethernet (arka panel)"
-#: dcim/choices.py:1036
+#: dcim/choices.py:1040
msgid "Cellular"
msgstr "Hücresel"
-#: dcim/choices.py:1086 dcim/forms/filtersets.py:303
+#: dcim/choices.py:1090 dcim/forms/filtersets.py:303
#: dcim/forms/filtersets.py:737 dcim/forms/filtersets.py:874
#: dcim/forms/filtersets.py:1426 templates/dcim/inventoryitem.html:52
#: templates/dcim/virtualchassis_edit.html:54
msgid "Serial"
msgstr "Seri"
-#: dcim/choices.py:1101
+#: dcim/choices.py:1105
msgid "Coaxial"
msgstr "Koaksiyel"
-#: dcim/choices.py:1118
+#: dcim/choices.py:1122
msgid "Stacking"
msgstr "İstifleme"
-#: dcim/choices.py:1168
+#: dcim/choices.py:1172
msgid "Half"
msgstr "Yarım"
-#: dcim/choices.py:1169
+#: dcim/choices.py:1173
msgid "Full"
msgstr "Dolu"
-#: dcim/choices.py:1170 netbox/preferences.py:31 wireless/choices.py:480
+#: dcim/choices.py:1174 netbox/preferences.py:31 wireless/choices.py:480
msgid "Auto"
msgstr "Oto"
-#: dcim/choices.py:1181
+#: dcim/choices.py:1185
msgid "Access"
msgstr "Erişim"
-#: dcim/choices.py:1182 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
+#: dcim/choices.py:1186 ipam/tables/vlans.py:168 ipam/tables/vlans.py:213
#: templates/dcim/inc/interface_vlans_table.html:7
msgid "Tagged"
msgstr "Etiketlenmiş"
-#: dcim/choices.py:1183
+#: dcim/choices.py:1187
msgid "Tagged (All)"
msgstr "Etiketlenmiş (Tümü)"
-#: dcim/choices.py:1212
+#: dcim/choices.py:1216
msgid "IEEE Standard"
msgstr "IEEE Standardı"
-#: dcim/choices.py:1223
+#: dcim/choices.py:1227
msgid "Passive 24V (2-pair)"
msgstr "Pasif 24V (2 çift)"
-#: dcim/choices.py:1224
+#: dcim/choices.py:1228
msgid "Passive 24V (4-pair)"
msgstr "Pasif 24V (4 çift)"
-#: dcim/choices.py:1225
+#: dcim/choices.py:1229
msgid "Passive 48V (2-pair)"
msgstr "Pasif 48V (2 çift)"
-#: dcim/choices.py:1226
+#: dcim/choices.py:1230
msgid "Passive 48V (4-pair)"
msgstr "Pasif 48V (4 çift)"
-#: dcim/choices.py:1288 dcim/choices.py:1384
+#: dcim/choices.py:1292 dcim/choices.py:1388
msgid "Copper"
msgstr "Bakır"
-#: dcim/choices.py:1311
+#: dcim/choices.py:1315
msgid "Fiber Optic"
msgstr "Fiber Optik"
-#: dcim/choices.py:1400
+#: dcim/choices.py:1404
msgid "Fiber"
msgstr "Elyaf"
-#: dcim/choices.py:1424 dcim/forms/filtersets.py:1138
+#: dcim/choices.py:1428 dcim/forms/filtersets.py:1138
msgid "Connected"
msgstr "Bağlı"
-#: dcim/choices.py:1443
+#: dcim/choices.py:1447
msgid "Kilometers"
msgstr "Kilometre"
-#: dcim/choices.py:1444 templates/dcim/cable_trace.html:65
+#: dcim/choices.py:1448 templates/dcim/cable_trace.html:65
msgid "Meters"
msgstr "Sayaçlar"
-#: dcim/choices.py:1445
+#: dcim/choices.py:1449
msgid "Centimeters"
msgstr "Santimetre"
-#: dcim/choices.py:1446
+#: dcim/choices.py:1450
msgid "Miles"
msgstr "Mil"
-#: dcim/choices.py:1447 templates/dcim/cable_trace.html:66
+#: dcim/choices.py:1451 templates/dcim/cable_trace.html:66
msgid "Feet"
msgstr "Ayaklar"
-#: dcim/choices.py:1463 templates/dcim/device.html:319
+#: dcim/choices.py:1467 templates/dcim/device.html:319
#: templates/dcim/rack.html:152
msgid "Kilograms"
msgstr "Kilogram"
-#: dcim/choices.py:1464
+#: dcim/choices.py:1468
msgid "Grams"
msgstr "Gramlar"
-#: dcim/choices.py:1465 templates/dcim/rack.html:153
+#: dcim/choices.py:1469 templates/dcim/rack.html:153
msgid "Pounds"
msgstr "Pound'lar"
-#: dcim/choices.py:1466
+#: dcim/choices.py:1470
msgid "Ounces"
msgstr "ons"
-#: dcim/choices.py:1512 tenancy/choices.py:17
+#: dcim/choices.py:1516 tenancy/choices.py:17
msgid "Primary"
msgstr "Birincil"
-#: dcim/choices.py:1513
+#: dcim/choices.py:1517
msgid "Redundant"
msgstr "Yedekli"
-#: dcim/choices.py:1534
+#: dcim/choices.py:1538
msgid "Single phase"
msgstr "Tek fazlı"
-#: dcim/choices.py:1535
+#: dcim/choices.py:1539
msgid "Three-phase"
msgstr "Üç fazlı"
@@ -2560,7 +2560,7 @@ msgstr "L2VPN (KİMLİĞİ)"
#: dcim/filtersets.py:1553 dcim/forms/filtersets.py:1331
#: dcim/tables/devices.py:566 ipam/filtersets.py:1022
-#: ipam/forms/filtersets.py:506 ipam/tables/vlans.py:133
+#: ipam/forms/filtersets.py:518 ipam/tables/vlans.py:133
#: templates/dcim/interface.html:93 templates/ipam/vlan.html:66
#: templates/vpn/l2vpntermination.html:12
#: virtualization/forms/filtersets.py:229 vpn/forms/bulk_import.py:280
@@ -2649,7 +2649,7 @@ msgid "Power panel (ID)"
msgstr "Güç paneli (ID)"
#: dcim/forms/bulk_create.py:40 extras/forms/filtersets.py:410
-#: extras/forms/model_forms.py:446 extras/forms/model_forms.py:498
+#: extras/forms/model_forms.py:443 extras/forms/model_forms.py:495
#: netbox/forms/base.py:84 netbox/forms/mixins.py:81
#: netbox/tables/columns.py:458
#: templates/circuits/inc/circuit_termination.html:118
@@ -2738,7 +2738,7 @@ msgstr "Saat dilimi"
#: 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:236 ipam/forms/filtersets.py:282
-#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:497
+#: ipam/forms/filtersets.py:353 ipam/forms/filtersets.py:509
#: ipam/forms/model_forms.py:186 ipam/forms/model_forms.py:219
#: ipam/forms/model_forms.py:248 ipam/forms/model_forms.py:680
#: ipam/tables/ip.py:257 ipam/tables/ip.py:313 ipam/tables/ip.py:363
@@ -2851,7 +2851,7 @@ msgstr "Ağırlık birimi"
#: dcim/forms/model_forms.py:422 dcim/forms/model_forms.py:700
#: dcim/forms/object_create.py:400 dcim/tables/devices.py:166
#: dcim/tables/power.py:70 dcim/tables/racks.py:148
-#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:434
+#: ipam/forms/bulk_edit.py:465 ipam/forms/filtersets.py:435
#: ipam/forms/model_forms.py:601 templates/dcim/device.html:29
#: templates/dcim/inc/cable_termination.html:16
#: templates/dcim/powerfeed.html:28 templates/dcim/rack.html:13
@@ -3002,7 +3002,7 @@ msgstr "Platform"
#: dcim/tables/devices.py:862 dcim/tables/devices.py:914
#: dcim/tables/devices.py:1040 dcim/tables/modules.py:52
#: extras/forms/filtersets.py:330 ipam/forms/bulk_import.py:303
-#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:539
+#: ipam/forms/bulk_import.py:489 ipam/forms/filtersets.py:551
#: ipam/forms/model_forms.py:317 ipam/forms/model_forms.py:716
#: ipam/forms/model_forms.py:749 ipam/forms/model_forms.py:775
#: ipam/tables/vlans.py:176 templates/dcim/consoleport.html:20
@@ -3202,7 +3202,7 @@ msgid "Mode"
msgstr "Modu"
#: dcim/forms/bulk_edit.py:1361 dcim/forms/model_forms.py:1299
-#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:486
+#: ipam/forms/bulk_import.py:177 ipam/forms/filtersets.py:498
#: ipam/models/vlans.py:84 virtualization/forms/bulk_edit.py:240
#: virtualization/forms/model_forms.py:321
msgid "VLAN group"
@@ -3399,6 +3399,7 @@ msgstr "Sanal şasi"
#: dcim/forms/bulk_import.py:462 dcim/forms/model_forms.py:465
#: dcim/tables/devices.py:207 extras/filtersets.py:548
#: extras/forms/filtersets.py:331 ipam/forms/bulk_edit.py:479
+#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:452
#: ipam/forms/model_forms.py:618 templates/dcim/device.html:231
#: templates/virtualization/cluster.html:10
#: templates/virtualization/virtualmachine.html:88
@@ -3820,7 +3821,7 @@ msgstr "Bağlantı"
#: dcim/forms/filtersets.py:1246 extras/forms/bulk_edit.py:316
#: extras/forms/bulk_import.py:242 extras/forms/filtersets.py:476
-#: extras/forms/model_forms.py:554 extras/tables/tables.py:512
+#: extras/forms/model_forms.py:551 extras/tables/tables.py:512
#: templates/extras/journalentry.html:30
msgid "Kind"
msgstr "Tür"
@@ -5658,7 +5659,7 @@ msgstr "Ulaşılabilir"
#: extras/tables/tables.py:435 netbox/navigation/menu.py:56
#: netbox/navigation/menu.py:60 netbox/navigation/menu.py:62
#: virtualization/forms/model_forms.py:122
-#: virtualization/tables/clusters.py:83 virtualization/views.py:211
+#: virtualization/tables/clusters.py:83 virtualization/views.py:210
msgid "Devices"
msgstr "Aygıtlar"
@@ -5668,7 +5669,7 @@ msgid "VMs"
msgstr "Sanal Makineler"
#: dcim/tables/devices.py:105 dcim/tables/devices.py:221
-#: extras/forms/model_forms.py:509 templates/dcim/device.html:111
+#: extras/forms/model_forms.py:506 templates/dcim/device.html:111
#: templates/dcim/device/render_config.html:11
#: templates/dcim/device/render_config.html:14
#: templates/dcim/devicerole.html:44 templates/dcim/platform.html:41
@@ -5736,8 +5737,8 @@ msgid "Power outlets"
msgstr "Elektrik prizleri"
#: dcim/tables/devices.py:251 dcim/tables/devices.py:1064
-#: dcim/tables/devicetypes.py:125 dcim/views.py:1004 dcim/views.py:1243
-#: dcim/views.py:1929 netbox/navigation/menu.py:81
+#: dcim/tables/devicetypes.py:125 dcim/views.py:1006 dcim/views.py:1245
+#: dcim/views.py:1931 netbox/navigation/menu.py:81
#: netbox/navigation/menu.py:237 templates/dcim/device/base.html:37
#: templates/dcim/device_list.html:43 templates/dcim/devicetype/base.html:34
#: templates/dcim/module.html:34 templates/dcim/moduletype/base.html:34
@@ -5745,7 +5746,7 @@ msgstr "Elektrik prizleri"
#: templates/dcim/virtualdevicecontext.html:81
#: templates/virtualization/virtualmachine/base.html:27
#: templates/virtualization/virtualmachine_list.html:14
-#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:368
+#: virtualization/tables/virtualmachines.py:100 virtualization/views.py:367
#: wireless/tables/wirelesslan.py:55
msgid "Interfaces"
msgstr "Arayüzler"
@@ -5792,7 +5793,7 @@ msgid "Allocated draw (W)"
msgstr "Tahsis edilen çekiliş (W)"
#: dcim/tables/devices.py:554 ipam/forms/model_forms.py:738
-#: ipam/tables/fhrp.py:28 ipam/views.py:597 ipam/views.py:691
+#: ipam/tables/fhrp.py:28 ipam/views.py:596 ipam/views.py:690
#: netbox/navigation/menu.py:145 netbox/navigation/menu.py:147
#: templates/dcim/interface.html:339 templates/ipam/ipaddress_bulk_add.html:15
#: templates/ipam/service.html:40 templates/virtualization/vminterface.html:85
@@ -5824,7 +5825,7 @@ msgid "VDCs"
msgstr "VDC'ler"
#: dcim/tables/devices.py:623 dcim/tables/devicetypes.py:48
-#: dcim/tables/devicetypes.py:140 dcim/views.py:1079 dcim/views.py:2022
+#: dcim/tables/devicetypes.py:140 dcim/views.py:1081 dcim/views.py:2024
#: netbox/navigation/menu.py:90 templates/dcim/device/base.html:52
#: templates/dcim/device_list.html:71 templates/dcim/devicetype/base.html:49
#: templates/dcim/inc/panels/inventory_items.html:6
@@ -5867,7 +5868,7 @@ msgid "Module Types"
msgstr "Modül Çeşitleri"
#: dcim/tables/devicetypes.py:53 extras/forms/filtersets.py:380
-#: extras/forms/model_forms.py:416 extras/tables/tables.py:430
+#: extras/forms/model_forms.py:413 extras/tables/tables.py:430
#: netbox/navigation/menu.py:65
msgid "Platforms"
msgstr "Platformlar"
@@ -5888,60 +5889,60 @@ msgstr "U Yüksekliği"
msgid "Instances"
msgstr "Örnekler"
-#: dcim/tables/devicetypes.py:113 dcim/views.py:944 dcim/views.py:1183
-#: dcim/views.py:1869 netbox/navigation/menu.py:84
+#: dcim/tables/devicetypes.py:113 dcim/views.py:946 dcim/views.py:1185
+#: dcim/views.py:1871 netbox/navigation/menu.py:84
#: templates/dcim/device/base.html:25 templates/dcim/device_list.html:15
#: templates/dcim/devicetype/base.html:22 templates/dcim/module.html:22
#: templates/dcim/moduletype/base.html:22
msgid "Console Ports"
msgstr "Konsol Bağlantı Noktaları"
-#: dcim/tables/devicetypes.py:116 dcim/views.py:959 dcim/views.py:1198
-#: dcim/views.py:1884 netbox/navigation/menu.py:85
+#: dcim/tables/devicetypes.py:116 dcim/views.py:961 dcim/views.py:1200
+#: dcim/views.py:1886 netbox/navigation/menu.py:85
#: templates/dcim/device/base.html:28 templates/dcim/device_list.html:22
#: templates/dcim/devicetype/base.html:25 templates/dcim/module.html:25
#: templates/dcim/moduletype/base.html:25
msgid "Console Server Ports"
msgstr "Konsol Sunucusu Bağlantı Noktaları"
-#: dcim/tables/devicetypes.py:119 dcim/views.py:974 dcim/views.py:1213
-#: dcim/views.py:1899 netbox/navigation/menu.py:86
+#: dcim/tables/devicetypes.py:119 dcim/views.py:976 dcim/views.py:1215
+#: dcim/views.py:1901 netbox/navigation/menu.py:86
#: templates/dcim/device/base.html:31 templates/dcim/device_list.html:29
#: templates/dcim/devicetype/base.html:28 templates/dcim/module.html:28
#: templates/dcim/moduletype/base.html:28
msgid "Power Ports"
msgstr "Güç Bağlantı Noktaları"
-#: dcim/tables/devicetypes.py:122 dcim/views.py:989 dcim/views.py:1228
-#: dcim/views.py:1914 netbox/navigation/menu.py:87
+#: dcim/tables/devicetypes.py:122 dcim/views.py:991 dcim/views.py:1230
+#: dcim/views.py:1916 netbox/navigation/menu.py:87
#: templates/dcim/device/base.html:34 templates/dcim/device_list.html:36
#: templates/dcim/devicetype/base.html:31 templates/dcim/module.html:31
#: templates/dcim/moduletype/base.html:31
msgid "Power Outlets"
msgstr "Elektrik Prizleri"
-#: dcim/tables/devicetypes.py:128 dcim/views.py:1019 dcim/views.py:1258
-#: dcim/views.py:1950 netbox/navigation/menu.py:82
+#: dcim/tables/devicetypes.py:128 dcim/views.py:1021 dcim/views.py:1260
+#: dcim/views.py:1952 netbox/navigation/menu.py:82
#: templates/dcim/device/base.html:40 templates/dcim/devicetype/base.html:37
#: templates/dcim/module.html:37 templates/dcim/moduletype/base.html:37
msgid "Front Ports"
msgstr "Ön Bağlantı Noktaları"
-#: dcim/tables/devicetypes.py:131 dcim/views.py:1034 dcim/views.py:1273
-#: dcim/views.py:1965 netbox/navigation/menu.py:83
+#: dcim/tables/devicetypes.py:131 dcim/views.py:1036 dcim/views.py:1275
+#: dcim/views.py:1967 netbox/navigation/menu.py:83
#: templates/dcim/device/base.html:43 templates/dcim/device_list.html:50
#: templates/dcim/devicetype/base.html:40 templates/dcim/module.html:40
#: templates/dcim/moduletype/base.html:40
msgid "Rear Ports"
msgstr "Arka Bağlantı Noktaları"
-#: dcim/tables/devicetypes.py:134 dcim/views.py:1064 dcim/views.py:2003
+#: dcim/tables/devicetypes.py:134 dcim/views.py:1066 dcim/views.py:2005
#: netbox/navigation/menu.py:89 templates/dcim/device/base.html:49
#: templates/dcim/device_list.html:57 templates/dcim/devicetype/base.html:46
msgid "Device Bays"
msgstr "Aygıt Yuvaları"
-#: dcim/tables/devicetypes.py:137 dcim/views.py:1049 dcim/views.py:1984
+#: dcim/tables/devicetypes.py:137 dcim/views.py:1051 dcim/views.py:1986
#: netbox/navigation/menu.py:88 templates/dcim/device/base.html:46
#: templates/dcim/device_list.html:64 templates/dcim/devicetype/base.html:43
msgid "Module Bays"
@@ -5987,42 +5988,48 @@ msgid "Max Weight"
msgstr "Maksimum Ağırlık"
#: dcim/tables/sites.py:30 dcim/tables/sites.py:57
-#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:396
+#: extras/forms/filtersets.py:360 extras/forms/model_forms.py:393
#: ipam/forms/bulk_edit.py:129 ipam/forms/model_forms.py:151
#: ipam/tables/asn.py:66 netbox/navigation/menu.py:15
#: netbox/navigation/menu.py:17
msgid "Sites"
msgstr "Siteler"
-#: dcim/tests/test_api.py:49
+#: dcim/tests/test_api.py:50
msgid "Test case must set peer_termination_type"
msgstr "Test senaryosu peer_termination_type ayarlamalıdır"
-#: dcim/views.py:135
+#: dcim/views.py:137
#, python-brace-format
msgid "Disconnected {count} {type}"
msgstr "Bağlantısı kesildi {count} {type}"
-#: dcim/views.py:696 netbox/navigation/menu.py:28
+#: dcim/views.py:698 netbox/navigation/menu.py:28
msgid "Reservations"
msgstr "Rezervasyon"
-#: dcim/views.py:714 templates/dcim/location.html:90
+#: dcim/views.py:716 templates/dcim/location.html:90
#: templates/dcim/site.html:139
msgid "Non-Racked Devices"
msgstr "Raf Olmayan Cihazlar"
-#: dcim/views.py:2035 extras/forms/model_forms.py:456
+#: dcim/views.py:2037 extras/forms/model_forms.py:453
#: templates/extras/configcontext.html:10
-#: virtualization/forms/model_forms.py:225 virtualization/views.py:408
+#: virtualization/forms/model_forms.py:225 virtualization/views.py:407
msgid "Config Context"
msgstr "Yapılandırma Bağlamı"
-#: dcim/views.py:2045 virtualization/views.py:418
+#: dcim/views.py:2047 virtualization/views.py:417
msgid "Render Config"
msgstr "Oluştur Yapılandırması"
-#: dcim/views.py:2970 ipam/tables/ip.py:233
+#: dcim/views.py:2097 extras/tables/tables.py:440
+#: netbox/navigation/menu.py:234 netbox/navigation/menu.py:236
+#: virtualization/views.py:185
+msgid "Virtual Machines"
+msgstr "Sanal Makineler"
+
+#: dcim/views.py:2989 ipam/tables/ip.py:233
msgid "Children"
msgstr "Çocuklar"
@@ -6191,7 +6198,7 @@ msgstr "30 gün"
#: templates/extras/eventrule.html:40
#: templates/generic/bulk_add_component.html:68
#: templates/generic/object_edit.html:47 templates/generic/object_edit.html:80
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
msgid "Create"
msgstr "Oluştur"
@@ -6267,11 +6274,11 @@ msgid "White"
msgstr "Beyaz"
#: extras/choices.py:320 extras/forms/model_forms.py:242
-#: extras/forms/model_forms.py:327 templates/extras/webhook.html:10
+#: extras/forms/model_forms.py:324 templates/extras/webhook.html:10
msgid "Webhook"
msgstr "Web kancası"
-#: extras/choices.py:321 extras/forms/model_forms.py:315
+#: extras/choices.py:321 extras/forms/model_forms.py:312
#: templates/extras/script/base.html:29
msgid "Script"
msgstr "Senaryo"
@@ -6424,7 +6431,8 @@ msgid "Cluster type (slug)"
msgstr "Küme tipi (kısa ad)"
#: extras/filtersets.py:537 ipam/forms/bulk_edit.py:476
-#: ipam/forms/model_forms.py:615 virtualization/forms/filtersets.py:112
+#: ipam/forms/filtersets.py:457 ipam/forms/model_forms.py:615
+#: virtualization/forms/filtersets.py:112
msgid "Cluster group"
msgstr "Küme grubu"
@@ -6442,7 +6450,7 @@ msgstr "Kiracı grubu"
msgid "Tenant group (slug)"
msgstr "Kiracı grubu (kısa ad)"
-#: extras/filtersets.py:575 extras/forms/model_forms.py:374
+#: extras/filtersets.py:575 extras/forms/model_forms.py:371
#: templates/extras/tag.html:11
msgid "Tag"
msgstr "etiket"
@@ -6561,7 +6569,7 @@ msgstr "Aktif"
#: extras/forms/filtersets.py:202 extras/forms/model_forms.py:43
#: extras/forms/model_forms.py:131 extras/forms/model_forms.py:163
#: extras/forms/model_forms.py:204 extras/forms/model_forms.py:261
-#: extras/forms/model_forms.py:368 users/forms/model_forms.py:276
+#: extras/forms/model_forms.py:365 users/forms/model_forms.py:273
msgid "Object types"
msgstr "Nesne türleri"
@@ -6664,9 +6672,8 @@ msgid "Choices"
msgstr "Seçenekler"
#: extras/forms/filtersets.py:142 extras/forms/filtersets.py:328
-#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:451
-#: templates/core/job.html:78 templates/extras/configcontext.html:82
-#: templates/extras/eventrule.html:90
+#: extras/forms/filtersets.py:417 extras/forms/model_forms.py:448
+#: templates/core/job.html:78 templates/extras/eventrule.html:90
msgid "Data"
msgstr "Veriler"
@@ -6709,7 +6716,7 @@ msgstr "Nesne silme"
msgid "Job starts"
msgstr "İş başlıyor"
-#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:300
+#: extras/forms/filtersets.py:307 extras/forms/model_forms.py:297
msgid "Job terminations"
msgstr "İş sonlandırmaları"
@@ -6721,44 +6728,44 @@ msgstr "Etiketli nesne türü"
msgid "Allowed object type"
msgstr "İzin verilen nesne türü"
-#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:386
+#: extras/forms/filtersets.py:350 extras/forms/model_forms.py:383
#: netbox/navigation/menu.py:18
msgid "Regions"
msgstr "Bölgeler"
-#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:391
+#: extras/forms/filtersets.py:355 extras/forms/model_forms.py:388
msgid "Site groups"
msgstr "Site grupları"
-#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:401
+#: extras/forms/filtersets.py:365 extras/forms/model_forms.py:398
#: netbox/navigation/menu.py:20 templates/dcim/site.html:126
msgid "Locations"
msgstr "Konumlar"
-#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:406
+#: extras/forms/filtersets.py:370 extras/forms/model_forms.py:403
msgid "Device types"
msgstr "Aygıt türleri"
-#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:411
+#: extras/forms/filtersets.py:375 extras/forms/model_forms.py:408
msgid "Roles"
msgstr "Roller"
-#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:421
+#: extras/forms/filtersets.py:385 extras/forms/model_forms.py:418
msgid "Cluster types"
msgstr "Küme türleri"
-#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:426
+#: extras/forms/filtersets.py:390 extras/forms/model_forms.py:423
msgid "Cluster groups"
msgstr "Küme grupları"
-#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:431
+#: extras/forms/filtersets.py:395 extras/forms/model_forms.py:428
#: netbox/navigation/menu.py:242 netbox/navigation/menu.py:244
#: templates/virtualization/clustertype.html:30
#: virtualization/tables/clusters.py:23 virtualization/tables/clusters.py:45
msgid "Clusters"
msgstr "Kümeler"
-#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:436
+#: extras/forms/filtersets.py:400 extras/forms/model_forms.py:433
msgid "Tenant groups"
msgstr "Kiracı grupları"
@@ -6776,7 +6783,7 @@ msgstr "Önce"
msgid "Time"
msgstr "Zaman"
-#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:284
+#: extras/forms/filtersets.py:501 extras/forms/model_forms.py:282
#: extras/tables/tables.py:470 templates/extras/eventrule.html:77
#: templates/extras/objectchange.html:45
msgid "Action"
@@ -6847,7 +6854,7 @@ msgstr ""
"Bağlantı metni için Jinja2 şablon kodu. Nesneyi {example} şeklinde referans "
"alabilirsiniz. "
-#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:503
+#: extras/forms/model_forms.py:167 extras/forms/model_forms.py:500
msgid "Template code"
msgstr "Şablon kodu"
@@ -6859,11 +6866,11 @@ msgstr "Dışa Aktar Şablonu"
msgid "Rendering"
msgstr "Oluşturma"
-#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:528
+#: extras/forms/model_forms.py:189 extras/forms/model_forms.py:525
msgid "Template content is populated from the remote source selected below."
msgstr "Şablon içeriği aşağıda seçilen uzak kaynaktan doldurulur."
-#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:535
+#: extras/forms/model_forms.py:196 extras/forms/model_forms.py:532
msgid "Must specify either local content or a data file"
msgstr "Yerel içerik veya veri dosyası belirtmelidir"
@@ -6904,44 +6911,44 @@ msgstr "Etkinlik Kuralı"
msgid "Conditions"
msgstr "Koşullar"
-#: extras/forms/model_forms.py:296
+#: extras/forms/model_forms.py:293
msgid "Creations"
msgstr "Kreasyonlar"
-#: extras/forms/model_forms.py:297
+#: extras/forms/model_forms.py:294
msgid "Updates"
msgstr "Güncellemeler"
-#: extras/forms/model_forms.py:298
+#: extras/forms/model_forms.py:295
msgid "Deletions"
msgstr "Silme"
-#: extras/forms/model_forms.py:299
+#: extras/forms/model_forms.py:296
msgid "Job executions"
msgstr "İş yürütmeleri"
-#: extras/forms/model_forms.py:441 netbox/navigation/menu.py:39
+#: extras/forms/model_forms.py:438 netbox/navigation/menu.py:39
#: tenancy/tables/tenants.py:22
msgid "Tenants"
msgstr "Kiracılar"
-#: extras/forms/model_forms.py:461 ipam/forms/filtersets.py:142
-#: ipam/forms/filtersets.py:534 ipam/forms/model_forms.py:321
+#: extras/forms/model_forms.py:458 ipam/forms/filtersets.py:142
+#: ipam/forms/filtersets.py:546 ipam/forms/model_forms.py:321
#: templates/extras/configcontext.html:60 templates/ipam/ipaddress.html:59
#: templates/ipam/vlan_edit.html:30 tenancy/forms/filtersets.py:87
-#: users/forms/model_forms.py:314
+#: users/forms/model_forms.py:311
msgid "Assignment"
msgstr "Ödev"
-#: extras/forms/model_forms.py:485
+#: extras/forms/model_forms.py:482
msgid "Data is populated from the remote source selected below."
msgstr "Veriler aşağıda seçilen uzak kaynaktan doldurulur."
-#: extras/forms/model_forms.py:491
+#: extras/forms/model_forms.py:488
msgid "Must specify either local data or a data file"
msgstr "Yerel veri veya veri dosyası belirtmelidir"
-#: extras/forms/model_forms.py:510 templates/core/datafile.html:55
+#: extras/forms/model_forms.py:507 templates/core/datafile.html:55
msgid "Content"
msgstr "İçerik"
@@ -7919,11 +7926,6 @@ msgstr "İş Sonu"
msgid "Device Roles"
msgstr "Aygıt Rolleri"
-#: extras/tables/tables.py:440 netbox/navigation/menu.py:234
-#: netbox/navigation/menu.py:236 virtualization/views.py:186
-msgid "Virtual Machines"
-msgstr "Sanal Makineler"
-
#: extras/tables/tables.py:466 templates/account/profile.html:19
#: templates/users/user.html:21
msgid "Full Name"
@@ -7942,19 +7944,13 @@ msgid "Line"
msgstr "Çizgi"
#: extras/tables/tables.py:546 extras/tables/tables.py:571
-#: extras/tables/tables.py:575
msgid "Level"
msgstr "Seviye"
-#: extras/tables/tables.py:549 extras/tables/tables.py:585
+#: extras/tables/tables.py:549 extras/tables/tables.py:580
msgid "Message"
msgstr "Mesaj"
-#: extras/tables/tables.py:553 extras/tables/tables.py:589
-#: netbox/tables/tables.py:261
-msgid "No results found"
-msgstr "Hiçbir sonuç bulunamadı"
-
#: extras/tables/tables.py:564
msgid "Method"
msgstr "Yöntemi"
@@ -8324,7 +8320,7 @@ msgstr "DNS adı"
#: ipam/forms/bulk_edit.py:371 ipam/forms/bulk_edit.py:572
#: ipam/forms/bulk_import.py:393 ipam/forms/bulk_import.py:477
#: ipam/forms/bulk_import.py:503 ipam/forms/filtersets.py:383
-#: ipam/forms/filtersets.py:518 templates/ipam/fhrpgroup.html:22
+#: ipam/forms/filtersets.py:530 templates/ipam/fhrpgroup.html:22
#: templates/ipam/inc/panels/fhrp_groups.html:24
#: templates/ipam/service.html:32 templates/ipam/servicetemplate.html:19
msgid "Protocol"
@@ -8571,20 +8567,20 @@ msgstr "Bir arayüze atandı"
msgid "DNS Name"
msgstr "DNS Adı"
-#: ipam/forms/filtersets.py:408 ipam/forms/filtersets.py:501
+#: ipam/forms/filtersets.py:409 ipam/forms/filtersets.py:513
#: ipam/models/vlans.py:156 templates/ipam/vlan.html:31
msgid "VLAN ID"
msgstr "VLAN KİMLİĞİ"
-#: ipam/forms/filtersets.py:440
+#: ipam/forms/filtersets.py:441
msgid "Minimum VID"
msgstr "Minimum VID"
-#: ipam/forms/filtersets.py:446
+#: ipam/forms/filtersets.py:447
msgid "Maximum VID"
msgstr "Maksimum VID"
-#: ipam/forms/filtersets.py:544 ipam/forms/model_forms.py:318
+#: ipam/forms/filtersets.py:556 ipam/forms/model_forms.py:318
#: ipam/forms/model_forms.py:750 ipam/forms/model_forms.py:776
#: ipam/tables/vlans.py:191 templates/virtualization/virtualdisk.html:21
#: templates/virtualization/virtualmachine.html:12
@@ -8922,9 +8918,9 @@ msgstr "Başlangıç ve bitiş IP adresi maskeleri eşleşmelidir"
#: ipam/models/ip.py:577
#, python-brace-format
msgid ""
-"Ending address must be lower than the starting address ({start_address})"
+"Ending address must be greater than the starting address ({start_address})"
msgstr ""
-"Bitiş adresi başlangıç adresinden daha düşük olmalıdır ({start_address})"
+"Bitiş adresi başlangıç adresinden daha büyük olmalıdır ({start_address})"
#: ipam/models/ip.py:589
#, python-brace-format
@@ -9077,7 +9073,7 @@ msgid "The primary function of this VLAN"
msgstr "Bu VLAN'ın birincil işlevi"
#: ipam/models/vlans.py:215 ipam/tables/ip.py:175 ipam/tables/vlans.py:78
-#: ipam/views.py:959 netbox/navigation/menu.py:180
+#: ipam/views.py:957 netbox/navigation/menu.py:180
#: netbox/navigation/menu.py:182
msgid "VLANs"
msgstr "VLAN'lar"
@@ -9152,7 +9148,7 @@ msgid "Added"
msgstr "Eklendi"
#: ipam/tables/ip.py:127 ipam/tables/ip.py:165 ipam/tables/vlans.py:138
-#: ipam/views.py:349 netbox/navigation/menu.py:152
+#: ipam/views.py:348 netbox/navigation/menu.py:152
#: netbox/navigation/menu.py:154 templates/ipam/vlan.html:84
msgid "Prefixes"
msgstr "Önekler"
@@ -9253,23 +9249,23 @@ msgstr ""
"DNS adlarında yalnızca alfanümerik karakterlere, yıldızlara, tirelere, "
"noktalara ve alt çizgilere izin verilir"
-#: ipam/views.py:536
+#: ipam/views.py:535
msgid "Child Prefixes"
msgstr "Çocuk Önekleri"
-#: ipam/views.py:571
+#: ipam/views.py:570
msgid "Child Ranges"
msgstr "Çocuk Aralıkları"
-#: ipam/views.py:887
+#: ipam/views.py:886
msgid "Related IPs"
msgstr "İlgili IP'ler"
-#: ipam/views.py:1115
+#: ipam/views.py:1112
msgid "Device Interfaces"
msgstr "Aygıt Arayüzleri"
-#: ipam/views.py:1133
+#: ipam/views.py:1129
msgid "VM Interfaces"
msgstr "VM Arayüzleri"
@@ -9816,7 +9812,7 @@ msgstr "Sanallaştırma"
#: templates/virtualization/virtualmachine.html:170
#: templates/virtualization/virtualmachine/base.html:32
#: templates/virtualization/virtualmachine_list.html:21
-#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:389
+#: virtualization/tables/virtualmachines.py:103 virtualization/views.py:388
msgid "Virtual Disks"
msgstr "Sanal Diskler"
@@ -9938,44 +9934,44 @@ msgid "Admin"
msgstr "Yönetici"
#: netbox/navigation/menu.py:373 templates/users/group.html:29
-#: users/forms/model_forms.py:236 users/forms/model_forms.py:248
-#: users/forms/model_forms.py:300 users/tables.py:102
+#: users/forms/model_forms.py:233 users/forms/model_forms.py:245
+#: users/forms/model_forms.py:297 users/tables.py:102
msgid "Users"
msgstr "Kullanıcılar"
-#: netbox/navigation/menu.py:392 users/forms/model_forms.py:185
-#: users/forms/model_forms.py:197 users/forms/model_forms.py:305
+#: netbox/navigation/menu.py:393 users/forms/model_forms.py:182
+#: users/forms/model_forms.py:194 users/forms/model_forms.py:302
#: users/tables.py:35 users/tables.py:106
msgid "Groups"
msgstr "Gruplar"
-#: netbox/navigation/menu.py:411 templates/account/base.html:21
+#: netbox/navigation/menu.py:413 templates/account/base.html:21
#: templates/inc/user_menu.html:36
msgid "API Tokens"
msgstr "API Belirteçleri"
-#: netbox/navigation/menu.py:417 users/forms/model_forms.py:191
-#: users/forms/model_forms.py:199 users/forms/model_forms.py:242
-#: users/forms/model_forms.py:249
+#: netbox/navigation/menu.py:420 users/forms/model_forms.py:188
+#: users/forms/model_forms.py:196 users/forms/model_forms.py:239
+#: users/forms/model_forms.py:246
msgid "Permissions"
msgstr "İzinler"
-#: netbox/navigation/menu.py:424 netbox/navigation/menu.py:428
+#: netbox/navigation/menu.py:428 netbox/navigation/menu.py:432
#: templates/core/system.html:7
msgid "System"
msgstr "Sistem"
-#: netbox/navigation/menu.py:432
+#: netbox/navigation/menu.py:437
msgid "Configuration History"
msgstr "Yapılandırma Geçmişi"
-#: netbox/navigation/menu.py:437 templates/core/rq_task.html:8
+#: netbox/navigation/menu.py:443 templates/core/rq_task.html:8
#: templates/core/rq_task_list.html:22
msgid "Background Tasks"
msgstr "Arka Plan Görevleri"
-#: netbox/navigation/menu.py:475 templates/500.html:35
-#: templates/account/preferences.html:22 templates/core/system.html:76
+#: netbox/navigation/menu.py:482 templates/500.html:35
+#: templates/account/preferences.html:22 templates/core/system.html:80
msgid "Plugins"
msgstr "Eklentiler"
@@ -10045,47 +10041,55 @@ msgstr "HTMX Navigasyon"
msgid "Enable dynamic UI navigation"
msgstr "Dinamik kullanıcı arayüzü gezinmesini etkinleştir"
+#: netbox/preferences.py:26
+msgid "Experimental feature"
+msgstr "Deneysel özellik"
+
#: netbox/preferences.py:29
msgid "Language"
msgstr "Dil"
#: netbox/preferences.py:34
-msgid "Forces UI translation to the specified language."
-msgstr "Kullanıcı arabirimi çevirisini belirtilen dile zorlar."
+msgid "Forces UI translation to the specified language"
+msgstr "Kullanıcı arabirimi çevirisini belirtilen dile zorlar"
+
+#: netbox/preferences.py:36
+msgid "Support for translation has been disabled locally"
+msgstr "Çeviri desteği yerel olarak devre dışı bırakıldı"
-#: netbox/preferences.py:37
+#: netbox/preferences.py:42
msgid "Page length"
msgstr "Sayfa uzunluğu"
-#: netbox/preferences.py:39
+#: netbox/preferences.py:44
msgid "The default number of objects to display per page"
msgstr "Sayfa başına görüntülenecek varsayılan nesne sayısı"
-#: netbox/preferences.py:43
+#: netbox/preferences.py:48
msgid "Paginator placement"
msgstr "Paginator yerleşimi"
-#: netbox/preferences.py:45
+#: netbox/preferences.py:50
msgid "Bottom"
msgstr "Alt"
-#: netbox/preferences.py:46
+#: netbox/preferences.py:51
msgid "Top"
msgstr "Üst"
-#: netbox/preferences.py:47
+#: netbox/preferences.py:52
msgid "Both"
msgstr "İkisi de"
-#: netbox/preferences.py:50
+#: netbox/preferences.py:55
msgid "Where the paginator controls will be displayed relative to a table"
msgstr "Paginator kontrollerinin bir tabloya göre görüntüleneceği yer"
-#: netbox/preferences.py:55
+#: netbox/preferences.py:60
msgid "Data format"
msgstr "Veri biçimi"
-#: netbox/preferences.py:60
+#: netbox/preferences.py:65
msgid "The preferred syntax for displaying generic data within the UI"
msgstr ""
"Kullanıcı arayüzünde genel verileri görüntülemek için tercih edilen "
@@ -10104,31 +10108,31 @@ msgstr "Başlatıldıktan sonra kayıt defterine mağazalar eklenemiyor"
msgid "Cannot delete stores from registry"
msgstr "Mağazalar kayıt defterinden silinemiyor"
-#: netbox/settings.py:706
+#: netbox/settings.py:715
msgid "English"
msgstr "İngilizce"
-#: netbox/settings.py:707
+#: netbox/settings.py:716
msgid "Spanish"
msgstr "İspanyolca"
-#: netbox/settings.py:708
+#: netbox/settings.py:717
msgid "French"
msgstr "Fransızca"
-#: netbox/settings.py:709
+#: netbox/settings.py:718
msgid "Japanese"
msgstr "Japonca"
-#: netbox/settings.py:710
+#: netbox/settings.py:719
msgid "Portuguese"
msgstr "Portekizce"
-#: netbox/settings.py:711
+#: netbox/settings.py:720
msgid "Russian"
msgstr "Rusça"
-#: netbox/settings.py:712
+#: netbox/settings.py:721
msgid "Turkish"
msgstr "Türkçe"
@@ -10144,11 +10148,16 @@ msgstr "Açılır menüyü Aç/Kapat"
msgid "Error"
msgstr "Hata"
-#: netbox/tables/tables.py:245 templates/generic/bulk_import.html:117
+#: netbox/tables/tables.py:56
+#, python-brace-format
+msgid "No {model_name} found"
+msgstr "Hayır {model_name} bulunan"
+
+#: netbox/tables/tables.py:246 templates/generic/bulk_import.html:117
msgid "Field"
msgstr "Tarla"
-#: netbox/tables/tables.py:248
+#: netbox/tables/tables.py:249
msgid "Value"
msgstr "Değer"
@@ -10169,7 +10178,7 @@ msgstr "Değişiklik Günlüğü"
msgid "Journal"
msgstr "dergi"
-#: netbox/views/generic/object_views.py:105
+#: netbox/views/generic/object_views.py:106
#, python-brace-format
msgid "{class_name} must implement get_children()"
msgstr "{class_name} get_children () uygulamasını uygulamalıdır"
@@ -10210,7 +10219,7 @@ msgstr "İsteğinizle ilgili bir sorun oluştu. Lütfen bir yöneticiye başvuru
msgid "The complete exception is provided below"
msgstr "Tam istisna aşağıda verilmiştir"
-#: templates/500.html:33
+#: templates/500.html:33 templates/core/system.html:35
msgid "Python version"
msgstr "Python sürümü"
@@ -10265,7 +10274,7 @@ msgstr "Şifreyi Değiştir"
#: templates/generic/bulk_remove.html:62 templates/generic/bulk_rename.html:63
#: templates/generic/confirmation_form.html:19
#: templates/generic/object_edit.html:72 templates/htmx/delete_form.html:53
-#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:31
+#: templates/htmx/delete_form.html:55 templates/ipam/ipaddress_assign.html:28
#: templates/virtualization/cluster_add_devices.html:30
msgid "Cancel"
msgstr "İptal"
@@ -10308,7 +10317,7 @@ msgid "Columns"
msgstr "Sütunlar"
#: templates/account/preferences.html:71 templates/dcim/cable_trace.html:113
-#: templates/extras/object_configcontext.html:55
+#: templates/extras/object_configcontext.html:43
msgid "None found"
msgstr "Hiçbiri bulunamadı"
@@ -10356,7 +10365,6 @@ msgstr "Atanan Gruplar"
#: templates/dcim/interface.html:296 templates/dcim/modulebay.html:76
#: templates/extras/configcontext.html:70 templates/extras/eventrule.html:72
#: templates/extras/htmx/script_result.html:56
-#: templates/extras/object_configcontext.html:28
#: templates/extras/objectchange.html:123
#: templates/extras/objectchange.html:141 templates/extras/webhook.html:67
#: templates/extras/webhook.html:79 templates/inc/panel_table.html:13
@@ -10492,7 +10500,7 @@ msgstr "Ekle"
#: templates/dcim/moduletype/component_templates.html:20
#: templates/dcim/powerpanel.html:56 templates/extras/script_list.html:32
#: templates/generic/object_edit.html:47
-#: templates/ipam/inc/ipaddress_edit_header.html:10
+#: templates/ipam/inc/ipaddress_edit_header.html:7
#: templates/ipam/inc/panels/fhrp_groups.html:43
#: utilities/templates/buttons/edit.html:3
msgid "Edit"
@@ -10829,39 +10837,39 @@ msgstr "İhracat"
msgid "System Status"
msgstr "Sistem Durumu"
-#: templates/core/system.html:35
+#: templates/core/system.html:39
msgid "Django version"
msgstr "Django sürümü"
-#: templates/core/system.html:39
-msgid "PotsgreSQL version"
-msgstr "PotsgreSQL sürümü"
-
#: templates/core/system.html:43
+msgid "PostgreSQL version"
+msgstr "PostgreSQL sürümü"
+
+#: templates/core/system.html:47
msgid "Database name"
msgstr "Veritabanı adı"
-#: templates/core/system.html:47
+#: templates/core/system.html:51
msgid "Database size"
msgstr "Veritabanı boyutu"
-#: templates/core/system.html:52
+#: templates/core/system.html:56
msgid "Unavailable"
msgstr "Kullanılamıyor"
-#: templates/core/system.html:57
+#: templates/core/system.html:61
msgid "RQ workers"
msgstr "RQ çalışanları"
-#: templates/core/system.html:60
+#: templates/core/system.html:64
msgid "default queue"
msgstr "varsayılan kuyruk"
-#: templates/core/system.html:64
+#: templates/core/system.html:68
msgid "System time"
msgstr "Sistem zamanı"
-#: templates/core/system.html:86
+#: templates/core/system.html:90
msgid "Current Configuration"
msgstr "Geçerli Yapılandırma"
@@ -11567,7 +11575,7 @@ msgstr "Yeni Üye Ekle"
#: templates/dcim/virtualchassis_add_member.html:27
#: templates/generic/object_edit.html:78
#: templates/users/objectpermission.html:31 users/forms/filtersets.py:68
-#: users/forms/model_forms.py:312
+#: users/forms/model_forms.py:309
msgid "Actions"
msgstr "Eylemler"
@@ -11910,19 +11918,11 @@ msgstr "günler"
msgid "Indefinite"
msgstr "belirsiz"
-#: templates/extras/object_configcontext.html:11
-msgid "Rendered Context"
-msgstr "Oluşturulan Bağlam"
-
-#: templates/extras/object_configcontext.html:22
-msgid "Local Context"
-msgstr "Yerel Bağlam"
-
-#: templates/extras/object_configcontext.html:34
+#: templates/extras/object_configcontext.html:19
msgid "The local config context overwrites all source contexts"
msgstr "Yerel yapılandırma bağlamı tüm kaynak bağlamların üzerine yazar"
-#: templates/extras/object_configcontext.html:40
+#: templates/extras/object_configcontext.html:25
msgid "Source Contexts"
msgstr "Kaynak Bağlamları"
@@ -12319,20 +12319,20 @@ msgstr ""
"%(model)s eklemeden önce %(prerequisite_model)s "
"oluşturmalısınız."
-#: templates/inc/paginator.html:14
+#: templates/inc/paginator.html:15
msgid "Page selection"
msgstr "Sayfa seçimi"
-#: templates/inc/paginator.html:74
+#: templates/inc/paginator.html:75
#, python-format
msgid "Showing %(start)s-%(end)s of %(total)s"
msgstr "Gösterme %(start)s-%(end)s dan %(total)s"
-#: templates/inc/paginator.html:81
+#: templates/inc/paginator.html:82
msgid "Pagination options"
msgstr "Sayfalama seçenekleri"
-#: templates/inc/paginator.html:85
+#: templates/inc/paginator.html:86
msgid "Per Page"
msgstr "Sayfa Başına"
@@ -12394,11 +12394,11 @@ msgstr "Kimlik Doğrulama Anahtarı"
msgid "Virtual IP Addresses"
msgstr "Sanal IP Adresleri"
-#: templates/ipam/inc/ipaddress_edit_header.html:19
+#: templates/ipam/inc/ipaddress_edit_header.html:13
msgid "Assign IP"
msgstr "IP atayın"
-#: templates/ipam/inc/ipaddress_edit_header.html:28
+#: templates/ipam/inc/ipaddress_edit_header.html:19
msgid "Bulk Create"
msgstr "Toplu Oluşturma"
@@ -12439,11 +12439,11 @@ msgstr "NAT (dış)"
msgid "Assign an IP Address"
msgstr "IP Adresi Atama"
-#: templates/ipam/ipaddress_assign.html:23
+#: templates/ipam/ipaddress_assign.html:22
msgid "Select IP Address"
msgstr "IP Adresini Seçin"
-#: templates/ipam/ipaddress_assign.html:39
+#: templates/ipam/ipaddress_assign.html:35
msgid "Search Results"
msgstr "Arama Sonuçları"
@@ -12564,11 +12564,11 @@ msgstr "NetBox logosu"
msgid "Errors"
msgstr "Hatalar"
-#: templates/login.html:53
+#: templates/login.html:67
msgid "Sign In"
msgstr "Oturum aç"
-#: templates/login.html:61
+#: templates/login.html:75
msgctxt "Denotes an alternative option"
msgid "Or"
msgstr "Veya"
@@ -12690,7 +12690,7 @@ msgstr "İzin"
msgid "View"
msgstr "Görünüm"
-#: templates/users/objectpermission.html:52 users/forms/model_forms.py:315
+#: templates/users/objectpermission.html:52 users/forms/model_forms.py:312
msgid "Constraints"
msgstr "Kısıtlamalar"
@@ -13170,11 +13170,11 @@ msgstr "Değişebilir"
msgid "Can Delete"
msgstr "Silebilir"
-#: users/forms/model_forms.py:66
+#: users/forms/model_forms.py:63
msgid "User Interface"
msgstr "Kullanıcı Arayüzü"
-#: users/forms/model_forms.py:118
+#: users/forms/model_forms.py:115
msgid ""
"Keys must be at least 40 characters in length. Be sure to record "
"your key prior to submitting this form, as it may no longer be "
@@ -13184,7 +13184,7 @@ msgstr ""
"kaydettiğinizden emin olun belirteç oluşturulduktan sonra artık "
"erişilemeyebileceğinden, bu formu göndermeden önce."
-#: users/forms/model_forms.py:130
+#: users/forms/model_forms.py:127
msgid ""
"Allowed IPv4/IPv6 networks from where the token can be used. Leave blank for"
" no restrictions. Example: "
@@ -13194,32 +13194,32 @@ msgstr ""
"olmadan boş bırakın. Örnek: 10.1.1.0/24.192.168.10.16/32,2001: db 8:1:"
" :/64
"
-#: users/forms/model_forms.py:179
+#: users/forms/model_forms.py:176
msgid "Confirm password"
msgstr "Şifreyi onayla"
-#: users/forms/model_forms.py:182
+#: users/forms/model_forms.py:179
msgid "Enter the same password as before, for verification."
msgstr "Doğrulama için öncekiyle aynı şifreyi girin."
-#: users/forms/model_forms.py:231
+#: users/forms/model_forms.py:228
msgid "Passwords do not match! Please check your input and try again."
msgstr ""
"Şifreler eşleşmiyor! Lütfen girdilerinizi kontrol edin ve tekrar deneyin."
-#: users/forms/model_forms.py:294
+#: users/forms/model_forms.py:291
msgid "Additional actions"
msgstr "Ek eylemler"
-#: users/forms/model_forms.py:297
+#: users/forms/model_forms.py:294
msgid "Actions granted in addition to those listed above"
msgstr "Yukarıda listelenenlere ek olarak verilen eylemler"
-#: users/forms/model_forms.py:313
+#: users/forms/model_forms.py:310
msgid "Objects"
msgstr "Nesneler"
-#: users/forms/model_forms.py:325
+#: users/forms/model_forms.py:322
msgid ""
"JSON expression of a queryset filter that will return only permitted "
"objects. Leave null to match all objects of this type. A list of multiple "
@@ -13229,11 +13229,11 @@ msgstr ""
"ifadesi. Bu türdeki tüm nesneleri eşleştirmek için null bırakın. Birden çok "
"nesnenin listesi mantıksal bir OR işlemi ile sonuçlanır."
-#: users/forms/model_forms.py:364
+#: users/forms/model_forms.py:361
msgid "At least one action must be selected."
msgstr "En az bir eylem seçilmelidir."
-#: users/forms/model_forms.py:382
+#: users/forms/model_forms.py:379
#, python-brace-format
msgid "Invalid filter for {model}: {error}"
msgstr "Geçersiz filtre {model}: {error}"
@@ -13404,11 +13404,7 @@ msgstr ""
msgid "More than 50"
msgstr "50'den fazla"
-#: utilities/fields.py:80
-msgid "Custom queryset can't be used for this lookup."
-msgstr "Özel sorgu kümesi bu arama için kullanılamaz."
-
-#: utilities/fields.py:146
+#: utilities/fields.py:157
#, python-format
msgid ""
"%s(%r) is invalid. to_model parameter to CounterCacheField must be a string "
@@ -13417,7 +13413,7 @@ msgstr ""
"%s(%r) geçersiz. counterCacheField için to_model parametresi 'app.model' "
"biçiminde bir dize olmalıdır"
-#: utilities/fields.py:156
+#: utilities/fields.py:167
#, python-format
msgid ""
"%s(%r) is invalid. to_field parameter to CounterCacheField must be a string "
diff --git a/netbox/users/forms/model_forms.py b/netbox/users/forms/model_forms.py
index e5b9b612e79..7a9f63ea7f6 100644
--- a/netbox/users/forms/model_forms.py
+++ b/netbox/users/forms/model_forms.py
@@ -40,11 +40,8 @@ def __new__(mcs, name, bases, attrs):
help_text = f'{field_name}
'
if preference.description:
help_text = f'{preference.description}
{help_text}'
- if preference.experimental:
- help_text = (
- f' Experimental feature
'
- f'{help_text}'
- )
+ if warning := preference.warning:
+ help_text = f' {warning}
{help_text}'
field_kwargs = {
'label': preference.label,
'choices': preference.choices,
diff --git a/netbox/users/preferences.py b/netbox/users/preferences.py
index 3eab4cb6e87..d7edf1f59c3 100644
--- a/netbox/users/preferences.py
+++ b/netbox/users/preferences.py
@@ -2,10 +2,10 @@ class UserPreference:
"""
Represents a configurable user preference.
"""
- def __init__(self, label, choices, default=None, description='', coerce=lambda x: x, experimental=False):
+ def __init__(self, label, choices, default=None, description='', coerce=lambda x: x, warning=''):
self.label = label
self.choices = choices
self.default = default if default is not None else choices[0]
self.description = description
self.coerce = coerce
- self.experimental = experimental
+ self.warning = warning
diff --git a/netbox/utilities/fields.py b/netbox/utilities/fields.py
index 3f7ce6f5484..2640f6886e5 100644
--- a/netbox/utilities/fields.py
+++ b/netbox/utilities/fields.py
@@ -70,14 +70,24 @@ class RestrictedGenericForeignKey(GenericForeignKey):
# 1. Capture restrict_params from RestrictedPrefetch (hack)
# 2. If restrict_params is set, call restrict() on the queryset for
# the related model
- def get_prefetch_queryset(self, instances, queryset=None):
+ def get_prefetch_querysets(self, instances, querysets=None):
restrict_params = {}
+ custom_queryset_dict = {}
# Compensate for the hack in RestrictedPrefetch
- if type(queryset) is dict:
- restrict_params = queryset
- elif queryset is not None:
- raise ValueError(_("Custom queryset can't be used for this lookup."))
+ if type(querysets) is dict:
+ restrict_params = querysets
+
+ elif querysets is not None:
+ for queryset in querysets:
+ ct_id = self.get_content_type(
+ model=queryset.query.model, using=queryset.db
+ ).pk
+ if ct_id in custom_queryset_dict:
+ raise ValueError(
+ "Only one queryset is allowed for each content type."
+ )
+ custom_queryset_dict[ct_id] = queryset
# For efficiency, group the instances by content type and then do one
# query per model
@@ -100,15 +110,16 @@ def get_prefetch_queryset(self, instances, queryset=None):
ret_val = []
for ct_id, fkeys in fk_dict.items():
- instance = instance_dict[ct_id]
- ct = self.get_content_type(id=ct_id, using=instance._state.db)
- if restrict_params:
- # Override the default behavior to call restrict() on each model's queryset
- qs = ct.model_class().objects.filter(pk__in=fkeys).restrict(**restrict_params)
- ret_val.extend(qs)
+ if ct_id in custom_queryset_dict:
+ # Return values from the custom queryset, if provided.
+ ret_val.extend(custom_queryset_dict[ct_id].filter(pk__in=fkeys))
else:
- # Default behavior
- ret_val.extend(ct.get_all_objects_for_this_type(pk__in=fkeys))
+ instance = instance_dict[ct_id]
+ ct = self.get_content_type(id=ct_id, using=instance._state.db)
+ qs = ct.model_class().objects.filter(pk__in=fkeys)
+ if restrict_params:
+ qs = qs.restrict(**restrict_params)
+ ret_val.extend(qs)
# For doing the join in Python, we have to match both the FK val and the
# content type, so we use a callable that returns a (fk, class) pair.
diff --git a/netbox/utilities/querysets.py b/netbox/utilities/querysets.py
index 50917dd0f83..0a9389b1f3b 100644
--- a/netbox/utilities/querysets.py
+++ b/netbox/utilities/querysets.py
@@ -20,14 +20,14 @@ def __init__(self, lookup, user, action='view', queryset=None, to_attr=None):
super().__init__(lookup, queryset=queryset, to_attr=to_attr)
- def get_current_queryset(self, level):
+ def get_current_querysets(self, level):
params = {
'user': self.restrict_user,
'action': self.restrict_action,
}
- if qs := super().get_current_queryset(level):
- return qs.restrict(**params)
+ if querysets := super().get_current_querysets(level):
+ return [qs.restrict(**params) for qs in querysets]
# Bit of a hack. If no queryset is defined, pass through the dict of restrict()
# kwargs to be handled by the field. This is necessary e.g. for GenericForeignKey
@@ -49,11 +49,11 @@ def restrict(self, user, action='view'):
permission_required = get_permission_for_model(self.model, action)
# Bypass restriction for superusers and exempt views
- if user.is_superuser or permission_is_exempt(permission_required):
+ if user and user.is_superuser or permission_is_exempt(permission_required):
qs = self
# User is anonymous or has not been granted the requisite permission
- elif not user.is_authenticated or permission_required not in user.get_all_permissions():
+ elif user is None or not user.is_authenticated or permission_required not in user.get_all_permissions():
qs = self.none()
# Filter the queryset to include only objects with allowed attributes
diff --git a/netbox/utilities/templates/builtins/htmx_table.html b/netbox/utilities/templates/builtins/htmx_table.html
index 6a7959573af..b3ceed2c74a 100644
--- a/netbox/utilities/templates/builtins/htmx_table.html
+++ b/netbox/utilities/templates/builtins/htmx_table.html
@@ -1,5 +1,5 @@
diff --git a/netbox/utilities/testing/api.py b/netbox/utilities/testing/api.py
index 4802c3ffe0e..019d6e6ca2b 100644
--- a/netbox/utilities/testing/api.py
+++ b/netbox/utilities/testing/api.py
@@ -73,7 +73,7 @@ class APIViewTestCases:
class GetObjectViewTestCase(APITestCase):
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False)
def test_get_object_anonymous(self):
"""
GET a single object as an unauthenticated user.
@@ -135,7 +135,7 @@ def test_options_object(self):
class ListObjectsViewTestCase(APITestCase):
brief_fields = []
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False)
def test_list_objects_anonymous(self):
"""
GET a list of objects as an unauthenticated user.
@@ -440,13 +440,12 @@ def _get_graphql_base_name(self):
base_name = self.model._meta.verbose_name.lower().replace(' ', '_')
return getattr(self, 'graphql_base_name', base_name)
- def _build_query(self, name, **filters):
+ def _build_query_with_filter(self, name, filter_string):
+ """
+ Called by either _build_query or _build_filtered_query - construct the actual
+ query given a name and filter string
+ """
type_class = get_graphql_type_for_model(self.model)
- if filters:
- filter_string = ', '.join(f'{k}:{v}' for k, v in filters.items())
- filter_string = f'({filter_string})'
- else:
- filter_string = ''
# Compile list of fields to include
fields_string = ''
@@ -492,6 +491,30 @@ def _build_query(self, name, **filters):
return query
+ def _build_filtered_query(self, name, **filters):
+ """
+ Create a filtered query: i.e. ip_address_list(filters: {address: "1.1.1.1/24"}){.
+ """
+ if filters:
+ filter_string = ', '.join(f'{k}: "{v}"' for k, v in filters.items())
+ filter_string = f'(filters: {{{filter_string}}})'
+ else:
+ filter_string = ''
+
+ return self._build_query_with_filter(name, filter_string)
+
+ def _build_query(self, name, **filters):
+ """
+ Create a normal query - unfiltered or with a string query: i.e. site(name: "aaa"){.
+ """
+ if filters:
+ filter_string = ', '.join(f'{k}:{v}' for k, v in filters.items())
+ filter_string = f'({filter_string})'
+ else:
+ filter_string = ''
+
+ return self._build_query_with_filter(name, filter_string)
+
@override_settings(LOGIN_REQUIRED=True)
@override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user'])
def test_graphql_get_object(self):
@@ -550,6 +573,31 @@ def test_graphql_list_objects(self):
self.assertNotIn('errors', data)
self.assertGreater(len(data['data'][field_name]), 0)
+ @override_settings(LOGIN_REQUIRED=True)
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*', 'auth.user'])
+ def test_graphql_filter_objects(self):
+ if not hasattr(self, 'graphql_filter'):
+ return
+
+ url = reverse('graphql')
+ field_name = f'{self._get_graphql_base_name()}_list'
+ query = self._build_filtered_query(field_name, **self.graphql_filter)
+
+ # Add object-level permission
+ obj_perm = ObjectPermission(
+ name='Test permission',
+ actions=['view']
+ )
+ obj_perm.save()
+ obj_perm.users.add(self.user)
+ obj_perm.object_types.add(ObjectType.objects.get_for_model(self.model))
+
+ response = self.client.post(url, data={'query': query}, format="json", **self.header)
+ self.assertHttpStatus(response, status.HTTP_200_OK)
+ data = json.loads(response.content)
+ self.assertNotIn('errors', data)
+ self.assertGreater(len(data['data'][field_name]), 0)
+
class APIViewTestCase(
GetObjectViewTestCase,
ListObjectsViewTestCase,
diff --git a/netbox/utilities/testing/views.py b/netbox/utilities/testing/views.py
index e3b12b4c3c7..6d4ca00df5c 100644
--- a/netbox/utilities/testing/views.py
+++ b/netbox/utilities/testing/views.py
@@ -62,7 +62,7 @@ class GetObjectViewTestCase(ModelViewTestCase):
"""
Retrieve a single instance.
"""
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False)
def test_get_object_anonymous(self):
# Make the request as an unauthenticated user
self.client.logout()
@@ -421,7 +421,7 @@ class ListObjectsViewTestCase(ModelViewTestCase):
"""
Retrieve multiple instances.
"""
- @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'])
+ @override_settings(EXEMPT_VIEW_PERMISSIONS=['*'], LOGIN_REQUIRED=False)
def test_list_objects_anonymous(self):
# Make the request as an unauthenticated user
self.client.logout()
diff --git a/netbox/virtualization/graphql/types.py b/netbox/virtualization/graphql/types.py
index 8c19e1f1b3b..2d872322b6e 100644
--- a/netbox/virtualization/graphql/types.py
+++ b/netbox/virtualization/graphql/types.py
@@ -84,7 +84,7 @@ class VirtualMachineType(ConfigContextMixin, ContactsMixin, NetBoxObjectType):
primary_ip4: Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')] | None
primary_ip6: Annotated["IPAddressType", strawberry.lazy('ipam.graphql.types')] | None
- interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]
+ interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]]
services: List[Annotated["ServiceType", strawberry.lazy('ipam.graphql.types')]]
virtualdisks: List[Annotated["VirtualDiskType", strawberry.lazy('virtualization.graphql.types')]]
@@ -102,8 +102,8 @@ class VMInterfaceType(IPAddressesMixin, ComponentType):
vrf: Annotated["VRFType", strawberry.lazy('ipam.graphql.types')] | None
tagged_vlans: List[Annotated["VLANType", strawberry.lazy('ipam.graphql.types')]]
- bridge_interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]
- child_interfaces: List[Annotated["InterfaceType", strawberry.lazy('dcim.graphql.types')]]
+ bridge_interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]]
+ child_interfaces: List[Annotated["VMInterfaceType", strawberry.lazy('virtualization.graphql.types')]]
@strawberry_django.type(
diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py
index 1ddd2c92d39..56d8feb2665 100644
--- a/netbox/virtualization/views.py
+++ b/netbox/virtualization/views.py
@@ -181,7 +181,6 @@ class ClusterVirtualMachinesView(generic.ObjectChildrenView):
child_model = VirtualMachine
table = tables.VirtualMachineTable
filterset = filtersets.VirtualMachineFilterSet
- template_name = 'generic/object_children.html'
tab = ViewTab(
label=_('Virtual Machines'),
badge=lambda obj: obj.virtual_machines.count(),
diff --git a/requirements.txt b/requirements.txt
index 02d9a180b1c..9c3edf6ee3d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -20,18 +20,18 @@ feedparser==6.0.11
gunicorn==22.0.0
Jinja2==3.1.4
Markdown==3.6
-mkdocs-material==9.5.21
+mkdocs-material==9.5.22
mkdocstrings[python-legacy]==0.25.1
netaddr==1.2.1
nh3==0.2.17
Pillow==10.3.0
-psycopg[c,pool]==3.1.18
+psycopg[c,pool]==3.1.19
PyYAML==6.0.1
requests==2.31.0
social-auth-app-django==5.4.1
social-auth-core==4.5.4
-strawberry-graphql==0.227.4
-strawberry-graphql-django==0.39.2
+strawberry-graphql==0.229.0
+strawberry-graphql-django==0.40.0
svgwrite==1.4.3
tablib==3.6.1
tzdata==2024.1