nautobot 2.4.17__py3-none-any.whl → 2.4.18__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/views.py +2 -0
- nautobot/circuits/templates/circuits/circuittermination_retrieve.html +1 -8
- nautobot/circuits/templates/circuits/inc/circuit_termination_speed_fragment.html +9 -0
- nautobot/circuits/tests/integration/test_circuit.py +2 -2
- nautobot/circuits/views.py +32 -15
- nautobot/core/filters.py +2 -2
- nautobot/core/settings.py +1 -0
- nautobot/core/settings.yaml +9 -0
- nautobot/core/tables.py +21 -23
- nautobot/core/templates/components/breadcrumbs.html +19 -0
- nautobot/core/templates/generic/object_changelog.html +0 -2
- nautobot/core/templates/generic/object_list.html +15 -12
- nautobot/core/templates/generic/object_notes.html +0 -2
- nautobot/core/templates/generic/object_retrieve.html +16 -9
- nautobot/core/templatetags/helpers.py +24 -0
- nautobot/core/templatetags/ui_framework.py +40 -5
- nautobot/core/testing/filters.py +37 -21
- nautobot/core/testing/views.py +25 -0
- nautobot/core/tests/test_tables.py +43 -6
- nautobot/core/tests/test_templatetags_ui_framework.py +146 -0
- nautobot/core/tests/test_titles.py +2 -2
- nautobot/core/tests/test_ui.py +14 -1
- nautobot/core/tests/test_views.py +45 -0
- nautobot/core/ui/breadcrumbs.py +13 -8
- nautobot/core/ui/object_detail.py +43 -5
- nautobot/core/ui/titles.py +9 -5
- nautobot/core/views/__init__.py +24 -3
- nautobot/core/views/generic.py +42 -17
- nautobot/core/views/mixins.py +146 -12
- nautobot/core/views/utils.py +117 -0
- nautobot/dcim/models/devices.py +4 -0
- nautobot/dcim/tables/__init__.py +2 -0
- nautobot/dcim/tables/devices.py +24 -0
- nautobot/dcim/tables/power.py +2 -2
- nautobot/dcim/templates/dcim/device/base.html +1 -11
- nautobot/dcim/templates/dcim/device_component.html +0 -19
- nautobot/dcim/templates/dcim/modulebay_retrieve.html +0 -16
- nautobot/dcim/templates/dcim/virtualchassis_retrieve.html +1 -50
- nautobot/dcim/tests/test_views.py +41 -0
- nautobot/dcim/views.py +160 -39
- nautobot/extras/filters/mixins.py +1 -1
- nautobot/extras/forms/forms.py +15 -0
- nautobot/extras/models/groups.py +10 -1
- nautobot/extras/models/jobs.py +2 -2
- nautobot/extras/plugins/views.py +18 -5
- nautobot/extras/tables.py +4 -2
- nautobot/extras/templates/extras/customfield_retrieve.html +1 -128
- nautobot/extras/templates/extras/dynamicgroup.html +2 -99
- nautobot/extras/templates/extras/dynamicgroup_edit.html +2 -199
- nautobot/extras/templates/extras/dynamicgroup_retrieve.html +99 -0
- nautobot/extras/templates/extras/dynamicgroup_update.html +199 -0
- nautobot/extras/templates/extras/gitrepository.html +2 -82
- nautobot/extras/templates/extras/gitrepository_object_edit.html +2 -13
- nautobot/extras/templates/extras/gitrepository_retrieve.html +82 -0
- nautobot/extras/templates/extras/gitrepository_update.html +13 -0
- nautobot/extras/templates/extras/note_retrieve.html +0 -52
- nautobot/extras/templates/extras/plugin_detail.html +3 -7
- nautobot/extras/templates/extras/plugins_list.html +0 -2
- nautobot/extras/tests/test_dynamicgroups.py +73 -18
- nautobot/extras/tests/test_views.py +5 -0
- nautobot/extras/urls.py +2 -94
- nautobot/extras/views.py +424 -430
- nautobot/ipam/querysets.py +3 -3
- nautobot/ipam/signals.py +6 -1
- nautobot/ipam/templates/ipam/prefix.html +0 -8
- nautobot/ipam/tests/test_api.py +5 -0
- nautobot/ipam/tests/test_models.py +387 -0
- nautobot/ipam/tests/test_querysets.py +46 -0
- nautobot/ipam/utils/migrations.py +1 -1
- nautobot/ipam/views.py +17 -8
- nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +72 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +45 -9
- nautobot/project-static/docs/code-reference/nautobot/apps/views.html +393 -15
- nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +1 -1
- nautobot/project-static/docs/development/core/getting-started.html +0 -15
- nautobot/project-static/docs/development/core/ui-component-framework.html +6 -11
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/release-notes/version-2.4.html +222 -0
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +300 -300
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/configuration/settings.html +27 -0
- nautobot/project-static/img/nautobot_icon.svg +32 -34
- nautobot/project-static/js/table_sorting_indicator.js +0 -2
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/METADATA +4 -4
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/RECORD +90 -85
- nautobot/core/templates/inc/breadcrumbs.html +0 -14
- nautobot/project-static/docs/requirements.txt +0 -14
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/NOTICE +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/WHEEL +0 -0
- {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/entry_points.txt +0 -0
|
@@ -9183,6 +9183,39 @@
|
|
|
9183
9183
|
</ul>
|
|
9184
9184
|
</nav>
|
|
9185
9185
|
|
|
9186
|
+
</li>
|
|
9187
|
+
|
|
9188
|
+
<li class="md-nav__item">
|
|
9189
|
+
<a href="#nautobot.apps.views.UIComponentsMixin" class="md-nav__link">
|
|
9190
|
+
<span class="md-ellipsis">
|
|
9191
|
+
UIComponentsMixin
|
|
9192
|
+
</span>
|
|
9193
|
+
</a>
|
|
9194
|
+
|
|
9195
|
+
<nav class="md-nav" aria-label="UIComponentsMixin">
|
|
9196
|
+
<ul class="md-nav__list">
|
|
9197
|
+
|
|
9198
|
+
<li class="md-nav__item">
|
|
9199
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_breadcrumbs" class="md-nav__link">
|
|
9200
|
+
<span class="md-ellipsis">
|
|
9201
|
+
get_breadcrumbs
|
|
9202
|
+
</span>
|
|
9203
|
+
</a>
|
|
9204
|
+
|
|
9205
|
+
</li>
|
|
9206
|
+
|
|
9207
|
+
<li class="md-nav__item">
|
|
9208
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_view_titles" class="md-nav__link">
|
|
9209
|
+
<span class="md-ellipsis">
|
|
9210
|
+
get_view_titles
|
|
9211
|
+
</span>
|
|
9212
|
+
</a>
|
|
9213
|
+
|
|
9214
|
+
</li>
|
|
9215
|
+
|
|
9216
|
+
</ul>
|
|
9217
|
+
</nav>
|
|
9218
|
+
|
|
9186
9219
|
</li>
|
|
9187
9220
|
|
|
9188
9221
|
<li class="md-nav__item">
|
|
@@ -11890,6 +11923,39 @@
|
|
|
11890
11923
|
</ul>
|
|
11891
11924
|
</nav>
|
|
11892
11925
|
|
|
11926
|
+
</li>
|
|
11927
|
+
|
|
11928
|
+
<li class="md-nav__item">
|
|
11929
|
+
<a href="#nautobot.apps.views.UIComponentsMixin" class="md-nav__link">
|
|
11930
|
+
<span class="md-ellipsis">
|
|
11931
|
+
UIComponentsMixin
|
|
11932
|
+
</span>
|
|
11933
|
+
</a>
|
|
11934
|
+
|
|
11935
|
+
<nav class="md-nav" aria-label="UIComponentsMixin">
|
|
11936
|
+
<ul class="md-nav__list">
|
|
11937
|
+
|
|
11938
|
+
<li class="md-nav__item">
|
|
11939
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_breadcrumbs" class="md-nav__link">
|
|
11940
|
+
<span class="md-ellipsis">
|
|
11941
|
+
get_breadcrumbs
|
|
11942
|
+
</span>
|
|
11943
|
+
</a>
|
|
11944
|
+
|
|
11945
|
+
</li>
|
|
11946
|
+
|
|
11947
|
+
<li class="md-nav__item">
|
|
11948
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_view_titles" class="md-nav__link">
|
|
11949
|
+
<span class="md-ellipsis">
|
|
11950
|
+
get_view_titles
|
|
11951
|
+
</span>
|
|
11952
|
+
</a>
|
|
11953
|
+
|
|
11954
|
+
</li>
|
|
11955
|
+
|
|
11956
|
+
</ul>
|
|
11957
|
+
</nav>
|
|
11958
|
+
|
|
11893
11959
|
</li>
|
|
11894
11960
|
|
|
11895
11961
|
<li class="md-nav__item">
|
|
@@ -12072,7 +12138,7 @@
|
|
|
12072
12138
|
|
|
12073
12139
|
<div class="doc doc-contents ">
|
|
12074
12140
|
<p class="doc doc-class-bases">
|
|
12075
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12141
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12076
12142
|
|
|
12077
12143
|
|
|
12078
12144
|
<p>Add one or more components (e.g. interfaces, console ports, etc.) to a set of Devices or VirtualMachines.</p>
|
|
@@ -12117,7 +12183,7 @@
|
|
|
12117
12183
|
|
|
12118
12184
|
<div class="doc doc-contents ">
|
|
12119
12185
|
<p class="doc doc-class-bases">
|
|
12120
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12186
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12121
12187
|
|
|
12122
12188
|
|
|
12123
12189
|
<p>Create new objects in bulk.</p>
|
|
@@ -12167,7 +12233,7 @@ template_name: The name of the template</p>
|
|
|
12167
12233
|
|
|
12168
12234
|
<div class="doc doc-contents ">
|
|
12169
12235
|
<p class="doc doc-class-bases">
|
|
12170
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12236
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12171
12237
|
|
|
12172
12238
|
|
|
12173
12239
|
<p>Delete objects in bulk.</p>
|
|
@@ -12235,7 +12301,7 @@ template_name: The name of the template</p>
|
|
|
12235
12301
|
|
|
12236
12302
|
<div class="doc doc-contents ">
|
|
12237
12303
|
<p class="doc doc-class-bases">
|
|
12238
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12304
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12239
12305
|
|
|
12240
12306
|
|
|
12241
12307
|
<p>Edit objects in bulk.</p>
|
|
@@ -12303,7 +12369,7 @@ template_name: The name of the template</p>
|
|
|
12303
12369
|
|
|
12304
12370
|
<div class="doc doc-contents ">
|
|
12305
12371
|
<p class="doc doc-class-bases">
|
|
12306
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12372
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12307
12373
|
|
|
12308
12374
|
|
|
12309
12375
|
<p>Import objects in bulk (CSV format).</p>
|
|
@@ -12352,7 +12418,7 @@ template_name: The name of the template</p>
|
|
|
12352
12418
|
|
|
12353
12419
|
<div class="doc doc-contents ">
|
|
12354
12420
|
<p class="doc doc-class-bases">
|
|
12355
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12421
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12356
12422
|
|
|
12357
12423
|
|
|
12358
12424
|
<p>An extendable view for renaming objects in bulk.</p>
|
|
@@ -12470,7 +12536,7 @@ template_name: The name of the template</p>
|
|
|
12470
12536
|
|
|
12471
12537
|
<div class="doc doc-contents ">
|
|
12472
12538
|
<p class="doc doc-class-bases">
|
|
12473
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12539
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12474
12540
|
|
|
12475
12541
|
|
|
12476
12542
|
<p>Add one or more components (e.g. interfaces, console ports, etc.) to a Device or VirtualMachine.</p>
|
|
@@ -12585,7 +12651,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
|
|
|
12585
12651
|
|
|
12586
12652
|
<div class="doc doc-contents ">
|
|
12587
12653
|
<p class="doc doc-class-bases">
|
|
12588
|
-
Bases: <code><span title="django.contrib.auth.mixins.LoginRequiredMixin">LoginRequiredMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12654
|
+
Bases: <code><span title="django.contrib.auth.mixins.LoginRequiredMixin">LoginRequiredMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
12589
12655
|
|
|
12590
12656
|
|
|
12591
12657
|
<p>Base class for non-object-related views.</p>
|
|
@@ -12598,6 +12664,22 @@ and fits within Nautobot's custom permission enforcement system.</p>
|
|
|
12598
12664
|
|
|
12599
12665
|
|
|
12600
12666
|
|
|
12667
|
+
|
|
12668
|
+
|
|
12669
|
+
<div class="doc doc-children">
|
|
12670
|
+
|
|
12671
|
+
|
|
12672
|
+
|
|
12673
|
+
|
|
12674
|
+
|
|
12675
|
+
|
|
12676
|
+
|
|
12677
|
+
|
|
12678
|
+
|
|
12679
|
+
|
|
12680
|
+
|
|
12681
|
+
</div>
|
|
12682
|
+
|
|
12601
12683
|
</div>
|
|
12602
12684
|
|
|
12603
12685
|
</div>
|
|
@@ -12862,10 +12944,10 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
|
|
|
12862
12944
|
|
|
12863
12945
|
<div class="doc doc-contents ">
|
|
12864
12946
|
<p class="doc doc-class-bases">
|
|
12865
|
-
Bases: <code><span title="rest_framework.viewsets.GenericViewSet">GenericViewSet</span></code>, <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><span title="django.views.generic.edit.FormView">FormView</span></code></p>
|
|
12947
|
+
Bases: <code><span title="rest_framework.viewsets.GenericViewSet">GenericViewSet</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><span title="django.views.generic.edit.FormView">FormView</span></code></p>
|
|
12866
12948
|
|
|
12867
12949
|
|
|
12868
|
-
<p>NautobotViewSetMixin is an aggregation of various mixins from DRF, Django and Nautobot to
|
|
12950
|
+
<p>NautobotViewSetMixin is an aggregation of various mixins from DRF, Django and Nautobot to achieve the desired behavior pattern for NautobotUIViewSet</p>
|
|
12869
12951
|
|
|
12870
12952
|
|
|
12871
12953
|
|
|
@@ -13459,7 +13541,7 @@ will be used, as per <code>get_base_template()</code>.</p>
|
|
|
13459
13541
|
|
|
13460
13542
|
<div class="doc doc-contents ">
|
|
13461
13543
|
<p class="doc doc-class-bases">
|
|
13462
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
13544
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
13463
13545
|
|
|
13464
13546
|
|
|
13465
13547
|
<p>Delete a single object.</p>
|
|
@@ -13723,7 +13805,7 @@ will be used, as per <code>get_base_template()</code>.</p>
|
|
|
13723
13805
|
|
|
13724
13806
|
<div class="doc doc-contents ">
|
|
13725
13807
|
<p class="doc doc-class-bases">
|
|
13726
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
13808
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
13727
13809
|
|
|
13728
13810
|
|
|
13729
13811
|
<p>Create or edit a single object.</p>
|
|
@@ -14052,7 +14134,7 @@ Override to add more variables to Response.</p>
|
|
|
14052
14134
|
|
|
14053
14135
|
<div class="doc doc-contents ">
|
|
14054
14136
|
<p class="doc doc-class-bases">
|
|
14055
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14137
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.GetReturnURLMixin (nautobot.core.views.mixins.GetReturnURLMixin)" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14056
14138
|
|
|
14057
14139
|
|
|
14058
14140
|
<p>Import a single object (YAML or JSON format).</p>
|
|
@@ -14101,7 +14183,7 @@ template_name: The name of the template</p>
|
|
|
14101
14183
|
|
|
14102
14184
|
<div class="doc doc-contents ">
|
|
14103
14185
|
<p class="doc doc-class-bases">
|
|
14104
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14186
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14105
14187
|
|
|
14106
14188
|
|
|
14107
14189
|
<p>List a series of objects.</p>
|
|
@@ -14481,7 +14563,7 @@ to return only those objects on which the user is permitted to perform the speci
|
|
|
14481
14563
|
|
|
14482
14564
|
<div class="doc doc-contents ">
|
|
14483
14565
|
<p class="doc doc-class-bases">
|
|
14484
|
-
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14566
|
+
Bases: <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.ObjectPermissionRequiredMixin (nautobot.core.views.mixins.ObjectPermissionRequiredMixin)" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.apps.views.UIComponentsMixin (nautobot.core.views.mixins.UIComponentsMixin)" href="#nautobot.apps.views.UIComponentsMixin">UIComponentsMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
|
|
14485
14567
|
|
|
14486
14568
|
|
|
14487
14569
|
<p>Retrieve a single object for display.</p>
|
|
@@ -14633,6 +14715,302 @@ template_name: Name of the template to use</p>
|
|
|
14633
14715
|
|
|
14634
14716
|
|
|
14635
14717
|
|
|
14718
|
+
</div>
|
|
14719
|
+
|
|
14720
|
+
</div>
|
|
14721
|
+
|
|
14722
|
+
</div>
|
|
14723
|
+
|
|
14724
|
+
<div class="doc doc-object doc-class">
|
|
14725
|
+
|
|
14726
|
+
|
|
14727
|
+
|
|
14728
|
+
<h2 id="nautobot.apps.views.UIComponentsMixin" class="doc doc-heading">
|
|
14729
|
+
<code>nautobot.apps.views.UIComponentsMixin</code>
|
|
14730
|
+
|
|
14731
|
+
|
|
14732
|
+
<a href="#nautobot.apps.views.UIComponentsMixin" class="headerlink" title="Permanent link">¶</a></h2>
|
|
14733
|
+
|
|
14734
|
+
|
|
14735
|
+
<div class="doc doc-contents ">
|
|
14736
|
+
|
|
14737
|
+
|
|
14738
|
+
<p>Mixin that resolves UI components (e.g., breadcrumbs, titles) either from:
|
|
14739
|
+
1) the current view class (preferred),
|
|
14740
|
+
2) a related view class for a given model (via <code>lookup.get_view_for_model()</code>),
|
|
14741
|
+
3) or a default component class.</p>
|
|
14742
|
+
<p>The public helpers (<code>get_view_titles()</code>, <code>get_breadcrumbs()</code>) return concrete
|
|
14743
|
+
component <em>instances</em> ready to use in renderers/templates.</p>
|
|
14744
|
+
<p>It should be used in views that use the <code>nautobot.apps.views.GenericView</code> and standard Nautobot templates.</p>
|
|
14745
|
+
<p>Example usage:
|
|
14746
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>def get(self, request, *args, **kwargs):
|
|
14747
|
+
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> context = {
|
|
14748
|
+
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> ...
|
|
14749
|
+
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> "breadcrumbs": self.get_breadcrumbs(model),
|
|
14750
|
+
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> }
|
|
14751
|
+
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> context["title"] = self.get_view_titles(model).render(context)
|
|
14752
|
+
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
|
|
14753
|
+
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> return render(
|
|
14754
|
+
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> request,
|
|
14755
|
+
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> "extras/plugins_list.html",
|
|
14756
|
+
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a> context,
|
|
14757
|
+
<a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> )
|
|
14758
|
+
</code></pre></div></p>
|
|
14759
|
+
|
|
14760
|
+
|
|
14761
|
+
<p><span class="doc-section-title">Attributes:</span></p>
|
|
14762
|
+
<table>
|
|
14763
|
+
<thead>
|
|
14764
|
+
<tr>
|
|
14765
|
+
<th>Name</th>
|
|
14766
|
+
<th>Type</th>
|
|
14767
|
+
<th>Description</th>
|
|
14768
|
+
</tr>
|
|
14769
|
+
</thead>
|
|
14770
|
+
<tbody>
|
|
14771
|
+
<tr class="doc-section-item">
|
|
14772
|
+
<td><code><span title="nautobot.apps.views.UIComponentsMixin.breadcrumbs">breadcrumbs</span></code></td>
|
|
14773
|
+
<td>
|
|
14774
|
+
<code><span title="typing.ClassVar">ClassVar</span>[<span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="nautobot.apps.ui.Breadcrumbs (nautobot.core.ui.breadcrumbs.Breadcrumbs)" href="ui.html#nautobot.apps.ui.Breadcrumbs">Breadcrumbs</a>]]</code>
|
|
14775
|
+
</td>
|
|
14776
|
+
<td>
|
|
14777
|
+
<div class="doc-md-description">
|
|
14778
|
+
<p>Optional component declared on the view class. May be:
|
|
14779
|
+
- <code>None</code> (no local definition, fall back),
|
|
14780
|
+
- a component <em>class</em> (will be instantiated),
|
|
14781
|
+
- or a pre-instantiated component (returned as-is).</p>
|
|
14782
|
+
</div>
|
|
14783
|
+
</td>
|
|
14784
|
+
</tr>
|
|
14785
|
+
<tr class="doc-section-item">
|
|
14786
|
+
<td><code><span title="nautobot.apps.views.UIComponentsMixin.view_titles">view_titles</span></code></td>
|
|
14787
|
+
<td>
|
|
14788
|
+
<code><span title="typing.ClassVar">ClassVar</span>[<span title="typing.Optional">Optional</span>[<a class="autorefs autorefs-internal" title="nautobot.apps.ui.Titles (nautobot.core.ui.titles.Titles)" href="ui.html#nautobot.apps.ui.Titles">Titles</a>]]</code>
|
|
14789
|
+
</td>
|
|
14790
|
+
<td>
|
|
14791
|
+
<div class="doc-md-description">
|
|
14792
|
+
<p>Same contract as <code>breadcrumbs</code>,
|
|
14793
|
+
but for titles.</p>
|
|
14794
|
+
</div>
|
|
14795
|
+
</td>
|
|
14796
|
+
</tr>
|
|
14797
|
+
</tbody>
|
|
14798
|
+
</table>
|
|
14799
|
+
|
|
14800
|
+
|
|
14801
|
+
|
|
14802
|
+
|
|
14803
|
+
|
|
14804
|
+
|
|
14805
|
+
|
|
14806
|
+
|
|
14807
|
+
|
|
14808
|
+
|
|
14809
|
+
<div class="doc doc-children">
|
|
14810
|
+
|
|
14811
|
+
|
|
14812
|
+
|
|
14813
|
+
|
|
14814
|
+
|
|
14815
|
+
|
|
14816
|
+
|
|
14817
|
+
|
|
14818
|
+
|
|
14819
|
+
<div class="doc doc-object doc-function">
|
|
14820
|
+
|
|
14821
|
+
|
|
14822
|
+
<h3 id="nautobot.apps.views.UIComponentsMixin.get_breadcrumbs" class="doc doc-heading">
|
|
14823
|
+
<code class="highlight language-python"><span class="n">get_breadcrumbs</span><span class="p">(</span><span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">view_type</span><span class="o">=</span><span class="s1">'List'</span><span class="p">)</span></code>
|
|
14824
|
+
|
|
14825
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_breadcrumbs" class="headerlink" title="Permanent link">¶</a></h3>
|
|
14826
|
+
|
|
14827
|
+
|
|
14828
|
+
<div class="doc doc-contents ">
|
|
14829
|
+
|
|
14830
|
+
<p>Resolve and return the <code>Breadcrumbs</code> component instance.</p>
|
|
14831
|
+
<p>Resolution order mirrors <code>get_view_titles()</code>:
|
|
14832
|
+
1) Use <code>self.breadcrumbs</code> if set locally.
|
|
14833
|
+
2) Else, if <code>model</code> is provided, copy the <code>breadcrumbs</code> from the view
|
|
14834
|
+
class associated with that model via <code>lookup.get_view_for_model(model, action)</code>.
|
|
14835
|
+
3) Else return a new default <code>Breadcrumbs()</code>.</p>
|
|
14836
|
+
|
|
14837
|
+
|
|
14838
|
+
<p><span class="doc-section-title">Parameters:</span></p>
|
|
14839
|
+
<table>
|
|
14840
|
+
<thead>
|
|
14841
|
+
<tr>
|
|
14842
|
+
<th>Name</th>
|
|
14843
|
+
<th>Type</th>
|
|
14844
|
+
<th>Description</th>
|
|
14845
|
+
<th>Default</th>
|
|
14846
|
+
</tr>
|
|
14847
|
+
</thead>
|
|
14848
|
+
<tbody>
|
|
14849
|
+
<tr class="doc-section-item">
|
|
14850
|
+
<td>
|
|
14851
|
+
<code>model</code>
|
|
14852
|
+
</td>
|
|
14853
|
+
<td>
|
|
14854
|
+
<code><span title="typing.Union">Union</span>[None, <span title="str">str</span>, <span title="typing.Type">Type</span>[<span title="django.db.models.Model">Model</span>], <span title="django.db.models.Model">Model</span>]</code>
|
|
14855
|
+
</td>
|
|
14856
|
+
<td>
|
|
14857
|
+
<div class="doc-md-description">
|
|
14858
|
+
<p>A Django model <strong>class</strong>, <strong>instance</strong>, dotted name string, or <code>None</code>.
|
|
14859
|
+
Passed to <code>lookup.get_view_for_model()</code> to find the related view class.
|
|
14860
|
+
If <code>None</code>, only local/default resolution is used.</p>
|
|
14861
|
+
</div>
|
|
14862
|
+
</td>
|
|
14863
|
+
<td>
|
|
14864
|
+
<code>None</code>
|
|
14865
|
+
</td>
|
|
14866
|
+
</tr>
|
|
14867
|
+
<tr class="doc-section-item">
|
|
14868
|
+
<td>
|
|
14869
|
+
<code>view_type</code>
|
|
14870
|
+
</td>
|
|
14871
|
+
<td>
|
|
14872
|
+
<code><span title="str">str</span></code>
|
|
14873
|
+
</td>
|
|
14874
|
+
<td>
|
|
14875
|
+
<div class="doc-md-description">
|
|
14876
|
+
<p>Logical view type used by <code>lookup.get_view_for_model()</code> (e.g., <code>"List"</code> or empty to construct <code>"DeviceView"</code> string).</p>
|
|
14877
|
+
</div>
|
|
14878
|
+
</td>
|
|
14879
|
+
<td>
|
|
14880
|
+
<code>'List'</code>
|
|
14881
|
+
</td>
|
|
14882
|
+
</tr>
|
|
14883
|
+
</tbody>
|
|
14884
|
+
</table>
|
|
14885
|
+
|
|
14886
|
+
|
|
14887
|
+
<p><span class="doc-section-title">Returns:</span></p>
|
|
14888
|
+
<table>
|
|
14889
|
+
<thead>
|
|
14890
|
+
<tr>
|
|
14891
|
+
<th>Name</th> <th>Type</th>
|
|
14892
|
+
<th>Description</th>
|
|
14893
|
+
</tr>
|
|
14894
|
+
</thead>
|
|
14895
|
+
<tbody>
|
|
14896
|
+
<tr class="doc-section-item">
|
|
14897
|
+
<td><code>Breadcrumbs</code></td> <td>
|
|
14898
|
+
<code><a class="autorefs autorefs-internal" title="nautobot.apps.ui.Breadcrumbs (nautobot.core.ui.breadcrumbs.Breadcrumbs)" href="ui.html#nautobot.apps.ui.Breadcrumbs">Breadcrumbs</a></code>
|
|
14899
|
+
</td>
|
|
14900
|
+
<td>
|
|
14901
|
+
<div class="doc-md-description">
|
|
14902
|
+
<p>A concrete <code>Breadcrumbs</code> component instance.</p>
|
|
14903
|
+
</div>
|
|
14904
|
+
</td>
|
|
14905
|
+
</tr>
|
|
14906
|
+
</tbody>
|
|
14907
|
+
</table>
|
|
14908
|
+
|
|
14909
|
+
|
|
14910
|
+
</div>
|
|
14911
|
+
|
|
14912
|
+
</div>
|
|
14913
|
+
|
|
14914
|
+
<div class="doc doc-object doc-function">
|
|
14915
|
+
|
|
14916
|
+
|
|
14917
|
+
<h3 id="nautobot.apps.views.UIComponentsMixin.get_view_titles" class="doc doc-heading">
|
|
14918
|
+
<code class="highlight language-python"><span class="n">get_view_titles</span><span class="p">(</span><span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">view_type</span><span class="o">=</span><span class="s1">'List'</span><span class="p">)</span></code>
|
|
14919
|
+
|
|
14920
|
+
<a href="#nautobot.apps.views.UIComponentsMixin.get_view_titles" class="headerlink" title="Permanent link">¶</a></h3>
|
|
14921
|
+
|
|
14922
|
+
|
|
14923
|
+
<div class="doc doc-contents ">
|
|
14924
|
+
|
|
14925
|
+
<p>Resolve and return the <code>Titles</code> component instance.</p>
|
|
14926
|
+
|
|
14927
|
+
|
|
14928
|
+
<details class="resolution-order" open>
|
|
14929
|
+
<summary>Resolution order</summary>
|
|
14930
|
+
<p>1) If <code>self.view_titles</code> is set on the current view, use it.
|
|
14931
|
+
2) Else, if <code>model</code> is provided, copy the <code>view_titles</code> from the view
|
|
14932
|
+
class associated with that model via <code>lookup.get_view_for_model(model, action)</code>.
|
|
14933
|
+
3) Else, instantiate and return the default <code>Titles()</code>.</p>
|
|
14934
|
+
</details>
|
|
14935
|
+
|
|
14936
|
+
<p><span class="doc-section-title">Parameters:</span></p>
|
|
14937
|
+
<table>
|
|
14938
|
+
<thead>
|
|
14939
|
+
<tr>
|
|
14940
|
+
<th>Name</th>
|
|
14941
|
+
<th>Type</th>
|
|
14942
|
+
<th>Description</th>
|
|
14943
|
+
<th>Default</th>
|
|
14944
|
+
</tr>
|
|
14945
|
+
</thead>
|
|
14946
|
+
<tbody>
|
|
14947
|
+
<tr class="doc-section-item">
|
|
14948
|
+
<td>
|
|
14949
|
+
<code>model</code>
|
|
14950
|
+
</td>
|
|
14951
|
+
<td>
|
|
14952
|
+
<code><span title="typing.Union">Union</span>[None, <span title="str">str</span>, <span title="typing.Type">Type</span>[<span title="django.db.models.Model">Model</span>], <span title="django.db.models.Model">Model</span>]</code>
|
|
14953
|
+
</td>
|
|
14954
|
+
<td>
|
|
14955
|
+
<div class="doc-md-description">
|
|
14956
|
+
<p>A Django model <strong>class</strong>, <strong>instance</strong>, dotted name string, or <code>None</code>.
|
|
14957
|
+
Passed to <code>lookup.get_view_for_model()</code> to find the related view class.
|
|
14958
|
+
If <code>None</code>, only local/default resolution is used.</p>
|
|
14959
|
+
</div>
|
|
14960
|
+
</td>
|
|
14961
|
+
<td>
|
|
14962
|
+
<code>None</code>
|
|
14963
|
+
</td>
|
|
14964
|
+
</tr>
|
|
14965
|
+
<tr class="doc-section-item">
|
|
14966
|
+
<td>
|
|
14967
|
+
<code>view_type</code>
|
|
14968
|
+
</td>
|
|
14969
|
+
<td>
|
|
14970
|
+
<code><span title="str">str</span></code>
|
|
14971
|
+
</td>
|
|
14972
|
+
<td>
|
|
14973
|
+
<div class="doc-md-description">
|
|
14974
|
+
<p>Logical view type used by <code>lookup.get_view_for_model()</code> (e.g., <code>"List"</code> or empty to construct <code>"DeviceView"</code> string).</p>
|
|
14975
|
+
</div>
|
|
14976
|
+
</td>
|
|
14977
|
+
<td>
|
|
14978
|
+
<code>'List'</code>
|
|
14979
|
+
</td>
|
|
14980
|
+
</tr>
|
|
14981
|
+
</tbody>
|
|
14982
|
+
</table>
|
|
14983
|
+
|
|
14984
|
+
|
|
14985
|
+
<p><span class="doc-section-title">Returns:</span></p>
|
|
14986
|
+
<table>
|
|
14987
|
+
<thead>
|
|
14988
|
+
<tr>
|
|
14989
|
+
<th>Name</th> <th>Type</th>
|
|
14990
|
+
<th>Description</th>
|
|
14991
|
+
</tr>
|
|
14992
|
+
</thead>
|
|
14993
|
+
<tbody>
|
|
14994
|
+
<tr class="doc-section-item">
|
|
14995
|
+
<td><code>Titles</code></td> <td>
|
|
14996
|
+
<code><a class="autorefs autorefs-internal" title="nautobot.apps.ui.Titles (nautobot.core.ui.titles.Titles)" href="ui.html#nautobot.apps.ui.Titles">Titles</a></code>
|
|
14997
|
+
</td>
|
|
14998
|
+
<td>
|
|
14999
|
+
<div class="doc-md-description">
|
|
15000
|
+
<p>A concrete <code>Titles</code> component instance ready to use.</p>
|
|
15001
|
+
</div>
|
|
15002
|
+
</td>
|
|
15003
|
+
</tr>
|
|
15004
|
+
</tbody>
|
|
15005
|
+
</table>
|
|
15006
|
+
|
|
15007
|
+
|
|
15008
|
+
</div>
|
|
15009
|
+
|
|
15010
|
+
</div>
|
|
15011
|
+
|
|
15012
|
+
|
|
15013
|
+
|
|
14636
15014
|
</div>
|
|
14637
15015
|
|
|
14638
15016
|
</div>
|
|
@@ -10316,7 +10316,7 @@
|
|
|
10316
10316
|
<tr>
|
|
10317
10317
|
<td><code>searchable_models</code></td>
|
|
10318
10318
|
<td><code>[]</code></td>
|
|
10319
|
-
<td>A list of model names to include in the global Nautobot search</td>
|
|
10319
|
+
<td>A list of model names to include in the <a href="models/global-search.html">global Nautobot search</a></td>
|
|
10320
10320
|
</tr>
|
|
10321
10321
|
<tr>
|
|
10322
10322
|
<td><code>constance_config</code></td>
|
|
@@ -11667,21 +11667,6 @@
|
|
|
11667
11667
|
<p>Integration tests are automated tests written and run to ensure that the Nautobot application behaves as expected when being used as it would be in practice. By contrast to unit tests, where individual units of code are being tested, integration tests rely upon the server code actually running, and web UI clients or API clients to make real connections to the service to exercise actual workflows, such as navigating to the login page, filling out the username/passwords fields, and clicking the "Log In" button.</p>
|
|
11668
11668
|
<p>Running integrations tests requires the use of Docker at this time. They can be directly invoked using <code>nautobot-server test</code> just as unit tests can, however, a headless Firefox browser provided by Selenium is required. Because Selenium installation and setup is complicated, we have included a configuration for this to work out of the box using Docker.</p>
|
|
11669
11669
|
<p>The Selenium container is running a standalone, headless Firefox "web driver" browser that can be remotely controlled by Nautobot for use in integration testing.</p>
|
|
11670
|
-
<p>Before running integration tests, the <code>selenium</code> container must be running. If you are using the Docker Compose workflow, it is automatically started for you. For the Virtual Environment workflow, you must start it manually.</p>
|
|
11671
|
-
<table>
|
|
11672
|
-
<thead>
|
|
11673
|
-
<tr>
|
|
11674
|
-
<th>Docker Compose Workflow</th>
|
|
11675
|
-
<th>Virtual Environment Workflow</th>
|
|
11676
|
-
</tr>
|
|
11677
|
-
</thead>
|
|
11678
|
-
<tbody>
|
|
11679
|
-
<tr>
|
|
11680
|
-
<td>(automatic)</td>
|
|
11681
|
-
<td><code>invoke start --service selenium</code></td>
|
|
11682
|
-
</tr>
|
|
11683
|
-
</tbody>
|
|
11684
|
-
</table>
|
|
11685
11670
|
<p>Integration tests are run by passing <code>--tag integration</code> to the <code>invoke tests</code> command. All other optional parameters to this command can be used the same as with unit tests.</p>
|
|
11686
11671
|
<table>
|
|
11687
11672
|
<thead>
|