nautobot 2.4.0b1__py3-none-any.whl → 2.4.1__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/__init__.py +1 -1
- nautobot/apps/api.py +8 -8
- nautobot/apps/change_logging.py +2 -2
- nautobot/apps/choices.py +4 -4
- nautobot/apps/events.py +3 -3
- nautobot/apps/factory.py +2 -2
- nautobot/apps/filters.py +1 -1
- nautobot/apps/forms.py +20 -20
- nautobot/apps/graphql.py +2 -2
- nautobot/apps/jobs.py +8 -8
- nautobot/apps/models.py +19 -19
- nautobot/apps/tables.py +1 -1
- nautobot/apps/testing.py +10 -10
- nautobot/apps/ui.py +2 -2
- nautobot/apps/utils.py +7 -7
- nautobot/apps/views.py +7 -7
- nautobot/circuits/api/serializers.py +1 -0
- nautobot/circuits/api/views.py +4 -8
- nautobot/circuits/tables.py +2 -1
- nautobot/circuits/templates/circuits/circuit_create.html +1 -7
- nautobot/circuits/views.py +3 -3
- nautobot/cloud/api/views.py +6 -10
- nautobot/cloud/models.py +1 -1
- nautobot/cloud/views.py +0 -16
- nautobot/core/api/constants.py +11 -0
- nautobot/core/api/fields.py +5 -5
- nautobot/core/api/filter_backends.py +3 -9
- nautobot/core/api/schema.py +13 -2
- nautobot/core/api/serializers.py +40 -34
- nautobot/core/api/views.py +56 -4
- nautobot/core/celery/log.py +4 -4
- nautobot/core/celery/schedulers.py +2 -2
- nautobot/core/choices.py +2 -2
- nautobot/core/events/__init__.py +3 -3
- nautobot/core/filters.py +67 -35
- nautobot/core/forms/__init__.py +19 -19
- nautobot/core/forms/fields.py +14 -11
- nautobot/core/forms/forms.py +33 -2
- nautobot/core/graphql/types.py +1 -1
- nautobot/core/jobs/__init__.py +28 -7
- nautobot/core/jobs/bulk_actions.py +285 -0
- nautobot/core/jobs/cleanup.py +48 -12
- nautobot/core/jobs/groups.py +1 -1
- nautobot/core/management/commands/validate_models.py +1 -1
- nautobot/core/models/__init__.py +3 -1
- nautobot/core/models/query_functions.py +2 -2
- nautobot/core/models/tree_queries.py +6 -3
- nautobot/core/settings.py +29 -2
- nautobot/core/settings.yaml +21 -0
- nautobot/core/tables.py +79 -61
- nautobot/core/templates/about.html +67 -0
- nautobot/core/templates/inc/media.html +3 -0
- nautobot/core/templates/inc/nav_menu.html +1 -0
- nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
- nautobot/core/templates/inc/tenant_table_row.html +11 -0
- nautobot/core/templates/nautobot_config.py.j2 +13 -0
- nautobot/core/templates/search.html +7 -0
- nautobot/core/templates/utilities/render_jinja2.html +1 -1
- nautobot/core/templates/utilities/templatetags/tag.html +1 -1
- nautobot/core/templates/utilities/theme_preview.html +7 -0
- nautobot/core/templatetags/helpers.py +11 -2
- nautobot/core/testing/__init__.py +8 -8
- nautobot/core/testing/api.py +170 -15
- nautobot/core/testing/filters.py +45 -10
- nautobot/core/testing/forms.py +2 -0
- nautobot/core/testing/integration.py +86 -4
- nautobot/core/testing/mixins.py +7 -2
- nautobot/core/testing/views.py +44 -29
- nautobot/core/tests/integration/test_app_home.py +0 -1
- nautobot/core/tests/integration/test_app_navbar.py +0 -1
- nautobot/core/tests/integration/test_filters.py +0 -2
- nautobot/core/tests/integration/test_home.py +0 -1
- nautobot/core/tests/integration/test_navbar.py +0 -1
- nautobot/core/tests/integration/test_view_authentication.py +1 -0
- nautobot/core/tests/runner.py +1 -1
- nautobot/core/tests/test_api.py +98 -1
- nautobot/core/tests/test_csv.py +25 -3
- nautobot/core/tests/test_filters.py +209 -246
- nautobot/core/tests/test_forms.py +1 -0
- nautobot/core/tests/test_jobs.py +460 -1
- nautobot/core/tests/test_models.py +9 -0
- nautobot/core/tests/test_settings_schema.py +7 -0
- nautobot/core/tests/test_tables.py +100 -0
- nautobot/core/tests/test_utils.py +63 -1
- nautobot/core/tests/test_views.py +30 -3
- nautobot/core/ui/nav.py +1 -0
- nautobot/core/ui/object_detail.py +15 -1
- nautobot/core/urls.py +11 -0
- nautobot/core/utils/lookup.py +11 -8
- nautobot/core/utils/querysets.py +64 -0
- nautobot/core/utils/requests.py +24 -9
- nautobot/core/views/__init__.py +42 -0
- nautobot/core/views/generic.py +131 -197
- nautobot/core/views/mixins.py +126 -38
- nautobot/core/views/renderers.py +6 -6
- nautobot/dcim/api/serializers.py +56 -64
- nautobot/dcim/api/views.py +47 -113
- nautobot/dcim/constants.py +6 -13
- nautobot/dcim/factory.py +6 -1
- nautobot/dcim/filters/__init__.py +31 -2
- nautobot/dcim/forms.py +36 -17
- nautobot/dcim/graphql/types.py +2 -2
- nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
- nautobot/dcim/models/__init__.py +1 -1
- nautobot/dcim/models/device_component_templates.py +2 -2
- nautobot/dcim/models/device_components.py +22 -20
- nautobot/dcim/models/devices.py +10 -1
- nautobot/dcim/models/locations.py +3 -3
- nautobot/dcim/models/power.py +6 -5
- nautobot/dcim/models/racks.py +4 -4
- nautobot/dcim/tables/__init__.py +3 -3
- nautobot/dcim/tables/devices.py +7 -5
- nautobot/dcim/tables/devicetypes.py +2 -2
- nautobot/dcim/tables/racks.py +1 -1
- nautobot/dcim/templates/dcim/controller_create.html +1 -7
- nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
- nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
- nautobot/dcim/templates/dcim/device.html +1 -9
- nautobot/dcim/templates/dcim/device_edit.html +36 -37
- nautobot/dcim/templates/dcim/location.html +1 -9
- nautobot/dcim/templates/dcim/location_edit.html +1 -7
- nautobot/dcim/templates/dcim/rack.html +1 -9
- nautobot/dcim/templates/dcim/rack_edit.html +1 -7
- nautobot/dcim/templates/dcim/rackreservation.html +1 -9
- nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
- nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
- nautobot/dcim/tests/integration/test_controller.py +62 -0
- nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
- nautobot/dcim/tests/integration/test_device_bulk_delete.py +189 -0
- nautobot/dcim/tests/integration/test_device_bulk_edit.py +181 -0
- nautobot/dcim/tests/test_api.py +16 -5
- nautobot/dcim/tests/test_filters.py +33 -0
- nautobot/dcim/tests/test_forms.py +51 -2
- nautobot/dcim/tests/test_graphql.py +52 -0
- nautobot/dcim/tests/test_jobs.py +118 -0
- nautobot/dcim/tests/test_models.py +52 -9
- nautobot/dcim/tests/test_views.py +21 -83
- nautobot/dcim/views.py +1 -13
- nautobot/extras/api/customfields.py +2 -2
- nautobot/extras/api/serializers.py +90 -85
- nautobot/extras/api/views.py +22 -27
- nautobot/extras/constants.py +2 -0
- nautobot/extras/filters/__init__.py +8 -6
- nautobot/extras/forms/base.py +2 -2
- nautobot/extras/forms/forms.py +139 -31
- nautobot/extras/forms/mixins.py +14 -6
- nautobot/extras/group_sync.py +3 -3
- nautobot/extras/health_checks.py +1 -2
- nautobot/extras/jobs.py +85 -18
- nautobot/extras/managers.py +3 -1
- nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
- nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
- nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
- nautobot/extras/models/__init__.py +1 -1
- nautobot/extras/models/contacts.py +1 -1
- nautobot/extras/models/customfields.py +12 -11
- nautobot/extras/models/groups.py +11 -9
- nautobot/extras/models/jobs.py +23 -4
- nautobot/extras/models/models.py +2 -2
- nautobot/extras/plugins/__init__.py +13 -2
- nautobot/extras/plugins/marketplace_manifest.yml +84 -79
- nautobot/extras/plugins/tables.py +16 -14
- nautobot/extras/plugins/views.py +65 -69
- nautobot/extras/registry.py +1 -1
- nautobot/extras/secrets/__init__.py +2 -2
- nautobot/extras/tables.py +7 -5
- nautobot/extras/templates/extras/dynamicgroup.html +1 -9
- nautobot/extras/templates/extras/job_detail.html +16 -0
- nautobot/extras/templates/extras/job_edit.html +1 -0
- nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
- nautobot/extras/templates/extras/marketplace.html +29 -11
- nautobot/extras/templates/extras/plugin_detail.html +32 -15
- nautobot/extras/templates/extras/plugins_tiles.html +21 -10
- nautobot/extras/templatetags/job_buttons.py +4 -4
- nautobot/extras/test_jobs/api_test_job.py +1 -1
- nautobot/extras/test_jobs/atomic_transaction.py +2 -2
- nautobot/extras/test_jobs/dry_run.py +1 -1
- nautobot/extras/test_jobs/fail.py +5 -5
- nautobot/extras/test_jobs/file_output.py +1 -1
- nautobot/extras/test_jobs/file_upload_fail.py +1 -1
- nautobot/extras/test_jobs/file_upload_pass.py +1 -1
- nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
- nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
- nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
- nautobot/extras/test_jobs/log_redaction.py +1 -1
- nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
- nautobot/extras/test_jobs/modify_db.py +1 -1
- nautobot/extras/test_jobs/object_var_optional.py +1 -1
- nautobot/extras/test_jobs/object_var_required.py +1 -1
- nautobot/extras/test_jobs/object_vars.py +1 -1
- nautobot/extras/test_jobs/pass.py +3 -3
- nautobot/extras/test_jobs/profiling.py +1 -1
- nautobot/extras/test_jobs/relative_import.py +3 -3
- nautobot/extras/test_jobs/singleton.py +16 -0
- nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
- nautobot/extras/test_jobs/task_queues.py +1 -1
- nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
- nautobot/extras/tests/test_api.py +13 -13
- nautobot/extras/tests/test_customfields.py +1 -1
- nautobot/extras/tests/test_datasources.py +2 -1
- nautobot/extras/tests/test_dynamicgroups.py +1 -1
- nautobot/extras/tests/test_filters.py +6 -6
- nautobot/extras/tests/test_forms.py +33 -1
- nautobot/extras/tests/test_jobs.py +178 -32
- nautobot/extras/tests/test_models.py +16 -10
- nautobot/extras/tests/test_plugins.py +62 -9
- nautobot/extras/tests/test_relationships.py +120 -9
- nautobot/extras/tests/test_views.py +56 -194
- nautobot/extras/utils.py +3 -2
- nautobot/extras/views.py +30 -98
- nautobot/ipam/api/fields.py +3 -3
- nautobot/ipam/api/serializers.py +41 -33
- nautobot/ipam/api/views.py +68 -117
- nautobot/ipam/factory.py +1 -1
- nautobot/ipam/filters.py +3 -2
- nautobot/ipam/lookups.py +101 -62
- nautobot/ipam/models.py +66 -16
- nautobot/ipam/querysets.py +2 -2
- nautobot/ipam/tables.py +23 -7
- nautobot/ipam/templates/ipam/ipaddress.html +1 -9
- nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
- nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
- nautobot/ipam/templates/ipam/prefix.html +1 -9
- nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
- nautobot/ipam/templates/ipam/vlan.html +1 -9
- nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
- nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
- nautobot/ipam/tests/test_api.py +436 -3
- nautobot/ipam/tests/test_forms.py +49 -47
- nautobot/ipam/tests/test_migrations.py +30 -30
- nautobot/ipam/tests/test_models.py +95 -34
- nautobot/ipam/tests/test_querysets.py +63 -1
- nautobot/ipam/tests/test_views.py +3 -0
- nautobot/ipam/utils/__init__.py +36 -6
- nautobot/ipam/views.py +61 -87
- 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.map +1 -1
- nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
- 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/docs/404.html +46 -4
- nautobot/project-static/docs/apps/index.html +46 -4
- nautobot/project-static/docs/apps/nautobot-apps.html +47 -6
- nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
- nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
- nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
- nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +62 -10
- nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +59 -7
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +374 -122
- nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +90 -18
- nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +95 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/config.html +53 -6
- nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +52 -5
- nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +79 -17
- nautobot/project-static/docs/code-reference/nautobot/apps/events.html +102 -28
- nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +108 -21
- nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +131 -38
- nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +239 -65
- nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +581 -165
- nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +109 -36
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +453 -167
- nautobot/project-static/docs/code-reference/nautobot/apps/models.html +493 -211
- nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +60 -8
- nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +71 -15
- nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +407 -55
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +620 -205
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +858 -412
- nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +59 -7
- nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +448 -186
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +365 -147
- nautobot/project-static/docs/development/apps/api/configuration-view.html +46 -4
- nautobot/project-static/docs/development/apps/api/database-backend-config.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/django-admin.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/global-search.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/graphql.html +46 -4
- nautobot/project-static/docs/development/apps/api/models/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +46 -4
- nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +68 -7
- nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +46 -4
- nautobot/project-static/docs/development/apps/api/prometheus.html +46 -4
- nautobot/project-static/docs/development/apps/api/setup.html +46 -4
- nautobot/project-static/docs/development/apps/api/testing.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +46 -4
- nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/base-template.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/help-documentation.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/index.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/notes.html +46 -4
- nautobot/project-static/docs/development/apps/api/views/rest-api.html +52 -6
- nautobot/project-static/docs/development/apps/api/views/urls.html +46 -4
- nautobot/project-static/docs/development/apps/index.html +46 -4
- nautobot/project-static/docs/development/apps/migration/code-updates.html +46 -4
- nautobot/project-static/docs/development/apps/migration/dependency-updates.html +46 -4
- nautobot/project-static/docs/development/apps/migration/from-v1.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/global.html +46 -4
- nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +46 -4
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +50 -8
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +46 -4
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +211 -14
- nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +46 -4
- nautobot/project-static/docs/development/apps/porting-from-netbox.html +46 -4
- nautobot/project-static/docs/development/core/application-registry.html +46 -4
- nautobot/project-static/docs/development/core/best-practices.html +46 -4
- nautobot/project-static/docs/development/core/bootstrap-ui.html +46 -4
- nautobot/project-static/docs/development/core/caching.html +46 -4
- nautobot/project-static/docs/development/core/controllers.html +46 -4
- nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +73 -74
- nautobot/project-static/docs/development/core/generic-views.html +46 -4
- nautobot/project-static/docs/development/core/getting-started.html +249 -224
- nautobot/project-static/docs/development/core/homepage.html +49 -7
- nautobot/project-static/docs/development/core/index.html +46 -4
- nautobot/project-static/docs/development/core/{local-k8s.html → minikube-dev-environment-for-k8s-jobs.html} +469 -168
- nautobot/project-static/docs/development/core/model-checklist.html +56 -12
- nautobot/project-static/docs/development/core/model-features.html +46 -4
- nautobot/project-static/docs/development/core/natural-keys.html +46 -4
- nautobot/project-static/docs/development/core/navigation-menu.html +46 -4
- nautobot/project-static/docs/development/core/release-checklist.html +49 -7
- nautobot/project-static/docs/development/core/role-internals.html +46 -4
- nautobot/project-static/docs/development/core/settings.html +46 -4
- nautobot/project-static/docs/development/core/style-guide.html +49 -7
- nautobot/project-static/docs/development/core/templates.html +46 -4
- nautobot/project-static/docs/development/core/testing.html +46 -4
- nautobot/project-static/docs/development/core/ui-component-framework.html +369 -273
- nautobot/project-static/docs/development/core/user-preferences.html +46 -4
- nautobot/project-static/docs/development/index.html +46 -4
- nautobot/project-static/docs/development/jobs/index.html +216 -122
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +46 -4
- nautobot/project-static/docs/index.html +54 -23
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
- nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
- nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/overview/application_stack.html +47 -7
- nautobot/project-static/docs/overview/design_philosophy.html +46 -4
- nautobot/project-static/docs/release-notes/index.html +52 -12
- nautobot/project-static/docs/release-notes/version-1.0.html +234 -193
- nautobot/project-static/docs/release-notes/version-1.1.html +231 -190
- nautobot/project-static/docs/release-notes/version-1.2.html +306 -265
- nautobot/project-static/docs/release-notes/version-1.3.html +332 -291
- nautobot/project-static/docs/release-notes/version-1.4.html +417 -377
- nautobot/project-static/docs/release-notes/version-1.5.html +605 -566
- nautobot/project-static/docs/release-notes/version-1.6.html +904 -447
- nautobot/project-static/docs/release-notes/version-2.0.html +528 -489
- nautobot/project-static/docs/release-notes/version-2.1.html +363 -324
- nautobot/project-static/docs/release-notes/version-2.2.html +356 -317
- nautobot/project-static/docs/release-notes/version-2.3.html +997 -352
- nautobot/project-static/docs/release-notes/version-2.4.html +525 -101
- nautobot/project-static/docs/requirements.txt +2 -2
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +295 -287
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +48 -6
- nautobot/project-static/docs/user-guide/administration/configuration/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/redis.html +46 -4
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +110 -8
- nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/docker.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/permissions.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +46 -4
- nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +48 -6
- nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/app-install.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/http-server.html +66 -8
- nautobot/project-static/docs/user-guide/administration/installation/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/install_system.html +47 -5
- nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +46 -4
- nautobot/project-static/docs/user-guide/administration/installation/services.html +46 -4
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +46 -4
- nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +46 -4
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +46 -4
- nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +49 -8
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +46 -4
- nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +50 -12
- nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +49 -7
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +46 -4
- nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +51 -7
- nautobot/project-static/docs/user-guide/feature-guides/graphql.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
- nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/relationships.html +46 -4
- nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +49 -7
- nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
- nautobot/project-static/docs/user-guide/index.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +50 -8
- nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/events.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +50 -7
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +49 -7
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/note.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +47 -5
- nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +94 -25
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +74 -5
- nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/role.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/secret.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/status.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/tag.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +46 -4
- nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +46 -4
- nautobot/project-static/js/forms.js +1 -1
- nautobot/tenancy/api/views.py +9 -13
- nautobot/tenancy/views.py +4 -2
- nautobot/users/admin.py +1 -1
- nautobot/users/api/serializers.py +5 -4
- nautobot/users/api/views.py +3 -3
- nautobot/virtualization/api/serializers.py +4 -4
- nautobot/virtualization/api/views.py +5 -24
- nautobot/virtualization/filters.py +20 -3
- nautobot/virtualization/models.py +1 -1
- nautobot/virtualization/tables.py +2 -2
- nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
- nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
- nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
- nautobot/virtualization/tests/test_filters.py +17 -0
- nautobot/wireless/filters.py +2 -2
- nautobot/wireless/forms.py +1 -1
- nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
- nautobot/wireless/tests/integration/__init__.py +0 -0
- nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
- nautobot/wireless/tests/test_filters.py +29 -1
- nautobot/wireless/tests/test_views.py +22 -1
- nautobot/wireless/views.py +0 -10
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/METADATA +6 -6
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/RECORD +600 -550
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/WHEEL +1 -1
- nautobot/core/fixtures/user-data.json +0 -59
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/NOTICE +0 -0
- {nautobot-2.4.0b1.dist-info → nautobot-2.4.1.dist-info}/entry_points.txt +0 -0
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<link rel="icon" href="../../assets/favicon.ico">
|
|
21
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.
|
|
21
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div data-md-component="skip">
|
|
96
96
|
|
|
97
97
|
|
|
98
|
-
<a href="#nautobot-ui-framework" class="md-skip">
|
|
98
|
+
<a href="#nautobot-ui-component-framework" class="md-skip">
|
|
99
99
|
Skip to content
|
|
100
100
|
</a>
|
|
101
101
|
|
|
@@ -2112,6 +2112,27 @@
|
|
|
2112
2112
|
|
|
2113
2113
|
|
|
2114
2114
|
|
|
2115
|
+
|
|
2116
|
+
|
|
2117
|
+
|
|
2118
|
+
|
|
2119
|
+
|
|
2120
|
+
|
|
2121
|
+
<li class="md-nav__item">
|
|
2122
|
+
<a href="../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
<span class="md-ellipsis">
|
|
2126
|
+
Wireless Networks and Controllers
|
|
2127
|
+
</span>
|
|
2128
|
+
|
|
2129
|
+
|
|
2130
|
+
</a>
|
|
2131
|
+
</li>
|
|
2132
|
+
|
|
2133
|
+
|
|
2134
|
+
|
|
2135
|
+
|
|
2115
2136
|
</ul>
|
|
2116
2137
|
</nav>
|
|
2117
2138
|
|
|
@@ -5131,6 +5152,27 @@
|
|
|
5131
5152
|
|
|
5132
5153
|
|
|
5133
5154
|
|
|
5155
|
+
<li class="md-nav__item">
|
|
5156
|
+
<a href="../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
|
|
5157
|
+
|
|
5158
|
+
|
|
5159
|
+
<span class="md-ellipsis">
|
|
5160
|
+
Kubernetes Job Support
|
|
5161
|
+
</span>
|
|
5162
|
+
|
|
5163
|
+
|
|
5164
|
+
</a>
|
|
5165
|
+
</li>
|
|
5166
|
+
|
|
5167
|
+
|
|
5168
|
+
|
|
5169
|
+
|
|
5170
|
+
|
|
5171
|
+
|
|
5172
|
+
|
|
5173
|
+
|
|
5174
|
+
|
|
5175
|
+
|
|
5134
5176
|
<li class="md-nav__item">
|
|
5135
5177
|
<a href="../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
|
|
5136
5178
|
|
|
@@ -8062,11 +8104,11 @@
|
|
|
8062
8104
|
|
|
8063
8105
|
|
|
8064
8106
|
<li class="md-nav__item">
|
|
8065
|
-
<a href="
|
|
8107
|
+
<a href="minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
|
|
8066
8108
|
|
|
8067
8109
|
|
|
8068
8110
|
<span class="md-ellipsis">
|
|
8069
|
-
|
|
8111
|
+
Minikube Dev Environment for K8s Jobs
|
|
8070
8112
|
</span>
|
|
8071
8113
|
|
|
8072
8114
|
|
|
@@ -8418,6 +8460,21 @@
|
|
|
8418
8460
|
</span>
|
|
8419
8461
|
</a>
|
|
8420
8462
|
|
|
8463
|
+
<nav class="md-nav" aria-label="Buttons">
|
|
8464
|
+
<ul class="md-nav__list">
|
|
8465
|
+
|
|
8466
|
+
<li class="md-nav__item">
|
|
8467
|
+
<a href="#buttons-example" class="md-nav__link">
|
|
8468
|
+
<span class="md-ellipsis">
|
|
8469
|
+
Buttons Example
|
|
8470
|
+
</span>
|
|
8471
|
+
</a>
|
|
8472
|
+
|
|
8473
|
+
</li>
|
|
8474
|
+
|
|
8475
|
+
</ul>
|
|
8476
|
+
</nav>
|
|
8477
|
+
|
|
8421
8478
|
</li>
|
|
8422
8479
|
|
|
8423
8480
|
</ul>
|
|
@@ -9702,6 +9759,21 @@
|
|
|
9702
9759
|
</span>
|
|
9703
9760
|
</a>
|
|
9704
9761
|
|
|
9762
|
+
<nav class="md-nav" aria-label="Buttons">
|
|
9763
|
+
<ul class="md-nav__list">
|
|
9764
|
+
|
|
9765
|
+
<li class="md-nav__item">
|
|
9766
|
+
<a href="#buttons-example" class="md-nav__link">
|
|
9767
|
+
<span class="md-ellipsis">
|
|
9768
|
+
Buttons Example
|
|
9769
|
+
</span>
|
|
9770
|
+
</a>
|
|
9771
|
+
|
|
9772
|
+
</li>
|
|
9773
|
+
|
|
9774
|
+
</ul>
|
|
9775
|
+
</nav>
|
|
9776
|
+
|
|
9705
9777
|
</li>
|
|
9706
9778
|
|
|
9707
9779
|
</ul>
|
|
@@ -10198,7 +10270,7 @@
|
|
|
10198
10270
|
|
|
10199
10271
|
|
|
10200
10272
|
|
|
10201
|
-
<h1 id="nautobot-ui-framework">Nautobot UI Framework<a class="headerlink" href="#nautobot-ui-framework" title="Permanent link">¶</a></h1>
|
|
10273
|
+
<h1 id="nautobot-ui-component-framework">Nautobot UI Component Framework<a class="headerlink" href="#nautobot-ui-component-framework" title="Permanent link">¶</a></h1>
|
|
10202
10274
|
<h2 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">¶</a></h2>
|
|
10203
10275
|
<ul>
|
|
10204
10276
|
<li><a href="#introduction">Introduction</a></li>
|
|
@@ -10213,14 +10285,12 @@
|
|
|
10213
10285
|
</ul>
|
|
10214
10286
|
<h2 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permanent link">¶</a></h2>
|
|
10215
10287
|
<p>The Nautobot UI Framework revolutionizes how you create object detail views in your applications. Instead of writing HTML templates, you declaratively define your UI structure using Python objects, resulting in consistent, maintainable, and responsive interfaces.</p>
|
|
10216
|
-
<!--
|
|
10288
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10217
10289
|
<div class="grid cards example-images">
|
|
10218
10290
|
<ul>
|
|
10219
10291
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/ui-framework-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="UI Framework Example" class="on-glb" src="../../media/development/core/ui-component-framework/ui-framework-example.png" /></a></li>
|
|
10220
10292
|
</ul>
|
|
10221
10293
|
</div>
|
|
10222
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10223
|
-
|
|
10224
10294
|
<h3 id="why-use-the-ui-framework">Why Use the UI Framework?<a class="headerlink" href="#why-use-the-ui-framework" title="Permanent link">¶</a></h3>
|
|
10225
10295
|
<ul>
|
|
10226
10296
|
<li>✨ <strong>Reduced Development Time</strong>: Eliminate boilerplate HTML/CSS</li>
|
|
@@ -10262,41 +10332,61 @@
|
|
|
10262
10332
|
<p>A <code>Tab</code> is one of the major building blocks of your UI. The user can toggle between tabs, each of which displays distinct page content, typically consisting of one or more <code>Panel</code>s. Multiple tabs can be rendered in a single HTML response (for example, the "main" and "advanced" tabs are both part of the same page; toggling between them is a client-side action only and does not require Nautobot to reload or re-render the page), while to optimize performance, certain other tabs may correspond to distinct <code>View</code>s that are retrieved and rendered on request. The UI Framework supports both patterns.</p>
|
|
10263
10333
|
<h3 id="panels">Panels<a class="headerlink" href="#panels" title="Permanent link">¶</a></h3>
|
|
10264
10334
|
<p><code>Panel</code>s are another of the major building blocks of your UI. They contain specific types of content and can be positioned within sections within a Tab.</p>
|
|
10265
|
-
<!--
|
|
10335
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10266
10336
|
<div class="grid cards example-images">
|
|
10267
10337
|
<ul>
|
|
10268
10338
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/basic-panel-layout.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Basic Panel Layout" class="on-glb" src="../../media/development/core/ui-component-framework/basic-panel-layout.png" /></a></li>
|
|
10269
10339
|
</ul>
|
|
10270
10340
|
</div>
|
|
10271
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10272
|
-
|
|
10273
10341
|
<h3 id="buttons">Buttons<a class="headerlink" href="#buttons" title="Permanent link">¶</a></h3>
|
|
10274
10342
|
<p><code>Button</code>s are the third major building block for the UI. Defining <code>extra_buttons</code> on your <code>ObjectDetailContent</code> instance allows you to add buttons that appear at the top of the page, alongside the standard "actions" dropdown and any custom buttons added by Apps. These buttons may operate as simple hyperlinks, or may use JavaScript to provide more advanced functionality.</p>
|
|
10343
|
+
<h4 id="buttons-example">Buttons Example<a class="headerlink" href="#buttons-example" title="Permanent link">¶</a></h4>
|
|
10344
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectDetailContent</span><span class="p">,</span> <span class="n">Button</span>
|
|
10345
|
+
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>
|
|
10346
|
+
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
|
|
10347
|
+
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> <span class="n">panels</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span>
|
|
10348
|
+
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> <span class="n">extra_buttons</span><span class="o">=</span><span class="p">[</span>
|
|
10349
|
+
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> <span class="n">Button</span><span class="p">(</span>
|
|
10350
|
+
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10351
|
+
<a id="__codelineno-1-8" name="__codelineno-1-8" href="#__codelineno-1-8"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Check Secret"</span><span class="p">,</span>
|
|
10352
|
+
<a id="__codelineno-1-9" name="__codelineno-1-9" href="#__codelineno-1-9"></a> <span class="n">icon</span><span class="o">=</span><span class="s2">"mdi-test-tube"</span><span class="p">,</span>
|
|
10353
|
+
<a id="__codelineno-1-10" name="__codelineno-1-10" href="#__codelineno-1-10"></a> <span class="n">javascript_template_path</span><span class="o">=</span><span class="s2">"extras/secret_check.js"</span><span class="p">,</span>
|
|
10354
|
+
<a id="__codelineno-1-11" name="__codelineno-1-11" href="#__codelineno-1-11"></a> <span class="n">attributes</span><span class="o">=</span><span class="p">{</span><span class="s2">"onClick"</span><span class="p">:</span> <span class="s2">"checkSecret()"</span><span class="p">},</span>
|
|
10355
|
+
<a id="__codelineno-1-12" name="__codelineno-1-12" href="#__codelineno-1-12"></a> <span class="p">),</span>
|
|
10356
|
+
<a id="__codelineno-1-13" name="__codelineno-1-13" href="#__codelineno-1-13"></a> <span class="p">],</span>
|
|
10357
|
+
<a id="__codelineno-1-14" name="__codelineno-1-14" href="#__codelineno-1-14"></a> <span class="p">)</span>
|
|
10358
|
+
</code></pre></div>
|
|
10359
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10360
|
+
<div class="grid cards example-images">
|
|
10361
|
+
<ul>
|
|
10362
|
+
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/buttons-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Buttons Example" class="on-glb" src="../../media/development/core/ui-component-framework/buttons-example.png" /></a></li>
|
|
10363
|
+
</ul>
|
|
10364
|
+
</div>
|
|
10275
10365
|
<h2 id="panel-types">Panel Types<a class="headerlink" href="#panel-types" title="Permanent link">¶</a></h2>
|
|
10276
10366
|
<h3 id="base-panel">Base Panel<a class="headerlink" href="#base-panel" title="Permanent link">¶</a></h3>
|
|
10277
10367
|
<p>The Panel component serves as a base class for creating individual display panels within a Layout system. You'll rarely use it directly, but it's important to understand as the base class for the more feature-filled subclasses described below.</p>
|
|
10278
10368
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.Panel">Code reference</a></p>
|
|
10279
10369
|
<h4 id="panel-examples">Panel Examples<a class="headerlink" href="#panel-examples" title="Permanent link">¶</a></h4>
|
|
10280
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10281
|
-
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>
|
|
10282
|
-
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="n">Panel</span><span class="p">(</span>
|
|
10283
|
-
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10284
|
-
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10285
|
-
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Panel Header"</span><span class="p">,</span>
|
|
10286
|
-
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a><span class="p">)</span>
|
|
10287
|
-
</code></pre></div>
|
|
10288
10370
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10289
10371
|
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>
|
|
10290
10372
|
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="n">Panel</span><span class="p">(</span>
|
|
10291
|
-
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a>
|
|
10292
|
-
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>
|
|
10293
|
-
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>
|
|
10294
|
-
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a
|
|
10295
|
-
|
|
10296
|
-
<a id="__codelineno-
|
|
10297
|
-
<a id="__codelineno-2
|
|
10298
|
-
<a id="__codelineno-
|
|
10299
|
-
<a id="__codelineno-
|
|
10373
|
+
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10374
|
+
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10375
|
+
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Panel Header"</span><span class="p">,</span>
|
|
10376
|
+
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="p">)</span>
|
|
10377
|
+
</code></pre></div>
|
|
10378
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10379
|
+
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
|
|
10380
|
+
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="n">Panel</span><span class="p">(</span>
|
|
10381
|
+
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
|
10382
|
+
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">RIGHT_HALF</span><span class="p">,</span>
|
|
10383
|
+
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Optional Params Included"</span><span class="p">,</span>
|
|
10384
|
+
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> <span class="n">body_content_template_path</span><span class="o">=</span><span class="s2">"path/to/template/body_content_template.html"</span><span class="p">,</span>
|
|
10385
|
+
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a> <span class="n">header_extra_content_template_path</span><span class="o">=</span><span class="s2">"path/to/template/header_extra_content_template.html"</span><span class="p">,</span>
|
|
10386
|
+
<a id="__codelineno-3-9" name="__codelineno-3-9" href="#__codelineno-3-9"></a> <span class="n">footer_content_template_path</span><span class="o">=</span><span class="s2">"path/to/template/footer_content_template.html"</span><span class="p">,</span>
|
|
10387
|
+
<a id="__codelineno-3-10" name="__codelineno-3-10" href="#__codelineno-3-10"></a> <span class="n">template_path</span><span class="o">=</span><span class="s2">"path/to/template/template.html"</span><span class="p">,</span>
|
|
10388
|
+
<a id="__codelineno-3-11" name="__codelineno-3-11" href="#__codelineno-3-11"></a> <span class="n">body_wrapper_template_path</span><span class="o">=</span><span class="s2">"path/to/template/body_wrapper_template.html"</span><span class="p">,</span>
|
|
10389
|
+
<a id="__codelineno-3-12" name="__codelineno-3-12" href="#__codelineno-3-12"></a><span class="p">)</span>
|
|
10300
10390
|
</code></pre></div>
|
|
10301
10391
|
<h3 id="objectfieldspanel">ObjectFieldsPanel<a class="headerlink" href="#objectfieldspanel" title="Permanent link">¶</a></h3>
|
|
10302
10392
|
<p><code>ObjectFieldsPanel</code> is designed to automatically render object attributes in a table format. It's particularly useful for displaying model instances or any object with defined attributes. This panel inherits from <code>KeyValueTablePanel</code>.</p>
|
|
@@ -10309,38 +10399,39 @@
|
|
|
10309
10399
|
- `comments`, `tags` (these are automatically added as standalone panels)
|
|
10310
10400
|
</code></pre></div>
|
|
10311
10401
|
<h4 id="objectfieldspanel-examples">ObjectFieldsPanel Examples<a class="headerlink" href="#objectfieldspanel-examples" title="Permanent link">¶</a></h4>
|
|
10312
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectFieldsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10313
|
-
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a>
|
|
10314
|
-
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="n">ObjectFieldsPanel</span><span class="p">(</span>
|
|
10315
|
-
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10316
|
-
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">LEFT_HALF</span><span class="p">,</span>
|
|
10317
|
-
<a id="__codelineno-3-6" name="__codelineno-3-6" href="#__codelineno-3-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Object Fields Panel"</span><span class="p">,</span>
|
|
10318
|
-
<a id="__codelineno-3-7" name="__codelineno-3-7" href="#__codelineno-3-7"></a> <span class="n">context_object_key</span><span class="o">=</span><span class="s2">"obj"</span><span class="p">,</span>
|
|
10319
|
-
<a id="__codelineno-3-8" name="__codelineno-3-8" href="#__codelineno-3-8"></a><span class="p">)</span>
|
|
10320
|
-
</code></pre></div>
|
|
10321
10402
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectFieldsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10322
10403
|
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>
|
|
10323
10404
|
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="n">ObjectFieldsPanel</span><span class="p">(</span>
|
|
10324
|
-
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">
|
|
10405
|
+
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10325
10406
|
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">LEFT_HALF</span><span class="p">,</span>
|
|
10326
10407
|
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Object Fields Panel"</span><span class="p">,</span>
|
|
10327
|
-
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> <span class="n">
|
|
10328
|
-
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a
|
|
10329
|
-
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> <span class="n">ignore_nonexistent_fields</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10330
|
-
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a> <span class="n">value_transforms</span><span class="o">=</span><span class="p">{</span>
|
|
10331
|
-
<a id="__codelineno-4-11" name="__codelineno-4-11" href="#__codelineno-4-11"></a> <span class="s2">"status"</span><span class="p">:</span> <span class="p">[</span><span class="n">status_to_badge</span><span class="p">],</span>
|
|
10332
|
-
<a id="__codelineno-4-12" name="__codelineno-4-12" href="#__codelineno-4-12"></a> <span class="s2">"type"</span><span class="p">:</span> <span class="p">[</span><span class="n">type_to_link</span><span class="p">]</span>
|
|
10333
|
-
<a id="__codelineno-4-13" name="__codelineno-4-13" href="#__codelineno-4-13"></a> <span class="p">},</span>
|
|
10334
|
-
<a id="__codelineno-4-14" name="__codelineno-4-14" href="#__codelineno-4-14"></a><span class="p">)</span>
|
|
10408
|
+
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> <span class="n">context_object_key</span><span class="o">=</span><span class="s2">"obj"</span><span class="p">,</span>
|
|
10409
|
+
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a><span class="p">)</span>
|
|
10335
10410
|
</code></pre></div>
|
|
10336
|
-
|
|
10411
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">ui</span>
|
|
10412
|
+
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="kn">from</span> <span class="nn">nautobot.core.templatetags</span> <span class="kn">import</span> <span class="n">helpers</span>
|
|
10413
|
+
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>
|
|
10414
|
+
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a>
|
|
10415
|
+
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="n">panels</span> <span class="o">=</span> <span class="n">ui</span><span class="o">.</span><span class="n">ObjectFieldsPanel</span><span class="p">(</span>
|
|
10416
|
+
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
|
10417
|
+
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="n">section</span><span class="o">=</span><span class="n">ui</span><span class="o">.</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">LEFT_HALF</span><span class="p">,</span>
|
|
10418
|
+
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Object Fields Panel"</span><span class="p">,</span>
|
|
10419
|
+
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a> <span class="n">fields</span><span class="o">=</span><span class="p">[</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"number"</span><span class="p">,</span> <span class="s2">"notes"</span><span class="p">,</span> <span class="s2">"notexists"</span><span class="p">],</span>
|
|
10420
|
+
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a> <span class="n">context_object_key</span><span class="o">=</span><span class="s2">"obj"</span><span class="p">,</span>
|
|
10421
|
+
<a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a> <span class="n">ignore_nonexistent_fields</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10422
|
+
<a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a> <span class="n">value_transforms</span><span class="o">=</span><span class="p">{</span>
|
|
10423
|
+
<a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a> <span class="s2">"name"</span><span class="p">:</span> <span class="p">[</span><span class="n">helpers</span><span class="o">.</span><span class="n">bettertitle</span><span class="p">],</span>
|
|
10424
|
+
<a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a> <span class="s2">"number"</span><span class="p">:</span> <span class="p">[</span><span class="k">lambda</span> <span class="n">v</span><span class="p">:</span> <span class="n">helpers</span><span class="o">.</span><span class="n">hyperlinked_field</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">"https://nautobot.com"</span><span class="p">)]</span>
|
|
10425
|
+
<a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a> <span class="p">},</span>
|
|
10426
|
+
<a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="p">),</span>
|
|
10427
|
+
</code></pre></div>
|
|
10428
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10337
10429
|
<div class="grid cards example-images">
|
|
10338
10430
|
<ul>
|
|
10339
10431
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/object-fields-panel-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="ObjectFieldsPanel Example" class="on-glb" src="../../media/development/core/ui-component-framework/object-fields-panel-example.png" /></a></li>
|
|
10432
|
+
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/object-fields-panel-example_2.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="ObjectFieldsPanel Example" class="on-glb" src="../../media/development/core/ui-component-framework/object-fields-panel-example_2.png" /></a></li>
|
|
10340
10433
|
</ul>
|
|
10341
10434
|
</div>
|
|
10342
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10343
|
-
|
|
10344
10435
|
<h3 id="keyvaluetablepanel">KeyValueTablePanel<a class="headerlink" href="#keyvaluetablepanel" title="Permanent link">¶</a></h3>
|
|
10345
10436
|
<p><code>KeyValueTablePanel</code> is a Panel component that displays data in a two-column table format, commonly used in object detail views. It extends the base <code>Panel</code> class and provides additional functionality for data display and transformation.</p>
|
|
10346
10437
|
<div class="admonition tip">
|
|
@@ -10349,65 +10440,65 @@
|
|
|
10349
10440
|
</div>
|
|
10350
10441
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.KeyValueTablePanel">Code reference</a></p>
|
|
10351
10442
|
<h4 id="keyvaluetablepanel-examples">KeyValueTablePanel Examples<a class="headerlink" href="#keyvaluetablepanel-examples" title="Permanent link">¶</a></h4>
|
|
10352
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
|
|
10353
|
-
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
|
|
10354
|
-
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="n">KeyValueTablePanel</span><span class="p">(</span>
|
|
10355
|
-
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10356
|
-
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a> <span class="n">data</span><span class="o">=</span><span class="p">{</span>
|
|
10357
|
-
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a> <span class="s2">"speed"</span><span class="p">:</span> <span class="s2">"1000000"</span><span class="p">,</span>
|
|
10358
|
-
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a> <span class="s2">"notes"</span><span class="p">:</span> <span class="s2">"**Important**"</span>
|
|
10359
|
-
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a> <span class="p">},</span>
|
|
10360
|
-
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="p">)</span>
|
|
10361
|
-
</code></pre></div>
|
|
10362
10443
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
|
|
10363
10444
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
|
|
10364
10445
|
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="n">KeyValueTablePanel</span><span class="p">(</span>
|
|
10365
10446
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10366
10447
|
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a> <span class="n">data</span><span class="o">=</span><span class="p">{</span>
|
|
10367
10448
|
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a> <span class="s2">"speed"</span><span class="p">:</span> <span class="s2">"1000000"</span><span class="p">,</span>
|
|
10368
|
-
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> <span class="s2">"notes"</span><span class="p">:</span> <span class="s2">"**Important**"</span
|
|
10449
|
+
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a> <span class="s2">"notes"</span><span class="p">:</span> <span class="s2">"**Important**"</span>
|
|
10369
10450
|
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a> <span class="p">},</span>
|
|
10370
|
-
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a
|
|
10371
|
-
|
|
10372
|
-
<a id="__codelineno-
|
|
10373
|
-
<a id="__codelineno-
|
|
10374
|
-
<a id="__codelineno-
|
|
10375
|
-
<a id="__codelineno-
|
|
10376
|
-
<a id="__codelineno-
|
|
10377
|
-
<a id="__codelineno-6
|
|
10378
|
-
<a id="__codelineno-
|
|
10379
|
-
<a id="__codelineno-
|
|
10380
|
-
<a id="__codelineno-
|
|
10381
|
-
<a id="__codelineno-
|
|
10451
|
+
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="p">)</span>
|
|
10452
|
+
</code></pre></div>
|
|
10453
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
|
|
10454
|
+
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
|
|
10455
|
+
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="n">KeyValueTablePanel</span><span class="p">(</span>
|
|
10456
|
+
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10457
|
+
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a> <span class="n">data</span><span class="o">=</span><span class="p">{</span>
|
|
10458
|
+
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a> <span class="s2">"speed"</span><span class="p">:</span> <span class="s2">"1000000"</span><span class="p">,</span>
|
|
10459
|
+
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a> <span class="s2">"notes"</span><span class="p">:</span> <span class="s2">"**Important**"</span><span class="p">,</span>
|
|
10460
|
+
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a> <span class="p">},</span>
|
|
10461
|
+
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a> <span class="n">hide_if_unset</span><span class="o">=</span><span class="p">(),</span>
|
|
10462
|
+
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a> <span class="n">value_transforms</span><span class="o">=</span><span class="p">{</span>
|
|
10463
|
+
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a> <span class="s2">"speed"</span><span class="p">:</span> <span class="p">[</span> <span class="c1"># List of functions to apply in order</span>
|
|
10464
|
+
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a> <span class="n">humanize_speed</span><span class="p">,</span> <span class="c1"># Convert 1000000 to "1 Gbps"</span>
|
|
10465
|
+
<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a> <span class="n">placeholder</span> <span class="c1"># Show placeholder if empty</span>
|
|
10466
|
+
<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a> <span class="p">],</span>
|
|
10467
|
+
<a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a> <span class="s2">"notes"</span><span class="p">:</span> <span class="p">[</span>
|
|
10468
|
+
<a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a> <span class="n">render_markdown</span><span class="p">,</span> <span class="c1"># Convert markdown to HTML</span>
|
|
10469
|
+
<a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a> <span class="n">placeholder</span> <span class="c1"># Show placeholder if empty</span>
|
|
10470
|
+
<a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a> <span class="p">]</span>
|
|
10471
|
+
<a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a> <span class="p">},</span>
|
|
10472
|
+
<a id="__codelineno-7-20" name="__codelineno-7-20" href="#__codelineno-7-20"></a><span class="p">)</span>
|
|
10382
10473
|
</code></pre></div>
|
|
10383
10474
|
<h3 id="groupedkeyvaluetablepanel">GroupedKeyValueTablePanel<a class="headerlink" href="#groupedkeyvaluetablepanel" title="Permanent link">¶</a></h3>
|
|
10384
10475
|
<p><code>GroupedKeyValueTablePanel</code> is a specialized version of <code>KeyValueTablePanel</code> that organizes data into collapsible accordion groups. This is used in the standard template for displaying grouped custom/computed fields when present.</p>
|
|
10385
10476
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.GroupedKeyValueTablePanel">Code reference</a></p>
|
|
10386
10477
|
<h4 id="groupedkeyvaluetablepanel-examples">GroupedKeyValueTablePanel Examples<a class="headerlink" href="#groupedkeyvaluetablepanel-examples" title="Permanent link">¶</a></h4>
|
|
10387
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10388
|
-
<a id="__codelineno-
|
|
10389
|
-
<a id="__codelineno-
|
|
10390
|
-
<a id="__codelineno-
|
|
10391
|
-
<a id="__codelineno-
|
|
10392
|
-
<a id="__codelineno-
|
|
10393
|
-
<a id="__codelineno-
|
|
10394
|
-
<a id="__codelineno-
|
|
10395
|
-
<a id="__codelineno-
|
|
10396
|
-
<a id="__codelineno-
|
|
10397
|
-
<a id="__codelineno-
|
|
10398
|
-
<a id="__codelineno-
|
|
10399
|
-
<a id="__codelineno-
|
|
10400
|
-
<a id="__codelineno-
|
|
10401
|
-
<a id="__codelineno-
|
|
10402
|
-
<a id="__codelineno-
|
|
10403
|
-
<a id="__codelineno-
|
|
10404
|
-
<a id="__codelineno-
|
|
10405
|
-
<a id="__codelineno-
|
|
10406
|
-
<a id="__codelineno-
|
|
10407
|
-
<a id="__codelineno-
|
|
10408
|
-
<a id="__codelineno-
|
|
10478
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">GroupedKeyValueTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10479
|
+
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
|
|
10480
|
+
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="n">GroupedKeyValueTablePanel</span><span class="p">(</span>
|
|
10481
|
+
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span>
|
|
10482
|
+
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10483
|
+
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Grouped Information"</span><span class="p">,</span>
|
|
10484
|
+
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a> <span class="n">body_id</span><span class="o">=</span><span class="s2">"network-details"</span><span class="p">,</span>
|
|
10485
|
+
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a> <span class="c1"># Data Structure</span>
|
|
10486
|
+
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a> <span class="n">data</span><span class="o">=</span><span class="p">{</span>
|
|
10487
|
+
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a> <span class="s2">"Network"</span><span class="p">:</span> <span class="p">{</span> <span class="c1"># Group name (shown as accordion header)</span>
|
|
10488
|
+
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a> <span class="s2">"VLAN"</span><span class="p">:</span> <span class="s2">"100"</span><span class="p">,</span> <span class="c1"># Key-value pairs in this group</span>
|
|
10489
|
+
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a> <span class="s2">"IP Range"</span><span class="p">:</span> <span class="s2">"192.168.1.0/24"</span>
|
|
10490
|
+
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a> <span class="p">},</span>
|
|
10491
|
+
<a id="__codelineno-8-14" name="__codelineno-8-14" href="#__codelineno-8-14"></a> <span class="s2">"Physical"</span><span class="p">:</span> <span class="p">{</span> <span class="c1"># Another group</span>
|
|
10492
|
+
<a id="__codelineno-8-15" name="__codelineno-8-15" href="#__codelineno-8-15"></a> <span class="s2">"Location"</span><span class="p">:</span> <span class="s2">"Rack A1"</span><span class="p">,</span>
|
|
10493
|
+
<a id="__codelineno-8-16" name="__codelineno-8-16" href="#__codelineno-8-16"></a> <span class="s2">"Height"</span><span class="p">:</span> <span class="s2">"2U"</span>
|
|
10494
|
+
<a id="__codelineno-8-17" name="__codelineno-8-17" href="#__codelineno-8-17"></a> <span class="p">},</span>
|
|
10495
|
+
<a id="__codelineno-8-18" name="__codelineno-8-18" href="#__codelineno-8-18"></a> <span class="s2">""</span><span class="p">:</span> <span class="p">{</span> <span class="c1"># Empty string for ungrouped items</span>
|
|
10496
|
+
<a id="__codelineno-8-19" name="__codelineno-8-19" href="#__codelineno-8-19"></a> <span class="s2">"Notes"</span><span class="p">:</span> <span class="s2">"Important info"</span>
|
|
10497
|
+
<a id="__codelineno-8-20" name="__codelineno-8-20" href="#__codelineno-8-20"></a> <span class="p">}</span>
|
|
10498
|
+
<a id="__codelineno-8-21" name="__codelineno-8-21" href="#__codelineno-8-21"></a> <span class="p">},</span>
|
|
10499
|
+
<a id="__codelineno-8-22" name="__codelineno-8-22" href="#__codelineno-8-22"></a><span class="p">)</span>
|
|
10409
10500
|
</code></pre></div>
|
|
10410
|
-
<!--
|
|
10501
|
+
<!-- pyml disable-num-lines 7 no-inline-html -->
|
|
10411
10502
|
<div class="grid cards example-images">
|
|
10412
10503
|
<ul>
|
|
10413
10504
|
<li>
|
|
@@ -10418,104 +10509,99 @@
|
|
|
10418
10509
|
</li>
|
|
10419
10510
|
</ul>
|
|
10420
10511
|
</div>
|
|
10421
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10422
|
-
|
|
10423
10512
|
<h3 id="statspanel">StatsPanel<a class="headerlink" href="#statspanel" title="Permanent link">¶</a></h3>
|
|
10424
10513
|
<p><code>StatsPanel</code> is a Panel component that displays statistical information with clickable links to filtered views of related models. It's particularly useful for dashboards and summary views that provide quick access to filtered data sets.</p>
|
|
10425
10514
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.StatsPanel">Code reference</a></p>
|
|
10426
10515
|
<h4 id="statspanel-examples">StatsPanel Examples<a class="headerlink" href="#statspanel-examples" title="Permanent link">¶</a></h4>
|
|
10427
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10428
|
-
<a id="__codelineno-
|
|
10429
|
-
<a id="__codelineno-
|
|
10430
|
-
<a id="__codelineno-
|
|
10431
|
-
<a id="__codelineno-
|
|
10432
|
-
<a id="__codelineno-
|
|
10433
|
-
<a id="__codelineno-
|
|
10434
|
-
<a id="__codelineno-
|
|
10435
|
-
<a id="__codelineno-
|
|
10436
|
-
<a id="__codelineno-
|
|
10437
|
-
<a id="__codelineno-
|
|
10438
|
-
<a id="__codelineno-
|
|
10439
|
-
<a id="__codelineno-
|
|
10440
|
-
<a id="__codelineno-
|
|
10441
|
-
<a id="__codelineno-
|
|
10442
|
-
<a id="__codelineno-
|
|
10443
|
-
<a id="__codelineno-
|
|
10516
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">StatsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10517
|
+
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>
|
|
10518
|
+
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="n">StatsPanel</span><span class="p">(</span>
|
|
10519
|
+
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">700</span><span class="p">,</span>
|
|
10520
|
+
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">RIGHT_HALF</span><span class="p">,</span>
|
|
10521
|
+
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Statistics"</span><span class="p">,</span>
|
|
10522
|
+
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a> <span class="n">filter_name</span><span class="o">=</span><span class="s2">"location"</span><span class="p">,</span>
|
|
10523
|
+
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a> <span class="n">related_models</span><span class="o">=</span><span class="p">[</span> <span class="c1"># Models to show statistics for</span>
|
|
10524
|
+
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a> <span class="n">Device</span><span class="p">,</span> <span class="c1"># Direct model reference</span>
|
|
10525
|
+
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a> <span class="c1"># Will count all devices related to this object by their `location` key</span>
|
|
10526
|
+
<a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a> <span class="p">(</span><span class="n">Circuit</span><span class="p">,</span> <span class="s2">"circuit_terminations__location__in"</span><span class="p">),</span>
|
|
10527
|
+
<a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a> <span class="c1"># Tuple of (Model, query_string)</span>
|
|
10528
|
+
<a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a> <span class="c1"># For complex relationships</span>
|
|
10529
|
+
<a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a> <span class="p">(</span><span class="n">VirtualMachine</span><span class="p">,</span> <span class="s2">"cluster__location__in"</span><span class="p">)</span>
|
|
10530
|
+
<a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a> <span class="c1"># Another complex relationship example</span>
|
|
10531
|
+
<a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a> <span class="p">],</span>
|
|
10532
|
+
<a id="__codelineno-9-17" name="__codelineno-9-17" href="#__codelineno-9-17"></a><span class="p">)</span>
|
|
10444
10533
|
</code></pre></div>
|
|
10445
|
-
<!--
|
|
10534
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10446
10535
|
<div class="grid cards example-images">
|
|
10447
10536
|
<ul>
|
|
10537
|
+
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/stats-panel-example-code.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="StatsPanel Code Example" class="on-glb" src="../../media/development/core/ui-component-framework/stats-panel-example-code.png" /></a></li>
|
|
10448
10538
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/stats-panel-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="StatsPanel Example" class="on-glb" src="../../media/development/core/ui-component-framework/stats-panel-example.png" /></a></li>
|
|
10449
10539
|
</ul>
|
|
10450
10540
|
</div>
|
|
10451
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10452
|
-
|
|
10453
10541
|
<h3 id="basetextpanel">BaseTextPanel<a class="headerlink" href="#basetextpanel" title="Permanent link">¶</a></h3>
|
|
10454
10542
|
<p><code>BaseTextPanel</code> is a specialized Panel component designed to display single values in various text formats including plaintext, JSON, YAML, Markdown, and code snippets.</p>
|
|
10455
10543
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.BaseTextPanel">Code reference</a></p>
|
|
10456
|
-
<!--
|
|
10544
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10457
10545
|
<div class="grid cards" style="width: 300px;">
|
|
10458
10546
|
<ul>
|
|
10459
10547
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/text-panels-family.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Text Panels Family" class="on-glb" src="../../media/development/core/ui-component-framework/text-panels-family.png" /></a></li>
|
|
10460
10548
|
</ul>
|
|
10461
10549
|
</div>
|
|
10462
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10463
|
-
|
|
10464
10550
|
<h3 id="objecttextpanel">ObjectTextPanel<a class="headerlink" href="#objecttextpanel" title="Permanent link">¶</a></h3>
|
|
10465
10551
|
<p><code>ObjectTextPanel</code> renders content from a specific field of an object in the context. It simplifies the display of object attributes in various text formats (Markdown, JSON, YAML, etc.).</p>
|
|
10466
10552
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.ObjectTextPanel">Code reference</a></p>
|
|
10467
10553
|
<h4 id="objecttextpanel-examples">ObjectTextPanel Examples<a class="headerlink" href="#objecttextpanel-examples" title="Permanent link">¶</a></h4>
|
|
10468
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10469
|
-
<a id="__codelineno-
|
|
10470
|
-
<a id="__codelineno-
|
|
10471
|
-
<a id="__codelineno-
|
|
10472
|
-
<a id="__codelineno-
|
|
10473
|
-
<a id="__codelineno-
|
|
10474
|
-
<a id="__codelineno-
|
|
10475
|
-
<a id="__codelineno-
|
|
10476
|
-
<a id="__codelineno-
|
|
10477
|
-
<a id="__codelineno-
|
|
10554
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectTextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10555
|
+
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
|
|
10556
|
+
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="n">ObjectTextPanel</span><span class="p">(</span>
|
|
10557
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">500</span><span class="p">,</span>
|
|
10558
|
+
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10559
|
+
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Description"</span><span class="p">,</span>
|
|
10560
|
+
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a> <span class="n">object_field</span><span class="o">=</span><span class="s2">"description"</span><span class="p">,</span>
|
|
10561
|
+
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a> <span class="n">render_as</span><span class="o">=</span><span class="n">ObjectTextPanel</span><span class="o">.</span><span class="n">RenderOptions</span><span class="o">.</span><span class="n">MARKDOWN</span><span class="p">,</span>
|
|
10562
|
+
<a id="__codelineno-10-9" name="__codelineno-10-9" href="#__codelineno-10-9"></a> <span class="n">render_placeholder</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10563
|
+
<a id="__codelineno-10-10" name="__codelineno-10-10" href="#__codelineno-10-10"></a><span class="p">)</span>
|
|
10478
10564
|
</code></pre></div>
|
|
10479
10565
|
<h3 id="textpanel">TextPanel<a class="headerlink" href="#textpanel" title="Permanent link">¶</a></h3>
|
|
10480
10566
|
<p><code>TextPanel</code> renders content from a specified context field. It provides a simple way to display text content in various formats (Markdown, JSON, YAML, plaintext, or code) from the rendering context.</p>
|
|
10481
10567
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.TextPanel">Code reference</a></p>
|
|
10482
10568
|
<h4 id="textpanel-examples">TextPanel Examples<a class="headerlink" href="#textpanel-examples" title="Permanent link">¶</a></h4>
|
|
10483
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10484
|
-
<a id="__codelineno-
|
|
10485
|
-
<a id="__codelineno-
|
|
10486
|
-
<a id="__codelineno-
|
|
10487
|
-
<a id="__codelineno-
|
|
10488
|
-
<a id="__codelineno-
|
|
10489
|
-
<a id="__codelineno-
|
|
10490
|
-
<a id="__codelineno-
|
|
10491
|
-
<a id="__codelineno-
|
|
10492
|
-
<a id="__codelineno-
|
|
10569
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">TextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10570
|
+
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a>
|
|
10571
|
+
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="n">TextPanel</span><span class="p">(</span>
|
|
10572
|
+
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">600</span><span class="p">,</span>
|
|
10573
|
+
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10574
|
+
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Custom Content"</span><span class="p">,</span>
|
|
10575
|
+
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a> <span class="n">context_field</span><span class="o">=</span><span class="s2">"text"</span><span class="p">,</span>
|
|
10576
|
+
<a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a> <span class="n">render_as</span><span class="o">=</span><span class="n">TextPanel</span><span class="o">.</span><span class="n">RenderOptions</span><span class="o">.</span><span class="n">CODE</span><span class="p">,</span>
|
|
10577
|
+
<a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a> <span class="n">render_placeholder</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10578
|
+
<a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="p">)</span>
|
|
10493
10579
|
</code></pre></div>
|
|
10494
10580
|
<h3 id="datatablepanel">DataTablePanel<a class="headerlink" href="#datatablepanel" title="Permanent link">¶</a></h3>
|
|
10495
10581
|
<p><code>DataTablePanel</code> is a Panel component that renders tabular data directly from a list of dictionaries, providing a lightweight alternative to <code>django_tables2</code> Table classes.</p>
|
|
10496
10582
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.DataTablePanel">Code reference</a></p>
|
|
10497
10583
|
<p>Note:
|
|
10498
10584
|
<code>columns</code>/<code>context_columns_key</code> and <code>column_headers</code>/<code>context_column_headers_key</code> are mutually exclusive pairs.</p>
|
|
10499
|
-
<!--
|
|
10585
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10500
10586
|
<div class="grid cards example-images">
|
|
10501
10587
|
<ul>
|
|
10502
10588
|
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/table-panels-family.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Table Panels Family" class="on-glb" src="../../media/development/core/ui-component-framework/table-panels-family.png" /></a></li>
|
|
10503
10589
|
</ul>
|
|
10504
10590
|
</div>
|
|
10505
|
-
<!-- markdownlint-enable no-inline-html -->
|
|
10506
|
-
|
|
10507
10591
|
<h4 id="datatablepanel-examples">DataTablePanel Examples<a class="headerlink" href="#datatablepanel-examples" title="Permanent link">¶</a></h4>
|
|
10508
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10509
|
-
<a id="__codelineno-
|
|
10510
|
-
<a id="__codelineno-
|
|
10511
|
-
<a id="__codelineno-
|
|
10512
|
-
<a id="__codelineno-
|
|
10513
|
-
<a id="__codelineno-
|
|
10514
|
-
<a id="__codelineno-
|
|
10515
|
-
<a id="__codelineno-
|
|
10592
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">DataTablePanel</span>
|
|
10593
|
+
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
|
|
10594
|
+
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="n">DataTablePanel</span><span class="p">(</span>
|
|
10595
|
+
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10596
|
+
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a> <span class="n">context_data_key</span><span class="o">=</span><span class="s2">"data"</span><span class="p">,</span>
|
|
10597
|
+
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s2">"one"</span><span class="p">,</span> <span class="s2">"two"</span><span class="p">,</span> <span class="s2">"three"</span><span class="p">],</span>
|
|
10598
|
+
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a> <span class="n">column_headers</span><span class="o">=</span><span class="p">[</span><span class="s2">"One"</span><span class="p">,</span> <span class="s2">"Two"</span><span class="p">,</span> <span class="s2">"Three"</span><span class="p">]</span>
|
|
10599
|
+
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="p">)</span>
|
|
10516
10600
|
</code></pre></div>
|
|
10517
10601
|
<h3 id="objectstablepanel">ObjectsTablePanel<a class="headerlink" href="#objectstablepanel" title="Permanent link">¶</a></h3>
|
|
10518
|
-
<p>The <code>ObjectsTablePanel</code> is a powerful component for rendering tables of Django model objects,
|
|
10602
|
+
<p>The <code>ObjectsTablePanel</code> is a powerful component for rendering tables of Django model objects,
|
|
10603
|
+
particularly suited for displaying related objects within a detail view.
|
|
10604
|
+
It integrates with <code>django_tables2</code> and provides extensive customization options.</p>
|
|
10519
10605
|
<h4 id="configuration-parameters">Configuration Parameters<a class="headerlink" href="#configuration-parameters" title="Permanent link">¶</a></h4>
|
|
10520
10606
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.ObjectsTablePanel">Code reference</a></p>
|
|
10521
10607
|
<h5 id="core-configuration">Core Configuration<a class="headerlink" href="#core-configuration" title="Permanent link">¶</a></h5>
|
|
@@ -10667,138 +10753,148 @@
|
|
|
10667
10753
|
</tbody>
|
|
10668
10754
|
</table>
|
|
10669
10755
|
<h4 id="objectstablepanel-examples">ObjectsTablePanel Examples<a class="headerlink" href="#objectstablepanel-examples" title="Permanent link">¶</a></h4>
|
|
10670
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10671
|
-
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
|
|
10672
|
-
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="n">ObjectsTablePanel</span><span class="p">(</span>
|
|
10673
|
-
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10674
|
-
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">RIGHT_HALF</span><span class="p">,</span>
|
|
10675
|
-
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a> <span class="n">table_class</span><span class="o">=</span><span class="n">ExampleTable</span><span class="p">,</span>
|
|
10676
|
-
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a> <span class="n">table_filter</span><span class="o">=</span><span class="s2">"example_name"</span><span class="p">,</span>
|
|
10677
|
-
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a> <span class="n">table_title</span><span class="o">=</span><span class="s2">"Example Table"</span><span class="p">,</span>
|
|
10678
|
-
<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a>
|
|
10679
|
-
<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="p">)</span>
|
|
10680
|
-
</code></pre></div>
|
|
10681
10756
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10682
10757
|
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>
|
|
10683
10758
|
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="n">ObjectsTablePanel</span><span class="p">(</span>
|
|
10684
|
-
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">
|
|
10685
|
-
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">
|
|
10686
|
-
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a> <span class="n">
|
|
10687
|
-
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a> <span class="n">
|
|
10688
|
-
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a> <span class="n">
|
|
10689
|
-
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>
|
|
10690
|
-
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a
|
|
10691
|
-
|
|
10692
|
-
<a id="__codelineno-
|
|
10693
|
-
<a id="__codelineno-
|
|
10694
|
-
<a id="__codelineno-
|
|
10695
|
-
<a id="__codelineno-
|
|
10759
|
+
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10760
|
+
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">RIGHT_HALF</span><span class="p">,</span>
|
|
10761
|
+
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a> <span class="n">table_class</span><span class="o">=</span><span class="n">ExampleTable</span><span class="p">,</span>
|
|
10762
|
+
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a> <span class="n">table_filter</span><span class="o">=</span><span class="s2">"example_name"</span><span class="p">,</span>
|
|
10763
|
+
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a> <span class="n">table_title</span><span class="o">=</span><span class="s2">"Example Table"</span><span class="p">,</span>
|
|
10764
|
+
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a>
|
|
10765
|
+
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a><span class="p">)</span>
|
|
10766
|
+
</code></pre></div>
|
|
10767
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
|
|
10768
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
|
|
10769
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="n">ObjectsTablePanel</span><span class="p">(</span>
|
|
10770
|
+
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
|
10771
|
+
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10772
|
+
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a> <span class="n">context_table_key</span><span class="o">=</span><span class="s2">"example_table_instance"</span><span class="p">,</span>
|
|
10773
|
+
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a> <span class="n">table_title</span><span class="o">=</span><span class="s2">"Example Table"</span><span class="p">,</span>
|
|
10774
|
+
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a> <span class="n">hide_hierarchy_ui</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10775
|
+
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a> <span class="n">related_field_name</span><span class="o">=</span><span class="s2">"example_id"</span><span class="p">,</span>
|
|
10776
|
+
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a> <span class="n">enable_bulk_actions</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
|
|
10777
|
+
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a> <span class="n">add_permissions</span><span class="o">=</span><span class="p">[</span><span class="s2">"dcim:add_device"</span><span class="p">],</span>
|
|
10778
|
+
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a> <span class="n">max_display_count</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>
|
|
10779
|
+
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a> <span class="n">prefetch_related_fields</span><span class="o">=</span><span class="p">[</span><span class="s2">"devices"</span><span class="p">],</span>
|
|
10780
|
+
<a id="__codelineno-14-14" name="__codelineno-14-14" href="#__codelineno-14-14"></a> <span class="n">select_related_fields</span><span class="o">=</span><span class="p">[</span><span class="s2">"manufacturers"</span><span class="p">,</span> <span class="s2">"locations"</span><span class="p">],</span>
|
|
10781
|
+
<a id="__codelineno-14-15" name="__codelineno-14-15" href="#__codelineno-14-15"></a><span class="p">)</span>
|
|
10696
10782
|
</code></pre></div>
|
|
10697
10783
|
<h2 id="button-types">Button Types<a class="headerlink" href="#button-types" title="Permanent link">¶</a></h2>
|
|
10698
10784
|
<h3 id="button">Button<a class="headerlink" href="#button" title="Permanent link">¶</a></h3>
|
|
10699
10785
|
<p>The Button component defines a single button in an object detail view.</p>
|
|
10700
10786
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.Button">Code reference</a></p>
|
|
10701
10787
|
<h4 id="button-examples">Button Examples<a class="headerlink" href="#button-examples" title="Permanent link">¶</a></h4>
|
|
10702
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10703
|
-
<a id="__codelineno-
|
|
10704
|
-
<a id="__codelineno-
|
|
10705
|
-
<a id="__codelineno-
|
|
10706
|
-
<a id="__codelineno-
|
|
10707
|
-
<a id="__codelineno-
|
|
10708
|
-
<a id="__codelineno-
|
|
10709
|
-
<a id="__codelineno-
|
|
10710
|
-
<a id="__codelineno-
|
|
10711
|
-
<a id="__codelineno-
|
|
10712
|
-
<a id="__codelineno-
|
|
10713
|
-
<a id="__codelineno-
|
|
10714
|
-
<a id="__codelineno-
|
|
10715
|
-
<a id="__codelineno-
|
|
10788
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="k">class</span> <span class="nc">SecretUIViewSet</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
|
|
10789
|
+
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a> <span class="o">...</span>
|
|
10790
|
+
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
|
|
10791
|
+
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> <span class="n">panels</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span>
|
|
10792
|
+
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a> <span class="n">extra_buttons</span><span class="o">=</span><span class="p">[</span>
|
|
10793
|
+
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a> <span class="n">Button</span><span class="p">(</span>
|
|
10794
|
+
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10795
|
+
<a id="__codelineno-15-8" name="__codelineno-15-8" href="#__codelineno-15-8"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Check Secret"</span><span class="p">,</span>
|
|
10796
|
+
<a id="__codelineno-15-9" name="__codelineno-15-9" href="#__codelineno-15-9"></a> <span class="n">icon</span><span class="o">=</span><span class="s2">"mdi-test-tube"</span><span class="p">,</span>
|
|
10797
|
+
<a id="__codelineno-15-10" name="__codelineno-15-10" href="#__codelineno-15-10"></a> <span class="n">javascript_template_path</span><span class="o">=</span><span class="s2">"extras/secret_check.js"</span><span class="p">,</span>
|
|
10798
|
+
<a id="__codelineno-15-11" name="__codelineno-15-11" href="#__codelineno-15-11"></a> <span class="n">attributes</span><span class="o">=</span><span class="p">{</span><span class="s2">"onClick"</span><span class="p">:</span> <span class="s2">"checkSecret()"</span><span class="p">},</span>
|
|
10799
|
+
<a id="__codelineno-15-12" name="__codelineno-15-12" href="#__codelineno-15-12"></a> <span class="p">),</span>
|
|
10800
|
+
<a id="__codelineno-15-13" name="__codelineno-15-13" href="#__codelineno-15-13"></a> <span class="p">],</span>
|
|
10801
|
+
<a id="__codelineno-15-14" name="__codelineno-15-14" href="#__codelineno-15-14"></a> <span class="p">)</span>
|
|
10716
10802
|
</code></pre></div>
|
|
10717
|
-
|
|
10803
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10804
|
+
<div class="grid cards example-images">
|
|
10805
|
+
<ul>
|
|
10806
|
+
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/button-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="Button Example" class="on-glb" src="../../media/development/core/ui-component-framework/button-example.png" /></a></li>
|
|
10807
|
+
</ul>
|
|
10808
|
+
</div>
|
|
10718
10809
|
<h3 id="dropdownbutton">DropdownButton<a class="headerlink" href="#dropdownbutton" title="Permanent link">¶</a></h3>
|
|
10719
10810
|
<p><code>DropdownButton</code> is a subclass of <code>Button</code> that may itself contain other <code>Buttons</code> as its <code>children</code>, which it will render as a dropdown menu. For an example of usage, refer to the <code>Add Components</code> dropdown on the Device detail view.</p>
|
|
10720
10811
|
<p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.DropdownButton">Code reference</a></p>
|
|
10721
10812
|
<h4 id="dropdownbutton-examples">DropdownButton Examples<a class="headerlink" href="#dropdownbutton-examples" title="Permanent link">¶</a></h4>
|
|
10722
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
10723
|
-
<a id="__codelineno-
|
|
10724
|
-
<a id="__codelineno-
|
|
10725
|
-
<a id="__codelineno-
|
|
10726
|
-
<a id="__codelineno-
|
|
10727
|
-
<a id="__codelineno-
|
|
10728
|
-
<a id="__codelineno-
|
|
10729
|
-
<a id="__codelineno-
|
|
10730
|
-
<a id="__codelineno-
|
|
10731
|
-
<a id="__codelineno-
|
|
10732
|
-
<a id="__codelineno-
|
|
10733
|
-
<a id="__codelineno-
|
|
10734
|
-
<a id="__codelineno-
|
|
10735
|
-
<a id="__codelineno-
|
|
10736
|
-
<a id="__codelineno-
|
|
10737
|
-
<a id="__codelineno-
|
|
10738
|
-
<a id="__codelineno-
|
|
10739
|
-
<a id="__codelineno-
|
|
10740
|
-
<a id="__codelineno-
|
|
10741
|
-
<a id="__codelineno-
|
|
10742
|
-
<a id="__codelineno-
|
|
10743
|
-
<a id="__codelineno-
|
|
10744
|
-
<a id="__codelineno-
|
|
10745
|
-
<a id="__codelineno-
|
|
10746
|
-
<a id="__codelineno-
|
|
10747
|
-
<a id="__codelineno-
|
|
10748
|
-
<a id="__codelineno-
|
|
10749
|
-
<a id="__codelineno-
|
|
10750
|
-
<a id="__codelineno-
|
|
10751
|
-
<a id="__codelineno-
|
|
10813
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="k">class</span> <span class="nc">DeviceView</span><span class="p">(</span><span class="n">generic</span><span class="o">.</span><span class="n">ObjectView</span><span class="p">):</span>
|
|
10814
|
+
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a> <span class="o">...</span>
|
|
10815
|
+
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
|
|
10816
|
+
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a> <span class="n">extra_buttons</span><span class="o">=</span><span class="p">[</span>
|
|
10817
|
+
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a> <span class="n">object_detail</span><span class="o">.</span><span class="n">DropdownButton</span><span class="p">(</span>
|
|
10818
|
+
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10819
|
+
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a> <span class="n">color</span><span class="o">=</span><span class="n">ButtonColorChoices</span><span class="o">.</span><span class="n">BLUE</span><span class="p">,</span>
|
|
10820
|
+
<a id="__codelineno-16-8" name="__codelineno-16-8" href="#__codelineno-16-8"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Add Components"</span><span class="p">,</span>
|
|
10821
|
+
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a> <span class="n">icon</span><span class="o">=</span><span class="s2">"mdi-plus-thick"</span><span class="p">,</span>
|
|
10822
|
+
<a id="__codelineno-16-10" name="__codelineno-16-10" href="#__codelineno-16-10"></a> <span class="n">required_permissions</span><span class="o">=</span><span class="p">[</span><span class="s2">"dcim.change_device"</span><span class="p">],</span>
|
|
10823
|
+
<a id="__codelineno-16-11" name="__codelineno-16-11" href="#__codelineno-16-11"></a> <span class="n">children</span><span class="o">=</span><span class="p">(</span>
|
|
10824
|
+
<a id="__codelineno-16-12" name="__codelineno-16-12" href="#__codelineno-16-12"></a> <span class="n">object_detail</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span>
|
|
10825
|
+
<a id="__codelineno-16-13" name="__codelineno-16-13" href="#__codelineno-16-13"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10826
|
+
<a id="__codelineno-16-14" name="__codelineno-16-14" href="#__codelineno-16-14"></a> <span class="n">link_name</span><span class="o">=</span><span class="s2">"dcim:device_consoleports_add"</span><span class="p">,</span>
|
|
10827
|
+
<a id="__codelineno-16-15" name="__codelineno-16-15" href="#__codelineno-16-15"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Console Ports"</span><span class="p">,</span>
|
|
10828
|
+
<a id="__codelineno-16-16" name="__codelineno-16-16" href="#__codelineno-16-16"></a> <span class="n">icon</span><span class="o">=</span><span class="s2">"mdi-console"</span><span class="p">,</span>
|
|
10829
|
+
<a id="__codelineno-16-17" name="__codelineno-16-17" href="#__codelineno-16-17"></a> <span class="n">required_permissions</span><span class="o">=</span><span class="p">[</span><span class="s2">"dcim.add_consoleport"</span><span class="p">],</span>
|
|
10830
|
+
<a id="__codelineno-16-18" name="__codelineno-16-18" href="#__codelineno-16-18"></a> <span class="p">),</span>
|
|
10831
|
+
<a id="__codelineno-16-19" name="__codelineno-16-19" href="#__codelineno-16-19"></a> <span class="n">object_detail</span><span class="o">.</span><span class="n">Button</span><span class="p">(</span>
|
|
10832
|
+
<a id="__codelineno-16-20" name="__codelineno-16-20" href="#__codelineno-16-20"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
|
|
10833
|
+
<a id="__codelineno-16-21" name="__codelineno-16-21" href="#__codelineno-16-21"></a> <span class="n">link_name</span><span class="o">=</span><span class="s2">"dcim:device_consoleserverports_add"</span><span class="p">,</span>
|
|
10834
|
+
<a id="__codelineno-16-22" name="__codelineno-16-22" href="#__codelineno-16-22"></a> <span class="n">label</span><span class="o">=</span><span class="s2">"Console Server Ports"</span><span class="p">,</span>
|
|
10835
|
+
<a id="__codelineno-16-23" name="__codelineno-16-23" href="#__codelineno-16-23"></a> <span class="n">icon</span><span class="o">=</span><span class="s2">"mdi-console-network-outline"</span><span class="p">,</span>
|
|
10836
|
+
<a id="__codelineno-16-24" name="__codelineno-16-24" href="#__codelineno-16-24"></a> <span class="n">required_permissions</span><span class="o">=</span><span class="p">[</span><span class="s2">"dcim.add_consoleserverport"</span><span class="p">],</span>
|
|
10837
|
+
<a id="__codelineno-16-25" name="__codelineno-16-25" href="#__codelineno-16-25"></a> <span class="p">),</span>
|
|
10838
|
+
<a id="__codelineno-16-26" name="__codelineno-16-26" href="#__codelineno-16-26"></a> <span class="o">...</span>
|
|
10839
|
+
<a id="__codelineno-16-27" name="__codelineno-16-27" href="#__codelineno-16-27"></a> <span class="p">),</span>
|
|
10840
|
+
<a id="__codelineno-16-28" name="__codelineno-16-28" href="#__codelineno-16-28"></a> <span class="p">),</span>
|
|
10841
|
+
<a id="__codelineno-16-29" name="__codelineno-16-29" href="#__codelineno-16-29"></a> <span class="p">],</span>
|
|
10842
|
+
<a id="__codelineno-16-30" name="__codelineno-16-30" href="#__codelineno-16-30"></a> <span class="p">)</span>
|
|
10752
10843
|
</code></pre></div>
|
|
10753
|
-
|
|
10844
|
+
<!-- pyml disable-num-lines 5 no-inline-html -->
|
|
10845
|
+
<div class="grid cards example-images">
|
|
10846
|
+
<ul>
|
|
10847
|
+
<li><a class="glightbox" href="../../media/development/core/ui-component-framework/dropdown-button-example.png" data-type="image" data-width="auto" data-height="auto" data-desc-position="bottom"><img alt="DropdownButton Example" class="on-glb" src="../../media/development/core/ui-component-framework/dropdown-button-example.png" /></a></li>
|
|
10848
|
+
</ul>
|
|
10849
|
+
</div>
|
|
10754
10850
|
<h2 id="complete-example">Complete Example<a class="headerlink" href="#complete-example" title="Permanent link">¶</a></h2>
|
|
10755
|
-
<div class="highlight"><span class="filename">views.py</span><pre><span></span><code><a id="__codelineno-
|
|
10756
|
-
<a id="__codelineno-
|
|
10757
|
-
<a id="__codelineno-
|
|
10758
|
-
<a id="__codelineno-
|
|
10759
|
-
<a id="__codelineno-
|
|
10760
|
-
<a id="__codelineno-
|
|
10761
|
-
<a id="__codelineno-
|
|
10762
|
-
<a id="__codelineno-
|
|
10763
|
-
<a id="__codelineno-
|
|
10764
|
-
<a id="__codelineno-
|
|
10765
|
-
<a id="__codelineno-
|
|
10766
|
-
<a id="__codelineno-
|
|
10767
|
-
<a id="__codelineno-
|
|
10768
|
-
<a id="__codelineno-
|
|
10769
|
-
<a id="__codelineno-
|
|
10770
|
-
<a id="__codelineno-
|
|
10771
|
-
<a id="__codelineno-
|
|
10772
|
-
<a id="__codelineno-
|
|
10773
|
-
<a id="__codelineno-
|
|
10774
|
-
<a id="__codelineno-
|
|
10775
|
-
<a id="__codelineno-
|
|
10776
|
-
<a id="__codelineno-
|
|
10777
|
-
<a id="__codelineno-
|
|
10778
|
-
<a id="__codelineno-
|
|
10779
|
-
<a id="__codelineno-
|
|
10780
|
-
<a id="__codelineno-
|
|
10781
|
-
<a id="__codelineno-
|
|
10782
|
-
<a id="__codelineno-
|
|
10783
|
-
<a id="__codelineno-
|
|
10784
|
-
<a id="__codelineno-
|
|
10785
|
-
<a id="__codelineno-
|
|
10786
|
-
<a id="__codelineno-
|
|
10787
|
-
<a id="__codelineno-
|
|
10788
|
-
<a id="__codelineno-
|
|
10789
|
-
<a id="__codelineno-
|
|
10790
|
-
<a id="__codelineno-
|
|
10791
|
-
<a id="__codelineno-
|
|
10792
|
-
<a id="__codelineno-
|
|
10793
|
-
<a id="__codelineno-
|
|
10794
|
-
<a id="__codelineno-
|
|
10795
|
-
<a id="__codelineno-
|
|
10796
|
-
<a id="__codelineno-
|
|
10797
|
-
<a id="__codelineno-
|
|
10798
|
-
<a id="__codelineno-
|
|
10799
|
-
<a id="__codelineno-
|
|
10800
|
-
<a id="__codelineno-
|
|
10801
|
-
<a id="__codelineno-
|
|
10851
|
+
<div class="highlight"><span class="filename">views.py</span><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="p">(</span>
|
|
10852
|
+
<a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a> <span class="n">SectionChoices</span><span class="p">,</span>
|
|
10853
|
+
<a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a> <span class="n">ObjectFieldsPanel</span><span class="p">,</span>
|
|
10854
|
+
<a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> <span class="n">ObjectDetailContent</span><span class="p">,</span>
|
|
10855
|
+
<a id="__codelineno-17-5" name="__codelineno-17-5" href="#__codelineno-17-5"></a> <span class="n">StatsPanel</span><span class="p">,</span>
|
|
10856
|
+
<a id="__codelineno-17-6" name="__codelineno-17-6" href="#__codelineno-17-6"></a><span class="p">)</span>
|
|
10857
|
+
<a id="__codelineno-17-7" name="__codelineno-17-7" href="#__codelineno-17-7"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">views</span>
|
|
10858
|
+
<a id="__codelineno-17-8" name="__codelineno-17-8" href="#__codelineno-17-8"></a><span class="kn">from</span> <span class="nn">your_app.models</span> <span class="kn">import</span> <span class="n">Location</span><span class="p">,</span> <span class="n">Device</span><span class="p">,</span> <span class="n">Circuit</span>
|
|
10859
|
+
<a id="__codelineno-17-9" name="__codelineno-17-9" href="#__codelineno-17-9"></a>
|
|
10860
|
+
<a id="__codelineno-17-10" name="__codelineno-17-10" href="#__codelineno-17-10"></a><span class="k">class</span> <span class="nc">LocationUIViewSet</span><span class="p">(</span><span class="n">views</span><span class="o">.</span><span class="n">NautobotUIViewSet</span><span class="p">):</span>
|
|
10861
|
+
<a id="__codelineno-17-11" name="__codelineno-17-11" href="#__codelineno-17-11"></a> <span class="n">queryset</span> <span class="o">=</span> <span class="n">Location</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
|
|
10862
|
+
<a id="__codelineno-17-12" name="__codelineno-17-12" href="#__codelineno-17-12"></a>
|
|
10863
|
+
<a id="__codelineno-17-13" name="__codelineno-17-13" href="#__codelineno-17-13"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
|
|
10864
|
+
<a id="__codelineno-17-14" name="__codelineno-17-14" href="#__codelineno-17-14"></a> <span class="n">panels</span><span class="o">=</span><span class="p">[</span>
|
|
10865
|
+
<a id="__codelineno-17-15" name="__codelineno-17-15" href="#__codelineno-17-15"></a> <span class="n">ObjectFieldsPanel</span><span class="p">(</span>
|
|
10866
|
+
<a id="__codelineno-17-16" name="__codelineno-17-16" href="#__codelineno-17-16"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10867
|
+
<a id="__codelineno-17-17" name="__codelineno-17-17" href="#__codelineno-17-17"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">LEFT_HALF</span><span class="p">,</span>
|
|
10868
|
+
<a id="__codelineno-17-18" name="__codelineno-17-18" href="#__codelineno-17-18"></a> <span class="n">fields</span><span class="o">=</span><span class="s2">"__all__"</span><span class="p">,</span>
|
|
10869
|
+
<a id="__codelineno-17-19" name="__codelineno-17-19" href="#__codelineno-17-19"></a> <span class="p">),</span>
|
|
10870
|
+
<a id="__codelineno-17-20" name="__codelineno-17-20" href="#__codelineno-17-20"></a> <span class="n">StatsPanel</span><span class="p">(</span>
|
|
10871
|
+
<a id="__codelineno-17-21" name="__codelineno-17-21" href="#__codelineno-17-21"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
|
|
10872
|
+
<a id="__codelineno-17-22" name="__codelineno-17-22" href="#__codelineno-17-22"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">RIGHT_HALF</span><span class="p">,</span>
|
|
10873
|
+
<a id="__codelineno-17-23" name="__codelineno-17-23" href="#__codelineno-17-23"></a> <span class="n">filter_name</span><span class="o">=</span><span class="s2">"location"</span><span class="p">,</span>
|
|
10874
|
+
<a id="__codelineno-17-24" name="__codelineno-17-24" href="#__codelineno-17-24"></a> <span class="n">related_models</span><span class="o">=</span><span class="p">[</span>
|
|
10875
|
+
<a id="__codelineno-17-25" name="__codelineno-17-25" href="#__codelineno-17-25"></a> <span class="n">Device</span><span class="p">,</span>
|
|
10876
|
+
<a id="__codelineno-17-26" name="__codelineno-17-26" href="#__codelineno-17-26"></a> <span class="p">(</span><span class="n">Circuit</span><span class="p">,</span> <span class="s2">"circuit_terminations__location__in"</span><span class="p">)</span>
|
|
10877
|
+
<a id="__codelineno-17-27" name="__codelineno-17-27" href="#__codelineno-17-27"></a> <span class="p">],</span>
|
|
10878
|
+
<a id="__codelineno-17-28" name="__codelineno-17-28" href="#__codelineno-17-28"></a> <span class="p">),</span>
|
|
10879
|
+
<a id="__codelineno-17-29" name="__codelineno-17-29" href="#__codelineno-17-29"></a> <span class="n">GroupedKeyValueTablePanel</span><span class="p">(</span>
|
|
10880
|
+
<a id="__codelineno-17-30" name="__codelineno-17-30" href="#__codelineno-17-30"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span>
|
|
10881
|
+
<a id="__codelineno-17-31" name="__codelineno-17-31" href="#__codelineno-17-31"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10882
|
+
<a id="__codelineno-17-32" name="__codelineno-17-32" href="#__codelineno-17-32"></a> <span class="n">body_id</span><span class="o">=</span><span class="s2">"custom-fields"</span><span class="p">,</span>
|
|
10883
|
+
<a id="__codelineno-17-33" name="__codelineno-17-33" href="#__codelineno-17-33"></a> <span class="n">data</span><span class="o">=</span><span class="p">{</span>
|
|
10884
|
+
<a id="__codelineno-17-34" name="__codelineno-17-34" href="#__codelineno-17-34"></a> <span class="s2">"Network"</span><span class="p">:</span> <span class="p">{</span>
|
|
10885
|
+
<a id="__codelineno-17-35" name="__codelineno-17-35" href="#__codelineno-17-35"></a> <span class="s2">"VLAN"</span><span class="p">:</span> <span class="s2">"100"</span><span class="p">,</span>
|
|
10886
|
+
<a id="__codelineno-17-36" name="__codelineno-17-36" href="#__codelineno-17-36"></a> <span class="s2">"IP Range"</span><span class="p">:</span> <span class="s2">"192.168.1.0/24"</span>
|
|
10887
|
+
<a id="__codelineno-17-37" name="__codelineno-17-37" href="#__codelineno-17-37"></a> <span class="p">}</span>
|
|
10888
|
+
<a id="__codelineno-17-38" name="__codelineno-17-38" href="#__codelineno-17-38"></a> <span class="p">},</span>
|
|
10889
|
+
<a id="__codelineno-17-39" name="__codelineno-17-39" href="#__codelineno-17-39"></a> <span class="p">),</span>
|
|
10890
|
+
<a id="__codelineno-17-40" name="__codelineno-17-40" href="#__codelineno-17-40"></a> <span class="n">ObjectTextPanel</span><span class="p">(</span>
|
|
10891
|
+
<a id="__codelineno-17-41" name="__codelineno-17-41" href="#__codelineno-17-41"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
|
10892
|
+
<a id="__codelineno-17-42" name="__codelineno-17-42" href="#__codelineno-17-42"></a> <span class="n">section</span><span class="o">=</span><span class="n">SectionChoices</span><span class="o">.</span><span class="n">FULL_WIDTH</span><span class="p">,</span>
|
|
10893
|
+
<a id="__codelineno-17-43" name="__codelineno-17-43" href="#__codelineno-17-43"></a> <span class="n">object_field</span><span class="o">=</span><span class="s2">"description"</span><span class="p">,</span>
|
|
10894
|
+
<a id="__codelineno-17-44" name="__codelineno-17-44" href="#__codelineno-17-44"></a> <span class="n">render_as</span><span class="o">=</span><span class="n">BaseTextPanel</span><span class="o">.</span><span class="n">RenderOptions</span><span class="o">.</span><span class="n">MARKDOWN</span><span class="p">,</span>
|
|
10895
|
+
<a id="__codelineno-17-45" name="__codelineno-17-45" href="#__codelineno-17-45"></a> <span class="p">),</span>
|
|
10896
|
+
<a id="__codelineno-17-46" name="__codelineno-17-46" href="#__codelineno-17-46"></a> <span class="p">]</span>
|
|
10897
|
+
<a id="__codelineno-17-47" name="__codelineno-17-47" href="#__codelineno-17-47"></a> <span class="p">)</span>
|
|
10802
10898
|
</code></pre></div>
|
|
10803
10899
|
<h2 id="layouts-and-sections">Layouts and Sections<a class="headerlink" href="#layouts-and-sections" title="Permanent link">¶</a></h2>
|
|
10804
10900
|
<h3 id="render-options"><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.BaseTextPanel.RenderOptions">Render Options</a><a class="headerlink" href="#render-options" title="Permanent link">¶</a></h3>
|
|
@@ -10831,7 +10927,7 @@
|
|
|
10831
10927
|
<h3 id="common-issues-and-solutions">Common Issues and Solutions<a class="headerlink" href="#common-issues-and-solutions" title="Permanent link">¶</a></h3>
|
|
10832
10928
|
<ol>
|
|
10833
10929
|
<li>
|
|
10834
|
-
<p
|
|
10930
|
+
<p>Panels Not Appearing</p>
|
|
10835
10931
|
<ul>
|
|
10836
10932
|
<li>Verify section choices</li>
|
|
10837
10933
|
<li>Check panel weights</li>
|
|
@@ -10839,7 +10935,7 @@
|
|
|
10839
10935
|
</ul>
|
|
10840
10936
|
</li>
|
|
10841
10937
|
<li>
|
|
10842
|
-
<p
|
|
10938
|
+
<p>Performance Issues</p>
|
|
10843
10939
|
<ul>
|
|
10844
10940
|
<li>Review query complexity in StatsPanel</li>
|
|
10845
10941
|
<li>Optimize field selections</li>
|
|
@@ -10847,7 +10943,7 @@
|
|
|
10847
10943
|
</ul>
|
|
10848
10944
|
</li>
|
|
10849
10945
|
<li>
|
|
10850
|
-
<p
|
|
10946
|
+
<p>Layout Problems</p>
|
|
10851
10947
|
<ul>
|
|
10852
10948
|
<li>Validate section assignments</li>
|
|
10853
10949
|
<li>Review weight ordering</li>
|
|
@@ -10855,7 +10951,7 @@
|
|
|
10855
10951
|
</ul>
|
|
10856
10952
|
</li>
|
|
10857
10953
|
<li>
|
|
10858
|
-
<p
|
|
10954
|
+
<p>Value Rendering</p>
|
|
10859
10955
|
<ul>
|
|
10860
10956
|
<li>Verify transform functions</li>
|
|
10861
10957
|
<li>Check data types</li>
|
|
@@ -11009,7 +11105,7 @@
|
|
|
11009
11105
|
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
11010
11106
|
|
|
11011
11107
|
|
|
11012
|
-
<script src="../../assets/javascripts/bundle.
|
|
11108
|
+
<script src="../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
|
|
11013
11109
|
|
|
11014
11110
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
|
11015
11111
|
|