nautobot 2.0.5__py3-none-any.whl → 2.1.0b1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of nautobot might be problematic. Click here for more details.
- nautobot/circuits/navigation.py +0 -25
- nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -9
- nautobot/circuits/templates/circuits/providernetwork_retrieve.html +0 -2
- nautobot/circuits/tests/test_filters.py +1 -0
- nautobot/core/api/serializers.py +15 -5
- nautobot/core/api/views.py +18 -19
- nautobot/core/choices.py +1 -1
- nautobot/core/filters.py +12 -4
- nautobot/core/jobs/__init__.py +125 -3
- nautobot/core/management/commands/generate_test_data.py +4 -1
- nautobot/core/models/fields.py +12 -2
- nautobot/core/settings.py +8 -7
- nautobot/core/templates/base_django.html +2 -2
- nautobot/core/templates/buttons/export.html +57 -30
- nautobot/core/templates/generic/object_list.html +2 -2
- nautobot/core/templates/generic/object_retrieve.html +8 -1
- nautobot/core/templates/home.html +5 -5
- nautobot/core/templates/inc/created_updated.html +2 -2
- nautobot/core/templates/inc/footer.html +2 -2
- nautobot/core/templates/inc/javascript.html +0 -10
- nautobot/core/templates/inc/media.html +2 -0
- nautobot/core/templates/inc/nav_menu.html +66 -68
- nautobot/core/templates/inc/object_details_advanced_panel.html +19 -0
- nautobot/core/templates/nautobot_config.py.j2 +10 -4
- nautobot/core/templates/panel_table.html +1 -1
- nautobot/core/templates/template.css +89 -0
- nautobot/core/templates/utilities/templatetags/table_config_form.html +1 -0
- nautobot/core/templatetags/buttons.py +7 -2
- nautobot/core/testing/views.py +34 -4
- nautobot/core/tests/integration/test_home.py +1 -43
- nautobot/core/tests/integration/test_navbar.py +10 -64
- nautobot/core/tests/integration/test_plugin_home.py +4 -5
- nautobot/core/tests/integration/test_plugin_navbar.py +20 -16
- nautobot/core/tests/integration/test_theme.py +4 -0
- nautobot/core/tests/test_api.py +14 -66
- nautobot/core/tests/test_filters.py +127 -0
- nautobot/core/tests/test_forms.py +1 -1
- nautobot/core/tests/test_graphql.py +165 -2
- nautobot/core/tests/test_jobs.py +112 -0
- nautobot/core/tests/test_openapi.py +6 -0
- nautobot/core/tests/test_views.py +11 -85
- nautobot/core/urls.py +6 -1
- nautobot/core/utils/lookup.py +28 -0
- nautobot/core/utils/requests.py +2 -3
- nautobot/core/views/__init__.py +3 -4
- nautobot/core/views/generic.py +9 -4
- nautobot/core/views/mixins.py +4 -2
- nautobot/core/views/renderers.py +5 -0
- nautobot/dcim/models/device_components.py +1 -0
- nautobot/dcim/navigation.py +10 -165
- nautobot/dcim/templates/dcim/location.html +1 -1
- nautobot/dcim/tests/features/locations.feature +143 -0
- nautobot/dcim/tests/test_api.py +1 -1
- nautobot/dcim/tests/test_filters.py +11 -3
- nautobot/extras/admin.py +1 -1
- nautobot/extras/api/serializers.py +33 -0
- nautobot/extras/api/urls.py +6 -0
- nautobot/extras/api/views.py +45 -6
- nautobot/extras/factory.py +28 -2
- nautobot/extras/filters/__init__.py +52 -0
- nautobot/extras/filters/mixins.py +4 -29
- nautobot/extras/forms/forms.py +43 -0
- nautobot/extras/jobs.py +31 -9
- nautobot/extras/migrations/0100_fileproxy_job_result.py +32 -0
- nautobot/extras/migrations/0101_externalintegration.py +61 -0
- nautobot/extras/migrations/0102_set_null_objectchange_contenttype.py +32 -0
- nautobot/extras/models/__init__.py +2 -0
- nautobot/extras/models/change_logging.py +2 -2
- nautobot/extras/models/models.py +96 -16
- nautobot/extras/navigation.py +17 -29
- nautobot/extras/signals.py +15 -0
- nautobot/extras/tables.py +27 -0
- nautobot/extras/templates/extras/externalintegration_retrieve.html +37 -0
- nautobot/extras/templates/extras/inc/jobresult.html +24 -0
- nautobot/extras/templates/extras/jobresult.html +24 -0
- nautobot/extras/test_jobs/file_output.py +16 -0
- nautobot/extras/tests/test_api.py +92 -0
- nautobot/extras/tests/test_filters.py +64 -2
- nautobot/extras/tests/test_jobs.py +39 -0
- nautobot/extras/tests/test_models.py +34 -0
- nautobot/extras/tests/test_views.py +22 -2
- nautobot/extras/urls.py +1 -0
- nautobot/extras/views.py +15 -0
- nautobot/ipam/forms.py +16 -0
- nautobot/ipam/models.py +3 -0
- nautobot/ipam/navigation.py +2 -59
- nautobot/ipam/templates/ipam/ipaddress.html +0 -9
- nautobot/ipam/templates/ipam/prefix.html +0 -9
- nautobot/ipam/tests/features/prefixes.feature +134 -0
- nautobot/ipam/tests/test_filters.py +5 -10
- nautobot/ipam/tests/test_views.py +8 -1
- nautobot/ipam/views.py +3 -0
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css +191 -191
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +874 -881
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
- nautobot/project-static/css/base.css +135 -99
- nautobot/project-static/css/dark.css +65 -6
- nautobot/project-static/docs/404.html +44 -16
- nautobot/project-static/docs/apps/index.html +44 -16
- nautobot/project-static/docs/apps/nautobot-apps.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1597 -1457
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +45 -17
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +353 -432
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +66 -38
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +2154 -2307
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +807 -691
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +58 -30
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +3600 -3456
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +44 -16
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +101 -75
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +3083 -3019
- nautobot/project-static/docs/development/apps/api/configuration-view.html +44 -16
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +44 -16
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +44 -16
- nautobot/project-static/docs/development/apps/api/models/global-search.html +44 -16
- nautobot/project-static/docs/development/apps/api/models/graphql.html +44 -16
- nautobot/project-static/docs/development/apps/api/models/index.html +44 -16
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +44 -16
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +44 -16
- nautobot/project-static/docs/development/apps/api/prometheus.html +44 -16
- nautobot/project-static/docs/development/apps/api/setup.html +44 -16
- nautobot/project-static/docs/development/apps/api/testing.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +44 -16
- nautobot/project-static/docs/development/apps/api/ui-extensions/tabs.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/base-template.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/index.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/notes.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/urls.html +44 -16
- nautobot/project-static/docs/development/apps/api/views/view-overrides.html +44 -16
- nautobot/project-static/docs/development/apps/index.html +44 -16
- nautobot/project-static/docs/development/apps/migration/code-updates.html +44 -16
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +44 -16
- nautobot/project-static/docs/development/apps/migration/from-v1.html +44 -16
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +44 -16
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +44 -16
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +44 -16
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +44 -16
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +44 -16
- nautobot/project-static/docs/development/core/application-registry.html +44 -16
- nautobot/project-static/docs/development/core/best-practices.html +44 -16
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +44 -16
- nautobot/project-static/docs/development/core/extending-models.html +44 -16
- nautobot/project-static/docs/development/core/generic-views.html +44 -16
- nautobot/project-static/docs/development/core/getting-started.html +44 -16
- nautobot/project-static/docs/development/core/homepage.html +44 -16
- nautobot/project-static/docs/development/core/index.html +44 -16
- nautobot/project-static/docs/development/core/model-features.html +44 -16
- nautobot/project-static/docs/development/core/natural-keys.html +44 -16
- nautobot/project-static/docs/development/core/navigation-menu.html +44 -21
- nautobot/project-static/docs/development/core/react-ui.html +44 -16
- nautobot/project-static/docs/development/core/release-checklist.html +44 -16
- nautobot/project-static/docs/development/core/role-internals.html +44 -16
- nautobot/project-static/docs/development/core/style-guide.html +44 -16
- nautobot/project-static/docs/development/core/templates.html +44 -16
- nautobot/project-static/docs/development/core/testing.html +44 -16
- nautobot/project-static/docs/development/core/user-preferences.html +44 -16
- nautobot/project-static/docs/development/index.html +44 -16
- nautobot/project-static/docs/development/jobs/index.html +280 -234
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +44 -16
- nautobot/project-static/docs/index.html +44 -16
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/release-notes/index.html +47 -19
- nautobot/project-static/docs/release-notes/version-1.0.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.1.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.2.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.3.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.4.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.5.html +44 -16
- nautobot/project-static/docs/release-notes/version-1.6.html +44 -16
- nautobot/project-static/docs/release-notes/version-2.0.html +47 -19
- nautobot/project-static/docs/release-notes/version-2.1.html +5724 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +247 -237
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +44 -16
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +44 -16
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +44 -16
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +44 -16
- nautobot/project-static/docs/user-guide/administration/configuration/node-configuration.html +44 -16
- nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +109 -43
- nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/caching.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +44 -16
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -19
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/docker.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/index.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +44 -16
- nautobot/project-static/docs/user-guide/administration/installation/services.html +44 -16
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +44 -16
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +44 -16
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +44 -16
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +44 -16
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +44 -16
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +44 -16
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +44 -16
- nautobot/project-static/docs/user-guide/index.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +110 -16
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +47 -19
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +5359 -0
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +47 -19
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +113 -44
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +44 -16
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +44 -16
- nautobot/project-static/fonts/UFL.txt +96 -0
- nautobot/project-static/fonts/Ubuntu-Bold.woff2 +0 -0
- nautobot/project-static/fonts/Ubuntu-BoldItalic.woff2 +0 -0
- nautobot/project-static/fonts/Ubuntu-Italic.woff2 +0 -0
- nautobot/project-static/fonts/Ubuntu-Medium.woff2 +0 -0
- nautobot/project-static/fonts/Ubuntu-MediumItalic.woff2 +0 -0
- nautobot/project-static/fonts/Ubuntu-Regular.woff2 +0 -0
- nautobot/project-static/fonts/UbuntuMono-Bold.woff2 +0 -0
- nautobot/project-static/fonts/UbuntuMono-BoldItalic.woff2 +0 -0
- nautobot/project-static/fonts/UbuntuMono-Italic.woff2 +0 -0
- nautobot/project-static/fonts/UbuntuMono-Regular.woff2 +0 -0
- nautobot/project-static/img/dark-theme.png +0 -0
- nautobot/project-static/img/light-theme.png +0 -0
- nautobot/project-static/img/nautobot_chevron.svg +5 -0
- nautobot/project-static/img/nautobot_chevron_header.svg +5 -0
- nautobot/project-static/img/system-theme.png +0 -0
- nautobot/tenancy/navigation.py +0 -13
- nautobot/ui/package-lock.json +2 -2
- nautobot/ui/package.json +1 -1
- nautobot/users/admin.py +44 -0
- nautobot/users/migrations/0007_alter_objectpermission_object_types.py +33 -0
- nautobot/users/models.py +3 -2
- nautobot/virtualization/navigation.py +1 -33
- nautobot/virtualization/tests/test_api.py +1 -1
- nautobot/virtualization/tests/test_filters.py +1 -1
- {nautobot-2.0.5.dist-info → nautobot-2.1.0b1.dist-info}/METADATA +1 -1
- {nautobot-2.0.5.dist-info → nautobot-2.1.0b1.dist-info}/RECORD +376 -351
- {nautobot-2.0.5.dist-info → nautobot-2.1.0b1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.0.5.dist-info → nautobot-2.1.0b1.dist-info}/WHEEL +0 -0
- {nautobot-2.0.5.dist-info → nautobot-2.1.0b1.dist-info}/entry_points.txt +0 -0
|
@@ -2663,6 +2663,20 @@
|
|
|
2663
2663
|
|
|
2664
2664
|
|
|
2665
2665
|
|
|
2666
|
+
<li class="md-nav__item">
|
|
2667
|
+
<a href="externalintegration.html" class="md-nav__link">
|
|
2668
|
+
External Integrations
|
|
2669
|
+
</a>
|
|
2670
|
+
</li>
|
|
2671
|
+
|
|
2672
|
+
|
|
2673
|
+
|
|
2674
|
+
|
|
2675
|
+
|
|
2676
|
+
|
|
2677
|
+
|
|
2678
|
+
|
|
2679
|
+
|
|
2666
2680
|
<li class="md-nav__item">
|
|
2667
2681
|
<a href="gitrepository.html" class="md-nav__link">
|
|
2668
2682
|
Git Repositories
|
|
@@ -2683,7 +2697,7 @@
|
|
|
2683
2697
|
|
|
2684
2698
|
|
|
2685
2699
|
|
|
2686
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2700
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
|
|
2687
2701
|
|
|
2688
2702
|
|
|
2689
2703
|
|
|
@@ -2692,14 +2706,14 @@
|
|
|
2692
2706
|
<div class="md-nav__link md-nav__link--index ">
|
|
2693
2707
|
<a href="graphql.html">GraphQL</a>
|
|
2694
2708
|
|
|
2695
|
-
<label for="
|
|
2709
|
+
<label for="__nav_2_4_9">
|
|
2696
2710
|
<span class="md-nav__icon md-icon"></span>
|
|
2697
2711
|
</label>
|
|
2698
2712
|
|
|
2699
2713
|
</div>
|
|
2700
2714
|
|
|
2701
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
2702
|
-
<label class="md-nav__title" for="
|
|
2715
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_9_label" aria-expanded="false">
|
|
2716
|
+
<label class="md-nav__title" for="__nav_2_4_9">
|
|
2703
2717
|
<span class="md-nav__icon md-icon"></span>
|
|
2704
2718
|
GraphQL
|
|
2705
2719
|
</label>
|
|
@@ -2751,7 +2765,7 @@
|
|
|
2751
2765
|
|
|
2752
2766
|
|
|
2753
2767
|
|
|
2754
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2768
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
|
|
2755
2769
|
|
|
2756
2770
|
|
|
2757
2771
|
|
|
@@ -2760,14 +2774,14 @@
|
|
|
2760
2774
|
<div class="md-nav__link md-nav__link--index ">
|
|
2761
2775
|
<a href="jobs/index.html">Jobs</a>
|
|
2762
2776
|
|
|
2763
|
-
<label for="
|
|
2777
|
+
<label for="__nav_2_4_11">
|
|
2764
2778
|
<span class="md-nav__icon md-icon"></span>
|
|
2765
2779
|
</label>
|
|
2766
2780
|
|
|
2767
2781
|
</div>
|
|
2768
2782
|
|
|
2769
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
2770
|
-
<label class="md-nav__title" for="
|
|
2783
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_11_label" aria-expanded="false">
|
|
2784
|
+
<label class="md-nav__title" for="__nav_2_4_11">
|
|
2771
2785
|
<span class="md-nav__icon md-icon"></span>
|
|
2772
2786
|
Jobs
|
|
2773
2787
|
</label>
|
|
@@ -2889,7 +2903,7 @@
|
|
|
2889
2903
|
|
|
2890
2904
|
|
|
2891
2905
|
|
|
2892
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
2906
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_15" >
|
|
2893
2907
|
|
|
2894
2908
|
|
|
2895
2909
|
|
|
@@ -2898,14 +2912,14 @@
|
|
|
2898
2912
|
<div class="md-nav__link md-nav__link--index ">
|
|
2899
2913
|
<a href="rest-api/overview.html">REST API</a>
|
|
2900
2914
|
|
|
2901
|
-
<label for="
|
|
2915
|
+
<label for="__nav_2_4_15">
|
|
2902
2916
|
<span class="md-nav__icon md-icon"></span>
|
|
2903
2917
|
</label>
|
|
2904
2918
|
|
|
2905
2919
|
</div>
|
|
2906
2920
|
|
|
2907
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
2908
|
-
<label class="md-nav__title" for="
|
|
2921
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_15_label" aria-expanded="false">
|
|
2922
|
+
<label class="md-nav__title" for="__nav_2_4_15">
|
|
2909
2923
|
<span class="md-nav__icon md-icon"></span>
|
|
2910
2924
|
REST API
|
|
2911
2925
|
</label>
|
|
@@ -3041,17 +3055,17 @@
|
|
|
3041
3055
|
|
|
3042
3056
|
|
|
3043
3057
|
|
|
3044
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
3058
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_21" >
|
|
3045
3059
|
|
|
3046
3060
|
|
|
3047
3061
|
|
|
3048
|
-
<label class="md-nav__link" for="
|
|
3062
|
+
<label class="md-nav__link" for="__nav_2_4_21" id="__nav_2_4_21_label" tabindex="0">
|
|
3049
3063
|
Users
|
|
3050
3064
|
<span class="md-nav__icon md-icon"></span>
|
|
3051
3065
|
</label>
|
|
3052
3066
|
|
|
3053
|
-
<nav class="md-nav" data-md-level="3" aria-labelledby="
|
|
3054
|
-
<label class="md-nav__title" for="
|
|
3067
|
+
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_21_label" aria-expanded="false">
|
|
3068
|
+
<label class="md-nav__title" for="__nav_2_4_21">
|
|
3055
3069
|
<span class="md-nav__icon md-icon"></span>
|
|
3056
3070
|
Users
|
|
3057
3071
|
</label>
|
|
@@ -4866,6 +4880,20 @@
|
|
|
4866
4880
|
|
|
4867
4881
|
|
|
4868
4882
|
|
|
4883
|
+
<li class="md-nav__item">
|
|
4884
|
+
<a href="../../release-notes/version-2.1.html" class="md-nav__link">
|
|
4885
|
+
Version 2.1
|
|
4886
|
+
</a>
|
|
4887
|
+
</li>
|
|
4888
|
+
|
|
4889
|
+
|
|
4890
|
+
|
|
4891
|
+
|
|
4892
|
+
|
|
4893
|
+
|
|
4894
|
+
|
|
4895
|
+
|
|
4896
|
+
|
|
4869
4897
|
<li class="md-nav__item">
|
|
4870
4898
|
<a href="../../release-notes/version-2.0.html" class="md-nav__link">
|
|
4871
4899
|
Version 2.0
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
-------------------------------
|
|
2
|
+
UBUNTU FONT LICENCE Version 1.0
|
|
3
|
+
-------------------------------
|
|
4
|
+
|
|
5
|
+
PREAMBLE
|
|
6
|
+
This licence allows the licensed fonts to be used, studied, modified and
|
|
7
|
+
redistributed freely. The fonts, including any derivative works, can be
|
|
8
|
+
bundled, embedded, and redistributed provided the terms of this licence
|
|
9
|
+
are met. The fonts and derivatives, however, cannot be released under
|
|
10
|
+
any other licence. The requirement for fonts to remain under this
|
|
11
|
+
licence does not require any document created using the fonts or their
|
|
12
|
+
derivatives to be published under this licence, as long as the primary
|
|
13
|
+
purpose of the document is not to be a vehicle for the distribution of
|
|
14
|
+
the fonts.
|
|
15
|
+
|
|
16
|
+
DEFINITIONS
|
|
17
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
18
|
+
Holder(s) under this licence and clearly marked as such. This may
|
|
19
|
+
include source files, build scripts and documentation.
|
|
20
|
+
|
|
21
|
+
"Original Version" refers to the collection of Font Software components
|
|
22
|
+
as received under this licence.
|
|
23
|
+
|
|
24
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
25
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
26
|
+
Original Version, by changing formats or by porting the Font Software to
|
|
27
|
+
a new environment.
|
|
28
|
+
|
|
29
|
+
"Copyright Holder(s)" refers to all individuals and companies who have a
|
|
30
|
+
copyright ownership of the Font Software.
|
|
31
|
+
|
|
32
|
+
"Substantially Changed" refers to Modified Versions which can be easily
|
|
33
|
+
identified as dissimilar to the Font Software by users of the Font
|
|
34
|
+
Software comparing the Original Version with the Modified Version.
|
|
35
|
+
|
|
36
|
+
To "Propagate" a work means to do anything with it that, without
|
|
37
|
+
permission, would make you directly or secondarily liable for
|
|
38
|
+
infringement under applicable copyright law, except executing it on a
|
|
39
|
+
computer or modifying a private copy. Propagation includes copying,
|
|
40
|
+
distribution (with or without modification and with or without charging
|
|
41
|
+
a redistribution fee), making available to the public, and in some
|
|
42
|
+
countries other activities as well.
|
|
43
|
+
|
|
44
|
+
PERMISSION & CONDITIONS
|
|
45
|
+
This licence does not grant any rights under trademark law and all such
|
|
46
|
+
rights are reserved.
|
|
47
|
+
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
|
49
|
+
copy of the Font Software, to propagate the Font Software, subject to
|
|
50
|
+
the below conditions:
|
|
51
|
+
|
|
52
|
+
1) Each copy of the Font Software must contain the above copyright
|
|
53
|
+
notice and this licence. These can be included either as stand-alone
|
|
54
|
+
text files, human-readable headers or in the appropriate machine-
|
|
55
|
+
readable metadata fields within text or binary files as long as those
|
|
56
|
+
fields can be easily viewed by the user.
|
|
57
|
+
|
|
58
|
+
2) The font name complies with the following:
|
|
59
|
+
(a) The Original Version must retain its name, unmodified.
|
|
60
|
+
(b) Modified Versions which are Substantially Changed must be renamed to
|
|
61
|
+
avoid use of the name of the Original Version or similar names entirely.
|
|
62
|
+
(c) Modified Versions which are not Substantially Changed must be
|
|
63
|
+
renamed to both (i) retain the name of the Original Version and (ii) add
|
|
64
|
+
additional naming elements to distinguish the Modified Version from the
|
|
65
|
+
Original Version. The name of such Modified Versions must be the name of
|
|
66
|
+
the Original Version, with "derivative X" where X represents the name of
|
|
67
|
+
the new work, appended to that name.
|
|
68
|
+
|
|
69
|
+
3) The name(s) of the Copyright Holder(s) and any contributor to the
|
|
70
|
+
Font Software shall not be used to promote, endorse or advertise any
|
|
71
|
+
Modified Version, except (i) as required by this licence, (ii) to
|
|
72
|
+
acknowledge the contribution(s) of the Copyright Holder(s) or (iii) with
|
|
73
|
+
their explicit written permission.
|
|
74
|
+
|
|
75
|
+
4) The Font Software, modified or unmodified, in part or in whole, must
|
|
76
|
+
be distributed entirely under this licence, and must not be distributed
|
|
77
|
+
under any other licence. The requirement for fonts to remain under this
|
|
78
|
+
licence does not affect any document created using the Font Software,
|
|
79
|
+
except any version of the Font Software extracted from a document
|
|
80
|
+
created using the Font Software may only be distributed under this
|
|
81
|
+
licence.
|
|
82
|
+
|
|
83
|
+
TERMINATION
|
|
84
|
+
This licence becomes null and void if any of the above conditions are
|
|
85
|
+
not met.
|
|
86
|
+
|
|
87
|
+
DISCLAIMER
|
|
88
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
89
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
90
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
|
|
91
|
+
COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
92
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
93
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
94
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
95
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
|
|
96
|
+
DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="17" height="20" viewBox="0 0 17 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.277304 13C0.181925 13 0.102443 12.9571 0.054754 12.8856C-0.0247279 12.7711 0.022961 12.6281 0.150132 12.5566L4.96673 9.99603L0.134236 7.4498C0.00706488 7.37828 -0.040624 7.23523 0.0388579 7.12079C0.11834 7.00636 0.277303 6.96344 0.404474 7.03497L6 9.99603L0.404474 12.9714C0.372681 13 0.324993 13 0.277304 13Z" fill="#FF8400"/>
|
|
3
|
+
<path d="M6.26141 13C6.16603 13 6.08655 12.9571 6.03886 12.8856C5.95938 12.7711 6.00706 12.6281 6.13424 12.5566L10.9508 9.99603L6.13424 7.4498C6.00706 7.37828 5.95938 7.23523 6.03886 7.12079C6.11834 7.00636 6.2773 6.96344 6.40447 7.03497L12 9.99603L6.40447 12.9714C6.35679 13 6.3091 13 6.26141 13Z" fill="#FF8400"/>
|
|
4
|
+
<path d="M12.2311 13C12.1516 13 12.0854 12.9571 12.0456 12.8856C11.9794 12.7711 12.0191 12.6281 12.1251 12.5566L16.1389 9.99603L12.1119 7.4498C12.0059 7.37828 11.9661 7.23523 12.0324 7.12079C12.0986 7.00636 12.2311 6.96344 12.3371 7.03497L17 9.99603L12.3371 12.9714C12.3106 13 12.2708 13 12.2311 13Z" fill="#FF8400"/>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="34" height="40" viewBox="0 0 17 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.277304 13C0.181925 13 0.102443 12.9571 0.054754 12.8856C-0.0247279 12.7711 0.022961 12.6281 0.150132 12.5566L4.96673 9.99603L0.134236 7.4498C0.00706488 7.37828 -0.040624 7.23523 0.0388579 7.12079C0.11834 7.00636 0.277303 6.96344 0.404474 7.03497L6 9.99603L0.404474 12.9714C0.372681 13 0.324993 13 0.277304 13Z" fill="#FF8400"/>
|
|
3
|
+
<path d="M6.26141 13C6.16603 13 6.08655 12.9571 6.03886 12.8856C5.95938 12.7711 6.00706 12.6281 6.13424 12.5566L10.9508 9.99603L6.13424 7.4498C6.00706 7.37828 5.95938 7.23523 6.03886 7.12079C6.11834 7.00636 6.2773 6.96344 6.40447 7.03497L12 9.99603L6.40447 12.9714C6.35679 13 6.3091 13 6.26141 13Z" fill="#FF8400"/>
|
|
4
|
+
<path d="M12.2311 13C12.1516 13 12.0854 12.9571 12.0456 12.8856C11.9794 12.7711 12.0191 12.6281 12.1251 12.5566L16.1389 9.99603L12.1119 7.4498C12.0059 7.37828 11.9661 7.23523 12.0324 7.12079C12.0986 7.00636 12.2311 6.96344 12.3371 7.03497L17 9.99603L12.3371 12.9714C12.3106 13 12.2708 13 12.2311 13Z" fill="#FF8400"/>
|
|
5
|
+
</svg>
|
|
Binary file
|
nautobot/tenancy/navigation.py
CHANGED
|
@@ -5,7 +5,6 @@ from nautobot.core.apps import (
|
|
|
5
5
|
NavMenuAddButton,
|
|
6
6
|
NavMenuGroup,
|
|
7
7
|
NavMenuItem,
|
|
8
|
-
NavMenuImportButton,
|
|
9
8
|
NavMenuTab,
|
|
10
9
|
)
|
|
11
10
|
|
|
@@ -33,12 +32,6 @@ menu_items = (
|
|
|
33
32
|
"tenancy.add_tag",
|
|
34
33
|
],
|
|
35
34
|
),
|
|
36
|
-
NavMenuImportButton(
|
|
37
|
-
link="tenancy:tenant_import",
|
|
38
|
-
permissions=[
|
|
39
|
-
"tenancy.add_tenant",
|
|
40
|
-
],
|
|
41
|
-
),
|
|
42
35
|
),
|
|
43
36
|
),
|
|
44
37
|
NavMenuItem(
|
|
@@ -55,12 +48,6 @@ menu_items = (
|
|
|
55
48
|
"tenancy.add_tenantgroup",
|
|
56
49
|
],
|
|
57
50
|
),
|
|
58
|
-
NavMenuImportButton(
|
|
59
|
-
link="tenancy:tenantgroup_import",
|
|
60
|
-
permissions=[
|
|
61
|
-
"tenancy.add_tenantgroup",
|
|
62
|
-
],
|
|
63
|
-
),
|
|
64
51
|
),
|
|
65
52
|
),
|
|
66
53
|
),
|
nautobot/ui/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nautobot",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0-b1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "nautobot",
|
|
9
|
-
"version": "2.0
|
|
9
|
+
"version": "2.1.0-b1",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@chakra-ui/icons": "^2.0.0",
|
|
12
12
|
"@chakra-ui/react": "^2.5.1",
|
nautobot/ui/package.json
CHANGED
nautobot/users/admin.py
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
from django import forms
|
|
2
2
|
from django.contrib import admin
|
|
3
|
+
from django.contrib.admin.models import DELETION, LogEntry
|
|
3
4
|
from django.contrib.auth import get_user_model
|
|
4
5
|
from django.contrib.auth.admin import UserAdmin as UserAdmin_
|
|
5
6
|
from django.contrib.auth.models import Group
|
|
6
7
|
from django.contrib.contenttypes.models import ContentType
|
|
7
8
|
from django.core.exceptions import FieldError, ValidationError
|
|
8
9
|
from django.db import models
|
|
10
|
+
from django.urls import reverse
|
|
11
|
+
from django.utils.html import escape, format_html
|
|
9
12
|
|
|
10
13
|
from nautobot.core.admin import NautobotModelAdmin
|
|
11
14
|
from nautobot.extras.admin import order_content_types
|
|
@@ -70,6 +73,47 @@ class GroupAdmin(NautobotModelAdmin):
|
|
|
70
73
|
return obj.user_set.count()
|
|
71
74
|
|
|
72
75
|
|
|
76
|
+
@admin.register(LogEntry)
|
|
77
|
+
class LogEntryAdmin(NautobotModelAdmin):
|
|
78
|
+
"""ModelAdmin for Django admin log entries that is read-only."""
|
|
79
|
+
|
|
80
|
+
date_hierarchy = "action_time"
|
|
81
|
+
search_fields = ["change_message", "object_repr", "user__username"]
|
|
82
|
+
list_display = [
|
|
83
|
+
"action_time",
|
|
84
|
+
"user",
|
|
85
|
+
"content_type",
|
|
86
|
+
"object_link",
|
|
87
|
+
"action_flag",
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
def has_add_permission(self, request):
|
|
91
|
+
"""Disable add permission."""
|
|
92
|
+
return False
|
|
93
|
+
|
|
94
|
+
def has_change_permission(self, request, obj=None):
|
|
95
|
+
"""Disable change permission."""
|
|
96
|
+
return False
|
|
97
|
+
|
|
98
|
+
def has_delete_permission(self, request, obj=None):
|
|
99
|
+
"""Disable delete permission."""
|
|
100
|
+
return False
|
|
101
|
+
|
|
102
|
+
def object_link(self, obj):
|
|
103
|
+
"""Link to the related object, unless it was deleted."""
|
|
104
|
+
if obj.action_flag == DELETION:
|
|
105
|
+
link = escape(obj.object_repr)
|
|
106
|
+
else:
|
|
107
|
+
ct = obj.content_type
|
|
108
|
+
change_link = reverse(f"admin:{ct.app_label}_{ct.model}_change", args=[obj.object_id])
|
|
109
|
+
object_repr = obj.object_repr
|
|
110
|
+
link = format_html('<a href="{}">{}</a>', change_link, object_repr)
|
|
111
|
+
return link
|
|
112
|
+
|
|
113
|
+
object_link.admin_order_field = "object_repr"
|
|
114
|
+
object_link.short_description = "object"
|
|
115
|
+
|
|
116
|
+
|
|
73
117
|
@admin.register(User)
|
|
74
118
|
class UserAdmin(UserAdmin_):
|
|
75
119
|
list_display = [
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Generated by Django 3.2.21 on 2023-10-26 16:15
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
dependencies = [
|
|
8
|
+
("contenttypes", "0002_remove_content_type_name"),
|
|
9
|
+
("users", "0006_make_object_permission_name_globally_unique"),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterField(
|
|
14
|
+
model_name="objectpermission",
|
|
15
|
+
name="object_types",
|
|
16
|
+
field=models.ManyToManyField(
|
|
17
|
+
limit_choices_to=models.Q(
|
|
18
|
+
models.Q(
|
|
19
|
+
models.Q(
|
|
20
|
+
("app_label__in", ["admin", "auth", "contenttypes", "sessions", "taggit", "users"]),
|
|
21
|
+
_negated=True,
|
|
22
|
+
),
|
|
23
|
+
models.Q(("app_label", "admin"), ("model__in", ["logentry"])),
|
|
24
|
+
models.Q(("app_label", "auth"), ("model__in", ["group"])),
|
|
25
|
+
models.Q(("app_label", "users"), ("model__in", ["objectpermission", "token", "user"])),
|
|
26
|
+
_connector="OR",
|
|
27
|
+
)
|
|
28
|
+
),
|
|
29
|
+
related_name="object_permissions",
|
|
30
|
+
to="contenttypes.ContentType",
|
|
31
|
+
),
|
|
32
|
+
),
|
|
33
|
+
]
|
nautobot/users/models.py
CHANGED
|
@@ -245,8 +245,9 @@ class ObjectPermission(BaseModel):
|
|
|
245
245
|
"users",
|
|
246
246
|
]
|
|
247
247
|
)
|
|
248
|
-
| Q(app_label="
|
|
249
|
-
| Q(app_label="
|
|
248
|
+
| Q(app_label="admin", model__in=["logentry"])
|
|
249
|
+
| Q(app_label="auth", model__in=["group"])
|
|
250
|
+
| Q(app_label="users", model__in=["objectpermission", "token", "user"])
|
|
250
251
|
),
|
|
251
252
|
related_name="object_permissions",
|
|
252
253
|
)
|
|
@@ -5,7 +5,6 @@ from nautobot.core.apps import (
|
|
|
5
5
|
NavMenuAddButton,
|
|
6
6
|
NavMenuGroup,
|
|
7
7
|
NavMenuItem,
|
|
8
|
-
NavMenuImportButton,
|
|
9
8
|
NavMenuTab,
|
|
10
9
|
)
|
|
11
10
|
|
|
@@ -33,12 +32,6 @@ menu_items = (
|
|
|
33
32
|
"virtualization.add_virtualmachine",
|
|
34
33
|
],
|
|
35
34
|
),
|
|
36
|
-
NavMenuImportButton(
|
|
37
|
-
link="virtualization:virtualmachine_import",
|
|
38
|
-
permissions=[
|
|
39
|
-
"virtualization.add_virtualmachine",
|
|
40
|
-
],
|
|
41
|
-
),
|
|
42
35
|
),
|
|
43
36
|
),
|
|
44
37
|
NavMenuItem(
|
|
@@ -48,14 +41,7 @@ menu_items = (
|
|
|
48
41
|
permissions=[
|
|
49
42
|
"virtualization.view_vminterface",
|
|
50
43
|
],
|
|
51
|
-
buttons=(
|
|
52
|
-
NavMenuImportButton(
|
|
53
|
-
link="virtualization:vminterface_import",
|
|
54
|
-
permissions=[
|
|
55
|
-
"virtualization.add_vminterface",
|
|
56
|
-
],
|
|
57
|
-
),
|
|
58
|
-
),
|
|
44
|
+
buttons=(),
|
|
59
45
|
),
|
|
60
46
|
),
|
|
61
47
|
),
|
|
@@ -77,12 +63,6 @@ menu_items = (
|
|
|
77
63
|
"virtualization.add_cluster",
|
|
78
64
|
],
|
|
79
65
|
),
|
|
80
|
-
NavMenuImportButton(
|
|
81
|
-
link="virtualization:cluster_import",
|
|
82
|
-
permissions=[
|
|
83
|
-
"virtualization.add_cluster",
|
|
84
|
-
],
|
|
85
|
-
),
|
|
86
66
|
),
|
|
87
67
|
),
|
|
88
68
|
NavMenuItem(
|
|
@@ -99,12 +79,6 @@ menu_items = (
|
|
|
99
79
|
"virtualization.add_clustertype",
|
|
100
80
|
],
|
|
101
81
|
),
|
|
102
|
-
NavMenuImportButton(
|
|
103
|
-
link="virtualization:clustertype_import",
|
|
104
|
-
permissions=[
|
|
105
|
-
"virtualization.add_clustertype",
|
|
106
|
-
],
|
|
107
|
-
),
|
|
108
82
|
),
|
|
109
83
|
),
|
|
110
84
|
NavMenuItem(
|
|
@@ -121,12 +95,6 @@ menu_items = (
|
|
|
121
95
|
"virtualization.add_clustergroup",
|
|
122
96
|
],
|
|
123
97
|
),
|
|
124
|
-
NavMenuImportButton(
|
|
125
|
-
link="virtualization:clustergroup_import",
|
|
126
|
-
permissions=[
|
|
127
|
-
"virtualization.add_clustergroup",
|
|
128
|
-
],
|
|
129
|
-
),
|
|
130
98
|
),
|
|
131
99
|
),
|
|
132
100
|
),
|
|
@@ -289,7 +289,7 @@ class VMInterfaceTest(APIViewTestCases.APIViewTestCase):
|
|
|
289
289
|
)
|
|
290
290
|
|
|
291
291
|
vlan_status = Status.objects.get_for_model(VLAN).first()
|
|
292
|
-
vlan_group = VLANGroup.objects.
|
|
292
|
+
vlan_group = VLANGroup.objects.create(name="Test VLANGroup 1")
|
|
293
293
|
vlans = (
|
|
294
294
|
VLAN.objects.create(name="VLAN 1", vid=1, status=vlan_status, vlan_group=vlan_group),
|
|
295
295
|
VLAN.objects.create(name="VLAN 2", vid=2, status=vlan_status, vlan_group=vlan_group),
|
|
@@ -492,7 +492,7 @@ class VirtualMachineTestCase(FilterTestCases.FilterTestCase, FilterTestCases.Ten
|
|
|
492
492
|
self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
|
|
493
493
|
|
|
494
494
|
def test_status(self):
|
|
495
|
-
params = {"status": [self.statuses[0].name, self.statuses[1].
|
|
495
|
+
params = {"status": [self.statuses[0].name, self.statuses[1].id]}
|
|
496
496
|
self.assertQuerysetEqualAndNotEmpty(
|
|
497
497
|
self.filterset(params, self.queryset).qs,
|
|
498
498
|
self.queryset.filter(status__in=[self.statuses[0], self.statuses[1]]),
|