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
|
@@ -979,6 +979,7 @@ class DynamicGroupTestCase(
|
|
|
979
979
|
ViewTestCases.GetObjectChangelogViewTestCase,
|
|
980
980
|
ViewTestCases.ListObjectsViewTestCase,
|
|
981
981
|
ViewTestCases.BulkDeleteObjectsViewTestCase,
|
|
982
|
+
ViewTestCases.BulkEditObjectsViewTestCase,
|
|
982
983
|
# NOTE: This isn't using `ViewTestCases.PrimaryObjectViewTestCase` because bulk-import/edit
|
|
983
984
|
# views for DynamicGroup do not make sense at this time, primarily because `content_type` is
|
|
984
985
|
# immutable after create.
|
|
@@ -1009,6 +1010,10 @@ class DynamicGroupTestCase(
|
|
|
1009
1010
|
"dynamic_group_memberships-MIN_NUM_FORMS": "0",
|
|
1010
1011
|
"dynamic_group_memberships-MAX_NUM_FORMS": "1000",
|
|
1011
1012
|
}
|
|
1013
|
+
cls.bulk_edit_data = {
|
|
1014
|
+
"description": "This is a very detailed new description",
|
|
1015
|
+
"tenant": Tenant.objects.last().pk,
|
|
1016
|
+
}
|
|
1012
1017
|
|
|
1013
1018
|
def _get_queryset(self):
|
|
1014
1019
|
return super()._get_queryset().filter(group_type=DynamicGroupTypeChoices.TYPE_DYNAMIC_FILTER) # TODO
|
nautobot/extras/urls.py
CHANGED
|
@@ -3,8 +3,6 @@ from django.urls import path
|
|
|
3
3
|
from nautobot.core.views.routers import NautobotUIViewSetRouter
|
|
4
4
|
from nautobot.extras import views
|
|
5
5
|
from nautobot.extras.models import (
|
|
6
|
-
DynamicGroup,
|
|
7
|
-
GitRepository,
|
|
8
6
|
Job,
|
|
9
7
|
Relationship,
|
|
10
8
|
)
|
|
@@ -19,8 +17,10 @@ router.register("contacts", views.ContactUIViewSet)
|
|
|
19
17
|
router.register("contact-associations", views.ContactAssociationUIViewSet)
|
|
20
18
|
router.register("custom-fields", views.CustomFieldUIViewSet)
|
|
21
19
|
router.register("custom-links", views.CustomLinkUIViewSet)
|
|
20
|
+
router.register("dynamic-groups", views.DynamicGroupUIViewSet)
|
|
22
21
|
router.register("export-templates", views.ExportTemplateUIViewSet)
|
|
23
22
|
router.register("external-integrations", views.ExternalIntegrationUIViewSet)
|
|
23
|
+
router.register("git-repositories", views.GitRepositoryUIViewSet)
|
|
24
24
|
router.register("graphql-queries", views.GraphQLQueryUIViewSet)
|
|
25
25
|
router.register("job-buttons", views.JobButtonUIViewSet)
|
|
26
26
|
router.register("job-hooks", views.JobHookUIViewSet)
|
|
@@ -59,98 +59,6 @@ urlpatterns = [
|
|
|
59
59
|
views.ObjectAssignContactOrTeamView.as_view(),
|
|
60
60
|
name="object_contact_team_assign",
|
|
61
61
|
),
|
|
62
|
-
# Dynamic Groups
|
|
63
|
-
path("dynamic-groups/", views.DynamicGroupListView.as_view(), name="dynamicgroup_list"),
|
|
64
|
-
path("dynamic-groups/add/", views.DynamicGroupEditView.as_view(), name="dynamicgroup_add"),
|
|
65
|
-
path("dynamic-groups/assign-members/", views.DynamicGroupBulkAssignView.as_view(), name="dynamicgroup_bulk_assign"),
|
|
66
|
-
path(
|
|
67
|
-
"dynamic-groups/delete/",
|
|
68
|
-
views.DynamicGroupBulkDeleteView.as_view(),
|
|
69
|
-
name="dynamicgroup_bulk_delete",
|
|
70
|
-
),
|
|
71
|
-
path("dynamic-groups/<uuid:pk>/", views.DynamicGroupView.as_view(), name="dynamicgroup"),
|
|
72
|
-
path("dynamic-groups/<uuid:pk>/edit/", views.DynamicGroupEditView.as_view(), name="dynamicgroup_edit"),
|
|
73
|
-
path("dynamic-groups/<uuid:pk>/delete/", views.DynamicGroupDeleteView.as_view(), name="dynamicgroup_delete"),
|
|
74
|
-
path(
|
|
75
|
-
"dynamic-groups/<uuid:pk>/changelog/",
|
|
76
|
-
views.ObjectChangeLogView.as_view(),
|
|
77
|
-
name="dynamicgroup_changelog",
|
|
78
|
-
kwargs={"model": DynamicGroup},
|
|
79
|
-
),
|
|
80
|
-
path(
|
|
81
|
-
"dynamic-groups/<uuid:pk>/notes/",
|
|
82
|
-
views.ObjectNotesView.as_view(),
|
|
83
|
-
name="dynamicgroup_notes",
|
|
84
|
-
kwargs={"model": DynamicGroup},
|
|
85
|
-
),
|
|
86
|
-
# Git repositories
|
|
87
|
-
path(
|
|
88
|
-
"git-repositories/",
|
|
89
|
-
views.GitRepositoryListView.as_view(),
|
|
90
|
-
name="gitrepository_list",
|
|
91
|
-
),
|
|
92
|
-
path(
|
|
93
|
-
"git-repositories/add/",
|
|
94
|
-
views.GitRepositoryEditView.as_view(),
|
|
95
|
-
name="gitrepository_add",
|
|
96
|
-
),
|
|
97
|
-
path(
|
|
98
|
-
"git-repositories/delete/",
|
|
99
|
-
views.GitRepositoryBulkDeleteView.as_view(),
|
|
100
|
-
name="gitrepository_bulk_delete",
|
|
101
|
-
),
|
|
102
|
-
path(
|
|
103
|
-
"git-repositories/edit/",
|
|
104
|
-
views.GitRepositoryBulkEditView.as_view(),
|
|
105
|
-
name="gitrepository_bulk_edit",
|
|
106
|
-
),
|
|
107
|
-
path(
|
|
108
|
-
"git-repositories/import/",
|
|
109
|
-
views.GitRepositoryBulkImportView.as_view(), # 3.0 TODO: remove, unused
|
|
110
|
-
name="gitrepository_import",
|
|
111
|
-
),
|
|
112
|
-
path(
|
|
113
|
-
"git-repositories/<uuid:pk>/",
|
|
114
|
-
views.GitRepositoryView.as_view(),
|
|
115
|
-
name="gitrepository",
|
|
116
|
-
),
|
|
117
|
-
path(
|
|
118
|
-
"git-repositories/<uuid:pk>/edit/",
|
|
119
|
-
views.GitRepositoryEditView.as_view(),
|
|
120
|
-
name="gitrepository_edit",
|
|
121
|
-
),
|
|
122
|
-
path(
|
|
123
|
-
"git-repositories/<uuid:pk>/delete/",
|
|
124
|
-
views.GitRepositoryDeleteView.as_view(),
|
|
125
|
-
name="gitrepository_delete",
|
|
126
|
-
),
|
|
127
|
-
path(
|
|
128
|
-
"git-repositories/<uuid:pk>/changelog/",
|
|
129
|
-
views.ObjectChangeLogView.as_view(),
|
|
130
|
-
name="gitrepository_changelog",
|
|
131
|
-
kwargs={"model": GitRepository},
|
|
132
|
-
),
|
|
133
|
-
path(
|
|
134
|
-
"git-repositories/<uuid:pk>/notes/",
|
|
135
|
-
views.ObjectNotesView.as_view(),
|
|
136
|
-
name="gitrepository_notes",
|
|
137
|
-
kwargs={"model": GitRepository},
|
|
138
|
-
),
|
|
139
|
-
path(
|
|
140
|
-
"git-repositories/<uuid:pk>/result/",
|
|
141
|
-
views.GitRepositoryResultView.as_view(),
|
|
142
|
-
name="gitrepository_result",
|
|
143
|
-
),
|
|
144
|
-
path(
|
|
145
|
-
"git-repositories/<uuid:pk>/sync/",
|
|
146
|
-
views.GitRepositorySyncView.as_view(),
|
|
147
|
-
name="gitrepository_sync",
|
|
148
|
-
),
|
|
149
|
-
path(
|
|
150
|
-
"git-repositories/<uuid:pk>/dry-run/",
|
|
151
|
-
views.GitRepositoryDryRunView.as_view(),
|
|
152
|
-
name="gitrepository_dryrun",
|
|
153
|
-
),
|
|
154
62
|
# Image attachments
|
|
155
63
|
path(
|
|
156
64
|
"image-attachments/<uuid:pk>/edit/",
|