1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-18 19:49:40 +00:00

net-mgmt/netbox: Update to 3.6.1

* Introduce non-default GIT, LDAP and S3 options.

Changelog since 3.5.9

It contains many bugfixes/enhancements and the following new features:

* Relocated Admin UI Views
* Configurable Default Permissions
* User Bookmarks
* Custom Field Choice Sets
* Pre-Defined Location Choices for Custom Fields
* Restrict Tag Usage by Object Type

https://netbox.readthedocs.io/en/stable/release-notes/version-3.6/
MFH:		No (feature release)
This commit is contained in:
Kai Knoblich 2023-09-10 14:49:24 +02:00
parent 178f4991ec
commit bbe8e56f68
4 changed files with 154 additions and 58 deletions

View File

@ -1,7 +1,6 @@
PORTNAME= netbox
DISTVERSIONPREFIX= v
DISTVERSION= 3.5.9
PORTREVISION= 1
DISTVERSION= 3.6.1
CATEGORIES= net-mgmt python
MAINTAINER= kai@FreeBSD.org
@ -19,52 +18,49 @@ LICENSE_FILE= ${WRKSRC}/LICENSE.txt
# Django packages that are known for regressions in conjunction with NetBox and
# should therefore only be updated with caution.
#
# - devel/py-dj41-django-rq
# - www/py-dj41-django-filter
# - www/py-dj41-django-tables2
# - www/py-dj41-djangorestframework
# - devel/py-dj42-django-rq
# - www/py-dj42-django-filter
# - www/py-dj42-django-tables2
# - www/py-dj42-djangorestframework
#
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django41>=4.1.10<4.2:www/py-django41@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-cors-headers>=4.2.0<5:www/py-dj41-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-debug-toolbar>=4.1.0<5:www/py-dj41-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-filter>=23.2<24:www/py-dj41-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-graphiql-debug-toolbar>=0.2.0<1:www/py-dj41-django-graphiql-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-mptt>=0.14.0<0.15:www/py-dj41-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-prometheus>=2.3.1<2.4:www/py-dj41-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-redis>=5.3.0<6:www/py-dj41-django-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-rich>=1.7.0<2:www/py-dj41-django-rich@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-rq>=2.8.1<2.9:devel/py-dj41-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-tables2>=2.6<2.7:www/py-dj41-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-taggit>=4.0.0<5:www/py-dj41-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-django-timezone-field>=5.1<6:www/py-dj41-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-djangorestframework>=3.14.0<3.15.0:www/py-dj41-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-drf-spectacular>=0.26.4<1:www/py-dj41-drf-spectacular@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-drf-spectacular-sidecar>=2023.8.1:www/py-dj41-drf-spectacular-sidecar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj41-graphene-django>=3.0.0,1<3.0.0_99,1:devel/py-dj41-graphene-django@${PY_FLAVOR} \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django42>=4.2.5<4.3:www/py-django42@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-cors-headers>=4.2.0<5:www/py-dj42-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-debug-toolbar>=4.2.0<5:www/py-dj42-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-filter>=23.2<24:www/py-dj42-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-graphiql-debug-toolbar>=0.2.0<1:www/py-dj42-django-graphiql-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-mptt>=0.14.0<0.15:www/py-dj42-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-prometheus>=2.3.1<2.4:www/py-dj42-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-redis>=5.3.0<6:www/py-dj42-django-redis@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-rich>=1.7.0<2:www/py-dj42-django-rich@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-rq>=2.8.1<2.9:devel/py-dj42-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-tables2>=2.6<2.7:www/py-dj42-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-taggit>=4.0.0<5:www/py-dj42-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-django-timezone-field>=6.0<7:www/py-dj42-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-djangorestframework>=3.14.0<3.15.0:www/py-dj42-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-drf-spectacular>=0.26.4<1:www/py-dj42-drf-spectacular@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-drf-spectacular-sidecar>=2023.9.1:www/py-dj42-drf-spectacular-sidecar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj42-graphene-django>=3.0.0<3.0.0_99:devel/py-dj42-graphene-django@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bleach>=5.0.1<7:www/py-bleach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}boto3>=1.26.145<2:www/py-boto3@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dulwich>=0.21.2<1:devel/py-dulwich@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}bleach>=6.0.0<7:www/py-bleach@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}feedparser>=6.0.8<7:textproc/py-feedparser@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1.2<4:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>=3.3.7<3.4:textproc/py-markdown@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown-include>=0.7.0<1:textproc/py-markdown-include@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.1.21<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.22.0<1:textproc/py-mkdocstrings@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mkdocs-material>=9.2.7<10:textproc/py-mkdocs-material@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mkdocstrings>=0.23.0<1:textproc/py-mkdocstrings@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mkdocstrings-python-legacy>0:textproc/py-mkdocstrings-python-legacy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=0.8.0<1:net/py-netaddr@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=9.5.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.6<3:databases/py-psycopg2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=10.0.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg>=3.1.10<4:databases/py-psycopg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sentry-sdk>=1.21.1<2:devel/py-sentry-sdk@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.2.0<6:www/py-social-auth-app-django@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}social-auth-app-django>=5.3.0<6:www/py-social-auth-app-django@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}social-auth-core>=4.4.2<5:security/py-social-auth-core@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.3<2:graphics/py-svgwrite@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tablib>=3.5.0<4:textproc/py-tablib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}tzdata>=2023.3:devel/py-tzdata@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}yaml>=6.0<7:devel/py-yaml@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gunicorn>=20.1.0<22:www/py-gunicorn@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}gunicorn>=21.2.0<22:www/py-gunicorn@${PY_FLAVOR}
USES= cpe pgsql:11+ python
USES= cpe pgsql:12+ python
CPE_VENDOR= netbox_project
USE_GITHUB= yes
GH_ACCOUNT= netbox-community
@ -75,6 +71,16 @@ NO_BUILD= yes
NO_ARCH= yes
OPTIONS_DEFINE= EXAMPLES
OPTIONS_GROUP= BACKENDS
OPTIONS_GROUP_BACKENDS= GIT LDAP S3
GIT_DESC= Git backend support
LDAP_DESC= LDAP backend support
S3_DESC= Amazon S3 backend support
GIT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dulwich>0:devel/py-dulwich@${PY_FLAVOR}
LDAP_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}dj42-django-auth-ldap>0:www/py-dj42-django-auth-ldap
S3_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}boto3>0:www/py-boto3@${PY_FLAVOR}
do-install:
cd ${WRKSRC}/netbox ; \

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1693289458
SHA256 (netbox-community-netbox-v3.5.9_GH0.tar.gz) = 98d9dd0dd7e44bc1ce95bc7758eb2c624a444f92516d63f6800bd897ba09a793
SIZE (netbox-community-netbox-v3.5.9_GH0.tar.gz) = 5790742
TIMESTAMP = 1694248193
SHA256 (netbox-community-netbox-v3.6.1_GH0.tar.gz) = 7614307e8257a8f53f6c001470e123e74b816cba0031c80b5b01c2d13ab051be
SIZE (netbox-community-netbox-v3.6.1_GH0.tar.gz) = 7267993

View File

@ -392,4 +392,47 @@ been adjusted accordingly. This also includes a fix for the default path of
the configuration if the rc variable "netbox_config" is not set.
EOD
}
{ type: upgrade
maximum_version: 3.6.1
message: <<EOD
1. The NetBox 3.6 release contains some breaking changes, so the following
items should be checked before upgrading:
* PostgreSQL 11 is no longer supported (dropped in Django 4.2). NetBox v3.6
requires PostgreSQL 12 or later.
* The "device_role" field on the Device model has been renamed to "role".
The "device_role" field has been temporarily retained on the REST API
serializer for devices for backward compatibility, but is read-only.
* The "choices" array field has been removed from the CustomField model.
Any defined choices are automatically migrated to CustomFieldChoiceSets,
accessible via the new "choice_set" field on the CustomField model.
* The "napalm_driver" and "napalm_args" fields (which were deprecated in v3.5)
have been removed from the Platform model.
* The "device" and "device_id" filter for interfaces will no longer include
interfaces from virtual chassis peers. Two new filters,
"virtual_chassis_member" and "virtual_chassis_member_id", have been
introduced to match all interfaces belonging to the specified device's
virtual chassis (if any).
* Reports and scripts are now returned within a "results" list when fetched via
the REST API, consistent with other models.
* Superusers can no longer retrieve API token keys via the web UI if
ALLOW_TOKEN_RETRIEVAL is disabled. (The admin view has been removed
per #13044.)
2. The following dependencies are now optional and have therefore been moved to
corresponding options. An exception is the LDAP option, which has been added
for the sake of completeness, because this backend has been around for a
good while:
* devel/py-dulwich -> non-default GIT option
* www/py-dj42-django-auth-ldap -> non-default LDAP option
* www/py-boto3 -> non-default S3 option
EOD
}
]

View File

@ -4,6 +4,13 @@
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/netbox_rq.sample
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/netboxrc.sample
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/nginx.conf
%%DATADIR%%/account/__init__.py
%%DATADIR%%/account/migrations/0001_initial.py
%%DATADIR%%/account/migrations/__init__.py
%%DATADIR%%/account/models.py
%%DATADIR%%/account/tables.py
%%DATADIR%%/account/urls.py
%%DATADIR%%/account/views.py
%%DATADIR%%/circuits/__init__.py
%%DATADIR%%/circuits/api/__init__.py
%%DATADIR%%/circuits/api/nested_serializers.py
@ -78,7 +85,6 @@
%%DATADIR%%/core/management/commands/__init__.py
%%DATADIR%%/core/management/commands/clearcache.py
%%DATADIR%%/core/management/commands/makemigrations.py
%%DATADIR%%/core/management/commands/migrate.py
%%DATADIR%%/core/management/commands/nbshell.py
%%DATADIR%%/core/management/commands/rqworker.py
%%DATADIR%%/core/management/commands/syncdatasource.py
@ -181,6 +187,16 @@
%%DATADIR%%/dcim/migrations/0170_configtemplate.py
%%DATADIR%%/dcim/migrations/0171_cabletermination_change_logging.py
%%DATADIR%%/dcim/migrations/0172_larger_power_draw_values.py
%%DATADIR%%/dcim/migrations/0173_remove_napalm_fields.py
%%DATADIR%%/dcim/migrations/0174_device_latitude_device_longitude.py
%%DATADIR%%/dcim/migrations/0174_rack_starting_unit.py
%%DATADIR%%/dcim/migrations/0175_device_oob_ip.py
%%DATADIR%%/dcim/migrations/0176_device_component_counters.py
%%DATADIR%%/dcim/migrations/0177_devicetype_component_counters.py
%%DATADIR%%/dcim/migrations/0178_virtual_chassis_member_counter.py
%%DATADIR%%/dcim/migrations/0179_interfacetemplate_rf_role.py
%%DATADIR%%/dcim/migrations/0180_powerfeed_tenant.py
%%DATADIR%%/dcim/migrations/0181_rename_device_role_device_role.py
%%DATADIR%%/dcim/migrations/__init__.py
%%DATADIR%%/dcim/models/__init__.py
%%DATADIR%%/dcim/models/cables.py
@ -250,6 +266,7 @@
%%DATADIR%%/docs/development/getting-started.md
%%DATADIR%%/docs/development/git-cheat-sheet.md
%%DATADIR%%/docs/development/index.md
%%DATADIR%%/docs/development/internationalization.md
%%DATADIR%%/docs/development/models.md
%%DATADIR%%/docs/development/release-checklist.md
%%DATADIR%%/docs/development/search.md
@ -296,7 +313,6 @@
%%DATADIR%%/docs/integrations/synchronized-data.md
%%DATADIR%%/docs/integrations/webhooks.md
%%DATADIR%%/docs/introduction.md
%%DATADIR%%/docs/media/admin_ui_grant_permission.png
%%DATADIR%%/docs/media/admin_ui_run_permission.png
%%DATADIR%%/docs/media/authentication/azure_ad_add_app_registration.png
%%DATADIR%%/docs/media/authentication/azure_ad_add_client_secret.png
@ -374,10 +390,12 @@
%%DATADIR%%/docs/models/dcim/sitegroup.md
%%DATADIR%%/docs/models/dcim/virtualchassis.md
%%DATADIR%%/docs/models/dcim/virtualdevicecontext.md
%%DATADIR%%/docs/models/extras/bookmark.md
%%DATADIR%%/docs/models/extras/branch.md
%%DATADIR%%/docs/models/extras/configcontext.md
%%DATADIR%%/docs/models/extras/configtemplate.md
%%DATADIR%%/docs/models/extras/customfield.md
%%DATADIR%%/docs/models/extras/customfieldchoiceset.md
%%DATADIR%%/docs/models/extras/customlink.md
%%DATADIR%%/docs/models/extras/exporttemplate.md
%%DATADIR%%/docs/models/extras/imageattachment.md
@ -457,6 +475,7 @@
%%DATADIR%%/docs/release-notes/version-3.3.md
%%DATADIR%%/docs/release-notes/version-3.4.md
%%DATADIR%%/docs/release-notes/version-3.5.md
%%DATADIR%%/docs/release-notes/version-3.6.md
%%DATADIR%%/extras/__init__.py
%%DATADIR%%/extras/admin.py
%%DATADIR%%/extras/api/__init__.py
@ -475,13 +494,16 @@
%%DATADIR%%/extras/dashboard/forms.py
%%DATADIR%%/extras/dashboard/utils.py
%%DATADIR%%/extras/dashboard/widgets.py
%%DATADIR%%/extras/data/__init__.py
%%DATADIR%%/extras/data/iata.py
%%DATADIR%%/extras/data/iso_3166.py
%%DATADIR%%/extras/data/un_locode.py
%%DATADIR%%/extras/fields.py
%%DATADIR%%/extras/filters.py
%%DATADIR%%/extras/filtersets.py
%%DATADIR%%/extras/forms/__init__.py
%%DATADIR%%/extras/forms/bulk_edit.py
%%DATADIR%%/extras/forms/bulk_import.py
%%DATADIR%%/extras/forms/config.py
%%DATADIR%%/extras/forms/filtersets.py
%%DATADIR%%/extras/forms/misc.py
%%DATADIR%%/extras/forms/mixins.py
@ -536,6 +558,12 @@
%%DATADIR%%/extras/migrations/0090_objectchange_index_request_id.py
%%DATADIR%%/extras/migrations/0091_create_managedfiles.py
%%DATADIR%%/extras/migrations/0092_delete_jobresult.py
%%DATADIR%%/extras/migrations/0093_configrevision_ordering.py
%%DATADIR%%/extras/migrations/0094_tag_object_types.py
%%DATADIR%%/extras/migrations/0095_bookmarks.py
%%DATADIR%%/extras/migrations/0096_customfieldchoiceset.py
%%DATADIR%%/extras/migrations/0097_customfield_remove_choices.py
%%DATADIR%%/extras/migrations/0098_webhook_custom_field_data_webhook_tags.py
%%DATADIR%%/extras/migrations/__init__.py
%%DATADIR%%/extras/models/__init__.py
%%DATADIR%%/extras/models/change_logging.py
@ -657,6 +685,7 @@
%%DATADIR%%/ipam/migrations/0064_clear_search_cache.py
%%DATADIR%%/ipam/migrations/0065_asnrange.py
%%DATADIR%%/ipam/migrations/0066_iprange_mark_utilized.py
%%DATADIR%%/ipam/migrations/0067_ipaddress_index_host.py
%%DATADIR%%/ipam/migrations/__init__.py
%%DATADIR%%/ipam/models/__init__.py
%%DATADIR%%/ipam/models/asns.py
@ -876,7 +905,13 @@
%%DATADIR%%/templates/403.html
%%DATADIR%%/templates/404.html
%%DATADIR%%/templates/500.html
%%DATADIR%%/templates/admin/extras/configrevision/restore.html
%%DATADIR%%/templates/account/base.html
%%DATADIR%%/templates/account/bookmarks.html
%%DATADIR%%/templates/account/password.html
%%DATADIR%%/templates/account/preferences.html
%%DATADIR%%/templates/account/profile.html
%%DATADIR%%/templates/account/token.html
%%DATADIR%%/templates/account/token_list.html
%%DATADIR%%/templates/admin/index.html
%%DATADIR%%/templates/base/40x.html
%%DATADIR%%/templates/base/base.html
@ -899,11 +934,10 @@
%%DATADIR%%/templates/dcim/cable_edit.html
%%DATADIR%%/templates/dcim/cable_trace.html
%%DATADIR%%/templates/dcim/component_create.html
%%DATADIR%%/templates/dcim/component_list.html
%%DATADIR%%/templates/dcim/connections_list.html
%%DATADIR%%/templates/dcim/consoleport.html
%%DATADIR%%/templates/dcim/consoleport_delete.html
%%DATADIR%%/templates/dcim/consoleserverport.html
%%DATADIR%%/templates/dcim/consoleserverport_delete.html
%%DATADIR%%/templates/dcim/device.html
%%DATADIR%%/templates/dcim/device/base.html
%%DATADIR%%/templates/dcim/device/components_base.html
@ -938,10 +972,8 @@
%%DATADIR%%/templates/dcim/inc/panels/inventory_items.html
%%DATADIR%%/templates/dcim/inc/rack_elevation.html
%%DATADIR%%/templates/dcim/interface.html
%%DATADIR%%/templates/dcim/interface_delete.html
%%DATADIR%%/templates/dcim/inventoryitem.html
%%DATADIR%%/templates/dcim/inventoryitem_bulk_delete.html
%%DATADIR%%/templates/dcim/inventoryitem_delete.html
%%DATADIR%%/templates/dcim/inventoryitem_edit.html
%%DATADIR%%/templates/dcim/inventoryitemrole.html
%%DATADIR%%/templates/dcim/location.html
@ -954,10 +986,8 @@
%%DATADIR%%/templates/dcim/platform.html
%%DATADIR%%/templates/dcim/powerfeed.html
%%DATADIR%%/templates/dcim/poweroutlet.html
%%DATADIR%%/templates/dcim/poweroutlet_delete.html
%%DATADIR%%/templates/dcim/powerpanel.html
%%DATADIR%%/templates/dcim/powerport.html
%%DATADIR%%/templates/dcim/powerport_delete.html
%%DATADIR%%/templates/dcim/rack.html
%%DATADIR%%/templates/dcim/rack/base.html
%%DATADIR%%/templates/dcim/rack/non_racked_devices.html
@ -990,14 +1020,18 @@
%%DATADIR%%/templates/extras/admin/plugins_list.html
%%DATADIR%%/templates/extras/configcontext.html
%%DATADIR%%/templates/extras/configcontext_list.html
%%DATADIR%%/templates/extras/configrevision.html
%%DATADIR%%/templates/extras/configrevision_restore.html
%%DATADIR%%/templates/extras/configtemplate.html
%%DATADIR%%/templates/extras/configtemplate_list.html
%%DATADIR%%/templates/extras/customfield.html
%%DATADIR%%/templates/extras/customfieldchoiceset.html
%%DATADIR%%/templates/extras/customlink.html
%%DATADIR%%/templates/extras/dashboard/reset.html
%%DATADIR%%/templates/extras/dashboard/widget.html
%%DATADIR%%/templates/extras/dashboard/widget_add.html
%%DATADIR%%/templates/extras/dashboard/widget_config.html
%%DATADIR%%/templates/extras/dashboard/widgets/bookmarks.html
%%DATADIR%%/templates/extras/dashboard/widgets/objectcounts.html
%%DATADIR%%/templates/extras/dashboard/widgets/objectlist.html
%%DATADIR%%/templates/extras/dashboard/widgets/rssfeed.html
@ -1121,12 +1155,10 @@
%%DATADIR%%/templates/tenancy/object_contacts.html
%%DATADIR%%/templates/tenancy/tenant.html
%%DATADIR%%/templates/tenancy/tenantgroup.html
%%DATADIR%%/templates/users/api_token.html
%%DATADIR%%/templates/users/api_tokens.html
%%DATADIR%%/templates/users/base.html
%%DATADIR%%/templates/users/password.html
%%DATADIR%%/templates/users/preferences.html
%%DATADIR%%/templates/users/profile.html
%%DATADIR%%/templates/users/group.html
%%DATADIR%%/templates/users/objectpermission.html
%%DATADIR%%/templates/users/token.html
%%DATADIR%%/templates/users/user.html
%%DATADIR%%/templates/virtualization/cluster.html
%%DATADIR%%/templates/virtualization/cluster/base.html
%%DATADIR%%/templates/virtualization/cluster/devices.html
@ -1136,6 +1168,7 @@
%%DATADIR%%/templates/virtualization/virtualmachine.html
%%DATADIR%%/templates/virtualization/virtualmachine/base.html
%%DATADIR%%/templates/virtualization/virtualmachine/interfaces.html
%%DATADIR%%/templates/virtualization/virtualmachine/render_config.html
%%DATADIR%%/templates/virtualization/virtualmachine_list.html
%%DATADIR%%/templates/virtualization/vminterface.html
%%DATADIR%%/templates/wireless/inc/authentication_attrs.html
@ -1171,6 +1204,7 @@
%%DATADIR%%/tenancy/migrations/0008_unique_constraints.py
%%DATADIR%%/tenancy/migrations/0009_standardize_description_comments.py
%%DATADIR%%/tenancy/migrations/0010_tenant_relax_uniqueness.py
%%DATADIR%%/tenancy/migrations/0011_contactassignment_tags.py
%%DATADIR%%/tenancy/migrations/__init__.py
%%DATADIR%%/tenancy/models/__init__.py
%%DATADIR%%/tenancy/models/contacts.py
@ -1187,10 +1221,7 @@
%%DATADIR%%/tenancy/urls.py
%%DATADIR%%/tenancy/views.py
%%DATADIR%%/users/__init__.py
%%DATADIR%%/users/admin/__init__.py
%%DATADIR%%/users/admin/filters.py
%%DATADIR%%/users/admin/forms.py
%%DATADIR%%/users/admin/inlines.py
%%DATADIR%%/users/admin.py
%%DATADIR%%/users/api/__init__.py
%%DATADIR%%/users/api/nested_serializers.py
%%DATADIR%%/users/api/serializers.py
@ -1199,13 +1230,19 @@
%%DATADIR%%/users/apps.py
%%DATADIR%%/users/constants.py
%%DATADIR%%/users/filtersets.py
%%DATADIR%%/users/forms.py
%%DATADIR%%/users/forms/__init__.py
%%DATADIR%%/users/forms/authentication.py
%%DATADIR%%/users/forms/bulk_edit.py
%%DATADIR%%/users/forms/bulk_import.py
%%DATADIR%%/users/forms/filtersets.py
%%DATADIR%%/users/forms/model_forms.py
%%DATADIR%%/users/graphql/__init__.py
%%DATADIR%%/users/graphql/schema.py
%%DATADIR%%/users/graphql/types.py
%%DATADIR%%/users/migrations/0001_squashed_0011.py
%%DATADIR%%/users/migrations/0002_standardize_id_fields.py
%%DATADIR%%/users/migrations/0003_token_allowed_ips_last_used.py
%%DATADIR%%/users/migrations/0004_netboxgroup_netboxuser.py
%%DATADIR%%/users/migrations/__init__.py
%%DATADIR%%/users/models.py
%%DATADIR%%/users/preferences.py
@ -1216,6 +1253,7 @@
%%DATADIR%%/users/tests/test_filtersets.py
%%DATADIR%%/users/tests/test_models.py
%%DATADIR%%/users/tests/test_preferences.py
%%DATADIR%%/users/tests/test_views.py
%%DATADIR%%/users/urls.py
%%DATADIR%%/users/utils.py
%%DATADIR%%/users/views.py
@ -1223,6 +1261,7 @@
%%DATADIR%%/utilities/api.py
%%DATADIR%%/utilities/choices.py
%%DATADIR%%/utilities/constants.py
%%DATADIR%%/utilities/counters.py
%%DATADIR%%/utilities/error_handlers.py
%%DATADIR%%/utilities/exceptions.py
%%DATADIR%%/utilities/fields.py
@ -1250,6 +1289,9 @@
%%DATADIR%%/utilities/htmx.py
%%DATADIR%%/utilities/jinja2.py
%%DATADIR%%/utilities/json.py
%%DATADIR%%/utilities/management/__init__.py
%%DATADIR%%/utilities/management/commands/__init__.py
%%DATADIR%%/utilities/management/commands/calculate_cached_counts.py
%%DATADIR%%/utilities/markdown.py
%%DATADIR%%/utilities/migration.py
%%DATADIR%%/utilities/mptt.py
@ -1269,6 +1311,7 @@
%%DATADIR%%/utilities/templates/builtins/htmx_table.html
%%DATADIR%%/utilities/templates/builtins/tag.html
%%DATADIR%%/utilities/templates/buttons/add.html
%%DATADIR%%/utilities/templates/buttons/bookmark.html
%%DATADIR%%/utilities/templates/buttons/bulk_delete.html
%%DATADIR%%/utilities/templates/buttons/bulk_edit.html
%%DATADIR%%/utilities/templates/buttons/clone.html
@ -1313,11 +1356,13 @@
%%DATADIR%%/utilities/tests/__init__.py
%%DATADIR%%/utilities/tests/test_api.py
%%DATADIR%%/utilities/tests/test_choices.py
%%DATADIR%%/utilities/tests/test_counters.py
%%DATADIR%%/utilities/tests/test_filters.py
%%DATADIR%%/utilities/tests/test_forms.py
%%DATADIR%%/utilities/tests/test_managers.py
%%DATADIR%%/utilities/tests/test_ordering.py
%%DATADIR%%/utilities/tests/test_utils.py
%%DATADIR%%/utilities/tracking.py
%%DATADIR%%/utilities/urls.py
%%DATADIR%%/utilities/utils.py
%%DATADIR%%/utilities/validators.py
@ -1354,6 +1399,8 @@
%%DATADIR%%/virtualization/migrations/0032_virtualmachine_update_sites.py
%%DATADIR%%/virtualization/migrations/0033_unique_constraints.py
%%DATADIR%%/virtualization/migrations/0034_standardize_description_comments.py
%%DATADIR%%/virtualization/migrations/0035_virtualmachine_interface_count.py
%%DATADIR%%/virtualization/migrations/0036_virtualmachine_config_template.py
%%DATADIR%%/virtualization/migrations/__init__.py
%%DATADIR%%/virtualization/models/__init__.py
%%DATADIR%%/virtualization/models/clusters.py