nautobot 2.3.5__py3-none-any.whl → 2.3.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nautobot might be problematic. Click here for more details.

Files changed (337) hide show
  1. nautobot/__init__.py +4 -2
  2. nautobot/circuits/tests/test_views.py +4 -5
  3. nautobot/core/api/utils.py +12 -2
  4. nautobot/core/api/views.py +15 -3
  5. nautobot/core/forms/fields.py +5 -2
  6. nautobot/core/forms/utils.py +31 -6
  7. nautobot/core/models/fields.py +56 -0
  8. nautobot/core/templates/inc/javascript.html +2 -0
  9. nautobot/core/templates/inc/nav_menu.html +0 -251
  10. nautobot/core/testing/mixins.py +59 -2
  11. nautobot/core/testing/views.py +45 -61
  12. nautobot/core/tests/runner.py +6 -3
  13. nautobot/core/tests/test_paginator.py +4 -3
  14. nautobot/core/tests/test_utils.py +83 -0
  15. nautobot/core/tests/test_views.py +39 -56
  16. nautobot/core/views/__init__.py +27 -11
  17. nautobot/dcim/tests/test_api.py +4 -1
  18. nautobot/dcim/tests/test_views.py +26 -67
  19. nautobot/extras/datasources/git.py +6 -1
  20. nautobot/extras/factory.py +2 -1
  21. nautobot/extras/migrations/0112_dynamic_group_group_type_data_migration.py +3 -0
  22. nautobot/extras/migrations/0116_fix_dynamic_group_group_type_data_migration.py +16 -0
  23. nautobot/extras/models/models.py +2 -0
  24. nautobot/extras/tests/test_api.py +3 -3
  25. nautobot/extras/tests/test_customfields.py +9 -16
  26. nautobot/extras/tests/test_dynamicgroups.py +116 -0
  27. nautobot/extras/tests/test_forms.py +2 -0
  28. nautobot/extras/tests/test_plugins.py +4 -6
  29. nautobot/extras/tests/test_utils.py +5 -0
  30. nautobot/extras/tests/test_views.py +63 -161
  31. nautobot/extras/utils.py +50 -11
  32. nautobot/ipam/api/serializers.py +30 -1
  33. nautobot/ipam/api/views.py +165 -3
  34. nautobot/ipam/filters.py +1 -1
  35. nautobot/ipam/forms.py +2 -0
  36. nautobot/ipam/migrations/0050_vlangroup_range.py +24 -0
  37. nautobot/ipam/models.py +51 -8
  38. nautobot/ipam/tables.py +4 -4
  39. nautobot/ipam/templates/ipam/vlangroup.html +4 -0
  40. nautobot/ipam/tests/test_api.py +192 -12
  41. nautobot/ipam/tests/test_models.py +35 -1
  42. nautobot/ipam/tests/test_utils.py +61 -0
  43. nautobot/ipam/tests/test_views.py +8 -15
  44. nautobot/ipam/utils/__init__.py +10 -17
  45. nautobot/ipam/views.py +1 -1
  46. nautobot/project-static/docs/404.html +3 -3
  47. nautobot/project-static/docs/apps/index.html +3 -3
  48. nautobot/project-static/docs/apps/nautobot-apps.html +3 -3
  49. nautobot/project-static/docs/assets/javascripts/bundle.525ec568.min.js +16 -0
  50. nautobot/project-static/docs/assets/javascripts/{bundle.56dfad97.min.js.map → bundle.525ec568.min.js.map} +4 -4
  51. nautobot/project-static/docs/assets/stylesheets/main.8c3ca2c6.min.css +1 -0
  52. nautobot/project-static/docs/assets/stylesheets/main.8c3ca2c6.min.css.map +1 -0
  53. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +3 -3
  54. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +3 -3
  55. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +3 -3
  56. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +3 -3
  57. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +3 -3
  58. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +3 -3
  59. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +3 -3
  60. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +3 -3
  61. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +3 -3
  62. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +3 -3
  63. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +3 -3
  64. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +5 -5
  65. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +3 -3
  66. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +3 -3
  67. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +3 -3
  68. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +3 -3
  69. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +3 -3
  70. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +3 -3
  71. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +124 -3
  72. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +3 -3
  73. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +3 -3
  74. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +3 -3
  75. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +3 -3
  76. nautobot/project-static/docs/development/apps/api/configuration-view.html +3 -3
  77. nautobot/project-static/docs/development/apps/api/database-backend-config.html +3 -3
  78. nautobot/project-static/docs/development/apps/api/models/django-admin.html +3 -3
  79. nautobot/project-static/docs/development/apps/api/models/global-search.html +3 -3
  80. nautobot/project-static/docs/development/apps/api/models/graphql.html +3 -3
  81. nautobot/project-static/docs/development/apps/api/models/index.html +5 -5
  82. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +3 -3
  83. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +3 -3
  84. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +3 -3
  85. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +3 -3
  86. nautobot/project-static/docs/development/apps/api/platform-features/index.html +3 -3
  87. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +3 -3
  88. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +3 -3
  89. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +3 -3
  90. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +3 -3
  91. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +3 -3
  92. nautobot/project-static/docs/development/apps/api/prometheus.html +3 -3
  93. nautobot/project-static/docs/development/apps/api/setup.html +3 -3
  94. nautobot/project-static/docs/development/apps/api/testing.html +3 -3
  95. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +3 -3
  96. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +3 -3
  97. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +3 -3
  98. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +3 -3
  99. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +3 -3
  100. nautobot/project-static/docs/development/apps/api/views/base-template.html +3 -3
  101. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +3 -3
  102. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +3 -3
  103. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +3 -3
  104. nautobot/project-static/docs/development/apps/api/views/index.html +3 -3
  105. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +3 -3
  106. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +3 -3
  107. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +3 -3
  108. nautobot/project-static/docs/development/apps/api/views/notes.html +3 -3
  109. nautobot/project-static/docs/development/apps/api/views/rest-api.html +3 -3
  110. nautobot/project-static/docs/development/apps/api/views/urls.html +3 -3
  111. nautobot/project-static/docs/development/apps/index.html +3 -3
  112. nautobot/project-static/docs/development/apps/migration/code-updates.html +3 -3
  113. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +3 -3
  114. nautobot/project-static/docs/development/apps/migration/from-v1.html +3 -3
  115. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +3 -3
  116. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +3 -3
  117. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +3 -3
  118. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +3 -3
  119. nautobot/project-static/docs/development/apps/porting-from-netbox.html +3 -3
  120. nautobot/project-static/docs/development/core/application-registry.html +3 -3
  121. nautobot/project-static/docs/development/core/best-practices.html +3 -3
  122. nautobot/project-static/docs/development/core/bootstrap-ui.html +3 -3
  123. nautobot/project-static/docs/development/core/caching.html +3 -3
  124. nautobot/project-static/docs/development/core/controllers.html +3 -3
  125. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +3 -3
  126. nautobot/project-static/docs/development/core/generic-views.html +3 -3
  127. nautobot/project-static/docs/development/core/getting-started.html +3 -3
  128. nautobot/project-static/docs/development/core/homepage.html +3 -3
  129. nautobot/project-static/docs/development/core/index.html +3 -3
  130. nautobot/project-static/docs/development/core/model-checklist.html +3 -3
  131. nautobot/project-static/docs/development/core/model-features.html +3 -3
  132. nautobot/project-static/docs/development/core/natural-keys.html +3 -3
  133. nautobot/project-static/docs/development/core/navigation-menu.html +3 -3
  134. nautobot/project-static/docs/development/core/release-checklist.html +3 -3
  135. nautobot/project-static/docs/development/core/role-internals.html +3 -3
  136. nautobot/project-static/docs/development/core/settings.html +3 -3
  137. nautobot/project-static/docs/development/core/style-guide.html +3 -3
  138. nautobot/project-static/docs/development/core/templates.html +3 -3
  139. nautobot/project-static/docs/development/core/testing.html +3 -3
  140. nautobot/project-static/docs/development/core/user-preferences.html +3 -3
  141. nautobot/project-static/docs/development/index.html +3 -3
  142. nautobot/project-static/docs/development/jobs/index.html +3 -3
  143. nautobot/project-static/docs/development/jobs/migration/from-v1.html +3 -3
  144. nautobot/project-static/docs/index.html +3 -3
  145. nautobot/project-static/docs/objects.inv +0 -0
  146. nautobot/project-static/docs/overview/application_stack.html +3 -3
  147. nautobot/project-static/docs/overview/design_philosophy.html +3 -3
  148. nautobot/project-static/docs/release-notes/index.html +3 -3
  149. nautobot/project-static/docs/release-notes/version-1.0.html +3 -3
  150. nautobot/project-static/docs/release-notes/version-1.1.html +3 -3
  151. nautobot/project-static/docs/release-notes/version-1.2.html +3 -3
  152. nautobot/project-static/docs/release-notes/version-1.3.html +3 -3
  153. nautobot/project-static/docs/release-notes/version-1.4.html +3 -3
  154. nautobot/project-static/docs/release-notes/version-1.5.html +3 -3
  155. nautobot/project-static/docs/release-notes/version-1.6.html +3 -3
  156. nautobot/project-static/docs/release-notes/version-2.0.html +3 -3
  157. nautobot/project-static/docs/release-notes/version-2.1.html +3 -3
  158. nautobot/project-static/docs/release-notes/version-2.2.html +3 -3
  159. nautobot/project-static/docs/release-notes/version-2.3.html +392 -95
  160. nautobot/project-static/docs/requirements.txt +1 -1
  161. nautobot/project-static/docs/search/search_index.json +1 -1
  162. nautobot/project-static/docs/sitemap.xml +269 -269
  163. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  164. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +3 -3
  165. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +3 -3
  166. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +3 -3
  167. nautobot/project-static/docs/user-guide/administration/configuration/index.html +3 -3
  168. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +3 -3
  169. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +3 -3
  170. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +3 -3
  171. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +3 -3
  172. nautobot/project-static/docs/user-guide/administration/guides/docker.html +3 -3
  173. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +3 -3
  174. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +3 -3
  175. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +3 -3
  176. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +3 -3
  177. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +3 -3
  178. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +3 -3
  179. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +3 -3
  180. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +3 -3
  181. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +3 -3
  182. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +3 -3
  183. nautobot/project-static/docs/user-guide/administration/installation/index.html +3 -3
  184. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +3 -3
  185. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +3 -3
  186. nautobot/project-static/docs/user-guide/administration/installation/services.html +3 -3
  187. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +3 -3
  188. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +3 -3
  189. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +3 -3
  190. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +3 -3
  191. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +3 -3
  192. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +3 -3
  193. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +3 -3
  194. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +3 -3
  195. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +3 -3
  196. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +3 -3
  197. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +3 -3
  198. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +3 -3
  199. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +3 -3
  200. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +3 -3
  201. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +3 -3
  202. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +3 -3
  203. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +3 -3
  204. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +3 -3
  205. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +3 -3
  206. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +3 -3
  207. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +3 -3
  208. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +3 -3
  209. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +3 -3
  210. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +3 -3
  211. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +3 -3
  212. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +3 -3
  213. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +3 -3
  214. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +3 -3
  215. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +3 -3
  216. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +3 -3
  217. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +3 -3
  218. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +3 -3
  219. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +3 -3
  220. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +3 -3
  221. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +3 -3
  222. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +3 -3
  223. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +3 -3
  224. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +3 -3
  225. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +3 -3
  226. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +3 -3
  227. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +3 -3
  228. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +3 -3
  229. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +3 -3
  230. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +3 -3
  231. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +3 -3
  232. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +3 -3
  233. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +3 -3
  234. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +3 -3
  235. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +3 -3
  236. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +3 -3
  237. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +3 -3
  238. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +3 -3
  239. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +3 -3
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +3 -3
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +3 -3
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +3 -3
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +3 -3
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +3 -3
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +3 -3
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +3 -3
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +3 -3
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +3 -3
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +3 -3
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +3 -3
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +3 -3
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +3 -3
  253. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +3 -3
  254. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +3 -3
  255. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +3 -3
  256. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +3 -3
  257. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +3 -3
  258. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +3 -3
  259. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +3 -3
  260. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +3 -3
  261. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +3 -3
  262. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +3 -3
  263. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +3 -3
  264. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +308 -3
  265. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +3 -3
  266. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +3 -3
  267. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +3 -3
  268. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +3 -3
  269. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +3 -3
  270. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +3 -3
  271. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +3 -3
  272. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +3 -3
  273. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +3 -3
  274. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +3 -3
  275. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +3 -3
  276. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +3 -3
  277. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +3 -3
  278. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +3 -3
  279. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +3 -3
  280. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +3 -3
  281. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +3 -3
  282. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +3 -3
  283. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +3 -3
  284. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +3 -3
  285. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +3 -3
  286. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +3 -3
  287. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +3 -3
  288. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +3 -3
  289. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +3 -3
  290. nautobot/project-static/docs/user-guide/index.html +3 -3
  291. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +3 -3
  292. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +3 -3
  293. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +3 -3
  294. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +3 -3
  295. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +3 -3
  296. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +3 -3
  297. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +3 -3
  298. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +3 -3
  299. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +3 -3
  300. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +3 -3
  301. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +3 -3
  302. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +3 -3
  303. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +3 -3
  304. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +3 -3
  305. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +3 -3
  306. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +3 -3
  307. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +3 -3
  308. nautobot/project-static/docs/user-guide/platform-functionality/note.html +3 -3
  309. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +3 -3
  310. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +3 -3
  311. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +3 -3
  312. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +3 -3
  313. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +3 -3
  314. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +3 -3
  315. nautobot/project-static/docs/user-guide/platform-functionality/role.html +3 -3
  316. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +3 -3
  317. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +3 -3
  318. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +3 -3
  319. nautobot/project-static/docs/user-guide/platform-functionality/status.html +3 -3
  320. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +3 -3
  321. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +3 -3
  322. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +3 -3
  323. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +3 -3
  324. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +3 -3
  325. nautobot/project-static/js/nav_menu.js +249 -0
  326. nautobot/tenancy/templates/tenancy/tenant.html +1 -1
  327. nautobot/users/tests/test_views.py +9 -11
  328. nautobot/virtualization/tests/test_views.py +3 -5
  329. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/METADATA +2 -1
  330. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/RECORD +334 -330
  331. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/WHEEL +1 -1
  332. nautobot/project-static/docs/assets/javascripts/bundle.56dfad97.min.js +0 -16
  333. nautobot/project-static/docs/assets/stylesheets/main.35f28582.min.css +0 -1
  334. nautobot/project-static/docs/assets/stylesheets/main.35f28582.min.css.map +0 -1
  335. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/LICENSE.txt +0 -0
  336. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/NOTICE +0 -0
  337. {nautobot-2.3.5.dist-info → nautobot-2.3.7.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -8833,7 +8833,7 @@
8833
8833
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
8834
8834
 
8835
8835
 
8836
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
8836
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
8837
8837
 
8838
8838
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
8839
8839
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -8760,7 +8760,7 @@
8760
8760
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
8761
8761
 
8762
8762
 
8763
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
8763
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
8764
8764
 
8765
8765
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
8766
8766
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9024,7 +9024,7 @@ Returns:
9024
9024
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9025
9025
 
9026
9026
 
9027
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9027
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9028
9028
 
9029
9029
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9030
9030
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9251,7 +9251,7 @@ would trigger this exception upon access.</p>
9251
9251
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9252
9252
 
9253
9253
 
9254
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9254
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9255
9255
 
9256
9256
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9257
9257
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9452,7 +9452,7 @@ status = random_instance(lambda: Status.objects.get_for_model(Object), allow_nul
9452
9452
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9453
9453
 
9454
9454
 
9455
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9455
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9456
9456
 
9457
9457
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9458
9458
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -10803,7 +10803,7 @@ filter values while maintaining the field's built-in validation. Example: GET /a
10803
10803
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
10804
10804
 
10805
10805
 
10806
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
10806
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
10807
10807
 
10808
10808
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
10809
10809
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -13399,14 +13399,14 @@ are marked as not required.</p>
13399
13399
 
13400
13400
 
13401
13401
  <h2 id="nautobot.apps.forms.parse_numeric_range" class="doc doc-heading">
13402
- <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_numeric_range</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span></code>
13402
+ <code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">forms</span><span class="o">.</span><span class="n">parse_numeric_range</span><span class="p">(</span><span class="n">input_string</span><span class="p">,</span> <span class="n">base</span><span class="o">=</span><span class="mi">10</span><span class="p">)</span></code>
13403
13403
 
13404
13404
  <a href="#nautobot.apps.forms.parse_numeric_range" class="headerlink" title="Permanent link">&para;</a></h2>
13405
13405
 
13406
13406
 
13407
13407
  <div class="doc doc-contents ">
13408
13408
 
13409
- <p>Expand a numeric range (continuous or not) into a decimal or
13409
+ <p>Expand a numeric range (continuous or not) into a sorted decimal or
13410
13410
  hexadecimal list, as specified by the base parameter
13411
13411
  '0-3,5' =&gt; [0, 1, 2, 3, 5]
13412
13412
  '2,8-b,d,f' =&gt; [2, 8, 9, a, b, d, f]</p>
@@ -13586,7 +13586,7 @@ as available choices.</p>
13586
13586
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
13587
13587
 
13588
13588
 
13589
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
13589
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
13590
13590
 
13591
13591
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
13592
13592
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9387,7 +9387,7 @@ if the filter field is a subclass of MultipleChoiceFilter, the argument will be
9387
9387
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9388
9388
 
9389
9389
 
9390
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9390
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9391
9391
 
9392
9392
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9393
9393
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -12236,7 +12236,7 @@ then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
12236
12236
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
12237
12237
 
12238
12238
 
12239
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
12239
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
12240
12240
 
12241
12241
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
12242
12242
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -15274,7 +15274,7 @@ e.g:
15274
15274
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
15275
15275
 
15276
15276
 
15277
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
15277
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
15278
15278
 
15279
15279
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15280
15280
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -8911,7 +8911,7 @@ sort it within Python to ensure correctness.</p>
8911
8911
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
8912
8912
 
8913
8913
 
8914
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
8914
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
8915
8915
 
8916
8916
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
8917
8917
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9071,7 +9071,7 @@
9071
9071
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9072
9072
 
9073
9073
 
9074
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9074
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9075
9075
 
9076
9076
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9077
9077
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -9752,7 +9752,7 @@ set <code>sort_items=False</code>.</p>
9752
9752
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
9753
9753
 
9754
9754
 
9755
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
9755
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
9756
9756
 
9757
9757
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
9758
9758
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -7881,6 +7881,15 @@
7881
7881
  </span>
7882
7882
  </a>
7883
7883
 
7884
+ </li>
7885
+
7886
+ <li class="md-nav__item">
7887
+ <a href="#nautobot.apps.testing.NautobotTestCaseMixin.assertBodyContains" class="md-nav__link">
7888
+ <span class="md-ellipsis">
7889
+ assertBodyContains
7890
+ </span>
7891
+ </a>
7892
+
7884
7893
  </li>
7885
7894
 
7886
7895
  <li class="md-nav__item">
@@ -10886,6 +10895,15 @@
10886
10895
  </span>
10887
10896
  </a>
10888
10897
 
10898
+ </li>
10899
+
10900
+ <li class="md-nav__item">
10901
+ <a href="#nautobot.apps.testing.NautobotTestCaseMixin.assertBodyContains" class="md-nav__link">
10902
+ <span class="md-ellipsis">
10903
+ assertBodyContains
10904
+ </span>
10905
+ </a>
10906
+
10889
10907
  </li>
10890
10908
 
10891
10909
  <li class="md-nav__item">
@@ -13528,6 +13546,109 @@ This expects a field named <code>devices</code> on the model and a filter named
13528
13546
  <div class="doc doc-object doc-function">
13529
13547
 
13530
13548
 
13549
+ <h3 id="nautobot.apps.testing.NautobotTestCaseMixin.assertBodyContains" class="doc doc-heading">
13550
+ <code class="highlight language-python"><span class="n">assertBodyContains</span><span class="p">(</span><span class="n">response</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">status_code</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span> <span class="n">msg_prefix</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">html</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
13551
+
13552
+ <a href="#nautobot.apps.testing.NautobotTestCaseMixin.assertBodyContains" class="headerlink" title="Permanent link">&para;</a></h3>
13553
+
13554
+
13555
+ <div class="doc doc-contents ">
13556
+
13557
+ <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
13558
+
13559
+
13560
+ <p><span class="doc-section-title">Parameters:</span></p>
13561
+ <table>
13562
+ <thead>
13563
+ <tr>
13564
+ <th>Name</th>
13565
+ <th>Type</th>
13566
+ <th>Description</th>
13567
+ <th>Default</th>
13568
+ </tr>
13569
+ </thead>
13570
+ <tbody>
13571
+ <tr class="doc-section-item">
13572
+ <td><code>response</code></td>
13573
+ <td>
13574
+ <code><autoref identifier="HttpResponse" optional>HttpResponse</autoref></code>
13575
+ </td>
13576
+ <td>
13577
+ <div class="doc-md-description">
13578
+ <p>The response to inspect</p>
13579
+ </div>
13580
+ </td>
13581
+ <td>
13582
+ <em>required</em>
13583
+ </td>
13584
+ </tr>
13585
+ <tr class="doc-section-item">
13586
+ <td><code>text</code></td>
13587
+ <td>
13588
+ <code><autoref identifier="str" optional>str</autoref></code>
13589
+ </td>
13590
+ <td>
13591
+ <div class="doc-md-description">
13592
+ <p>Plaintext or HTML to check for in the response body</p>
13593
+ </div>
13594
+ </td>
13595
+ <td>
13596
+ <em>required</em>
13597
+ </td>
13598
+ </tr>
13599
+ <tr class="doc-section-item">
13600
+ <td><code>count</code></td>
13601
+ <td>
13602
+ <code><autoref identifier="int" optional>int</autoref></code>
13603
+ </td>
13604
+ <td>
13605
+ <div class="doc-md-description">
13606
+ <p>Number of times the <code>text</code> should occur, or None if we don't care as long as
13607
+ it's present at all.</p>
13608
+ </div>
13609
+ </td>
13610
+ <td>
13611
+ <code>None</code>
13612
+ </td>
13613
+ </tr>
13614
+ <tr class="doc-section-item">
13615
+ <td><code>status_code</code></td>
13616
+ <td>
13617
+ <code><autoref identifier="int" optional>int</autoref></code>
13618
+ </td>
13619
+ <td>
13620
+ <div class="doc-md-description">
13621
+ <p>HTTP status code expected</p>
13622
+ </div>
13623
+ </td>
13624
+ <td>
13625
+ <code>200</code>
13626
+ </td>
13627
+ </tr>
13628
+ <tr class="doc-section-item">
13629
+ <td><code>html</code></td>
13630
+ <td>
13631
+ <code><autoref identifier="bool" optional>bool</autoref></code>
13632
+ </td>
13633
+ <td>
13634
+ <div class="doc-md-description">
13635
+ <p>If True, handle <code>text</code> as HTML, ignoring whitespace etc, as in Django's <code>assertHTMLEqual()</code>.</p>
13636
+ </div>
13637
+ </td>
13638
+ <td>
13639
+ <code>False</code>
13640
+ </td>
13641
+ </tr>
13642
+ </tbody>
13643
+ </table>
13644
+
13645
+ </div>
13646
+
13647
+ </div>
13648
+
13649
+ <div class="doc doc-object doc-function">
13650
+
13651
+
13531
13652
  <h3 id="nautobot.apps.testing.NautobotTestCaseMixin.assertHttpStatus" class="doc doc-heading">
13532
13653
  <code class="highlight language-python"><span class="n">assertHttpStatus</span><span class="p">(</span><span class="n">response</span><span class="p">,</span> <span class="n">expected_status</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
13533
13654
 
@@ -15558,7 +15679,7 @@ document$.subscribe(() => { lightbox.reload() });
15558
15679
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
15559
15680
 
15560
15681
 
15561
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
15682
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
15562
15683
 
15563
15684
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
15564
15685
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -11912,7 +11912,7 @@ HTML string. Note that content does not need to be marked as safe because this i
11912
11912
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
11913
11913
 
11914
11914
 
11915
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
11915
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
11916
11916
 
11917
11917
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
11918
11918
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.35">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.39">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.35f28582.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.8c3ca2c6.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -8855,7 +8855,7 @@
8855
8855
  <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
8856
8856
 
8857
8857
 
8858
- <script src="../../../assets/javascripts/bundle.56dfad97.min.js"></script>
8858
+ <script src="../../../assets/javascripts/bundle.525ec568.min.js"></script>
8859
8859
 
8860
8860
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
8861
8861