nautobot 2.2.0b1__py3-none-any.whl → 2.2.2__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.

Files changed (429) hide show
  1. nautobot/__init__.py +31 -0
  2. nautobot/apps/api.py +1 -2
  3. nautobot/apps/utils.py +4 -0
  4. nautobot/apps/views.py +2 -0
  5. nautobot/circuits/api/urls.py +1 -2
  6. nautobot/circuits/api/views.py +0 -12
  7. nautobot/circuits/apps.py +1 -1
  8. nautobot/circuits/tests/test_filters.py +1 -1
  9. nautobot/core/api/routers.py +50 -3
  10. nautobot/core/api/utils.py +4 -0
  11. nautobot/core/api/views.py +21 -15
  12. nautobot/core/cli/__init__.py +18 -11
  13. nautobot/core/constants.py +85 -0
  14. nautobot/core/filters.py +7 -1
  15. nautobot/core/forms/widgets.py +1 -2
  16. nautobot/core/graphql/schema.py +1 -0
  17. nautobot/core/management/commands/generate_test_data.py +4 -4
  18. nautobot/core/models/__init__.py +1 -0
  19. nautobot/core/settings.py +24 -3
  20. nautobot/core/settings.yaml +20 -0
  21. nautobot/core/signals.py +1 -0
  22. nautobot/core/tables.py +2 -1
  23. nautobot/core/templates/admin/base.html +23 -94
  24. nautobot/core/templates/generic/object_retrieve.html +2 -2
  25. nautobot/core/templates/graphene/graphiql.html +18 -47
  26. nautobot/core/templates/inc/footer.html +5 -5
  27. nautobot/core/templates/inc/javascript.html +4 -4
  28. nautobot/core/templates/inc/media.html +2 -2
  29. nautobot/core/templates/inc/nav_menu.html +0 -7
  30. nautobot/core/templates/nautobot_config.py.j2 +14 -1
  31. nautobot/core/templates/rest_framework/api.html +12 -5
  32. nautobot/core/templatetags/helpers.py +2 -2
  33. nautobot/core/testing/__init__.py +1 -1
  34. nautobot/core/testing/filters.py +1 -1
  35. nautobot/core/testing/views.py +30 -0
  36. nautobot/core/tests/integration/test_view_authentication.py +68 -0
  37. nautobot/core/tests/test_api.py +13 -6
  38. nautobot/core/tests/test_csv.py +5 -4
  39. nautobot/core/tests/test_filters.py +2 -1
  40. nautobot/core/tests/test_graphql.py +4 -14
  41. nautobot/core/tests/test_navigations.py +3 -0
  42. nautobot/core/tests/test_views.py +45 -16
  43. nautobot/core/utils/data.py +1 -2
  44. nautobot/core/utils/lookup.py +126 -0
  45. nautobot/core/views/__init__.py +3 -7
  46. nautobot/core/views/generic.py +24 -10
  47. nautobot/core/views/mixins.py +11 -4
  48. nautobot/core/views/renderers.py +11 -6
  49. nautobot/core/wsgi.py +9 -2
  50. nautobot/dcim/api/serializers.py +4 -4
  51. nautobot/dcim/api/urls.py +2 -3
  52. nautobot/dcim/api/views.py +7 -18
  53. nautobot/dcim/apps.py +8 -4
  54. nautobot/dcim/elevations.py +5 -1
  55. nautobot/dcim/factory.py +7 -7
  56. nautobot/dcim/filters/__init__.py +16 -17
  57. nautobot/dcim/forms.py +69 -48
  58. nautobot/dcim/homepage.py +11 -3
  59. nautobot/dcim/management/commands/migrate_location_contacts.py +218 -0
  60. nautobot/dcim/migrations/0057_controller_models.py +11 -70
  61. nautobot/dcim/models/__init__.py +2 -2
  62. nautobot/dcim/models/devices.py +14 -16
  63. nautobot/dcim/models/racks.py +1 -3
  64. nautobot/dcim/navigation.py +23 -31
  65. nautobot/dcim/signals.py +6 -6
  66. nautobot/dcim/tables/__init__.py +2 -2
  67. nautobot/dcim/tables/devices.py +13 -16
  68. nautobot/dcim/tables/template_code.py +1 -1
  69. nautobot/dcim/templates/dcim/controller_create.html +70 -0
  70. nautobot/dcim/templates/dcim/controller_retrieve.html +35 -18
  71. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +88 -0
  72. nautobot/dcim/templates/dcim/device/lldp_neighbors.html +74 -42
  73. nautobot/dcim/templates/dcim/device.html +11 -3
  74. nautobot/dcim/templates/dcim/device_edit.html +1 -1
  75. nautobot/dcim/templates/dcim/devicefamily_retrieve.html +4 -0
  76. nautobot/dcim/templates/dcim/softwareimagefile_retrieve.html +1 -1
  77. nautobot/dcim/tests/test_api.py +47 -6
  78. nautobot/dcim/tests/test_filters.py +92 -81
  79. nautobot/dcim/tests/test_forms.py +49 -2
  80. nautobot/dcim/tests/test_graphql.py +11 -1
  81. nautobot/dcim/tests/test_models.py +15 -15
  82. nautobot/dcim/tests/test_signals.py +3 -1
  83. nautobot/dcim/tests/test_views.py +24 -12
  84. nautobot/dcim/urls.py +1 -1
  85. nautobot/dcim/views.py +25 -15
  86. nautobot/extras/api/serializers.py +20 -1
  87. nautobot/extras/api/urls.py +1 -2
  88. nautobot/extras/api/views.py +0 -10
  89. nautobot/extras/apps.py +7 -0
  90. nautobot/extras/context_managers.py +71 -4
  91. nautobot/extras/filters/__init__.py +53 -2
  92. nautobot/extras/filters/customfields.py +14 -9
  93. nautobot/extras/filters/mixins.py +6 -1
  94. nautobot/extras/forms/contacts.py +7 -0
  95. nautobot/extras/health_checks.py +1 -0
  96. nautobot/extras/jobs.py +1 -0
  97. nautobot/extras/managers.py +15 -2
  98. nautobot/extras/models/contacts.py +1 -0
  99. nautobot/extras/models/customfields.py +25 -2
  100. nautobot/extras/models/datasources.py +1 -0
  101. nautobot/extras/models/mixins.py +1 -0
  102. nautobot/extras/navigation.py +71 -65
  103. nautobot/extras/plugins/__init__.py +2 -1
  104. nautobot/extras/plugins/views.py +7 -11
  105. nautobot/extras/querysets.py +1 -2
  106. nautobot/extras/secrets/providers.py +1 -0
  107. nautobot/extras/signals.py +95 -51
  108. nautobot/extras/tasks.py +70 -17
  109. nautobot/extras/tests/test_api.py +2 -4
  110. nautobot/extras/tests/test_context_managers.py +98 -1
  111. nautobot/extras/tests/test_customfields.py +72 -9
  112. nautobot/extras/tests/test_dynamicgroups.py +2 -0
  113. nautobot/extras/tests/test_filters.py +89 -4
  114. nautobot/extras/tests/test_models.py +9 -0
  115. nautobot/extras/tests/test_relationships.py +10 -1
  116. nautobot/extras/tests/test_views.py +112 -1
  117. nautobot/extras/utils.py +37 -0
  118. nautobot/extras/views.py +18 -17
  119. nautobot/ipam/api/serializers.py +10 -0
  120. nautobot/ipam/api/urls.py +1 -2
  121. nautobot/ipam/api/views.py +0 -11
  122. nautobot/ipam/apps.py +3 -2
  123. nautobot/ipam/tables.py +3 -23
  124. nautobot/ipam/tests/test_graphql.py +2 -3
  125. nautobot/ipam/tests/test_tables.py +42 -0
  126. nautobot/ipam/tests/test_views.py +1 -0
  127. nautobot/ipam/views.py +9 -9
  128. nautobot/project-static/css/base.css +1 -0
  129. nautobot/project-static/docs/404.html +126 -73
  130. nautobot/project-static/docs/apps/index.html +127 -71
  131. nautobot/project-static/docs/apps/nautobot-apps.html +127 -71
  132. nautobot/project-static/docs/assets/javascripts/{bundle.8fd75fb4.min.js → bundle.bd41221c.min.js} +2 -2
  133. nautobot/project-static/docs/assets/javascripts/{bundle.8fd75fb4.min.js.map → bundle.bd41221c.min.js.map} +3 -3
  134. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css +1 -0
  135. nautobot/project-static/docs/assets/stylesheets/main.bcfcd587.min.css.map +1 -0
  136. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +127 -71
  137. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +127 -71
  138. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +167 -73
  139. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +165 -72
  140. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +127 -71
  141. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +127 -71
  142. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +127 -71
  143. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +127 -71
  144. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +127 -71
  145. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +127 -71
  146. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +127 -71
  147. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +127 -71
  148. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +127 -71
  149. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +127 -71
  150. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +127 -71
  151. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +127 -71
  152. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +127 -71
  153. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +127 -71
  154. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +128 -72
  155. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +127 -71
  156. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +127 -71
  157. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +345 -71
  158. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +172 -73
  159. nautobot/project-static/docs/development/apps/api/configuration-view.html +127 -71
  160. nautobot/project-static/docs/development/apps/api/database-backend-config.html +127 -71
  161. nautobot/project-static/docs/development/apps/api/models/django-admin.html +127 -71
  162. nautobot/project-static/docs/development/apps/api/models/global-search.html +127 -71
  163. nautobot/project-static/docs/development/apps/api/models/graphql.html +127 -71
  164. nautobot/project-static/docs/development/apps/api/models/index.html +127 -71
  165. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +127 -71
  166. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +127 -71
  167. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +127 -71
  168. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +127 -71
  169. nautobot/project-static/docs/development/apps/api/platform-features/index.html +127 -71
  170. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +127 -71
  171. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +127 -71
  172. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +127 -71
  173. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +127 -71
  174. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +127 -71
  175. nautobot/project-static/docs/development/apps/api/prometheus.html +127 -71
  176. nautobot/project-static/docs/development/apps/api/setup.html +127 -71
  177. nautobot/project-static/docs/development/apps/api/testing.html +127 -71
  178. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +127 -71
  179. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +127 -71
  180. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +127 -71
  181. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +127 -71
  182. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +127 -71
  183. nautobot/project-static/docs/development/apps/api/views/base-template.html +127 -71
  184. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +141 -80
  185. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +144 -83
  186. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +127 -71
  187. nautobot/project-static/docs/development/apps/api/views/index.html +127 -71
  188. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +127 -71
  189. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +127 -71
  190. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +127 -71
  191. nautobot/project-static/docs/development/apps/api/views/notes.html +127 -71
  192. nautobot/project-static/docs/development/apps/api/views/rest-api.html +127 -71
  193. nautobot/project-static/docs/development/apps/api/views/urls.html +127 -71
  194. nautobot/project-static/docs/development/apps/index.html +127 -71
  195. nautobot/project-static/docs/development/apps/migration/code-updates.html +127 -71
  196. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +127 -71
  197. nautobot/project-static/docs/development/apps/migration/from-v1.html +127 -71
  198. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +127 -71
  199. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +127 -71
  200. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +127 -71
  201. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +127 -71
  202. nautobot/project-static/docs/development/apps/porting-from-netbox.html +127 -71
  203. nautobot/project-static/docs/development/core/application-registry.html +127 -71
  204. nautobot/project-static/docs/development/core/best-practices.html +145 -79
  205. nautobot/project-static/docs/development/core/bootstrap-ui.html +127 -71
  206. nautobot/project-static/docs/development/core/caching.html +127 -71
  207. nautobot/project-static/docs/development/core/controllers.html +141 -275
  208. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +127 -71
  209. nautobot/project-static/docs/development/core/extending-models.html +13 -8166
  210. nautobot/project-static/docs/development/core/generic-views.html +142 -86
  211. nautobot/project-static/docs/development/core/getting-started.html +146 -81
  212. nautobot/project-static/docs/development/core/homepage.html +145 -89
  213. nautobot/project-static/docs/development/core/index.html +127 -71
  214. nautobot/project-static/docs/development/core/model-checklist.html +8354 -0
  215. nautobot/project-static/docs/development/core/model-features.html +130 -74
  216. nautobot/project-static/docs/development/core/natural-keys.html +127 -71
  217. nautobot/project-static/docs/development/core/navigation-menu.html +127 -71
  218. nautobot/project-static/docs/development/core/release-checklist.html +127 -71
  219. nautobot/project-static/docs/development/core/role-internals.html +127 -71
  220. nautobot/project-static/docs/development/core/settings.html +127 -71
  221. nautobot/project-static/docs/development/core/style-guide.html +127 -71
  222. nautobot/project-static/docs/development/core/templates.html +127 -71
  223. nautobot/project-static/docs/development/core/testing.html +127 -71
  224. nautobot/project-static/docs/development/core/user-preferences.html +127 -71
  225. nautobot/project-static/docs/development/extending-models.html +3 -3
  226. nautobot/project-static/docs/development/index.html +127 -71
  227. nautobot/project-static/docs/development/jobs/index.html +128 -72
  228. nautobot/project-static/docs/development/jobs/migration/from-v1.html +127 -71
  229. nautobot/project-static/docs/index.html +126 -73
  230. nautobot/project-static/docs/models/dcim/{controllerdevicegroup.html → controllermanageddevicegroup.html} +3 -3
  231. nautobot/project-static/docs/objects.inv +0 -0
  232. nautobot/project-static/docs/release-notes/index.html +127 -71
  233. nautobot/project-static/docs/release-notes/version-1.0.html +127 -71
  234. nautobot/project-static/docs/release-notes/version-1.1.html +127 -71
  235. nautobot/project-static/docs/release-notes/version-1.2.html +127 -71
  236. nautobot/project-static/docs/release-notes/version-1.3.html +127 -71
  237. nautobot/project-static/docs/release-notes/version-1.4.html +127 -71
  238. nautobot/project-static/docs/release-notes/version-1.5.html +127 -71
  239. nautobot/project-static/docs/release-notes/version-1.6.html +663 -304
  240. nautobot/project-static/docs/release-notes/version-2.0.html +127 -71
  241. nautobot/project-static/docs/release-notes/version-2.1.html +538 -254
  242. nautobot/project-static/docs/release-notes/version-2.2.html +711 -125
  243. nautobot/project-static/docs/requirements.txt +3 -3
  244. nautobot/project-static/docs/search/search_index.json +1 -1
  245. nautobot/project-static/docs/sitemap.xml +264 -259
  246. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  247. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +127 -71
  248. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +127 -71
  249. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +127 -71
  250. nautobot/project-static/docs/user-guide/administration/configuration/index.html +127 -71
  251. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +192 -71
  252. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +127 -71
  253. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +127 -71
  254. nautobot/project-static/docs/user-guide/administration/guides/caching.html +127 -71
  255. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +127 -71
  256. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +127 -71
  257. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +127 -71
  258. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +131 -71
  259. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +127 -71
  260. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +127 -71
  261. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +130 -74
  262. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +127 -71
  263. nautobot/project-static/docs/user-guide/administration/installation/docker.html +134 -74
  264. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +127 -71
  265. nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +8616 -0
  266. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +127 -71
  267. nautobot/project-static/docs/user-guide/administration/installation/index.html +127 -71
  268. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +127 -71
  269. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +127 -71
  270. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +130 -74
  271. nautobot/project-static/docs/user-guide/administration/installation/services.html +127 -71
  272. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +127 -71
  273. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +127 -71
  274. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +127 -71
  275. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +127 -71
  276. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +127 -71
  277. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +127 -71
  278. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +127 -71
  279. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +127 -71
  280. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +127 -71
  281. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +127 -71
  282. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +127 -71
  283. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +127 -71
  284. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +127 -71
  285. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +127 -71
  286. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +127 -71
  287. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +127 -71
  288. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +127 -71
  289. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +127 -71
  290. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +127 -71
  291. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +127 -71
  292. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +127 -71
  293. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +127 -71
  294. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +127 -71
  295. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +362 -79
  296. nautobot/project-static/docs/user-guide/core-data-model/dcim/{controllerdevicegroup.html → controllermanageddevicegroup.html} +210 -85
  297. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +127 -71
  298. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +127 -71
  299. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +127 -71
  300. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +127 -71
  301. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +127 -71
  302. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +127 -71
  303. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +127 -71
  304. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +127 -71
  305. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +127 -71
  306. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +127 -71
  307. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +127 -71
  308. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +127 -71
  309. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +127 -71
  310. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +127 -71
  311. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +127 -71
  312. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +127 -71
  313. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +127 -71
  314. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +127 -71
  315. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +127 -71
  316. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +127 -71
  317. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +127 -71
  318. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +127 -71
  319. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +127 -71
  320. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +127 -71
  321. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +127 -71
  322. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +127 -71
  323. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +127 -71
  324. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +127 -71
  325. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +127 -71
  326. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +127 -71
  327. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +130 -74
  328. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +127 -71
  329. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +138 -71
  330. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +138 -71
  331. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +127 -71
  332. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +127 -71
  333. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +127 -71
  334. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +127 -71
  335. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +127 -71
  336. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +127 -71
  337. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +127 -71
  338. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +127 -71
  339. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +127 -71
  340. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +127 -71
  341. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +127 -71
  342. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +127 -71
  343. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +127 -71
  344. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +127 -71
  345. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +127 -71
  346. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +127 -71
  347. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +127 -71
  348. nautobot/project-static/docs/user-guide/feature-guides/{contact-and-team.html → contacts-and-teams.html} +128 -72
  349. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +129 -73
  350. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +127 -71
  351. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +127 -71
  352. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +127 -71
  353. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +127 -71
  354. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +127 -71
  355. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +127 -71
  356. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +129 -73
  357. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +127 -71
  358. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +127 -71
  359. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +127 -71
  360. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +127 -71
  361. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +127 -71
  362. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +127 -71
  363. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +127 -71
  364. nautobot/project-static/docs/user-guide/index.html +127 -71
  365. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +127 -71
  366. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +127 -71
  367. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +127 -71
  368. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +127 -71
  369. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +127 -71
  370. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +127 -71
  371. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +127 -71
  372. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +127 -71
  373. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +127 -71
  374. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +127 -71
  375. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +127 -71
  376. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +127 -71
  377. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +127 -71
  378. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +127 -71
  379. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +127 -71
  380. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +127 -71
  381. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +127 -71
  382. nautobot/project-static/docs/user-guide/platform-functionality/note.html +127 -71
  383. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +127 -71
  384. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +127 -71
  385. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +127 -71
  386. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +127 -71
  387. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +127 -71
  388. nautobot/project-static/docs/user-guide/platform-functionality/role.html +127 -71
  389. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +127 -71
  390. nautobot/project-static/docs/user-guide/platform-functionality/status.html +127 -71
  391. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +127 -71
  392. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +127 -71
  393. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +127 -71
  394. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +127 -71
  395. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +127 -71
  396. nautobot/project-static/jquery/jquery-3.7.1.min.js +2 -0
  397. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_444444_256x240.png +0 -0
  398. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_555555_256x240.png +0 -0
  399. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_777620_256x240.png +0 -0
  400. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_777777_256x240.png +0 -0
  401. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_cc0000_256x240.png +0 -0
  402. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/images/ui-icons_ffffff_256x240.png +0 -0
  403. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.min.css +7 -0
  404. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.min.js +6 -0
  405. nautobot/project-static/jquery-ui-1.13.2/jquery-ui.structure.min.css +5 -0
  406. nautobot/project-static/{jquery-ui-1.13.1 → jquery-ui-1.13.2}/jquery-ui.theme.min.css +1 -1
  407. nautobot/tenancy/api/urls.py +1 -2
  408. nautobot/tenancy/api/views.py +0 -12
  409. nautobot/tenancy/tables.py +1 -1
  410. nautobot/tenancy/tests/test_views.py +1 -0
  411. nautobot/users/api/urls.py +1 -2
  412. nautobot/users/api/views.py +2 -65
  413. nautobot/users/views.py +8 -8
  414. nautobot/virtualization/api/urls.py +1 -2
  415. nautobot/virtualization/api/views.py +0 -12
  416. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.dist-info}/METADATA +24 -24
  417. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.dist-info}/RECORD +422 -416
  418. nautobot/dcim/templates/dcim/controllerdevicegroup_create.html +0 -43
  419. nautobot/project-static/docs/assets/stylesheets/main.f2e4d321.min.css +0 -1
  420. nautobot/project-static/docs/assets/stylesheets/main.f2e4d321.min.css.map +0 -1
  421. nautobot/project-static/jquery/jquery-3.6.0.min.js +0 -2
  422. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.min.css +0 -7
  423. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.min.js +0 -6
  424. nautobot/project-static/jquery-ui-1.13.1/jquery-ui.structure.min.css +0 -5
  425. /nautobot/dcim/templates/dcim/{controllerdevicegroup_retrieve.html → controllermanageddevicegroup_retrieve.html} +0 -0
  426. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.dist-info}/LICENSE.txt +0 -0
  427. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.dist-info}/NOTICE +0 -0
  428. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.dist-info}/WHEEL +0 -0
  429. {nautobot-2.2.0b1.dist-info → nautobot-2.2.2.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.5.3, mkdocs-material-9.5.8">
21
+ <meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.16">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../../assets/stylesheets/main.f2e4d321.min.css">
29
+ <link rel="stylesheet" href="../../../../assets/stylesheets/main.bcfcd587.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../../assets/stylesheets/palette.06af60db.min.css">
@@ -399,16 +399,14 @@
399
399
 
400
400
 
401
401
 
402
-
403
-
404
402
 
405
403
 
406
404
 
407
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
405
+
406
+ <li class="md-nav__item md-nav__item--nested">
408
407
 
409
408
 
410
409
 
411
-
412
410
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
413
411
 
414
412
 
@@ -425,7 +423,7 @@
425
423
  </a>
426
424
 
427
425
 
428
- <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
426
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
429
427
  <span class="md-nav__icon md-icon"></span>
430
428
  </label>
431
429
 
@@ -447,13 +445,14 @@
447
445
 
448
446
 
449
447
 
448
+
449
+
450
450
 
451
451
 
452
452
  <li class="md-nav__item md-nav__item--nested">
453
453
 
454
454
 
455
455
 
456
-
457
456
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1" >
458
457
 
459
458
 
@@ -484,13 +483,14 @@
484
483
 
485
484
 
486
485
 
486
+
487
+
487
488
 
488
489
 
489
490
  <li class="md-nav__item md-nav__item--nested">
490
491
 
491
492
 
492
493
 
493
-
494
494
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_1" >
495
495
 
496
496
 
@@ -686,6 +686,27 @@
686
686
 
687
687
 
688
688
 
689
+ <li class="md-nav__item">
690
+ <a href="../../../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
691
+
692
+
693
+ <span class="md-ellipsis">
694
+ Health Checks
695
+ </span>
696
+
697
+
698
+ </a>
699
+ </li>
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
689
710
  <li class="md-nav__item">
690
711
  <a href="../../../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
691
712
 
@@ -718,13 +739,14 @@
718
739
 
719
740
 
720
741
 
742
+
743
+
721
744
 
722
745
 
723
746
  <li class="md-nav__item md-nav__item--nested">
724
747
 
725
748
 
726
749
 
727
-
728
750
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2" >
729
751
 
730
752
 
@@ -797,13 +819,14 @@
797
819
 
798
820
 
799
821
 
822
+
823
+
800
824
 
801
825
 
802
826
  <li class="md-nav__item md-nav__item--nested">
803
827
 
804
828
 
805
829
 
806
-
807
830
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3" >
808
831
 
809
832
 
@@ -863,13 +886,14 @@
863
886
 
864
887
 
865
888
 
889
+
890
+
866
891
 
867
892
 
868
893
  <li class="md-nav__item md-nav__item--nested">
869
894
 
870
895
 
871
896
 
872
-
873
897
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_2_3_2" >
874
898
 
875
899
 
@@ -1016,13 +1040,14 @@
1016
1040
 
1017
1041
 
1018
1042
 
1043
+
1044
+
1019
1045
 
1020
1046
 
1021
1047
  <li class="md-nav__item md-nav__item--nested">
1022
1048
 
1023
1049
 
1024
1050
 
1025
-
1026
1051
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_3" >
1027
1052
 
1028
1053
 
@@ -1103,13 +1128,14 @@
1103
1128
 
1104
1129
 
1105
1130
 
1131
+
1132
+
1106
1133
 
1107
1134
 
1108
1135
  <li class="md-nav__item md-nav__item--nested">
1109
1136
 
1110
1137
 
1111
1138
 
1112
-
1113
1139
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4" >
1114
1140
 
1115
1141
 
@@ -1211,13 +1237,14 @@
1211
1237
 
1212
1238
 
1213
1239
 
1240
+
1241
+
1214
1242
 
1215
1243
 
1216
1244
  <li class="md-nav__item md-nav__item--nested">
1217
1245
 
1218
1246
 
1219
1247
 
1220
-
1221
1248
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_4_4" >
1222
1249
 
1223
1250
 
@@ -1327,13 +1354,14 @@
1327
1354
 
1328
1355
 
1329
1356
 
1357
+
1358
+
1330
1359
 
1331
1360
 
1332
1361
  <li class="md-nav__item md-nav__item--nested">
1333
1362
 
1334
1363
 
1335
1364
 
1336
-
1337
1365
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_5" >
1338
1366
 
1339
1367
 
@@ -1414,13 +1442,14 @@
1414
1442
 
1415
1443
 
1416
1444
 
1445
+
1446
+
1417
1447
 
1418
1448
 
1419
1449
  <li class="md-nav__item md-nav__item--nested">
1420
1450
 
1421
1451
 
1422
1452
 
1423
-
1424
1453
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_6" >
1425
1454
 
1426
1455
 
@@ -1635,13 +1664,14 @@
1635
1664
 
1636
1665
 
1637
1666
 
1667
+
1668
+
1638
1669
 
1639
1670
 
1640
1671
  <li class="md-nav__item md-nav__item--nested">
1641
1672
 
1642
1673
 
1643
1674
 
1644
-
1645
1675
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
1646
1676
 
1647
1677
 
@@ -1672,13 +1702,14 @@
1672
1702
 
1673
1703
 
1674
1704
 
1705
+
1706
+
1675
1707
 
1676
1708
 
1677
1709
  <li class="md-nav__item md-nav__item--nested">
1678
1710
 
1679
1711
 
1680
1712
 
1681
-
1682
1713
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2_1" >
1683
1714
 
1684
1715
 
@@ -1891,7 +1922,7 @@
1891
1922
 
1892
1923
 
1893
1924
  <li class="md-nav__item">
1894
- <a href="../../../../user-guide/feature-guides/contact-and-team.html" class="md-nav__link">
1925
+ <a href="../../../../user-guide/feature-guides/contacts-and-teams.html" class="md-nav__link">
1895
1926
 
1896
1927
 
1897
1928
  <span class="md-ellipsis">
@@ -2048,13 +2079,14 @@
2048
2079
 
2049
2080
 
2050
2081
 
2082
+
2083
+
2051
2084
 
2052
2085
 
2053
2086
  <li class="md-nav__item md-nav__item--nested">
2054
2087
 
2055
2088
 
2056
2089
 
2057
-
2058
2090
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
2059
2091
 
2060
2092
 
@@ -2085,13 +2117,14 @@
2085
2117
 
2086
2118
 
2087
2119
 
2120
+
2121
+
2088
2122
 
2089
2123
 
2090
2124
  <li class="md-nav__item md-nav__item--nested">
2091
2125
 
2092
2126
 
2093
2127
 
2094
-
2095
2128
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_1" >
2096
2129
 
2097
2130
 
@@ -2151,13 +2184,14 @@
2151
2184
 
2152
2185
 
2153
2186
 
2187
+
2188
+
2154
2189
 
2155
2190
 
2156
2191
  <li class="md-nav__item md-nav__item--nested">
2157
2192
 
2158
2193
 
2159
2194
 
2160
-
2161
2195
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_2" >
2162
2196
 
2163
2197
 
@@ -2301,13 +2335,14 @@
2301
2335
 
2302
2336
 
2303
2337
 
2338
+
2339
+
2304
2340
 
2305
2341
 
2306
2342
  <li class="md-nav__item md-nav__item--nested">
2307
2343
 
2308
2344
 
2309
2345
 
2310
-
2311
2346
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3" >
2312
2347
 
2313
2348
 
@@ -2485,13 +2520,14 @@
2485
2520
 
2486
2521
 
2487
2522
 
2523
+
2524
+
2488
2525
 
2489
2526
 
2490
2527
  <li class="md-nav__item md-nav__item--nested">
2491
2528
 
2492
2529
 
2493
2530
 
2494
-
2495
2531
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_8" >
2496
2532
 
2497
2533
 
@@ -2706,13 +2742,14 @@
2706
2742
 
2707
2743
 
2708
2744
 
2745
+
2746
+
2709
2747
 
2710
2748
 
2711
2749
  <li class="md-nav__item md-nav__item--nested">
2712
2750
 
2713
2751
 
2714
2752
 
2715
-
2716
2753
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_3_9" >
2717
2754
 
2718
2755
 
@@ -3156,11 +3193,11 @@
3156
3193
 
3157
3194
 
3158
3195
  <li class="md-nav__item">
3159
- <a href="../../../../user-guide/core-data-model/dcim/controllerdevicegroup.html" class="md-nav__link">
3196
+ <a href="../../../../user-guide/core-data-model/dcim/controllermanageddevicegroup.html" class="md-nav__link">
3160
3197
 
3161
3198
 
3162
3199
  <span class="md-ellipsis">
3163
- Controller Device Group
3200
+ Controller Managed Device Group
3164
3201
  </span>
3165
3202
 
3166
3203
 
@@ -3187,13 +3224,14 @@
3187
3224
 
3188
3225
 
3189
3226
 
3227
+
3228
+
3190
3229
 
3191
3230
 
3192
3231
  <li class="md-nav__item md-nav__item--nested">
3193
3232
 
3194
3233
 
3195
3234
 
3196
-
3197
3235
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_4" >
3198
3236
 
3199
3237
 
@@ -3316,13 +3354,14 @@
3316
3354
 
3317
3355
 
3318
3356
 
3357
+
3358
+
3319
3359
 
3320
3360
 
3321
3361
  <li class="md-nav__item md-nav__item--nested">
3322
3362
 
3323
3363
 
3324
3364
 
3325
-
3326
3365
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_5" >
3327
3366
 
3328
3367
 
@@ -3550,13 +3589,14 @@
3550
3589
 
3551
3590
 
3552
3591
 
3592
+
3593
+
3553
3594
 
3554
3595
 
3555
3596
  <li class="md-nav__item md-nav__item--nested">
3556
3597
 
3557
3598
 
3558
3599
 
3559
-
3560
3600
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_6" >
3561
3601
 
3562
3602
 
@@ -3637,13 +3677,14 @@
3637
3677
 
3638
3678
 
3639
3679
 
3680
+
3681
+
3640
3682
 
3641
3683
 
3642
3684
  <li class="md-nav__item md-nav__item--nested">
3643
3685
 
3644
3686
 
3645
3687
 
3646
-
3647
3688
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_7" >
3648
3689
 
3649
3690
 
@@ -3795,13 +3836,14 @@
3795
3836
 
3796
3837
 
3797
3838
 
3839
+
3840
+
3798
3841
 
3799
3842
 
3800
3843
  <li class="md-nav__item md-nav__item--nested">
3801
3844
 
3802
3845
 
3803
3846
 
3804
-
3805
3847
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4" >
3806
3848
 
3807
3849
 
@@ -4000,13 +4042,14 @@
4000
4042
 
4001
4043
 
4002
4044
 
4045
+
4046
+
4003
4047
 
4004
4048
 
4005
4049
  <li class="md-nav__item md-nav__item--nested">
4006
4050
 
4007
4051
 
4008
4052
 
4009
-
4010
4053
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
4011
4054
 
4012
4055
 
@@ -4095,13 +4138,14 @@
4095
4138
 
4096
4139
 
4097
4140
 
4141
+
4142
+
4098
4143
 
4099
4144
 
4100
4145
  <li class="md-nav__item md-nav__item--nested">
4101
4146
 
4102
4147
 
4103
4148
 
4104
-
4105
4149
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
4106
4150
 
4107
4151
 
@@ -4295,13 +4339,14 @@
4295
4339
 
4296
4340
 
4297
4341
 
4342
+
4343
+
4298
4344
 
4299
4345
 
4300
4346
  <li class="md-nav__item md-nav__item--nested">
4301
4347
 
4302
4348
 
4303
4349
 
4304
-
4305
4350
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_15" >
4306
4351
 
4307
4352
 
@@ -4516,13 +4561,14 @@
4516
4561
 
4517
4562
 
4518
4563
 
4564
+
4565
+
4519
4566
 
4520
4567
 
4521
4568
  <li class="md-nav__item md-nav__item--nested">
4522
4569
 
4523
4570
 
4524
4571
 
4525
-
4526
4572
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_21" >
4527
4573
 
4528
4574
 
@@ -4641,16 +4687,17 @@
4641
4687
 
4642
4688
 
4643
4689
 
4644
-
4645
-
4690
+
4691
+
4692
+
4646
4693
 
4647
4694
 
4695
+
4648
4696
 
4649
4697
  <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
4650
4698
 
4651
4699
 
4652
4700
 
4653
-
4654
4701
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
4655
4702
 
4656
4703
 
@@ -4689,13 +4736,14 @@
4689
4736
 
4690
4737
 
4691
4738
 
4739
+
4740
+
4692
4741
 
4693
4742
 
4694
4743
  <li class="md-nav__item md-nav__item--nested">
4695
4744
 
4696
4745
 
4697
4746
 
4698
-
4699
4747
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_1" >
4700
4748
 
4701
4749
 
@@ -4765,13 +4813,14 @@
4765
4813
 
4766
4814
 
4767
4815
 
4816
+
4817
+
4768
4818
 
4769
4819
 
4770
4820
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
4771
4821
 
4772
4822
 
4773
4823
 
4774
-
4775
4824
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2" checked>
4776
4825
 
4777
4826
 
@@ -4852,13 +4901,14 @@
4852
4901
 
4853
4902
 
4854
4903
 
4904
+
4905
+
4855
4906
 
4856
4907
 
4857
4908
  <li class="md-nav__item md-nav__item--nested">
4858
4909
 
4859
4910
 
4860
4911
 
4861
-
4862
4912
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_3" >
4863
4913
 
4864
4914
 
@@ -4970,13 +5020,14 @@
4970
5020
 
4971
5021
 
4972
5022
 
5023
+
5024
+
4973
5025
 
4974
5026
 
4975
5027
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
4976
5028
 
4977
5029
 
4978
5030
 
4979
-
4980
5031
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4" checked>
4981
5032
 
4982
5033
 
@@ -5164,13 +5215,14 @@
5164
5215
 
5165
5216
 
5166
5217
 
5218
+
5219
+
5167
5220
 
5168
5221
 
5169
5222
  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
5170
5223
 
5171
5224
 
5172
5225
 
5173
-
5174
5226
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_4_8" checked>
5175
5227
 
5176
5228
 
@@ -5290,13 +5342,14 @@
5290
5342
 
5291
5343
 
5292
5344
 
5345
+
5346
+
5293
5347
 
5294
5348
 
5295
5349
  <li class="md-nav__item md-nav__item--nested">
5296
5350
 
5297
5351
 
5298
5352
 
5299
-
5300
5353
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_5" >
5301
5354
 
5302
5355
 
@@ -5553,13 +5606,14 @@
5553
5606
 
5554
5607
 
5555
5608
 
5609
+
5610
+
5556
5611
 
5557
5612
 
5558
5613
  <li class="md-nav__item md-nav__item--nested">
5559
5614
 
5560
5615
 
5561
5616
 
5562
-
5563
5617
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_6" >
5564
5618
 
5565
5619
 
@@ -5732,13 +5786,14 @@
5732
5786
 
5733
5787
 
5734
5788
 
5789
+
5790
+
5735
5791
 
5736
5792
 
5737
5793
  <li class="md-nav__item md-nav__item--nested">
5738
5794
 
5739
5795
 
5740
5796
 
5741
-
5742
5797
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_8" >
5743
5798
 
5744
5799
 
@@ -6260,13 +6315,14 @@
6260
6315
 
6261
6316
 
6262
6317
 
6318
+
6319
+
6263
6320
 
6264
6321
 
6265
6322
  <li class="md-nav__item md-nav__item--nested">
6266
6323
 
6267
6324
 
6268
6325
 
6269
-
6270
6326
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9" >
6271
6327
 
6272
6328
 
@@ -6360,13 +6416,14 @@
6360
6416
 
6361
6417
 
6362
6418
 
6419
+
6420
+
6363
6421
 
6364
6422
 
6365
6423
  <li class="md-nav__item md-nav__item--nested">
6366
6424
 
6367
6425
 
6368
6426
 
6369
-
6370
6427
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_4" >
6371
6428
 
6372
6429
 
@@ -6497,13 +6554,14 @@
6497
6554
 
6498
6555
 
6499
6556
 
6557
+
6558
+
6500
6559
 
6501
6560
 
6502
6561
  <li class="md-nav__item md-nav__item--nested">
6503
6562
 
6504
6563
 
6505
6564
 
6506
-
6507
6565
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
6508
6566
 
6509
6567
 
@@ -6571,13 +6629,14 @@
6571
6629
 
6572
6630
 
6573
6631
 
6632
+
6633
+
6574
6634
 
6575
6635
 
6576
6636
  <li class="md-nav__item md-nav__item--nested">
6577
6637
 
6578
6638
 
6579
6639
 
6580
-
6581
6640
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_3" >
6582
6641
 
6583
6642
 
@@ -6782,11 +6841,11 @@
6782
6841
 
6783
6842
 
6784
6843
  <li class="md-nav__item">
6785
- <a href="../../../core/extending-models.html" class="md-nav__link">
6844
+ <a href="../../../core/generic-views.html" class="md-nav__link">
6786
6845
 
6787
6846
 
6788
6847
  <span class="md-ellipsis">
6789
- Extending Models
6848
+ Generic Views
6790
6849
  </span>
6791
6850
 
6792
6851
 
@@ -6803,11 +6862,11 @@
6803
6862
 
6804
6863
 
6805
6864
  <li class="md-nav__item">
6806
- <a href="../../../core/generic-views.html" class="md-nav__link">
6865
+ <a href="../../../core/homepage.html" class="md-nav__link">
6807
6866
 
6808
6867
 
6809
6868
  <span class="md-ellipsis">
6810
- Generic Views
6869
+ Home Page Panels
6811
6870
  </span>
6812
6871
 
6813
6872
 
@@ -6824,11 +6883,11 @@
6824
6883
 
6825
6884
 
6826
6885
  <li class="md-nav__item">
6827
- <a href="../../../core/homepage.html" class="md-nav__link">
6886
+ <a href="../../../core/model-checklist.html" class="md-nav__link">
6828
6887
 
6829
6888
 
6830
6889
  <span class="md-ellipsis">
6831
- Home Page Panels
6890
+ Model Development Checklist
6832
6891
  </span>
6833
6892
 
6834
6893
 
@@ -7051,16 +7110,14 @@
7051
7110
 
7052
7111
 
7053
7112
 
7054
-
7055
-
7056
7113
 
7057
7114
 
7058
7115
 
7059
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
7116
+
7117
+ <li class="md-nav__item md-nav__item--nested">
7060
7118
 
7061
7119
 
7062
7120
 
7063
-
7064
7121
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
7065
7122
 
7066
7123
 
@@ -7077,7 +7134,7 @@
7077
7134
  </a>
7078
7135
 
7079
7136
 
7080
- <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="">
7137
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
7081
7138
  <span class="md-nav__icon md-icon"></span>
7082
7139
  </label>
7083
7140
 
@@ -7316,16 +7373,14 @@
7316
7373
 
7317
7374
 
7318
7375
 
7319
-
7320
-
7321
7376
 
7322
7377
 
7323
7378
 
7324
- <li class="md-nav__item md-nav__item--section md-nav__item--nested">
7379
+
7380
+ <li class="md-nav__item md-nav__item--nested">
7325
7381
 
7326
7382
 
7327
7383
 
7328
-
7329
7384
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
7330
7385
 
7331
7386
 
@@ -7342,7 +7397,7 @@
7342
7397
  </a>
7343
7398
 
7344
7399
 
7345
- <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="">
7400
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
7346
7401
  <span class="md-nav__icon md-icon"></span>
7347
7402
  </label>
7348
7403
 
@@ -7364,13 +7419,14 @@
7364
7419
 
7365
7420
 
7366
7421
 
7422
+
7423
+
7367
7424
 
7368
7425
 
7369
7426
  <li class="md-nav__item md-nav__item--nested">
7370
7427
 
7371
7428
 
7372
7429
 
7373
-
7374
7430
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_1" >
7375
7431
 
7376
7432
 
@@ -7677,20 +7733,25 @@
7677
7733
  <p>The use of <code>generic</code> Django views can aid in app development. As an example, let's write a view which displays a random animal and the sound it makes. First, create the view in <code>views.py</code>:</p>
7678
7734
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="c1"># views.py</span>
7679
7735
  <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">from</span> <span class="nn">django.shortcuts</span> <span class="kn">import</span> <span class="n">render</span>
7680
- <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="kn">from</span> <span class="nn">django.views.generic</span> <span class="kn">import</span> <span class="n">View</span>
7681
- <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>
7682
- <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">Animal</span>
7683
- <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a>
7736
+ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
7737
+ <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="kn">from</span> <span class="nn">nautobot.apps.views</span> <span class="kn">import</span> <span class="n">GenericView</span>
7738
+ <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a>
7739
+ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">Animal</span>
7684
7740
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
7685
- <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="k">class</span> <span class="nc">RandomAnimalView</span><span class="p">(</span><span class="n">View</span><span class="p">):</span>
7686
- <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Display a randomly-selected Animal.&quot;&quot;&quot;</span>
7687
- <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>
7688
- <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">):</span>
7689
- <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> <span class="n">animal</span> <span class="o">=</span> <span class="n">Animal</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;?&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">()</span>
7690
- <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">&#39;nautobot_animal_sounds/animal.html&#39;</span><span class="p">,</span> <span class="p">{</span>
7691
- <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="s1">&#39;animal&#39;</span><span class="p">:</span> <span class="n">animal</span><span class="p">,</span>
7692
- <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a> <span class="p">})</span>
7741
+ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>
7742
+ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="k">class</span> <span class="nc">RandomAnimalView</span><span class="p">(</span><span class="n">GenericView</span><span class="p">):</span>
7743
+ <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Display a randomly-selected Animal.&quot;&quot;&quot;</span>
7744
+ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>
7745
+ <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> <span class="k">def</span> <span class="nf">get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">):</span>
7746
+ <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a> <span class="n">animal</span> <span class="o">=</span> <span class="n">Animal</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">&#39;?&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">first</span><span class="p">()</span>
7747
+ <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">&#39;nautobot_animal_sounds/animal.html&#39;</span><span class="p">,</span> <span class="p">{</span>
7748
+ <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a> <span class="s1">&#39;animal&#39;</span><span class="p">:</span> <span class="n">animal</span><span class="p">,</span>
7749
+ <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a> <span class="p">})</span>
7693
7750
  </code></pre></div>
7751
+ <div class="admonition tip">
7752
+ <p class="admonition-title">Tip</p>
7753
+ <p>The <code>nautobot.apps.views.GenericView</code> class was added in Nautobot 1.6.16 and 2.1.9. If you're developing against an earlier version, you can use <code>django.views.generic.View</code> in combination with the <code>django.contrib.auth.mixins.LoginRequiredMixin</code> instead.</p>
7754
+ </div>
7694
7755
  <p>This view retrieves a random animal from the database and and passes it as a context variable when rendering a template named <code>animal.html</code>, which doesn't exist yet. To create this template, first create a directory named <code>templates/nautobot_animal_sounds/</code> within the app source directory. (We use the app's name as a subdirectory to guard against naming collisions with other apps.) Then, create a template named <code>animal.html</code> as described below.</p>
7695
7756
 
7696
7757
 
@@ -7836,9 +7897,9 @@
7836
7897
  <script id="__config" type="application/json">{"base": "../../../..", "features": ["content.code.copy", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../../assets/javascripts/workers/search.b8dbb3d2.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>
7837
7898
 
7838
7899
 
7839
- <script src="../../../../assets/javascripts/bundle.8fd75fb4.min.js"></script>
7900
+ <script src="../../../../assets/javascripts/bundle.bd41221c.min.js"></script>
7840
7901
 
7841
- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
7902
+ <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
7842
7903
 
7843
7904
 
7844
7905
  </body>