nautobot 2.4.15__py3-none-any.whl → 2.4.17__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 (374) hide show
  1. nautobot/apps/utils.py +2 -0
  2. nautobot/cloud/templates/cloud/cloudresourcetype_retrieve.html +3 -3
  3. nautobot/cloud/views.py +7 -0
  4. nautobot/core/apps/__init__.py +1 -0
  5. nautobot/core/celery/__init__.py +2 -1
  6. nautobot/core/templates/components/panel/panel.html +1 -1
  7. nautobot/core/templates/inc/paginator.html +3 -3
  8. nautobot/core/templates/inc/table.html +2 -2
  9. nautobot/core/templatetags/helpers.py +80 -6
  10. nautobot/core/testing/mixins.py +1 -1
  11. nautobot/core/testing/views.py +2 -4
  12. nautobot/core/ui/bulk_buttons.py +53 -53
  13. nautobot/core/ui/object_detail.py +9 -4
  14. nautobot/core/utils/data.py +13 -0
  15. nautobot/core/utils/deprecation.py +2 -0
  16. nautobot/dcim/migrations/0073_alter_powerport_power_factor_and_more.py +41 -0
  17. nautobot/dcim/models/device_component_templates.py +4 -2
  18. nautobot/dcim/models/device_components.py +3 -2
  19. nautobot/dcim/templates/dcim/rack_elevation_list.html +4 -4
  20. nautobot/dcim/views.py +9 -0
  21. nautobot/extras/models/customfields.py +45 -9
  22. nautobot/extras/tables.py +12 -0
  23. nautobot/extras/templates/extras/configcontext_retrieve.html +1 -1
  24. nautobot/extras/templates/extras/configcontext_update.html +49 -49
  25. nautobot/extras/templates/extras/configcontextschema_retrieve.html +47 -47
  26. nautobot/extras/templates/extras/configcontextschema_update.html +18 -18
  27. nautobot/extras/templates/extras/inc/job_table.html +1 -1
  28. nautobot/extras/templates/extras/inc/object_contact_header.html +2 -2
  29. nautobot/extras/templates/extras/marketplace.html +1 -1
  30. nautobot/extras/templates/extras/note_retrieve.html +53 -53
  31. nautobot/extras/templates/extras/secretsgroup_retrieve.html +2 -29
  32. nautobot/extras/templates/extras/tag_retrieve.html +1 -1
  33. nautobot/extras/templates/extras/tag_update.html +14 -14
  34. nautobot/extras/templates/extras/team_retrieve.html +1 -1
  35. nautobot/extras/tests/test_models.py +216 -0
  36. nautobot/extras/tests/test_plugins.py +12 -0
  37. nautobot/extras/tests/test_views.py +2 -2
  38. nautobot/extras/views.py +20 -4
  39. nautobot/ipam/apps.py +1 -0
  40. nautobot/ipam/jobs/__init__.py +10 -0
  41. nautobot/ipam/jobs/cleanup.py +296 -0
  42. nautobot/ipam/models.py +301 -178
  43. nautobot/ipam/templates/ipam/inc/ipadress_edit_header.html +3 -3
  44. nautobot/ipam/templates/ipam/inc/toggle_available.html +2 -2
  45. nautobot/ipam/templates/ipam/ipaddress_assign.html +1 -1
  46. nautobot/ipam/templates/ipam/prefix_list.html +1 -1
  47. nautobot/ipam/templates/ipam/vlan_retrieve.html +1 -77
  48. nautobot/ipam/tests/test_jobs.py +454 -0
  49. nautobot/ipam/tests/test_models.py +290 -122
  50. nautobot/ipam/tests/test_views.py +40 -164
  51. nautobot/ipam/urls.py +0 -11
  52. nautobot/ipam/utils/testing.py +9 -4
  53. nautobot/ipam/views.py +166 -235
  54. nautobot/project-static/docs/404.html +9 -6
  55. nautobot/project-static/docs/apps/index.html +9 -6
  56. nautobot/project-static/docs/apps/nautobot-apps.html +9 -6
  57. nautobot/project-static/docs/assets/javascripts/bundle.92b07e13.min.js +16 -0
  58. nautobot/project-static/docs/assets/javascripts/{bundle.50899def.min.js.map → bundle.92b07e13.min.js.map} +2 -2
  59. nautobot/project-static/docs/assets/javascripts/workers/{search.d50fe291.min.js → search.973d3a69.min.js} +4 -4
  60. nautobot/project-static/docs/assets/javascripts/workers/{search.d50fe291.min.js.map → search.973d3a69.min.js.map} +1 -1
  61. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +9 -6
  62. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +9 -6
  63. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +9 -6
  64. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +9 -6
  65. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +10 -7
  66. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +9 -6
  67. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +9 -6
  68. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +9 -6
  69. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9 -6
  70. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +9 -6
  71. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +9 -6
  72. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +9 -6
  73. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +9 -6
  74. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +9 -6
  75. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +9 -6
  76. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +11 -8
  77. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +9 -6
  78. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +9 -6
  79. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +11 -8
  80. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +9 -6
  81. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +28 -9
  82. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +9 -6
  83. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +69 -7
  84. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +9 -6
  85. nautobot/project-static/docs/development/apps/api/configuration-view.html +13 -10
  86. nautobot/project-static/docs/development/apps/api/database-backend-config.html +11 -8
  87. nautobot/project-static/docs/development/apps/api/models/django-admin.html +13 -10
  88. nautobot/project-static/docs/development/apps/api/models/global-search.html +10 -7
  89. nautobot/project-static/docs/development/apps/api/models/graphql.html +18 -15
  90. nautobot/project-static/docs/development/apps/api/models/index.html +14 -11
  91. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +11 -8
  92. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +15 -12
  93. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +9 -6
  94. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +15 -12
  95. nautobot/project-static/docs/development/apps/api/platform-features/index.html +9 -6
  96. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +11 -8
  97. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +16 -13
  98. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +12 -10305
  99. nautobot/project-static/docs/development/apps/api/platform-features/prepopulating-data.html +10722 -0
  100. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +15 -12
  101. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +14 -11
  102. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +9 -6
  103. nautobot/project-static/docs/development/apps/api/prometheus.html +15 -12
  104. nautobot/project-static/docs/development/apps/api/setup.html +9 -6
  105. nautobot/project-static/docs/development/apps/api/testing.html +9 -6
  106. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +12 -9
  107. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +9 -6
  108. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +9 -6
  109. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +9 -6
  110. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +20 -17
  111. nautobot/project-static/docs/development/apps/api/views/base-template.html +9 -6
  112. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +15 -12
  113. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +14 -11
  114. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +9 -6
  115. nautobot/project-static/docs/development/apps/api/views/index.html +9 -6
  116. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +10 -7
  117. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +24 -21
  118. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +12 -9
  119. nautobot/project-static/docs/development/apps/api/views/notes.html +10 -7
  120. nautobot/project-static/docs/development/apps/api/views/rest-api.html +19 -16
  121. nautobot/project-static/docs/development/apps/api/views/urls.html +11 -8
  122. nautobot/project-static/docs/development/apps/index.html +9 -6
  123. nautobot/project-static/docs/development/apps/migration/code-updates.html +19 -16
  124. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +9 -6
  125. nautobot/project-static/docs/development/apps/migration/from-v1.html +9 -6
  126. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +22 -19
  127. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +9 -6
  128. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +9 -6
  129. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +9 -6
  130. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9 -6
  131. nautobot/project-static/docs/development/apps/migration/ui-component-framework/breadcrumbs-titles.html +14 -11
  132. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +27 -24
  133. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +20 -17
  134. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +20 -17
  135. nautobot/project-static/docs/development/apps/porting-from-netbox.html +9 -6
  136. nautobot/project-static/docs/development/core/application-registry.html +23 -20
  137. nautobot/project-static/docs/development/core/best-practices.html +23 -20
  138. nautobot/project-static/docs/development/core/bootstrap-ui.html +9 -6
  139. nautobot/project-static/docs/development/core/caching.html +9 -6
  140. nautobot/project-static/docs/development/core/controllers.html +9 -6
  141. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +10 -7
  142. nautobot/project-static/docs/development/core/generic-views.html +9 -6
  143. nautobot/project-static/docs/development/core/getting-started.html +9 -6
  144. nautobot/project-static/docs/development/core/homepage.html +12 -9
  145. nautobot/project-static/docs/development/core/index.html +9 -6
  146. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9 -6
  147. nautobot/project-static/docs/development/core/model-checklist.html +9 -6
  148. nautobot/project-static/docs/development/core/model-features.html +11 -8
  149. nautobot/project-static/docs/development/core/natural-keys.html +21 -18
  150. nautobot/project-static/docs/development/core/navigation-menu.html +10 -7
  151. nautobot/project-static/docs/development/core/release-checklist.html +9 -6
  152. nautobot/project-static/docs/development/core/role-internals.html +9 -6
  153. nautobot/project-static/docs/development/core/settings.html +9 -6
  154. nautobot/project-static/docs/development/core/style-guide.html +32 -29
  155. nautobot/project-static/docs/development/core/templates.html +9 -6
  156. nautobot/project-static/docs/development/core/testing.html +10 -7
  157. nautobot/project-static/docs/development/core/ui-component-framework.html +36 -33
  158. nautobot/project-static/docs/development/core/user-preferences.html +9 -6
  159. nautobot/project-static/docs/development/index.html +9 -6
  160. nautobot/project-static/docs/development/jobs/getting-started.html +13 -10
  161. nautobot/project-static/docs/development/jobs/index.html +9 -6
  162. nautobot/project-static/docs/development/jobs/installation.html +23 -20
  163. nautobot/project-static/docs/development/jobs/job-extensions.html +25 -22
  164. nautobot/project-static/docs/development/jobs/job-logging.html +12 -9
  165. nautobot/project-static/docs/development/jobs/job-patterns.html +45 -42
  166. nautobot/project-static/docs/development/jobs/job-structure.html +53 -50
  167. nautobot/project-static/docs/development/jobs/migration/from-v1.html +23 -20
  168. nautobot/project-static/docs/development/jobs/testing.html +14 -11
  169. nautobot/project-static/docs/index.html +9 -6
  170. nautobot/project-static/docs/objects.inv +0 -0
  171. nautobot/project-static/docs/overview/application_stack.html +9 -6
  172. nautobot/project-static/docs/overview/design_philosophy.html +9 -6
  173. nautobot/project-static/docs/release-notes/index.html +9 -6
  174. nautobot/project-static/docs/release-notes/version-1.0.html +9 -6
  175. nautobot/project-static/docs/release-notes/version-1.1.html +9 -6
  176. nautobot/project-static/docs/release-notes/version-1.2.html +10 -7
  177. nautobot/project-static/docs/release-notes/version-1.3.html +9 -6
  178. nautobot/project-static/docs/release-notes/version-1.4.html +9 -6
  179. nautobot/project-static/docs/release-notes/version-1.5.html +13 -10
  180. nautobot/project-static/docs/release-notes/version-1.6.html +9 -6
  181. nautobot/project-static/docs/release-notes/version-2.0.html +9 -6
  182. nautobot/project-static/docs/release-notes/version-2.1.html +9 -6
  183. nautobot/project-static/docs/release-notes/version-2.2.html +9 -6
  184. nautobot/project-static/docs/release-notes/version-2.3.html +9 -6
  185. nautobot/project-static/docs/release-notes/version-2.4.html +342 -6
  186. nautobot/project-static/docs/requirements.txt +2 -2
  187. nautobot/project-static/docs/search/search_index.json +1 -1
  188. nautobot/project-static/docs/sitemap.xml +301 -301
  189. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  190. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +15 -12
  191. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +9 -6
  192. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +16 -13
  193. nautobot/project-static/docs/user-guide/administration/configuration/index.html +9 -6
  194. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +9 -6
  195. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +11 -8
  196. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +9 -6
  197. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +9 -6
  198. nautobot/project-static/docs/user-guide/administration/guides/docker.html +9 -6
  199. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +9 -6
  200. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +9 -6
  201. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +9 -6
  202. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +9 -6
  203. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +9 -6
  204. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +16 -13
  205. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +9 -6
  206. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +9 -6
  207. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +9 -6
  208. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +9 -6
  209. nautobot/project-static/docs/user-guide/administration/installation/index.html +9 -6
  210. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +9 -6
  211. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +9 -6
  212. nautobot/project-static/docs/user-guide/administration/installation/services.html +12 -9
  213. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +13 -10
  214. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +10 -7
  215. nautobot/project-static/docs/user-guide/administration/security/index.html +9 -6
  216. nautobot/project-static/docs/user-guide/administration/security/notices.html +9 -6
  217. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +9 -6
  218. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +10 -7
  219. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +9 -6
  220. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +9 -6
  221. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +9 -6
  222. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +9 -6
  223. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +9 -6
  224. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +9 -6
  225. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +9 -6
  226. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +15 -12
  227. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +9 -6
  228. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +9 -6
  229. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +9 -6
  230. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +9 -6
  231. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +9 -6
  232. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +9 -6
  233. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +9 -6
  234. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +9 -6
  235. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +9 -6
  236. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +9 -6
  237. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +9 -6
  238. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +9 -6
  239. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +9 -6
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +9 -6
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +9 -6
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +9 -6
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +9 -6
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +9 -6
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +9 -6
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +9 -6
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +9 -6
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +9 -6
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +9 -6
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +9 -6
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +13 -10
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +9 -6
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +9 -6
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +9 -6
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +9 -6
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +9 -6
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +9 -6
  258. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +9 -6
  259. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +9 -6
  260. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +9 -6
  261. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +9 -6
  262. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +9 -6
  263. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +9 -6
  264. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +9 -6
  265. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulefamily.html +9 -6
  266. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +9 -6
  267. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +9 -6
  268. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +9 -6
  269. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +9 -6
  270. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +9 -6
  271. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +9 -6
  272. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +9 -6
  273. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +9 -6
  274. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +9 -6
  275. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +9 -6
  276. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +9 -6
  277. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +9 -6
  278. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +9 -6
  279. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +9 -6
  280. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +9 -6
  281. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +9 -6
  282. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9 -6
  283. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +9 -6
  284. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +9 -6
  285. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +11 -8
  286. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +11 -8
  287. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +41 -41
  288. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +9 -6
  289. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +197 -54
  290. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +9 -6
  291. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +9 -6
  292. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +9 -6
  293. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +9 -6
  294. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +9 -6
  295. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +9 -6
  296. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +9 -6
  297. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +9 -6
  298. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +9 -6
  299. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +9 -6
  300. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +9 -6
  301. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +9 -6
  302. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +9 -6
  303. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +9 -6
  304. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9 -6
  305. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9 -6
  306. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9 -6
  307. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9 -6
  308. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +9 -6
  309. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +9 -6
  310. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +9 -6
  311. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +9 -6
  312. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +9 -6
  313. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +9 -6
  314. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +9 -6
  315. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +9 -6
  316. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +9 -6
  317. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +9 -6
  318. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +9 -6
  319. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +9 -6
  320. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +13 -10
  321. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +9 -6
  322. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +9 -6
  323. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +9 -6
  324. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9 -6
  325. nautobot/project-static/docs/user-guide/index.html +9 -6
  326. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +9 -6
  327. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +9 -6
  328. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +10 -7
  329. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +9 -6
  330. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +9 -6
  331. nautobot/project-static/docs/user-guide/platform-functionality/events.html +11 -8
  332. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +9 -6
  333. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +9 -6
  334. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +9 -6
  335. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +9 -6
  336. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +9 -6
  337. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +9 -6
  338. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +9 -6
  339. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +9 -6
  340. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +9 -6
  341. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +9 -6
  342. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9 -6
  343. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9 -6
  344. nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +9 -6
  345. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +9 -6
  346. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +9 -6
  347. nautobot/project-static/docs/user-guide/platform-functionality/note.html +9 -6
  348. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +12 -9
  349. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +9 -6
  350. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9 -6
  351. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +9 -6
  352. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +9 -6
  353. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +9 -6
  354. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +9 -6
  355. nautobot/project-static/docs/user-guide/platform-functionality/role.html +9 -6
  356. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +9 -6
  357. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +11 -8
  358. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +9 -6
  359. nautobot/project-static/docs/user-guide/platform-functionality/status.html +9 -6
  360. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +9 -6
  361. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +9 -6
  362. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +9 -6
  363. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +9 -6
  364. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +9 -6
  365. nautobot/project-static/fonts/UFL.txt +96 -96
  366. nautobot/project-static/js/forms.js +35 -2
  367. nautobot/virtualization/filters.py +7 -0
  368. {nautobot-2.4.15.dist-info → nautobot-2.4.17.dist-info}/METADATA +6 -6
  369. {nautobot-2.4.15.dist-info → nautobot-2.4.17.dist-info}/RECORD +373 -368
  370. nautobot/project-static/docs/assets/javascripts/bundle.50899def.min.js +0 -16
  371. {nautobot-2.4.15.dist-info → nautobot-2.4.17.dist-info}/LICENSE.txt +0 -0
  372. {nautobot-2.4.15.dist-info → nautobot-2.4.17.dist-info}/NOTICE +0 -0
  373. {nautobot-2.4.15.dist-info → nautobot-2.4.17.dist-info}/WHEEL +0 -0
  374. {nautobot-2.4.15.dist-info → nautobot-2.4.17.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.6.16">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.18">
22
22
 
23
23
 
24
24
 
@@ -35,6 +35,8 @@
35
35
 
36
36
 
37
37
 
38
+
39
+
38
40
 
39
41
 
40
42
 
@@ -7394,12 +7396,12 @@
7394
7396
 
7395
7397
 
7396
7398
  <li class="md-nav__item">
7397
- <a href="../apps/api/platform-features/populating-extensibility-features.html" class="md-nav__link">
7399
+ <a href="../apps/api/platform-features/prepopulating-data.html" class="md-nav__link">
7398
7400
 
7399
7401
 
7400
7402
 
7401
7403
  <span class="md-ellipsis">
7402
- Populating Extensibility Features
7404
+ Prepopulating Data
7403
7405
 
7404
7406
  </span>
7405
7407
 
@@ -11574,10 +11576,10 @@
11574
11576
  <ol>
11575
11577
  <li>Create a view that inherits from <code>NautobotUIViewSet</code>:</li>
11576
11578
  </ol>
11577
- <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">views</span>
11578
- <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectDetailContent</span><span class="p">,</span> <span class="n">SectionChoices</span><span class="p">,</span> <span class="n">ObjectFieldsPanel</span>
11579
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps</span><span class="w"> </span><span class="kn">import</span> <span class="n">views</span>
11580
+ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectDetailContent</span><span class="p">,</span> <span class="n">SectionChoices</span><span class="p">,</span> <span class="n">ObjectFieldsPanel</span>
11579
11581
  <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
11580
- <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">class</span> <span class="nc">ExampleUIViewSet</span><span class="p">(</span><span class="n">views</span><span class="o">.</span><span class="n">NautobotUIViewSet</span><span class="p">):</span>
11582
+ <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">class</span><span class="w"> </span><span class="nc">ExampleUIViewSet</span><span class="p">(</span><span class="n">views</span><span class="o">.</span><span class="n">NautobotUIViewSet</span><span class="p">):</span>
11581
11583
  <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">queryset</span> <span class="o">=</span> <span class="n">Example</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
11582
11584
  <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="o">...</span>
11583
11585
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
@@ -11612,7 +11614,7 @@
11612
11614
  <h3 id="buttons">Buttons<a class="headerlink" href="#buttons" title="Permanent link">&para;</a></h3>
11613
11615
  <p><code>Button</code>s are the third major building block for the UI. Defining <code>extra_buttons</code> on your <code>ObjectDetailContent</code> instance allows you to add buttons that appear at the top of the page, alongside the standard "actions" dropdown and any custom buttons added by Apps. These buttons may operate as simple hyperlinks, or may use JavaScript to provide more advanced functionality.</p>
11614
11616
  <h4 id="buttons-example">Buttons Example<a class="headerlink" href="#buttons-example" title="Permanent link">&para;</a></h4>
11615
- <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectDetailContent</span><span class="p">,</span> <span class="n">Button</span>
11617
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectDetailContent</span><span class="p">,</span> <span class="n">Button</span>
11616
11618
  <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>
11617
11619
  <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
11618
11620
  <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> <span class="n">panels</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span>
@@ -11635,7 +11637,7 @@
11635
11637
  </div>
11636
11638
  <h3 id="page-headings-and-document-titles">Page headings and document titles<a class="headerlink" href="#page-headings-and-document-titles" title="Permanent link">&para;</a></h3>
11637
11639
  <p>The Titles component provides a flexible system for generating page titles and headings based on the current view action and context.</p>
11638
- <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Titles</span>
11640
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">Titles</span>
11639
11641
  <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>
11640
11642
  <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="c1"># Create a document title instance</span>
11641
11643
  <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="n">titles</span> <span class="o">=</span> <span class="n">Titles</span><span class="p">(</span><span class="n">titles</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;list&quot;</span><span class="p">:</span> <span class="s2">&quot;{{obj_type_plural}}&quot;</span><span class="p">})</span>
@@ -11664,7 +11666,7 @@
11664
11666
  <p>By default, breadcrumbs class will add to the breadcrumbs path following items:
11665
11667
  - link to the <code>list_url</code> at the beginning
11666
11668
  - link to view the <code>object</code> details at the end</p>
11667
- <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Breadcrumbs</span><span class="p">,</span> <span class="n">ViewNameBreadcrumbItem</span><span class="p">,</span> <span class="n">ModelBreadcrumbItem</span><span class="p">,</span> <span class="n">InstanceBreadcrumbItem</span>
11669
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">Breadcrumbs</span><span class="p">,</span> <span class="n">ViewNameBreadcrumbItem</span><span class="p">,</span> <span class="n">ModelBreadcrumbItem</span><span class="p">,</span> <span class="n">InstanceBreadcrumbItem</span>
11668
11670
  <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>
11669
11671
  <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="c1"># Use default breadcrumbs</span>
11670
11672
  <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="n">breadcrumbs</span> <span class="o">=</span> <span class="n">Breadcrumbs</span><span class="p">()</span>
@@ -11687,7 +11689,7 @@
11687
11689
  <p class="admonition-title">Important</p>
11688
11690
  <p>By adding custom items you're actually extending the default paths.</p>
11689
11691
  </div>
11690
- <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Breadcrumbs</span><span class="p">,</span> <span class="n">ViewNameBreadcrumbItem</span><span class="p">,</span> <span class="n">ModelBreadcrumbItem</span><span class="p">,</span> <span class="n">InstanceBreadcrumbItem</span>
11692
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">Breadcrumbs</span><span class="p">,</span> <span class="n">ViewNameBreadcrumbItem</span><span class="p">,</span> <span class="n">ModelBreadcrumbItem</span><span class="p">,</span> <span class="n">InstanceBreadcrumbItem</span>
11691
11693
  <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
11692
11694
  <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="c1"># Use default breadcrumbs</span>
11693
11695
  <a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="n">breadcrumbs</span> <span class="o">=</span> <span class="n">Breadcrumbs</span><span class="p">(</span><span class="n">items</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;detail&quot;</span><span class="p">:</span> <span class="p">[</span>
@@ -11717,7 +11719,7 @@
11717
11719
  <p>The Panel component serves as a base class for creating individual display panels within a Layout system. You'll rarely use it directly, but it's important to understand as the base class for the more feature-filled subclasses described below.</p>
11718
11720
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.Panel">Code reference</a></p>
11719
11721
  <h4 id="panel-examples">Panel Examples<a class="headerlink" href="#panel-examples" title="Permanent link">&para;</a></h4>
11720
- <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11722
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11721
11723
  <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a>
11722
11724
  <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="n">Panel</span><span class="p">(</span>
11723
11725
  <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -11725,7 +11727,7 @@
11725
11727
  <a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Panel Header&quot;</span><span class="p">,</span>
11726
11728
  <a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="p">)</span>
11727
11729
  </code></pre></div>
11728
- <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11730
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">Panel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11729
11731
  <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a>
11730
11732
  <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="n">Panel</span><span class="p">(</span>
11731
11733
  <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
@@ -11749,7 +11751,7 @@
11749
11751
  - `comments`, `tags` (these are automatically added as standalone panels)
11750
11752
  </code></pre></div>
11751
11753
  <h4 id="objectfieldspanel-examples">ObjectFieldsPanel Examples<a class="headerlink" href="#objectfieldspanel-examples" title="Permanent link">&para;</a></h4>
11752
- <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectFieldsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11754
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectFieldsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11753
11755
  <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a>
11754
11756
  <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="n">ObjectFieldsPanel</span><span class="p">(</span>
11755
11757
  <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -11758,8 +11760,8 @@
11758
11760
  <a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a> <span class="n">context_object_key</span><span class="o">=</span><span class="s2">&quot;obj&quot;</span><span class="p">,</span>
11759
11761
  <a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="p">)</span>
11760
11762
  </code></pre></div>
11761
- <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">ui</span>
11762
- <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="kn">from</span> <span class="nn">nautobot.core.templatetags</span> <span class="kn">import</span> <span class="n">helpers</span>
11763
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps</span><span class="w"> </span><span class="kn">import</span> <span class="n">ui</span>
11764
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.core.templatetags</span><span class="w"> </span><span class="kn">import</span> <span class="n">helpers</span>
11763
11765
  <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a>
11764
11766
  <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a>
11765
11767
  <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="n">panels</span> <span class="o">=</span> <span class="n">ui</span><span class="o">.</span><span class="n">ObjectFieldsPanel</span><span class="p">(</span>
@@ -11790,7 +11792,7 @@
11790
11792
  </div>
11791
11793
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.KeyValueTablePanel">Code reference</a></p>
11792
11794
  <h4 id="keyvaluetablepanel-examples">KeyValueTablePanel Examples<a class="headerlink" href="#keyvaluetablepanel-examples" title="Permanent link">&para;</a></h4>
11793
- <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
11795
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
11794
11796
  <a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a>
11795
11797
  <a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="n">KeyValueTablePanel</span><span class="p">(</span>
11796
11798
  <a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -11800,7 +11802,7 @@
11800
11802
  <a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a> <span class="p">},</span>
11801
11803
  <a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a><span class="p">)</span>
11802
11804
  </code></pre></div>
11803
- <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
11805
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">KeyValueTablePanel</span>
11804
11806
  <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a>
11805
11807
  <a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="n">KeyValueTablePanel</span><span class="p">(</span>
11806
11808
  <a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -11825,7 +11827,7 @@
11825
11827
  <p><code>GroupedKeyValueTablePanel</code> is a specialized version of <code>KeyValueTablePanel</code> that organizes data into collapsible accordion groups. This is used in the standard template for displaying grouped custom/computed fields when present.</p>
11826
11828
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.GroupedKeyValueTablePanel">Code reference</a></p>
11827
11829
  <h4 id="groupedkeyvaluetablepanel-examples">GroupedKeyValueTablePanel Examples<a class="headerlink" href="#groupedkeyvaluetablepanel-examples" title="Permanent link">&para;</a></h4>
11828
- <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">GroupedKeyValueTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11830
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">GroupedKeyValueTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11829
11831
  <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a>
11830
11832
  <a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="n">GroupedKeyValueTablePanel</span><span class="p">(</span>
11831
11833
  <a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">300</span><span class="p">,</span>
@@ -11863,7 +11865,7 @@
11863
11865
  <p><code>StatsPanel</code> is a Panel component that displays statistical information with clickable links to filtered views of related models. It's particularly useful for dashboards and summary views that provide quick access to filtered data sets.</p>
11864
11866
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.StatsPanel">Code reference</a></p>
11865
11867
  <h4 id="statspanel-examples">StatsPanel Examples<a class="headerlink" href="#statspanel-examples" title="Permanent link">&para;</a></h4>
11866
- <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">StatsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11868
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">StatsPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11867
11869
  <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a>
11868
11870
  <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="n">StatsPanel</span><span class="p">(</span>
11869
11871
  <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">700</span><span class="p">,</span>
@@ -11901,7 +11903,7 @@
11901
11903
  <p><code>ObjectTextPanel</code> renders content from a specific field of an object in the context. It simplifies the display of object attributes in various text formats (Markdown, JSON, YAML, etc.).</p>
11902
11904
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.ObjectTextPanel">Code reference</a></p>
11903
11905
  <h4 id="objecttextpanel-examples">ObjectTextPanel Examples<a class="headerlink" href="#objecttextpanel-examples" title="Permanent link">&para;</a></h4>
11904
- <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectTextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11906
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectTextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11905
11907
  <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>
11906
11908
  <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="n">ObjectTextPanel</span><span class="p">(</span>
11907
11909
  <a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">500</span><span class="p">,</span>
@@ -11916,7 +11918,7 @@
11916
11918
  <p><code>TextPanel</code> renders content from a specified context field. It provides a simple way to display text content in various formats (Markdown, JSON, YAML, plaintext, or code) from the rendering context.</p>
11917
11919
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.TextPanel">Code reference</a></p>
11918
11920
  <h4 id="textpanel-examples">TextPanel Examples<a class="headerlink" href="#textpanel-examples" title="Permanent link">&para;</a></h4>
11919
- <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">TextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11921
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">TextPanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
11920
11922
  <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a>
11921
11923
  <a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a><span class="n">TextPanel</span><span class="p">(</span>
11922
11924
  <a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">600</span><span class="p">,</span>
@@ -11939,7 +11941,7 @@
11939
11941
  </ul>
11940
11942
  </div>
11941
11943
  <h4 id="datatablepanel-examples">DataTablePanel Examples<a class="headerlink" href="#datatablepanel-examples" title="Permanent link">&para;</a></h4>
11942
- <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">DataTablePanel</span>
11944
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">DataTablePanel</span>
11943
11945
  <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a>
11944
11946
  <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="n">DataTablePanel</span><span class="p">(</span>
11945
11947
  <a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -12103,7 +12105,7 @@ It integrates with <code>django_tables2</code> and provides extensive customizat
12103
12105
  </tbody>
12104
12106
  </table>
12105
12107
  <h4 id="objectstablepanel-examples">ObjectsTablePanel Examples<a class="headerlink" href="#objectstablepanel-examples" title="Permanent link">&para;</a></h4>
12106
- <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
12108
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
12107
12109
  <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a>
12108
12110
  <a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a><span class="n">ObjectsTablePanel</span><span class="p">(</span>
12109
12111
  <a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">100</span><span class="p">,</span>
@@ -12114,7 +12116,7 @@ It integrates with <code>django_tables2</code> and provides extensive customizat
12114
12116
  <a id="__codelineno-19-9" name="__codelineno-19-9" href="#__codelineno-19-9"></a>
12115
12117
  <a id="__codelineno-19-10" name="__codelineno-19-10" href="#__codelineno-19-10"></a><span class="p">)</span>
12116
12118
  </code></pre></div>
12117
- <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
12119
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="n">ObjectsTablePanel</span><span class="p">,</span> <span class="n">SectionChoices</span>
12118
12120
  <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a>
12119
12121
  <a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a><span class="n">ObjectsTablePanel</span><span class="p">(</span>
12120
12122
  <a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">200</span><span class="p">,</span>
@@ -12135,7 +12137,7 @@ It integrates with <code>django_tables2</code> and provides extensive customizat
12135
12137
  <p>The Button component defines a single button in an object detail view.</p>
12136
12138
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.Button">Code reference</a></p>
12137
12139
  <h4 id="button-examples">Button Examples<a class="headerlink" href="#button-examples" title="Permanent link">&para;</a></h4>
12138
- <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="k">class</span> <span class="nc">SecretUIViewSet</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
12140
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">SecretUIViewSet</span><span class="p">(</span><span class="o">...</span><span class="p">):</span>
12139
12141
  <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a> <span class="o">...</span>
12140
12142
  <a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
12141
12143
  <a id="__codelineno-21-4" name="__codelineno-21-4" href="#__codelineno-21-4"></a> <span class="n">panels</span><span class="o">=</span><span class="p">[</span><span class="o">...</span><span class="p">],</span>
@@ -12160,7 +12162,7 @@ It integrates with <code>django_tables2</code> and provides extensive customizat
12160
12162
  <p><code>DropdownButton</code> is a subclass of <code>Button</code> that may itself contain other <code>Buttons</code> as its <code>children</code>, which it will render as a dropdown menu. For an example of usage, refer to the <code>Add Components</code> dropdown on the Device detail view.</p>
12161
12163
  <p><a href="../../code-reference/nautobot/apps/ui.html#nautobot.apps.ui.DropdownButton">Code reference</a></p>
12162
12164
  <h4 id="dropdownbutton-examples">DropdownButton Examples<a class="headerlink" href="#dropdownbutton-examples" title="Permanent link">&para;</a></h4>
12163
- <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="k">class</span> <span class="nc">DeviceView</span><span class="p">(</span><span class="n">generic</span><span class="o">.</span><span class="n">ObjectView</span><span class="p">):</span>
12165
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="k">class</span><span class="w"> </span><span class="nc">DeviceView</span><span class="p">(</span><span class="n">generic</span><span class="o">.</span><span class="n">ObjectView</span><span class="p">):</span>
12164
12166
  <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a> <span class="o">...</span>
12165
12167
  <a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
12166
12168
  <a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a> <span class="n">extra_buttons</span><span class="o">=</span><span class="p">[</span>
@@ -12338,16 +12340,16 @@ or just pass to the items one built-in action to override default only for the c
12338
12340
  <a id="__codelineno-27-14" name="__codelineno-27-14" href="#__codelineno-27-14"></a><span class="p">)</span>
12339
12341
  </code></pre></div>
12340
12342
  <h2 id="complete-example">Complete Example<a class="headerlink" href="#complete-example" title="Permanent link">&para;</a></h2>
12341
- <div class="highlight"><span class="filename">views.py</span><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps.ui</span> <span class="kn">import</span> <span class="p">(</span>
12343
+ <div class="highlight"><span class="filename">views.py</span><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.ui</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
12342
12344
  <a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a> <span class="n">SectionChoices</span><span class="p">,</span>
12343
12345
  <a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a> <span class="n">ObjectFieldsPanel</span><span class="p">,</span>
12344
12346
  <a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a> <span class="n">ObjectDetailContent</span><span class="p">,</span>
12345
12347
  <a id="__codelineno-28-5" name="__codelineno-28-5" href="#__codelineno-28-5"></a> <span class="n">StatsPanel</span><span class="p">,</span>
12346
12348
  <a id="__codelineno-28-6" name="__codelineno-28-6" href="#__codelineno-28-6"></a><span class="p">)</span>
12347
- <a id="__codelineno-28-7" name="__codelineno-28-7" href="#__codelineno-28-7"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">views</span>
12348
- <a id="__codelineno-28-8" name="__codelineno-28-8" href="#__codelineno-28-8"></a><span class="kn">from</span> <span class="nn">your_app.models</span> <span class="kn">import</span> <span class="n">Location</span><span class="p">,</span> <span class="n">Device</span><span class="p">,</span> <span class="n">Circuit</span>
12349
+ <a id="__codelineno-28-7" name="__codelineno-28-7" href="#__codelineno-28-7"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps</span><span class="w"> </span><span class="kn">import</span> <span class="n">views</span>
12350
+ <a id="__codelineno-28-8" name="__codelineno-28-8" href="#__codelineno-28-8"></a><span class="kn">from</span><span class="w"> </span><span class="nn">your_app.models</span><span class="w"> </span><span class="kn">import</span> <span class="n">Location</span><span class="p">,</span> <span class="n">Device</span><span class="p">,</span> <span class="n">Circuit</span>
12349
12351
  <a id="__codelineno-28-9" name="__codelineno-28-9" href="#__codelineno-28-9"></a>
12350
- <a id="__codelineno-28-10" name="__codelineno-28-10" href="#__codelineno-28-10"></a><span class="k">class</span> <span class="nc">LocationUIViewSet</span><span class="p">(</span><span class="n">views</span><span class="o">.</span><span class="n">NautobotUIViewSet</span><span class="p">):</span>
12352
+ <a id="__codelineno-28-10" name="__codelineno-28-10" href="#__codelineno-28-10"></a><span class="k">class</span><span class="w"> </span><span class="nc">LocationUIViewSet</span><span class="p">(</span><span class="n">views</span><span class="o">.</span><span class="n">NautobotUIViewSet</span><span class="p">):</span>
12351
12353
  <a id="__codelineno-28-11" name="__codelineno-28-11" href="#__codelineno-28-11"></a> <span class="n">queryset</span> <span class="o">=</span> <span class="n">Location</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">all</span><span class="p">()</span>
12352
12354
  <a id="__codelineno-28-12" name="__codelineno-28-12" href="#__codelineno-28-12"></a>
12353
12355
  <a id="__codelineno-28-13" name="__codelineno-28-13" href="#__codelineno-28-13"></a> <span class="n">object_detail_content</span> <span class="o">=</span> <span class="n">ObjectDetailContent</span><span class="p">(</span>
@@ -12538,7 +12540,8 @@ or just pass to the items one built-in action to override default only for the c
12538
12540
  <!-- RTD version flyout injected on live site -->
12539
12541
  <div id="readthedocs-embed-flyout"></div>
12540
12542
 
12541
- <div class="md-social">
12543
+
12544
+ <div class="md-social">
12542
12545
 
12543
12546
 
12544
12547
 
@@ -12594,10 +12597,10 @@ or just pass to the items one built-in action to override default only for the c
12594
12597
 
12595
12598
 
12596
12599
 
12597
- <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.d50fe291.min.js", "tags": null, "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"}, "version": null}</script>
12600
+ <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.973d3a69.min.js", "tags": null, "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"}, "version": null}</script>
12598
12601
 
12599
12602
 
12600
- <script src="../../assets/javascripts/bundle.50899def.min.js"></script>
12603
+ <script src="../../assets/javascripts/bundle.92b07e13.min.js"></script>
12601
12604
 
12602
12605
 
12603
12606
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});
@@ -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.6.16">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.18">
22
22
 
23
23
 
24
24
 
@@ -35,6 +35,8 @@
35
35
 
36
36
 
37
37
 
38
+
39
+
38
40
 
39
41
 
40
42
 
@@ -7394,12 +7396,12 @@
7394
7396
 
7395
7397
 
7396
7398
  <li class="md-nav__item">
7397
- <a href="../apps/api/platform-features/populating-extensibility-features.html" class="md-nav__link">
7399
+ <a href="../apps/api/platform-features/prepopulating-data.html" class="md-nav__link">
7398
7400
 
7399
7401
 
7400
7402
 
7401
7403
  <span class="md-ellipsis">
7402
- Populating Extensibility Features
7404
+ Prepopulating Data
7403
7405
 
7404
7406
  </span>
7405
7407
 
@@ -10269,7 +10271,8 @@
10269
10271
  <!-- RTD version flyout injected on live site -->
10270
10272
  <div id="readthedocs-embed-flyout"></div>
10271
10273
 
10272
- <div class="md-social">
10274
+
10275
+ <div class="md-social">
10273
10276
 
10274
10277
 
10275
10278
 
@@ -10325,10 +10328,10 @@
10325
10328
 
10326
10329
 
10327
10330
 
10328
- <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.d50fe291.min.js", "tags": null, "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"}, "version": null}</script>
10331
+ <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.973d3a69.min.js", "tags": null, "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"}, "version": null}</script>
10329
10332
 
10330
10333
 
10331
- <script src="../../assets/javascripts/bundle.50899def.min.js"></script>
10334
+ <script src="../../assets/javascripts/bundle.92b07e13.min.js"></script>
10332
10335
 
10333
10336
 
10334
10337
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});
@@ -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.6.16">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.18">
22
22
 
23
23
 
24
24
 
@@ -35,6 +35,8 @@
35
35
 
36
36
 
37
37
 
38
+
39
+
38
40
 
39
41
 
40
42
 
@@ -7394,12 +7396,12 @@
7394
7396
 
7395
7397
 
7396
7398
  <li class="md-nav__item">
7397
- <a href="apps/api/platform-features/populating-extensibility-features.html" class="md-nav__link">
7399
+ <a href="apps/api/platform-features/prepopulating-data.html" class="md-nav__link">
7398
7400
 
7399
7401
 
7400
7402
 
7401
7403
  <span class="md-ellipsis">
7402
- Populating Extensibility Features
7404
+ Prepopulating Data
7403
7405
 
7404
7406
  </span>
7405
7407
 
@@ -10175,7 +10177,8 @@
10175
10177
  <!-- RTD version flyout injected on live site -->
10176
10178
  <div id="readthedocs-embed-flyout"></div>
10177
10179
 
10178
- <div class="md-social">
10180
+
10181
+ <div class="md-social">
10179
10182
 
10180
10183
 
10181
10184
 
@@ -10231,10 +10234,10 @@
10231
10234
 
10232
10235
 
10233
10236
 
10234
- <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "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.d50fe291.min.js", "tags": null, "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"}, "version": null}</script>
10237
+ <script id="__config" type="application/json">{"base": "..", "features": ["content.code.annotate", "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.973d3a69.min.js", "tags": null, "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"}, "version": null}</script>
10235
10238
 
10236
10239
 
10237
- <script src="../assets/javascripts/bundle.50899def.min.js"></script>
10240
+ <script src="../assets/javascripts/bundle.92b07e13.min.js"></script>
10238
10241
 
10239
10242
 
10240
10243
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});
@@ -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.6.16">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.18">
22
22
 
23
23
 
24
24
 
@@ -35,6 +35,8 @@
35
35
 
36
36
 
37
37
 
38
+
39
+
38
40
 
39
41
 
40
42
 
@@ -7489,12 +7491,12 @@
7489
7491
 
7490
7492
 
7491
7493
  <li class="md-nav__item">
7492
- <a href="../apps/api/platform-features/populating-extensibility-features.html" class="md-nav__link">
7494
+ <a href="../apps/api/platform-features/prepopulating-data.html" class="md-nav__link">
7493
7495
 
7494
7496
 
7495
7497
 
7496
7498
  <span class="md-ellipsis">
7497
- Populating Extensibility Features
7499
+ Prepopulating Data
7498
7500
 
7499
7501
  </span>
7500
7502
 
@@ -10275,12 +10277,12 @@ They're perfect for one‑off data imports, consistency checks, scheduled sync t
10275
10277
  <li>In the UI, navigate to <strong>Jobs → "Examples" → "Hello World"</strong>, click <strong>Edit Job</strong>, then under the Job section, select the <strong>Enabled</strong> checkbox. Scroll down and <strong>Update</strong> the job. </li>
10276
10278
  <li><strong>Run Job Now</strong>. You'll see the log entry appear almost instantly.</li>
10277
10279
  </ol>
10278
- <div class="highlight"><span class="filename">$JOBS_ROOT/hello_world.py</span><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">from</span> <span class="nn">nautobot.apps</span> <span class="kn">import</span> <span class="n">jobs</span>
10280
+ <div class="highlight"><span class="filename">$JOBS_ROOT/hello_world.py</span><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps</span><span class="w"> </span><span class="kn">import</span> <span class="n">jobs</span>
10279
10281
  <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>
10280
10282
  <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;Examples&quot;</span> <span class="c1"># Grouping shown in the UI</span>
10281
10283
  <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>
10282
- <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="k">class</span> <span class="nc">HelloWorldJob</span><span class="p">(</span><span class="n">jobs</span><span class="o">.</span><span class="n">Job</span><span class="p">):</span>
10283
- <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="k">class</span> <span class="nc">Meta</span><span class="p">:</span>
10284
+ <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="k">class</span><span class="w"> </span><span class="nc">HelloWorldJob</span><span class="p">(</span><span class="n">jobs</span><span class="o">.</span><span class="n">Job</span><span class="p">):</span>
10285
+ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="k">class</span><span class="w"> </span><span class="nc">Meta</span><span class="p">:</span>
10284
10286
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">&quot;Hello World&quot;</span> <span class="c1"># Job name</span>
10285
10287
  <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>
10286
10288
  <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> <span class="n">who</span> <span class="o">=</span> <span class="n">jobs</span><span class="o">.</span><span class="n">StringVar</span><span class="p">(</span> <span class="c1"># One user‑supplied variable</span>
@@ -10288,7 +10290,7 @@ They're perfect for one‑off data imports, consistency checks, scheduled sync t
10288
10290
  <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a> <span class="n">default</span><span class="o">=</span><span class="s2">&quot;world&quot;</span><span class="p">,</span>
10289
10291
  <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a> <span class="p">)</span>
10290
10292
  <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a>
10291
- <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">who</span><span class="p">):</span>
10293
+ <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="k">def</span><span class="w"> </span><span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="p">,</span> <span class="n">who</span><span class="p">):</span>
10292
10294
  <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a> <span class="bp">self</span><span class="o">.</span><span class="n">logger</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Hello, </span><span class="si">%s</span><span class="s2">!&quot;</span><span class="p">,</span> <span class="n">who</span><span class="p">)</span> <span class="c1"># This is the logic that runs when the Job is executed</span>
10293
10295
  <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a>
10294
10296
  <a id="__codelineno-0-17" name="__codelineno-0-17" href="#__codelineno-0-17"></a><span class="n">jobs</span><span class="o">.</span><span class="n">register_jobs</span><span class="p">(</span><span class="n">HelloWorldJob</span><span class="p">)</span> <span class="c1"># &lt;- required in Nautobot 2.x</span>
@@ -10416,7 +10418,8 @@ They're perfect for one‑off data imports, consistency checks, scheduled sync t
10416
10418
  <!-- RTD version flyout injected on live site -->
10417
10419
  <div id="readthedocs-embed-flyout"></div>
10418
10420
 
10419
- <div class="md-social">
10421
+
10422
+ <div class="md-social">
10420
10423
 
10421
10424
 
10422
10425
 
@@ -10472,10 +10475,10 @@ They're perfect for one‑off data imports, consistency checks, scheduled sync t
10472
10475
 
10473
10476
 
10474
10477
 
10475
- <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.d50fe291.min.js", "tags": null, "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"}, "version": null}</script>
10478
+ <script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "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.973d3a69.min.js", "tags": null, "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"}, "version": null}</script>
10476
10479
 
10477
10480
 
10478
- <script src="../../assets/javascripts/bundle.50899def.min.js"></script>
10481
+ <script src="../../assets/javascripts/bundle.92b07e13.min.js"></script>
10479
10482
 
10480
10483
 
10481
10484
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});