nautobot 2.4.5__py3-none-any.whl → 2.4.7__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/apps/forms.py +2 -0
- nautobot/circuits/templates/circuits/providernetwork.html +1 -1
- nautobot/circuits/templates/circuits/providernetwork_retrieve.html +2 -55
- nautobot/circuits/views.py +20 -23
- nautobot/cloud/templates/cloud/cloudaccount_retrieve.html +2 -40
- nautobot/cloud/views.py +12 -0
- nautobot/core/api/mixins.py +10 -0
- nautobot/core/api/urls.py +2 -2
- nautobot/core/api/views.py +39 -1
- nautobot/core/celery/encoders.py +2 -2
- nautobot/core/forms/__init__.py +2 -0
- nautobot/core/forms/fields.py +23 -7
- nautobot/core/forms/utils.py +1 -0
- nautobot/core/forms/widgets.py +18 -0
- nautobot/core/jobs/bulk_actions.py +1 -1
- nautobot/core/management/commands/generate_test_data.py +1 -1
- nautobot/core/models/name_color_content_types.py +9 -0
- nautobot/core/models/validators.py +7 -0
- nautobot/core/settings.py +0 -14
- nautobot/core/settings.yaml +0 -28
- nautobot/core/tables.py +6 -1
- nautobot/core/templates/generic/object_retrieve.html +1 -1
- nautobot/core/templates/widgets/sluginput.html +5 -1
- nautobot/core/templatetags/helpers.py +15 -1
- nautobot/core/testing/api.py +18 -0
- nautobot/core/testing/integration.py +6 -2
- nautobot/core/tests/nautobot_config.py +0 -2
- nautobot/core/tests/runner.py +17 -140
- nautobot/core/tests/test_api.py +4 -4
- nautobot/core/tests/test_authentication.py +83 -4
- nautobot/core/tests/test_forms.py +11 -8
- nautobot/core/tests/test_graphql.py +9 -0
- nautobot/core/tests/test_jobs.py +7 -0
- nautobot/core/ui/object_detail.py +47 -3
- nautobot/core/utils/lookup.py +2 -2
- nautobot/dcim/factory.py +2 -0
- nautobot/dcim/filters/__init__.py +5 -0
- nautobot/dcim/forms.py +27 -1
- nautobot/dcim/migrations/0068_alter_softwareimagefile_download_url.py +19 -0
- nautobot/dcim/migrations/0069_softwareimagefile_external_integration.py +25 -0
- nautobot/dcim/models/devices.py +9 -2
- nautobot/dcim/models/locations.py +9 -0
- nautobot/dcim/tables/devices.py +1 -0
- nautobot/dcim/templates/dcim/device_list.html +1 -1
- nautobot/dcim/templates/dcim/devicetype.html +1 -1
- nautobot/dcim/templates/dcim/manufacturer.html +1 -63
- nautobot/dcim/templates/dcim/module_list.html +1 -1
- nautobot/dcim/templates/dcim/moduletype_retrieve.html +1 -1
- nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +4 -0
- nautobot/dcim/tests/integration/test_module_bay_position.py +125 -0
- nautobot/dcim/tests/test_api.py +74 -31
- nautobot/dcim/tests/test_filters.py +2 -0
- nautobot/dcim/tests/test_models.py +78 -0
- nautobot/dcim/tests/test_views.py +7 -1
- nautobot/dcim/urls.py +1 -45
- nautobot/dcim/views.py +35 -66
- nautobot/extras/choices.py +4 -0
- nautobot/extras/filters/__init__.py +6 -0
- nautobot/extras/forms/forms.py +83 -11
- nautobot/extras/models/customfields.py +10 -9
- nautobot/extras/plugins/marketplace_manifest.yml +18 -0
- nautobot/extras/signals.py +43 -4
- nautobot/extras/tables.py +4 -5
- nautobot/extras/tasks.py +4 -2
- nautobot/extras/templates/extras/contact_retrieve.html +1 -58
- nautobot/extras/templates/extras/exporttemplate.html +1 -53
- nautobot/extras/templates/extras/inc/panel_changelog.html +1 -1
- nautobot/extras/templates/extras/inc/panel_jobhistory.html +1 -1
- nautobot/extras/templates/extras/status.html +1 -37
- nautobot/extras/templates/extras/team_retrieve.html +1 -58
- nautobot/extras/tests/integration/test_notes.py +1 -1
- nautobot/extras/tests/test_api.py +22 -7
- nautobot/extras/tests/test_changelog.py +4 -4
- nautobot/extras/tests/test_customfields.py +27 -0
- nautobot/extras/tests/test_plugins.py +19 -13
- nautobot/extras/tests/test_relationships.py +9 -0
- nautobot/extras/tests/test_tags.py +2 -2
- nautobot/extras/tests/test_views.py +37 -6
- nautobot/extras/urls.py +3 -100
- nautobot/extras/views.py +111 -133
- nautobot/ipam/tables.py +7 -2
- nautobot/ipam/templates/ipam/namespace_retrieve.html +0 -41
- nautobot/ipam/templates/ipam/service.html +2 -46
- nautobot/ipam/templates/ipam/service_edit.html +1 -17
- nautobot/ipam/templates/ipam/service_retrieve.html +7 -0
- nautobot/ipam/tests/migration/__init__.py +0 -0
- nautobot/ipam/tests/migration/test_migrations.py +510 -0
- nautobot/ipam/tests/test_api.py +66 -36
- nautobot/ipam/tests/test_filters.py +0 -10
- nautobot/ipam/tests/test_views.py +44 -2
- nautobot/ipam/urls.py +2 -47
- nautobot/ipam/utils/migrations.py +185 -152
- nautobot/ipam/utils/testing.py +177 -0
- nautobot/ipam/views.py +95 -157
- nautobot/project-static/css/base.css +5 -0
- nautobot/project-static/docs/404.html +0 -2
- nautobot/project-static/docs/apps/index.html +0 -2
- nautobot/project-static/docs/apps/nautobot-apps.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +62 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +47 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +18 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +70 -5
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +0 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +0 -2
- nautobot/project-static/docs/development/apps/api/configuration-view.html +0 -2
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +0 -2
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +0 -2
- nautobot/project-static/docs/development/apps/api/models/global-search.html +0 -2
- nautobot/project-static/docs/development/apps/api/models/graphql.html +0 -2
- nautobot/project-static/docs/development/apps/api/models/index.html +0 -2
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +0 -2
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +0 -2
- nautobot/project-static/docs/development/apps/api/prometheus.html +0 -2
- nautobot/project-static/docs/development/apps/api/setup.html +0 -2
- nautobot/project-static/docs/development/apps/api/testing.html +0 -89
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +0 -2
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +0 -2
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +0 -2
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +0 -2
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/base-template.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/index.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/notes.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +0 -2
- nautobot/project-static/docs/development/apps/api/views/urls.html +0 -2
- nautobot/project-static/docs/development/apps/index.html +0 -2
- nautobot/project-static/docs/development/apps/migration/code-updates.html +0 -2
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +1 -3
- nautobot/project-static/docs/development/apps/migration/from-v1.html +0 -2
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +0 -2
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +0 -2
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +0 -2
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +0 -2
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +0 -2
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +0 -2
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +0 -2
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +0 -2
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +0 -2
- nautobot/project-static/docs/development/core/application-registry.html +0 -2
- nautobot/project-static/docs/development/core/best-practices.html +3 -5
- nautobot/project-static/docs/development/core/bootstrap-ui.html +0 -2
- nautobot/project-static/docs/development/core/caching.html +0 -2
- nautobot/project-static/docs/development/core/controllers.html +0 -2
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +0 -2
- nautobot/project-static/docs/development/core/generic-views.html +0 -2
- nautobot/project-static/docs/development/core/getting-started.html +78 -109
- nautobot/project-static/docs/development/core/homepage.html +0 -2
- nautobot/project-static/docs/development/core/index.html +0 -2
- nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +0 -2
- nautobot/project-static/docs/development/core/model-checklist.html +0 -2
- nautobot/project-static/docs/development/core/model-features.html +0 -2
- nautobot/project-static/docs/development/core/natural-keys.html +0 -2
- nautobot/project-static/docs/development/core/navigation-menu.html +0 -2
- nautobot/project-static/docs/development/core/release-checklist.html +1 -3
- nautobot/project-static/docs/development/core/role-internals.html +0 -2
- nautobot/project-static/docs/development/core/settings.html +0 -2
- nautobot/project-static/docs/development/core/style-guide.html +1 -3
- nautobot/project-static/docs/development/core/templates.html +0 -2
- nautobot/project-static/docs/development/core/testing.html +24 -200
- nautobot/project-static/docs/development/core/ui-component-framework.html +0 -2
- nautobot/project-static/docs/development/core/user-preferences.html +0 -2
- nautobot/project-static/docs/development/index.html +0 -2
- nautobot/project-static/docs/development/jobs/index.html +0 -2
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +0 -2
- nautobot/project-static/docs/index.html +0 -2
- nautobot/project-static/docs/media/user-guide/administration/getting-started/nautobot-cloud.png +0 -0
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +1 -3
- nautobot/project-static/docs/overview/design_philosophy.html +0 -2
- nautobot/project-static/docs/release-notes/index.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.0.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.1.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.2.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.3.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.4.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.5.html +0 -2
- nautobot/project-static/docs/release-notes/version-1.6.html +0 -2
- nautobot/project-static/docs/release-notes/version-2.0.html +0 -2
- nautobot/project-static/docs/release-notes/version-2.1.html +0 -2
- nautobot/project-static/docs/release-notes/version-2.2.html +0 -2
- nautobot/project-static/docs/release-notes/version-2.3.html +0 -2
- nautobot/project-static/docs/release-notes/version-2.4.html +364 -3
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +290 -290
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +0 -2
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +0 -2
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +0 -2
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +0 -2
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +0 -2
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +2 -50
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +71 -2
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +0 -2
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +0 -2
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +0 -2
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +0 -2
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +3 -3
- nautobot/project-static/docs/user-guide/administration/installation/index.html +257 -18
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +0 -2
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +0 -2
- nautobot/project-static/docs/user-guide/administration/installation/services.html +0 -2
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +0 -2
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +0 -2
- nautobot/project-static/docs/user-guide/administration/security/index.html +0 -2
- nautobot/project-static/docs/user-guide/administration/security/notices.html +0 -2
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +1 -3
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +0 -2
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +2 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +4 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +0 -2
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +11 -13
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +8 -10
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +1 -2
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +40 -27
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +4 -6
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +1 -3
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +77 -7
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +1 -3
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +0 -3
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -3
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +0 -2
- nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +0 -2
- nautobot/project-static/docs/user-guide/index.html +89 -4
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +0 -2
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +207 -124
- nautobot/project-static/js/forms.js +88 -37
- nautobot/project-static/js/homepage_layout.js +12 -3
- nautobot/virtualization/forms.py +20 -0
- nautobot/virtualization/templates/virtualization/clustergroup.html +1 -39
- nautobot/virtualization/templates/virtualization/clustertype.html +1 -0
- nautobot/virtualization/tests/test_api.py +14 -3
- nautobot/virtualization/tests/test_views.py +10 -2
- nautobot/virtualization/urls.py +10 -93
- nautobot/virtualization/views.py +33 -72
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/METADATA +6 -5
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/RECORD +407 -402
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/WHEEL +1 -1
- nautobot/core/tests/performance_baselines.yml +0 -8900
- nautobot/dcim/templates/dcim/modulebay_create.html +0 -39
- nautobot/ipam/tests/test_migrations.py +0 -462
- /nautobot/ipam/templates/ipam/{namespace_ipaddresses.html → namespace_ip_addresses.html} +0 -0
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/NOTICE +0 -0
- {nautobot-2.4.5.dist-info → nautobot-2.4.7.dist-info}/entry_points.txt +0 -0
nautobot/extras/views.py
CHANGED
|
@@ -31,9 +31,10 @@ from nautobot.core.forms import restrict_form_fields
|
|
|
31
31
|
from nautobot.core.models.querysets import count_related
|
|
32
32
|
from nautobot.core.models.utils import pretty_print_query, serialize_object_v2
|
|
33
33
|
from nautobot.core.tables import ButtonsColumn
|
|
34
|
+
from nautobot.core.templatetags import helpers
|
|
34
35
|
from nautobot.core.ui import object_detail
|
|
35
36
|
from nautobot.core.ui.choices import SectionChoices
|
|
36
|
-
from nautobot.core.ui.object_detail import ObjectDetailContent, ObjectFieldsPanel
|
|
37
|
+
from nautobot.core.ui.object_detail import ObjectDetailContent, ObjectFieldsPanel, ObjectTextPanel
|
|
37
38
|
from nautobot.core.utils.config import get_settings_or_config
|
|
38
39
|
from nautobot.core.utils.lookup import (
|
|
39
40
|
get_filterset_for_model,
|
|
@@ -407,22 +408,37 @@ class ContactUIViewSet(NautobotUIViewSet):
|
|
|
407
408
|
serializer_class = serializers.ContactSerializer
|
|
408
409
|
table_class = tables.ContactTable
|
|
409
410
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
411
|
+
object_detail_content = object_detail.ObjectDetailContent(
|
|
412
|
+
panels=(
|
|
413
|
+
object_detail.ObjectFieldsPanel(
|
|
414
|
+
weight=100,
|
|
415
|
+
section=SectionChoices.LEFT_HALF,
|
|
416
|
+
fields="__all__",
|
|
417
|
+
value_transforms={
|
|
418
|
+
"address": [helpers.render_address],
|
|
419
|
+
"email": [helpers.hyperlinked_email],
|
|
420
|
+
"phone": [helpers.hyperlinked_phone_number],
|
|
421
|
+
},
|
|
422
|
+
),
|
|
423
|
+
object_detail.ObjectsTablePanel(
|
|
424
|
+
weight=100,
|
|
425
|
+
section=SectionChoices.RIGHT_HALF,
|
|
426
|
+
table_class=tables.TeamTable,
|
|
427
|
+
table_filter="contacts",
|
|
428
|
+
table_title="Assigned Teams",
|
|
429
|
+
exclude_columns=["actions"],
|
|
430
|
+
add_button_route=None,
|
|
431
|
+
),
|
|
432
|
+
object_detail.ObjectsTablePanel(
|
|
433
|
+
weight=200,
|
|
434
|
+
section=SectionChoices.FULL_WIDTH,
|
|
435
|
+
table_class=tables.ContactAssociationTable,
|
|
436
|
+
table_filter="contact",
|
|
437
|
+
table_title="Contact For",
|
|
438
|
+
add_button_route=None,
|
|
439
|
+
),
|
|
440
|
+
),
|
|
441
|
+
)
|
|
426
442
|
|
|
427
443
|
|
|
428
444
|
class ContactAssociationUIViewSet(
|
|
@@ -959,30 +975,38 @@ class ObjectDynamicGroupsView(generic.GenericView):
|
|
|
959
975
|
#
|
|
960
976
|
|
|
961
977
|
|
|
962
|
-
class
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
action_buttons = ("add",)
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
class ExportTemplateView(generic.ObjectView):
|
|
971
|
-
queryset = ExportTemplate.objects.all()
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
class ExportTemplateEditView(generic.ObjectEditView):
|
|
978
|
+
class ExportTemplateUIViewSet(NautobotUIViewSet):
|
|
979
|
+
bulk_update_form_class = forms.ExportTemplateBulkEditForm
|
|
980
|
+
filterset_class = filters.ExportTemplateFilterSet
|
|
981
|
+
filterset_form_class = forms.ExportTemplateFilterForm
|
|
982
|
+
form_class = forms.ExportTemplateForm
|
|
975
983
|
queryset = ExportTemplate.objects.all()
|
|
976
|
-
|
|
984
|
+
serializer_class = serializers.ExportTemplateSerializer
|
|
985
|
+
table_class = tables.ExportTemplateTable
|
|
977
986
|
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
987
|
+
object_detail_content = ObjectDetailContent(
|
|
988
|
+
panels=[
|
|
989
|
+
ObjectFieldsPanel(
|
|
990
|
+
label="Details",
|
|
991
|
+
section=SectionChoices.LEFT_HALF,
|
|
992
|
+
weight=100,
|
|
993
|
+
fields=["name", "owner", "description"],
|
|
994
|
+
),
|
|
995
|
+
ObjectFieldsPanel(
|
|
996
|
+
label="Template",
|
|
997
|
+
section=SectionChoices.LEFT_HALF,
|
|
998
|
+
weight=200,
|
|
999
|
+
fields=["content_type", "mime_type", "file_extension"],
|
|
1000
|
+
),
|
|
1001
|
+
ObjectTextPanel(
|
|
1002
|
+
label="Code Template",
|
|
1003
|
+
section=SectionChoices.RIGHT_HALF,
|
|
1004
|
+
weight=100,
|
|
1005
|
+
object_field="template_code",
|
|
1006
|
+
render_as=ObjectTextPanel.RenderOptions.CODE,
|
|
1007
|
+
),
|
|
1008
|
+
]
|
|
1009
|
+
)
|
|
986
1010
|
|
|
987
1011
|
|
|
988
1012
|
#
|
|
@@ -2403,16 +2427,15 @@ class ObjectNotesView(generic.GenericView):
|
|
|
2403
2427
|
#
|
|
2404
2428
|
|
|
2405
2429
|
|
|
2406
|
-
class
|
|
2430
|
+
class RelationshipUIViewSet(NautobotUIViewSet):
|
|
2431
|
+
bulk_update_form_class = forms.RelationshipBulkEditForm
|
|
2432
|
+
filterset_class = filters.RelationshipFilterSet
|
|
2433
|
+
filterset_form_class = forms.RelationshipFilterForm
|
|
2434
|
+
form_class = forms.RelationshipForm
|
|
2435
|
+
serializer_class = serializers.RelationshipSerializer
|
|
2436
|
+
table_class = tables.RelationshipTable
|
|
2407
2437
|
queryset = Relationship.objects.all()
|
|
2408
|
-
filterset = filters.RelationshipFilterSet
|
|
2409
|
-
filterset_form = forms.RelationshipFilterForm
|
|
2410
|
-
table = tables.RelationshipTable
|
|
2411
|
-
action_buttons = ("add",)
|
|
2412
|
-
|
|
2413
2438
|
|
|
2414
|
-
class RelationshipView(generic.ObjectView):
|
|
2415
|
-
queryset = Relationship.objects.all()
|
|
2416
2439
|
object_detail_content = ObjectDetailContent(
|
|
2417
2440
|
panels=(
|
|
2418
2441
|
ObjectFieldsPanel(
|
|
@@ -2447,22 +2470,6 @@ class RelationshipView(generic.ObjectView):
|
|
|
2447
2470
|
)
|
|
2448
2471
|
|
|
2449
2472
|
|
|
2450
|
-
class RelationshipEditView(generic.ObjectEditView):
|
|
2451
|
-
queryset = Relationship.objects.all()
|
|
2452
|
-
model_form = forms.RelationshipForm
|
|
2453
|
-
template_name = "extras/relationship_edit.html"
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
class RelationshipBulkDeleteView(generic.BulkDeleteView):
|
|
2457
|
-
queryset = Relationship.objects.all()
|
|
2458
|
-
table = tables.RelationshipTable
|
|
2459
|
-
filterset = filters.RelationshipFilterSet
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
class RelationshipDeleteView(generic.ObjectDeleteView):
|
|
2463
|
-
queryset = Relationship.objects.all()
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
2473
|
class RelationshipAssociationListView(generic.ObjectListView):
|
|
2467
2474
|
queryset = RelationshipAssociation.objects.all()
|
|
2468
2475
|
filterset = filters.RelationshipAssociationFilterSet
|
|
@@ -2929,62 +2936,18 @@ class DynamicGroupBulkAssignView(GetReturnURLMixin, ObjectPermissionRequiredMixi
|
|
|
2929
2936
|
#
|
|
2930
2937
|
|
|
2931
2938
|
|
|
2932
|
-
class
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
class StatusEditView(generic.ObjectEditView):
|
|
2942
|
-
"""Edit a single `Status` object."""
|
|
2943
|
-
|
|
2939
|
+
class StatusUIViewSet(NautobotUIViewSet):
|
|
2940
|
+
bulk_update_form_class = forms.StatusBulkEditForm
|
|
2941
|
+
filterset_class = filters.StatusFilterSet
|
|
2942
|
+
filterset_form_class = forms.StatusFilterForm
|
|
2943
|
+
form_class = forms.StatusForm
|
|
2944
|
+
serializer_class = serializers.StatusSerializer
|
|
2945
|
+
table_class = tables.StatusTable
|
|
2944
2946
|
queryset = Status.objects.all()
|
|
2945
|
-
model_form = forms.StatusForm
|
|
2946
2947
|
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
queryset = Status.objects.all()
|
|
2952
|
-
table = tables.StatusTable
|
|
2953
|
-
form = forms.StatusBulkEditForm
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
class StatusBulkDeleteView(generic.BulkDeleteView):
|
|
2957
|
-
"""Delete multiple `Status` objects."""
|
|
2958
|
-
|
|
2959
|
-
queryset = Status.objects.all()
|
|
2960
|
-
table = tables.StatusTable
|
|
2961
|
-
filterset = filters.StatusFilterSet
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
class StatusDeleteView(generic.ObjectDeleteView):
|
|
2965
|
-
"""Delete a single `Status` object."""
|
|
2966
|
-
|
|
2967
|
-
queryset = Status.objects.all()
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
class StatusBulkImportView(generic.BulkImportView): # 3.0 TODO: remove, unused
|
|
2971
|
-
"""Bulk CSV import of multiple `Status` objects."""
|
|
2972
|
-
|
|
2973
|
-
queryset = Status.objects.all()
|
|
2974
|
-
table = tables.StatusTable
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
class StatusView(generic.ObjectView):
|
|
2978
|
-
"""Detail view for a single `Status` object."""
|
|
2979
|
-
|
|
2980
|
-
queryset = Status.objects.all()
|
|
2981
|
-
|
|
2982
|
-
def get_extra_context(self, request, instance):
|
|
2983
|
-
"""Return ordered content types."""
|
|
2984
|
-
return {
|
|
2985
|
-
"content_types": instance.content_types.order_by("app_label", "model"),
|
|
2986
|
-
**super().get_extra_context(request, instance),
|
|
2987
|
-
}
|
|
2948
|
+
object_detail_content = object_detail.ObjectDetailContent(
|
|
2949
|
+
panels=(object_detail.ObjectFieldsPanel(weight=100, section=SectionChoices.LEFT_HALF, fields="__all__"),)
|
|
2950
|
+
)
|
|
2988
2951
|
|
|
2989
2952
|
|
|
2990
2953
|
#
|
|
@@ -3065,22 +3028,37 @@ class TeamUIViewSet(NautobotUIViewSet):
|
|
|
3065
3028
|
serializer_class = serializers.TeamSerializer
|
|
3066
3029
|
table_class = tables.TeamTable
|
|
3067
3030
|
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3031
|
+
object_detail_content = object_detail.ObjectDetailContent(
|
|
3032
|
+
panels=(
|
|
3033
|
+
object_detail.ObjectFieldsPanel(
|
|
3034
|
+
weight=100,
|
|
3035
|
+
section=SectionChoices.LEFT_HALF,
|
|
3036
|
+
fields="__all__",
|
|
3037
|
+
value_transforms={
|
|
3038
|
+
"address": [helpers.render_address],
|
|
3039
|
+
"email": [helpers.hyperlinked_email],
|
|
3040
|
+
"phone": [helpers.hyperlinked_phone_number],
|
|
3041
|
+
},
|
|
3042
|
+
),
|
|
3043
|
+
object_detail.ObjectsTablePanel(
|
|
3044
|
+
weight=100,
|
|
3045
|
+
section=SectionChoices.RIGHT_HALF,
|
|
3046
|
+
table_class=tables.ContactTable,
|
|
3047
|
+
table_filter="teams",
|
|
3048
|
+
table_title="Assigned Contacts",
|
|
3049
|
+
exclude_columns=["actions"],
|
|
3050
|
+
add_button_route=None,
|
|
3051
|
+
),
|
|
3052
|
+
object_detail.ObjectsTablePanel(
|
|
3053
|
+
weight=200,
|
|
3054
|
+
section=SectionChoices.FULL_WIDTH,
|
|
3055
|
+
table_class=tables.ContactAssociationTable,
|
|
3056
|
+
table_filter="team",
|
|
3057
|
+
table_title="Contact For",
|
|
3058
|
+
add_button_route=None,
|
|
3059
|
+
),
|
|
3060
|
+
)
|
|
3061
|
+
)
|
|
3084
3062
|
|
|
3085
3063
|
|
|
3086
3064
|
#
|
nautobot/ipam/tables.py
CHANGED
|
@@ -355,7 +355,11 @@ class PrefixTable(StatusTableMixin, RoleTableMixin, BaseTable):
|
|
|
355
355
|
template_code=PREFIX_COPY_LINK, attrs={"td": {"class": "text-nowrap"}}, order_by=("network", "prefix_length")
|
|
356
356
|
)
|
|
357
357
|
vrf_count = LinkedCountColumn(
|
|
358
|
-
viewname="ipam:vrf_list",
|
|
358
|
+
viewname="ipam:vrf_list",
|
|
359
|
+
url_params={"prefix": "pk"},
|
|
360
|
+
display_field="name",
|
|
361
|
+
reverse_lookup="prefixes",
|
|
362
|
+
verbose_name="VRFs",
|
|
359
363
|
)
|
|
360
364
|
tenant = TenantColumn()
|
|
361
365
|
namespace = tables.Column(linkify=True)
|
|
@@ -364,7 +368,7 @@ class PrefixTable(StatusTableMixin, RoleTableMixin, BaseTable):
|
|
|
364
368
|
children = tables.Column(accessor="descendants_count", orderable=False)
|
|
365
369
|
date_allocated = tables.DateTimeColumn()
|
|
366
370
|
location_count = LinkedCountColumn(
|
|
367
|
-
viewname="dcim:location_list", url_params={"prefixes": "pk"}, verbose_name="Locations"
|
|
371
|
+
viewname="dcim:location_list", url_params={"prefixes": "pk"}, display_field="name", verbose_name="Locations"
|
|
368
372
|
)
|
|
369
373
|
cloud_networks_count = LinkedCountColumn(
|
|
370
374
|
viewname="cloud:cloudnetwork_list", url_params={"prefixes": "pk"}, verbose_name="Cloud Networks"
|
|
@@ -705,6 +709,7 @@ class VLANTable(StatusTableMixin, RoleTableMixin, BaseTable):
|
|
|
705
709
|
location_count = LinkedCountColumn(
|
|
706
710
|
viewname="dcim:location_list",
|
|
707
711
|
url_params={"vlans": "pk"},
|
|
712
|
+
display_field="name",
|
|
708
713
|
verbose_name="Locations",
|
|
709
714
|
)
|
|
710
715
|
tenant = TenantColumn()
|
|
@@ -1,42 +1 @@
|
|
|
1
1
|
{% extends 'generic/object_retrieve.html' %}
|
|
2
|
-
{% load helpers %}
|
|
3
|
-
|
|
4
|
-
{% block content_left_page %}
|
|
5
|
-
<div class="panel panel-default">
|
|
6
|
-
<div class="panel-heading">
|
|
7
|
-
<strong>Namespace</strong>
|
|
8
|
-
</div>
|
|
9
|
-
<table class="table table-hover panel-body attr-table">
|
|
10
|
-
<tr>
|
|
11
|
-
<td>Name</td>
|
|
12
|
-
<td>{{ object.name }}</td>
|
|
13
|
-
</tr>
|
|
14
|
-
<tr>
|
|
15
|
-
<td>Description</td>
|
|
16
|
-
<td>{{ object.description }}</td>
|
|
17
|
-
</tr>
|
|
18
|
-
<tr>
|
|
19
|
-
<td>Location</td>
|
|
20
|
-
<td>{{ object.location | hyperlinked_object }}</td>
|
|
21
|
-
</tr>
|
|
22
|
-
</table>
|
|
23
|
-
</div>
|
|
24
|
-
{% endblock content_left_page %}
|
|
25
|
-
|
|
26
|
-
{% block extra_nav_tabs %}
|
|
27
|
-
{% if perms.ipam.view_vrf %}
|
|
28
|
-
<li role="presentation"{% if active_tab == 'vrfs' %} class="active"{% endif %}>
|
|
29
|
-
<a href="{% url 'ipam:namespace_vrfs' pk=object.pk %}">VRFs <span class="badge">{{ vrf_count }}</span></a>
|
|
30
|
-
</li>
|
|
31
|
-
{% endif %}
|
|
32
|
-
{% if perms.ipam.view_prefix %}
|
|
33
|
-
<li role="presentation"{% if active_tab == 'prefixes' %} class="active"{% endif %}>
|
|
34
|
-
<a href="{% url 'ipam:namespace_prefixes' pk=object.pk %}">Prefixes <span class="badge">{{ prefix_count }}</span></a>
|
|
35
|
-
</li>
|
|
36
|
-
{% endif %}
|
|
37
|
-
{% if perms.ipam.view_ipaddress %}
|
|
38
|
-
<li role="presentation"{% if active_tab == 'ip-addresses' %} class="active"{% endif %}>
|
|
39
|
-
<a href="{% url 'ipam:namespace_ipaddresses' pk=object.pk %}">IP Addresses <span class="badge">{{ ip_address_count }}</span></a>
|
|
40
|
-
</li>
|
|
41
|
-
{% endif %}
|
|
42
|
-
{% endblock extra_nav_tabs %}
|
|
@@ -1,46 +1,2 @@
|
|
|
1
|
-
{% extends '
|
|
2
|
-
{%
|
|
3
|
-
|
|
4
|
-
{% block extra_breadcrumbs %}
|
|
5
|
-
<li>{{ object.parent|hyperlinked_object }}</li>
|
|
6
|
-
{% endblock extra_breadcrumbs %}
|
|
7
|
-
|
|
8
|
-
{% block content_left_page %}
|
|
9
|
-
<div class="panel panel-default">
|
|
10
|
-
<div class="panel-heading">
|
|
11
|
-
<strong>Service</strong>
|
|
12
|
-
</div>
|
|
13
|
-
<table class="table table-hover panel-body attr-table">
|
|
14
|
-
<tr>
|
|
15
|
-
<td>Name</td>
|
|
16
|
-
<td>{{ object.name }}</td>
|
|
17
|
-
</tr>
|
|
18
|
-
<tr>
|
|
19
|
-
<td>Parent</td>
|
|
20
|
-
<td>{{ object.parent|hyperlinked_object }}</td>
|
|
21
|
-
</tr>
|
|
22
|
-
<tr>
|
|
23
|
-
<td>Protocol</td>
|
|
24
|
-
<td>{{ object.get_protocol_display }}</td>
|
|
25
|
-
</tr>
|
|
26
|
-
<tr>
|
|
27
|
-
<td>Ports</td>
|
|
28
|
-
<td>{{ object.port_list }}</td>
|
|
29
|
-
</tr>
|
|
30
|
-
<tr>
|
|
31
|
-
<td>IP Addresses</td>
|
|
32
|
-
<td>
|
|
33
|
-
{% for ipaddress in object.ip_addresses.all %}
|
|
34
|
-
{{ ipaddress|hyperlinked_object }}<br>
|
|
35
|
-
{% empty %}
|
|
36
|
-
<span class="text-muted">None</span>
|
|
37
|
-
{% endfor %}
|
|
38
|
-
</td>
|
|
39
|
-
</tr>
|
|
40
|
-
<tr>
|
|
41
|
-
<td>Description</td>
|
|
42
|
-
<td>{{ object.description|placeholder }}</td>
|
|
43
|
-
</tr>
|
|
44
|
-
</table>
|
|
45
|
-
</div>
|
|
46
|
-
{% endblock content_left_page %}
|
|
1
|
+
{% extends 'ipam/service_retrieve.html' %}
|
|
2
|
+
{% comment %}3.0 TODO: remove this template, which only exists for backward compatibility with 2.4 and earlier{% endcomment %}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
1
|
{% extends 'generic/object_create.html' %}
|
|
2
|
-
{%
|
|
3
|
-
|
|
4
|
-
{% block form %}
|
|
5
|
-
<div class="panel panel-default">
|
|
6
|
-
<div class="panel-heading"><strong>Service</strong></div>
|
|
7
|
-
<div class="panel-body">
|
|
8
|
-
{% render_field form.device %}
|
|
9
|
-
{% render_field form.virtual_machine %}
|
|
10
|
-
{% render_field form.name %}
|
|
11
|
-
{% render_field form.protocol %}
|
|
12
|
-
{% render_field form.ports %}
|
|
13
|
-
{% render_field form.ip_addresses %}
|
|
14
|
-
{% render_field form.description %}
|
|
15
|
-
</div>
|
|
16
|
-
</div>
|
|
17
|
-
{% include 'inc/extras_features_edit_form_fields.html' %}
|
|
18
|
-
{% endblock %}
|
|
2
|
+
{% comment %}3.0 TODO: remove this template, which only exists for backward compatibility with 2.4 and earlier{% endcomment %}
|
|
File without changes
|