nautobot 2.1.7__py3-none-any.whl → 2.1.9__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 (338) hide show
  1. nautobot/apps/api.py +1 -2
  2. nautobot/apps/utils.py +4 -0
  3. nautobot/apps/views.py +2 -0
  4. nautobot/circuits/api/urls.py +1 -2
  5. nautobot/circuits/api/views.py +0 -12
  6. nautobot/circuits/tests/integration/test_relationships.py +0 -4
  7. nautobot/core/api/routers.py +25 -3
  8. nautobot/core/api/utils.py +4 -0
  9. nautobot/core/api/views.py +21 -15
  10. nautobot/core/celery/schedulers.py +13 -0
  11. nautobot/core/choices.py +0 -21
  12. nautobot/core/models/__init__.py +1 -1
  13. nautobot/core/models/tree_queries.py +29 -7
  14. nautobot/core/releases.py +1 -1
  15. nautobot/core/settings.py +9 -0
  16. nautobot/core/settings_funcs.py +0 -18
  17. nautobot/core/signals.py +5 -5
  18. nautobot/core/tasks.py +7 -3
  19. nautobot/core/templates/admin/base.html +23 -94
  20. nautobot/core/templates/generic/object_list.html +2 -0
  21. nautobot/core/templates/graphene/graphiql.html +18 -47
  22. nautobot/core/templates/inc/footer.html +5 -5
  23. nautobot/core/templates/inc/nav_menu.html +0 -7
  24. nautobot/core/templates/nautobot_config.py.j2 +6 -0
  25. nautobot/core/templates/rest_framework/api.html +12 -5
  26. nautobot/core/testing/mixins.py +13 -5
  27. nautobot/core/tests/integration/test_plugin_navbar.py +7 -21
  28. nautobot/core/tests/integration/test_view_authentication.py +67 -0
  29. nautobot/core/tests/runner.py +25 -2
  30. nautobot/core/tests/test_graphql.py +2 -14
  31. nautobot/core/tests/test_models.py +3 -3
  32. nautobot/core/tests/test_navigations.py +67 -10
  33. nautobot/core/tests/test_releases.py +9 -3
  34. nautobot/core/tests/test_views.py +23 -16
  35. nautobot/core/utils/lookup.py +124 -0
  36. nautobot/core/views/__init__.py +3 -7
  37. nautobot/core/views/generic.py +9 -0
  38. nautobot/dcim/api/urls.py +1 -2
  39. nautobot/dcim/api/views.py +1 -12
  40. nautobot/dcim/choices.py +56 -0
  41. nautobot/dcim/models/racks.py +1 -3
  42. nautobot/dcim/navigation.py +1 -1
  43. nautobot/dcim/templates/dcim/device/lldp_neighbors.html +67 -43
  44. nautobot/dcim/tests/test_api.py +3 -0
  45. nautobot/dcim/tests/test_filters.py +0 -28
  46. nautobot/dcim/views.py +5 -2
  47. nautobot/extras/api/urls.py +1 -2
  48. nautobot/extras/api/views.py +0 -10
  49. nautobot/extras/choices.py +14 -0
  50. nautobot/extras/models/customfields.py +93 -34
  51. nautobot/extras/models/groups.py +1 -1
  52. nautobot/extras/models/relationships.py +32 -19
  53. nautobot/extras/navigation.py +3 -2
  54. nautobot/extras/plugins/__init__.py +8 -0
  55. nautobot/extras/plugins/views.py +6 -9
  56. nautobot/extras/querysets.py +1 -1
  57. nautobot/extras/signals.py +12 -6
  58. nautobot/extras/templates/extras/customfield.html +22 -14
  59. nautobot/extras/templatetags/job_buttons.py +7 -0
  60. nautobot/extras/templatetags/plugins.py +5 -1
  61. nautobot/extras/tests/test_customfields.py +323 -287
  62. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  63. nautobot/extras/tests/test_jobs.py +2 -2
  64. nautobot/extras/tests/test_plugins.py +41 -0
  65. nautobot/extras/tests/test_relationships.py +31 -14
  66. nautobot/extras/tests/test_views.py +124 -1
  67. nautobot/extras/utils.py +7 -3
  68. nautobot/extras/views.py +10 -10
  69. nautobot/ipam/api/urls.py +1 -2
  70. nautobot/ipam/api/views.py +6 -13
  71. nautobot/ipam/tables.py +0 -1
  72. nautobot/ipam/tests/test_graphql.py +2 -3
  73. nautobot/ipam/views.py +12 -10
  74. nautobot/project-static/css/base.css +1 -0
  75. nautobot/project-static/docs/404.html +30 -2
  76. nautobot/project-static/docs/apps/index.html +30 -2
  77. nautobot/project-static/docs/apps/nautobot-apps.html +30 -2
  78. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +30 -2
  79. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +30 -2
  80. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +410 -410
  81. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +30 -2
  82. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +386 -358
  83. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +30 -2
  84. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +30 -2
  85. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +30 -2
  86. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +30 -2
  87. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +45 -17
  88. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +30 -2
  89. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +30 -2
  90. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +30 -2
  91. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +759 -602
  92. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +30 -2
  93. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +30 -2
  94. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +30 -2
  95. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +528 -467
  96. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +205 -109
  97. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +30 -2
  98. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +1265 -785
  99. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1827 -1746
  100. nautobot/project-static/docs/development/apps/api/configuration-view.html +30 -2
  101. nautobot/project-static/docs/development/apps/api/database-backend-config.html +30 -2
  102. nautobot/project-static/docs/development/apps/api/models/django-admin.html +30 -2
  103. nautobot/project-static/docs/development/apps/api/models/global-search.html +30 -2
  104. nautobot/project-static/docs/development/apps/api/models/graphql.html +30 -2
  105. nautobot/project-static/docs/development/apps/api/models/index.html +30 -2
  106. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +31 -3
  107. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +30 -2
  108. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +30 -2
  109. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +30 -2
  110. nautobot/project-static/docs/development/apps/api/platform-features/index.html +30 -2
  111. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +30 -2
  112. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +30 -2
  113. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +30 -2
  114. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +30 -2
  115. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +30 -2
  116. nautobot/project-static/docs/development/apps/api/prometheus.html +30 -2
  117. nautobot/project-static/docs/development/apps/api/setup.html +30 -2
  118. nautobot/project-static/docs/development/apps/api/testing.html +33 -5
  119. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +30 -2
  120. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +30 -2
  121. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +30 -2
  122. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +33 -5
  123. nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +13 -5559
  124. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +5594 -0
  125. nautobot/project-static/docs/development/apps/api/ui-extensions/tabs.html +3 -3
  126. nautobot/project-static/docs/development/apps/api/views/base-template.html +30 -2
  127. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +44 -11
  128. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +47 -14
  129. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +30 -2
  130. nautobot/project-static/docs/development/apps/api/views/index.html +30 -2
  131. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +30 -2
  132. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +30 -2
  133. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +30 -2
  134. nautobot/project-static/docs/development/apps/api/views/notes.html +30 -2
  135. nautobot/project-static/docs/development/apps/api/views/rest-api.html +30 -2
  136. nautobot/project-static/docs/development/apps/api/views/urls.html +30 -2
  137. nautobot/project-static/docs/development/apps/index.html +30 -2
  138. nautobot/project-static/docs/development/apps/migration/code-updates.html +30 -2
  139. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +30 -2
  140. nautobot/project-static/docs/development/apps/migration/from-v1.html +30 -2
  141. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +30 -2
  142. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +30 -2
  143. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +30 -2
  144. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +30 -2
  145. nautobot/project-static/docs/development/apps/porting-from-netbox.html +30 -2
  146. nautobot/project-static/docs/development/core/application-registry.html +30 -2
  147. nautobot/project-static/docs/development/core/best-practices.html +33 -5
  148. nautobot/project-static/docs/development/core/bootstrap-ui.html +30 -2
  149. nautobot/project-static/docs/development/core/caching.html +5481 -0
  150. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +30 -2
  151. nautobot/project-static/docs/development/core/extending-models.html +33 -5
  152. nautobot/project-static/docs/development/core/generic-views.html +30 -2
  153. nautobot/project-static/docs/development/core/getting-started.html +49 -12
  154. nautobot/project-static/docs/development/core/homepage.html +30 -2
  155. nautobot/project-static/docs/development/core/index.html +30 -2
  156. nautobot/project-static/docs/development/core/model-features.html +30 -2
  157. nautobot/project-static/docs/development/core/natural-keys.html +30 -2
  158. nautobot/project-static/docs/development/core/navigation-menu.html +30 -2
  159. nautobot/project-static/docs/development/core/release-checklist.html +30 -2
  160. nautobot/project-static/docs/development/core/role-internals.html +30 -2
  161. nautobot/project-static/docs/development/core/style-guide.html +30 -2
  162. nautobot/project-static/docs/development/core/templates.html +30 -2
  163. nautobot/project-static/docs/development/core/testing.html +30 -2
  164. nautobot/project-static/docs/development/core/user-preferences.html +30 -2
  165. nautobot/project-static/docs/development/index.html +30 -2
  166. nautobot/project-static/docs/development/jobs/index.html +30 -2
  167. nautobot/project-static/docs/development/jobs/migration/from-v1.html +30 -2
  168. nautobot/project-static/docs/index.html +30 -2
  169. nautobot/project-static/docs/objects.inv +0 -0
  170. nautobot/project-static/docs/release-notes/index.html +30 -2
  171. nautobot/project-static/docs/release-notes/version-1.0.html +30 -2
  172. nautobot/project-static/docs/release-notes/version-1.1.html +30 -2
  173. nautobot/project-static/docs/release-notes/version-1.2.html +30 -2
  174. nautobot/project-static/docs/release-notes/version-1.3.html +30 -2
  175. nautobot/project-static/docs/release-notes/version-1.4.html +31 -3
  176. nautobot/project-static/docs/release-notes/version-1.5.html +30 -2
  177. nautobot/project-static/docs/release-notes/version-1.6.html +573 -134
  178. nautobot/project-static/docs/release-notes/version-2.0.html +30 -2
  179. nautobot/project-static/docs/release-notes/version-2.1.html +539 -170
  180. nautobot/project-static/docs/search/search_index.json +1 -1
  181. nautobot/project-static/docs/sitemap.xml +250 -240
  182. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  183. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +30 -2
  184. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +30 -2
  185. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +30 -2
  186. nautobot/project-static/docs/user-guide/administration/configuration/index.html +30 -2
  187. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +49 -2
  188. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +30 -2
  189. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +30 -2
  190. nautobot/project-static/docs/user-guide/administration/guides/caching.html +30 -2
  191. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +30 -2
  192. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +30 -2
  193. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +30 -2
  194. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +30 -2
  195. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +30 -2
  196. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +30 -2
  197. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +30 -2
  198. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +30 -2
  199. nautobot/project-static/docs/user-guide/administration/installation/docker.html +37 -5
  200. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +30 -2
  201. nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +6019 -0
  202. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +30 -2
  203. nautobot/project-static/docs/user-guide/administration/installation/index.html +30 -2
  204. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +30 -2
  205. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +30 -2
  206. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +33 -5
  207. nautobot/project-static/docs/user-guide/administration/installation/services.html +30 -2
  208. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +30 -2
  209. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +30 -2
  210. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +30 -2
  211. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +30 -2
  212. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +30 -2
  213. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +30 -2
  214. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +30 -2
  215. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +30 -2
  216. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +30 -2
  217. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +30 -2
  218. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +30 -2
  219. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +30 -2
  220. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +30 -2
  221. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +30 -2
  222. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +30 -2
  223. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +30 -2
  224. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +30 -2
  225. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +30 -2
  226. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +30 -2
  227. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +30 -2
  228. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +30 -2
  229. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +30 -2
  230. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +30 -2
  231. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +30 -2
  232. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +30 -2
  233. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +30 -2
  234. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +30 -2
  235. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +30 -2
  236. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +30 -2
  237. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +30 -2
  238. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +30 -2
  239. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +30 -2
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +30 -2
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +30 -2
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +30 -2
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +30 -2
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +30 -2
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +30 -2
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +30 -2
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +30 -2
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +30 -2
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +30 -2
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +30 -2
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +30 -2
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +30 -2
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +30 -2
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +30 -2
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +30 -2
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +30 -2
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +30 -2
  258. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +30 -2
  259. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +30 -2
  260. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +30 -2
  261. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +30 -2
  262. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +30 -2
  263. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +30 -2
  264. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +30 -2
  265. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +30 -2
  266. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +30 -2
  267. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +30 -2
  268. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +30 -2
  269. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +30 -2
  270. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +30 -2
  271. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +30 -2
  272. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +30 -2
  273. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +30 -2
  274. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +30 -2
  275. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +30 -2
  276. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +30 -2
  277. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +33 -5
  278. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +30 -2
  279. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +30 -2
  280. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +30 -2
  281. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +30 -2
  282. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +30 -2
  283. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +30 -2
  284. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +30 -2
  285. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +30 -2
  286. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +30 -2
  287. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +30 -2
  288. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +30 -2
  289. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +30 -2
  290. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +30 -2
  291. nautobot/project-static/docs/user-guide/index.html +30 -2
  292. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +30 -2
  293. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +30 -2
  294. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +111 -15
  295. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +30 -2
  296. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +30 -2
  297. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +30 -2
  298. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +30 -2
  299. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +30 -2
  300. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +30 -2
  301. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +30 -2
  302. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +30 -2
  303. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +30 -2
  304. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +30 -2
  305. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +30 -2
  306. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +30 -2
  307. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +30 -2
  308. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +30 -2
  309. nautobot/project-static/docs/user-guide/platform-functionality/note.html +30 -2
  310. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +30 -2
  311. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +30 -2
  312. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +30 -2
  313. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +30 -2
  314. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +30 -2
  315. nautobot/project-static/docs/user-guide/platform-functionality/role.html +30 -2
  316. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +30 -2
  317. nautobot/project-static/docs/user-guide/platform-functionality/status.html +30 -2
  318. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +30 -2
  319. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +30 -2
  320. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +30 -2
  321. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +30 -2
  322. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +30 -2
  323. nautobot/tenancy/api/urls.py +1 -2
  324. nautobot/tenancy/api/views.py +0 -12
  325. nautobot/tenancy/navigation.py +1 -1
  326. nautobot/tenancy/tests/test_filters.py +0 -168
  327. nautobot/users/api/urls.py +1 -2
  328. nautobot/users/api/views.py +2 -65
  329. nautobot/users/views.py +8 -8
  330. nautobot/virtualization/api/urls.py +1 -2
  331. nautobot/virtualization/api/views.py +0 -12
  332. nautobot/virtualization/tests/test_filters.py +0 -28
  333. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/METADATA +2 -2
  334. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/RECORD +338 -334
  335. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/LICENSE.txt +0 -0
  336. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/NOTICE +0 -0
  337. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/WHEEL +0 -0
  338. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/entry_points.txt +0 -0
@@ -550,6 +550,20 @@
550
550
 
551
551
 
552
552
 
553
+ <li class="md-nav__item">
554
+ <a href="../../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
555
+ Health Checks
556
+ </a>
557
+ </li>
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
553
567
  <li class="md-nav__item">
554
568
  <a href="../../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
555
569
  SELinux Troubleshooting
@@ -3888,8 +3902,8 @@
3888
3902
 
3889
3903
 
3890
3904
  <li class="md-nav__item">
3891
- <a href="../../../development/apps/api/ui-extensions/object-detail-views.html" class="md-nav__link">
3892
- Object Detail Views and Tabs
3905
+ <a href="../../../development/apps/api/ui-extensions/object-views.html" class="md-nav__link">
3906
+ Object Detail & List Views
3893
3907
  </a>
3894
3908
  </li>
3895
3909
 
@@ -4663,6 +4677,13 @@
4663
4677
  left_page()
4664
4678
  </a>
4665
4679
 
4680
+ </li>
4681
+
4682
+ <li class="md-nav__item">
4683
+ <a href="#nautobot.extras.plugins.TemplateExtension.list_buttons" class="md-nav__link">
4684
+ list_buttons()
4685
+ </a>
4686
+
4666
4687
  </li>
4667
4688
 
4668
4689
  <li class="md-nav__item">
@@ -5071,6 +5092,20 @@
5071
5092
 
5072
5093
 
5073
5094
 
5095
+ <li class="md-nav__item">
5096
+ <a href="../../../development/core/caching.html" class="md-nav__link">
5097
+ Caching
5098
+ </a>
5099
+ </li>
5100
+
5101
+
5102
+
5103
+
5104
+
5105
+
5106
+
5107
+
5108
+
5074
5109
  <li class="md-nav__item">
5075
5110
  <a href="../../../development/core/extending-models.html" class="md-nav__link">
5076
5111
  Extending Models
@@ -6096,6 +6131,13 @@
6096
6131
  left_page()
6097
6132
  </a>
6098
6133
 
6134
+ </li>
6135
+
6136
+ <li class="md-nav__item">
6137
+ <a href="#nautobot.extras.plugins.TemplateExtension.list_buttons" class="md-nav__link">
6138
+ list_buttons()
6139
+ </a>
6140
+
6099
6141
  </li>
6100
6142
 
6101
6143
  <li class="md-nav__item">
@@ -6178,21 +6220,21 @@
6178
6220
 
6179
6221
  <details class="quote">
6180
6222
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
6181
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-377">377</a></span>
6182
- <span class="normal"><a href="#__codelineno-0-378">378</a></span>
6183
- <span class="normal"><a href="#__codelineno-0-379">379</a></span>
6184
- <span class="normal"><a href="#__codelineno-0-380">380</a></span>
6185
- <span class="normal"><a href="#__codelineno-0-381">381</a></span>
6186
- <span class="normal"><a href="#__codelineno-0-382">382</a></span>
6187
- <span class="normal"><a href="#__codelineno-0-383">383</a></span>
6188
- <span class="normal"><a href="#__codelineno-0-384">384</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="k">class</span> <span class="nc">Banner</span><span class="p">:</span>
6189
- <a id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Class that may be returned by a registered plugin_banners function.&quot;&quot;&quot;</span>
6190
- <a id="__codelineno-0-379" name="__codelineno-0-379"></a>
6191
- <a id="__codelineno-0-380" name="__codelineno-0-380"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">content</span><span class="p">,</span> <span class="n">banner_class</span><span class="o">=</span><span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">CLASS_INFO</span><span class="p">):</span>
6192
- <a id="__codelineno-0-381" name="__codelineno-0-381"></a> <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">content</span>
6193
- <a id="__codelineno-0-382" name="__codelineno-0-382"></a> <span class="k">if</span> <span class="n">banner_class</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
6194
- <a id="__codelineno-0-383" name="__codelineno-0-383"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Banner class must be a choice within BannerClassChoices.&quot;</span><span class="p">)</span>
6195
- <a id="__codelineno-0-384" name="__codelineno-0-384"></a> <span class="bp">self</span><span class="o">.</span><span class="n">banner_class</span> <span class="o">=</span> <span class="n">banner_class</span>
6223
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-385">385</a></span>
6224
+ <span class="normal"><a href="#__codelineno-0-386">386</a></span>
6225
+ <span class="normal"><a href="#__codelineno-0-387">387</a></span>
6226
+ <span class="normal"><a href="#__codelineno-0-388">388</a></span>
6227
+ <span class="normal"><a href="#__codelineno-0-389">389</a></span>
6228
+ <span class="normal"><a href="#__codelineno-0-390">390</a></span>
6229
+ <span class="normal"><a href="#__codelineno-0-391">391</a></span>
6230
+ <span class="normal"><a href="#__codelineno-0-392">392</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-385" name="__codelineno-0-385"></a><span class="k">class</span> <span class="nc">Banner</span><span class="p">:</span>
6231
+ <a id="__codelineno-0-386" name="__codelineno-0-386"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Class that may be returned by a registered plugin_banners function.&quot;&quot;&quot;</span>
6232
+ <a id="__codelineno-0-387" name="__codelineno-0-387"></a>
6233
+ <a id="__codelineno-0-388" name="__codelineno-0-388"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">content</span><span class="p">,</span> <span class="n">banner_class</span><span class="o">=</span><span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">CLASS_INFO</span><span class="p">):</span>
6234
+ <a id="__codelineno-0-389" name="__codelineno-0-389"></a> <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">content</span>
6235
+ <a id="__codelineno-0-390" name="__codelineno-0-390"></a> <span class="k">if</span> <span class="n">banner_class</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
6236
+ <a id="__codelineno-0-391" name="__codelineno-0-391"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Banner class must be a choice within BannerClassChoices.&quot;</span><span class="p">)</span>
6237
+ <a id="__codelineno-0-392" name="__codelineno-0-392"></a> <span class="bp">self</span><span class="o">.</span><span class="n">banner_class</span> <span class="o">=</span> <span class="n">banner_class</span>
6196
6238
  </code></pre></div></td></tr></table></div>
6197
6239
  </details>
6198
6240
 
@@ -6306,49 +6348,49 @@
6306
6348
 
6307
6349
  <details class="quote">
6308
6350
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
6309
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-177">177</a></span>
6310
- <span class="normal"><a href="#__codelineno-0-178">178</a></span>
6311
- <span class="normal"><a href="#__codelineno-0-179">179</a></span>
6312
- <span class="normal"><a href="#__codelineno-0-180">180</a></span>
6313
- <span class="normal"><a href="#__codelineno-0-181">181</a></span>
6314
- <span class="normal"><a href="#__codelineno-0-182">182</a></span>
6315
- <span class="normal"><a href="#__codelineno-0-183">183</a></span>
6316
- <span class="normal"><a href="#__codelineno-0-184">184</a></span>
6317
- <span class="normal"><a href="#__codelineno-0-185">185</a></span>
6318
- <span class="normal"><a href="#__codelineno-0-186">186</a></span>
6319
- <span class="normal"><a href="#__codelineno-0-187">187</a></span>
6320
- <span class="normal"><a href="#__codelineno-0-188">188</a></span>
6321
- <span class="normal"><a href="#__codelineno-0-189">189</a></span>
6322
- <span class="normal"><a href="#__codelineno-0-190">190</a></span>
6323
- <span class="normal"><a href="#__codelineno-0-191">191</a></span>
6324
- <span class="normal"><a href="#__codelineno-0-192">192</a></span>
6325
- <span class="normal"><a href="#__codelineno-0-193">193</a></span>
6326
- <span class="normal"><a href="#__codelineno-0-194">194</a></span>
6327
- <span class="normal"><a href="#__codelineno-0-195">195</a></span>
6328
- <span class="normal"><a href="#__codelineno-0-196">196</a></span>
6329
- <span class="normal"><a href="#__codelineno-0-197">197</a></span>
6330
- <span class="normal"><a href="#__codelineno-0-198">198</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-177" name="__codelineno-0-177"></a><span class="k">class</span> <span class="nc">ButtonColorChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
6331
- <a id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6332
- <a id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="sd"> Map standard button color choices to Bootstrap color classes</span>
6333
- <a id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="sd"> &quot;&quot;&quot;</span>
6334
- <a id="__codelineno-0-181" name="__codelineno-0-181"></a>
6335
- <a id="__codelineno-0-182" name="__codelineno-0-182"></a> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
6336
- <a id="__codelineno-0-183" name="__codelineno-0-183"></a> <span class="n">BLUE</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
6337
- <a id="__codelineno-0-184" name="__codelineno-0-184"></a> <span class="n">GREY</span> <span class="o">=</span> <span class="s2">&quot;secondary&quot;</span>
6338
- <a id="__codelineno-0-185" name="__codelineno-0-185"></a> <span class="n">GREEN</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
6339
- <a id="__codelineno-0-186" name="__codelineno-0-186"></a> <span class="n">RED</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
6340
- <a id="__codelineno-0-187" name="__codelineno-0-187"></a> <span class="n">YELLOW</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
6341
- <a id="__codelineno-0-188" name="__codelineno-0-188"></a> <span class="n">BLACK</span> <span class="o">=</span> <span class="s2">&quot;dark&quot;</span>
6342
- <a id="__codelineno-0-189" name="__codelineno-0-189"></a>
6343
- <a id="__codelineno-0-190" name="__codelineno-0-190"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
6344
- <a id="__codelineno-0-191" name="__codelineno-0-191"></a> <span class="p">(</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="s2">&quot;Default&quot;</span><span class="p">),</span>
6345
- <a id="__codelineno-0-192" name="__codelineno-0-192"></a> <span class="p">(</span><span class="n">BLUE</span><span class="p">,</span> <span class="s2">&quot;Blue&quot;</span><span class="p">),</span>
6346
- <a id="__codelineno-0-193" name="__codelineno-0-193"></a> <span class="p">(</span><span class="n">GREY</span><span class="p">,</span> <span class="s2">&quot;Grey&quot;</span><span class="p">),</span>
6347
- <a id="__codelineno-0-194" name="__codelineno-0-194"></a> <span class="p">(</span><span class="n">GREEN</span><span class="p">,</span> <span class="s2">&quot;Green&quot;</span><span class="p">),</span>
6348
- <a id="__codelineno-0-195" name="__codelineno-0-195"></a> <span class="p">(</span><span class="n">RED</span><span class="p">,</span> <span class="s2">&quot;Red&quot;</span><span class="p">),</span>
6349
- <a id="__codelineno-0-196" name="__codelineno-0-196"></a> <span class="p">(</span><span class="n">YELLOW</span><span class="p">,</span> <span class="s2">&quot;Yellow&quot;</span><span class="p">),</span>
6350
- <a id="__codelineno-0-197" name="__codelineno-0-197"></a> <span class="p">(</span><span class="n">BLACK</span><span class="p">,</span> <span class="s2">&quot;Black&quot;</span><span class="p">),</span>
6351
- <a id="__codelineno-0-198" name="__codelineno-0-198"></a> <span class="p">)</span>
6351
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-156">156</a></span>
6352
+ <span class="normal"><a href="#__codelineno-0-157">157</a></span>
6353
+ <span class="normal"><a href="#__codelineno-0-158">158</a></span>
6354
+ <span class="normal"><a href="#__codelineno-0-159">159</a></span>
6355
+ <span class="normal"><a href="#__codelineno-0-160">160</a></span>
6356
+ <span class="normal"><a href="#__codelineno-0-161">161</a></span>
6357
+ <span class="normal"><a href="#__codelineno-0-162">162</a></span>
6358
+ <span class="normal"><a href="#__codelineno-0-163">163</a></span>
6359
+ <span class="normal"><a href="#__codelineno-0-164">164</a></span>
6360
+ <span class="normal"><a href="#__codelineno-0-165">165</a></span>
6361
+ <span class="normal"><a href="#__codelineno-0-166">166</a></span>
6362
+ <span class="normal"><a href="#__codelineno-0-167">167</a></span>
6363
+ <span class="normal"><a href="#__codelineno-0-168">168</a></span>
6364
+ <span class="normal"><a href="#__codelineno-0-169">169</a></span>
6365
+ <span class="normal"><a href="#__codelineno-0-170">170</a></span>
6366
+ <span class="normal"><a href="#__codelineno-0-171">171</a></span>
6367
+ <span class="normal"><a href="#__codelineno-0-172">172</a></span>
6368
+ <span class="normal"><a href="#__codelineno-0-173">173</a></span>
6369
+ <span class="normal"><a href="#__codelineno-0-174">174</a></span>
6370
+ <span class="normal"><a href="#__codelineno-0-175">175</a></span>
6371
+ <span class="normal"><a href="#__codelineno-0-176">176</a></span>
6372
+ <span class="normal"><a href="#__codelineno-0-177">177</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-156" name="__codelineno-0-156"></a><span class="k">class</span> <span class="nc">ButtonColorChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
6373
+ <a id="__codelineno-0-157" name="__codelineno-0-157"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6374
+ <a id="__codelineno-0-158" name="__codelineno-0-158"></a><span class="sd"> Map standard button color choices to Bootstrap color classes</span>
6375
+ <a id="__codelineno-0-159" name="__codelineno-0-159"></a><span class="sd"> &quot;&quot;&quot;</span>
6376
+ <a id="__codelineno-0-160" name="__codelineno-0-160"></a>
6377
+ <a id="__codelineno-0-161" name="__codelineno-0-161"></a> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
6378
+ <a id="__codelineno-0-162" name="__codelineno-0-162"></a> <span class="n">BLUE</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
6379
+ <a id="__codelineno-0-163" name="__codelineno-0-163"></a> <span class="n">GREY</span> <span class="o">=</span> <span class="s2">&quot;secondary&quot;</span>
6380
+ <a id="__codelineno-0-164" name="__codelineno-0-164"></a> <span class="n">GREEN</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
6381
+ <a id="__codelineno-0-165" name="__codelineno-0-165"></a> <span class="n">RED</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
6382
+ <a id="__codelineno-0-166" name="__codelineno-0-166"></a> <span class="n">YELLOW</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
6383
+ <a id="__codelineno-0-167" name="__codelineno-0-167"></a> <span class="n">BLACK</span> <span class="o">=</span> <span class="s2">&quot;dark&quot;</span>
6384
+ <a id="__codelineno-0-168" name="__codelineno-0-168"></a>
6385
+ <a id="__codelineno-0-169" name="__codelineno-0-169"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
6386
+ <a id="__codelineno-0-170" name="__codelineno-0-170"></a> <span class="p">(</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="s2">&quot;Default&quot;</span><span class="p">),</span>
6387
+ <a id="__codelineno-0-171" name="__codelineno-0-171"></a> <span class="p">(</span><span class="n">BLUE</span><span class="p">,</span> <span class="s2">&quot;Blue&quot;</span><span class="p">),</span>
6388
+ <a id="__codelineno-0-172" name="__codelineno-0-172"></a> <span class="p">(</span><span class="n">GREY</span><span class="p">,</span> <span class="s2">&quot;Grey&quot;</span><span class="p">),</span>
6389
+ <a id="__codelineno-0-173" name="__codelineno-0-173"></a> <span class="p">(</span><span class="n">GREEN</span><span class="p">,</span> <span class="s2">&quot;Green&quot;</span><span class="p">),</span>
6390
+ <a id="__codelineno-0-174" name="__codelineno-0-174"></a> <span class="p">(</span><span class="n">RED</span><span class="p">,</span> <span class="s2">&quot;Red&quot;</span><span class="p">),</span>
6391
+ <a id="__codelineno-0-175" name="__codelineno-0-175"></a> <span class="p">(</span><span class="n">YELLOW</span><span class="p">,</span> <span class="s2">&quot;Yellow&quot;</span><span class="p">),</span>
6392
+ <a id="__codelineno-0-176" name="__codelineno-0-176"></a> <span class="p">(</span><span class="n">BLACK</span><span class="p">,</span> <span class="s2">&quot;Black&quot;</span><span class="p">),</span>
6393
+ <a id="__codelineno-0-177" name="__codelineno-0-177"></a> <span class="p">)</span>
6352
6394
  </code></pre></div></td></tr></table></div>
6353
6395
  </details>
6354
6396
 
@@ -9692,7 +9734,15 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
9692
9734
  <span class="normal"><a href="#__codelineno-0-350">350</a></span>
9693
9735
  <span class="normal"><a href="#__codelineno-0-351">351</a></span>
9694
9736
  <span class="normal"><a href="#__codelineno-0-352">352</a></span>
9695
- <span class="normal"><a href="#__codelineno-0-353">353</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="k">class</span> <span class="nc">TemplateExtension</span><span class="p">:</span>
9737
+ <span class="normal"><a href="#__codelineno-0-353">353</a></span>
9738
+ <span class="normal"><a href="#__codelineno-0-354">354</a></span>
9739
+ <span class="normal"><a href="#__codelineno-0-355">355</a></span>
9740
+ <span class="normal"><a href="#__codelineno-0-356">356</a></span>
9741
+ <span class="normal"><a href="#__codelineno-0-357">357</a></span>
9742
+ <span class="normal"><a href="#__codelineno-0-358">358</a></span>
9743
+ <span class="normal"><a href="#__codelineno-0-359">359</a></span>
9744
+ <span class="normal"><a href="#__codelineno-0-360">360</a></span>
9745
+ <span class="normal"><a href="#__codelineno-0-361">361</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="k">class</span> <span class="nc">TemplateExtension</span><span class="p">:</span>
9696
9746
  <a id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9697
9747
  <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="sd"> This class is used to register plugin content to be injected into core Nautobot templates. It contains methods</span>
9698
9748
  <a id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="sd"> that are overridden by plugin authors to return template content.</span>
@@ -9752,26 +9802,34 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
9752
9802
  <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> &quot;&quot;&quot;</span>
9753
9803
  <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9754
9804
  <a id="__codelineno-0-333" name="__codelineno-0-333"></a>
9755
- <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9805
+ <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="k">def</span> <span class="nf">list_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9756
9806
  <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9757
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9758
- <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9759
- <a id="__codelineno-0-338" name="__codelineno-0-338"></a>
9760
- <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9761
- <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> ```</span>
9762
- <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> [</span>
9763
- <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> {</span>
9764
- <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9765
- <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9766
- <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> },</span>
9767
- <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> {</span>
9768
- <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9769
- <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9770
- <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> },</span>
9771
- <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> ]</span>
9772
- <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ```</span>
9773
- <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;&quot;&quot;</span>
9774
- <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9807
+ <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the list page view. Content</span>
9808
+ <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
9809
+ <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> automatically handled.</span>
9810
+ <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> &quot;&quot;&quot;</span>
9811
+ <a id="__codelineno-0-340" name="__codelineno-0-340"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9812
+ <a id="__codelineno-0-341" name="__codelineno-0-341"></a>
9813
+ <a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9814
+ <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9815
+ <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9816
+ <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9817
+ <a id="__codelineno-0-346" name="__codelineno-0-346"></a>
9818
+ <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9819
+ <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> ```</span>
9820
+ <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> [</span>
9821
+ <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> {</span>
9822
+ <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9823
+ <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9824
+ <a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="sd"> },</span>
9825
+ <a id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="sd"> {</span>
9826
+ <a id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9827
+ <a id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9828
+ <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="sd"> },</span>
9829
+ <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> ]</span>
9830
+ <a id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="sd"> ```</span>
9831
+ <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> &quot;&quot;&quot;</span>
9832
+ <a id="__codelineno-0-361" name="__codelineno-0-361"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9775
9833
  </code></pre></div></td></tr></table></div>
9776
9834
  </details>
9777
9835
 
@@ -9855,15 +9913,7 @@ Tabs will be ordered by their position in the list.</p>
9855
9913
 
9856
9914
  <details class="quote">
9857
9915
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9858
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-334">334</a></span>
9859
- <span class="normal"><a href="#__codelineno-0-335">335</a></span>
9860
- <span class="normal"><a href="#__codelineno-0-336">336</a></span>
9861
- <span class="normal"><a href="#__codelineno-0-337">337</a></span>
9862
- <span class="normal"><a href="#__codelineno-0-338">338</a></span>
9863
- <span class="normal"><a href="#__codelineno-0-339">339</a></span>
9864
- <span class="normal"><a href="#__codelineno-0-340">340</a></span>
9865
- <span class="normal"><a href="#__codelineno-0-341">341</a></span>
9866
- <span class="normal"><a href="#__codelineno-0-342">342</a></span>
9916
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-342">342</a></span>
9867
9917
  <span class="normal"><a href="#__codelineno-0-343">343</a></span>
9868
9918
  <span class="normal"><a href="#__codelineno-0-344">344</a></span>
9869
9919
  <span class="normal"><a href="#__codelineno-0-345">345</a></span>
@@ -9874,26 +9924,34 @@ Tabs will be ordered by their position in the list.</p>
9874
9924
  <span class="normal"><a href="#__codelineno-0-350">350</a></span>
9875
9925
  <span class="normal"><a href="#__codelineno-0-351">351</a></span>
9876
9926
  <span class="normal"><a href="#__codelineno-0-352">352</a></span>
9877
- <span class="normal"><a href="#__codelineno-0-353">353</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9878
- <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9879
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9880
- <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9881
- <a id="__codelineno-0-338" name="__codelineno-0-338"></a>
9882
- <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9883
- <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> ```</span>
9884
- <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> [</span>
9885
- <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> {</span>
9886
- <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9887
- <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9888
- <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> },</span>
9889
- <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> {</span>
9890
- <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9891
- <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9892
- <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> },</span>
9893
- <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> ]</span>
9894
- <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ```</span>
9895
- <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;&quot;&quot;</span>
9896
- <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9927
+ <span class="normal"><a href="#__codelineno-0-353">353</a></span>
9928
+ <span class="normal"><a href="#__codelineno-0-354">354</a></span>
9929
+ <span class="normal"><a href="#__codelineno-0-355">355</a></span>
9930
+ <span class="normal"><a href="#__codelineno-0-356">356</a></span>
9931
+ <span class="normal"><a href="#__codelineno-0-357">357</a></span>
9932
+ <span class="normal"><a href="#__codelineno-0-358">358</a></span>
9933
+ <span class="normal"><a href="#__codelineno-0-359">359</a></span>
9934
+ <span class="normal"><a href="#__codelineno-0-360">360</a></span>
9935
+ <span class="normal"><a href="#__codelineno-0-361">361</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9936
+ <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9937
+ <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9938
+ <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9939
+ <a id="__codelineno-0-346" name="__codelineno-0-346"></a>
9940
+ <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9941
+ <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> ```</span>
9942
+ <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> [</span>
9943
+ <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> {</span>
9944
+ <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9945
+ <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9946
+ <a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="sd"> },</span>
9947
+ <a id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="sd"> {</span>
9948
+ <a id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9949
+ <a id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9950
+ <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="sd"> },</span>
9951
+ <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> ]</span>
9952
+ <a id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="sd"> ```</span>
9953
+ <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> &quot;&quot;&quot;</span>
9954
+ <a id="__codelineno-0-361" name="__codelineno-0-361"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9897
9955
  </code></pre></div></td></tr></table></div>
9898
9956
  </details>
9899
9957
  </div>
@@ -9975,6 +10033,44 @@ HTML string. Note that content does not need to be marked as safe because this i
9975
10033
 
9976
10034
 
9977
10035
 
10036
+ <h3 id="nautobot.extras.plugins.TemplateExtension.list_buttons" class="doc doc-heading">
10037
+ <code class="highlight language-python"><span class="n">list_buttons</span><span class="p">()</span></code>
10038
+
10039
+ <a href="#nautobot.extras.plugins.TemplateExtension.list_buttons" class="headerlink" title="Permanent link">&para;</a></h3>
10040
+
10041
+
10042
+ <div class="doc doc-contents ">
10043
+
10044
+ <p>Buttons that will be rendered and added to the existing list of buttons on the list page view. Content
10045
+ should be returned as an HTML string. Note that content does not need to be marked as safe because this is
10046
+ automatically handled.</p>
10047
+
10048
+ <details class="quote">
10049
+ <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
10050
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-334">334</a></span>
10051
+ <span class="normal"><a href="#__codelineno-0-335">335</a></span>
10052
+ <span class="normal"><a href="#__codelineno-0-336">336</a></span>
10053
+ <span class="normal"><a href="#__codelineno-0-337">337</a></span>
10054
+ <span class="normal"><a href="#__codelineno-0-338">338</a></span>
10055
+ <span class="normal"><a href="#__codelineno-0-339">339</a></span>
10056
+ <span class="normal"><a href="#__codelineno-0-340">340</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="k">def</span> <span class="nf">list_buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
10057
+ <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
10058
+ <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the list page view. Content</span>
10059
+ <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
10060
+ <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> automatically handled.</span>
10061
+ <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> &quot;&quot;&quot;</span>
10062
+ <a id="__codelineno-0-340" name="__codelineno-0-340"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
10063
+ </code></pre></div></td></tr></table></div>
10064
+ </details>
10065
+ </div>
10066
+
10067
+ </div>
10068
+
10069
+
10070
+ <div class="doc doc-object doc-function">
10071
+
10072
+
10073
+
9978
10074
  <h3 id="nautobot.extras.plugins.TemplateExtension.render" class="doc doc-heading">
9979
10075
  <code class="highlight language-python"><span class="n">render</span><span class="p">(</span><span class="n">template_name</span><span class="p">,</span> <span class="n">extra_context</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span></code>
9980
10076
 
@@ -550,6 +550,20 @@
550
550
 
551
551
 
552
552
 
553
+ <li class="md-nav__item">
554
+ <a href="../../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
555
+ Health Checks
556
+ </a>
557
+ </li>
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
553
567
  <li class="md-nav__item">
554
568
  <a href="../../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
555
569
  SELinux Troubleshooting
@@ -3888,8 +3902,8 @@
3888
3902
 
3889
3903
 
3890
3904
  <li class="md-nav__item">
3891
- <a href="../../../development/apps/api/ui-extensions/object-detail-views.html" class="md-nav__link">
3892
- Object Detail Views and Tabs
3905
+ <a href="../../../development/apps/api/ui-extensions/object-views.html" class="md-nav__link">
3906
+ Object Detail & List Views
3893
3907
  </a>
3894
3908
  </li>
3895
3909
 
@@ -4631,6 +4645,20 @@
4631
4645
 
4632
4646
 
4633
4647
 
4648
+ <li class="md-nav__item">
4649
+ <a href="../../../development/core/caching.html" class="md-nav__link">
4650
+ Caching
4651
+ </a>
4652
+ </li>
4653
+
4654
+
4655
+
4656
+
4657
+
4658
+
4659
+
4660
+
4661
+
4634
4662
  <li class="md-nav__item">
4635
4663
  <a href="../../../development/core/extending-models.html" class="md-nav__link">
4636
4664
  Extending Models