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
 
@@ -7408,12 +7410,12 @@
7408
7410
 
7409
7411
 
7410
7412
  <li class="md-nav__item">
7411
- <a href="populating-extensibility-features.html" class="md-nav__link">
7413
+ <a href="prepopulating-data.html" class="md-nav__link">
7412
7414
 
7413
7415
 
7414
7416
 
7415
7417
  <span class="md-ellipsis">
7416
- Populating Extensibility Features
7418
+ Prepopulating Data
7417
7419
 
7418
7420
  </span>
7419
7421
 
@@ -10233,7 +10235,8 @@
10233
10235
  <!-- RTD version flyout injected on live site -->
10234
10236
  <div id="readthedocs-embed-flyout"></div>
10235
10237
 
10236
- <div class="md-social">
10238
+
10239
+ <div class="md-social">
10237
10240
 
10238
10241
 
10239
10242
 
@@ -10289,10 +10292,10 @@
10289
10292
 
10290
10293
 
10291
10294
 
10292
- <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>
10295
+ <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>
10293
10296
 
10294
10297
 
10295
- <script src="../../../../assets/javascripts/bundle.50899def.min.js"></script>
10298
+ <script src="../../../../assets/javascripts/bundle.92b07e13.min.js"></script>
10296
10299
 
10297
10300
 
10298
10301
  <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
 
@@ -7408,12 +7410,12 @@
7408
7410
 
7409
7411
 
7410
7412
  <li class="md-nav__item">
7411
- <a href="populating-extensibility-features.html" class="md-nav__link">
7413
+ <a href="prepopulating-data.html" class="md-nav__link">
7412
7414
 
7413
7415
 
7414
7416
 
7415
7417
  <span class="md-ellipsis">
7416
- Populating Extensibility Features
7418
+ Prepopulating Data
7417
7419
 
7418
7420
  </span>
7419
7421
 
@@ -10102,16 +10104,16 @@
10102
10104
  <h1 id="loading-data-from-a-git-repository">Loading Data from a Git Repository<a class="headerlink" href="#loading-data-from-a-git-repository" title="Permanent link">&para;</a></h1>
10103
10105
  <p>It's possible for an app to register additional types of data that can be provided by a <a href="../../../../user-guide/platform-functionality/gitrepository.html">Git repository</a> and be automatically notified when such a repository is refreshed with new data. By default, Nautobot looks for an iterable named <code>datasource_contents</code> within a <code>datasources.py</code> file. (This can be overridden by setting <code>datasource_contents</code> to a custom value on the app's <code>NautobotAppConfig</code>.) An example is below.</p>
10104
10106
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="c1"># datasources.py</span>
10105
- <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">import</span> <span class="nn">yaml</span>
10106
- <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="kn">import</span> <span class="nn">os</span>
10107
+ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">import</span><span class="w"> </span><span class="nn">yaml</span>
10108
+ <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
10107
10109
  <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>
10108
- <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="kn">from</span> <span class="nn">nautobot.extras.choices</span> <span class="kn">import</span> <span class="n">LogLevelChoices</span>
10109
- <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="kn">from</span> <span class="nn">nautobot.apps.datasources</span> <span class="kn">import</span> <span class="n">DatasourceContent</span>
10110
+ <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.extras.choices</span><span class="w"> </span><span class="kn">import</span> <span class="n">LogLevelChoices</span>
10111
+ <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="kn">from</span><span class="w"> </span><span class="nn">nautobot.apps.datasources</span><span class="w"> </span><span class="kn">import</span> <span class="n">DatasourceContent</span>
10110
10112
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
10111
- <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="kn">from</span> <span class="nn">.models</span> <span class="kn">import</span> <span class="n">Animal</span>
10113
+ <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="kn">from</span><span class="w"> </span><span class="nn">.models</span><span class="w"> </span><span class="kn">import</span> <span class="n">Animal</span>
10112
10114
  <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>
10113
10115
  <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a>
10114
- <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="k">def</span> <span class="nf">refresh_git_animals</span><span class="p">(</span><span class="n">repository_record</span><span class="p">,</span> <span class="n">job_result</span><span class="p">,</span> <span class="n">delete</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
10116
+ <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="k">def</span><span class="w"> </span><span class="nf">refresh_git_animals</span><span class="p">(</span><span class="n">repository_record</span><span class="p">,</span> <span class="n">job_result</span><span class="p">,</span> <span class="n">delete</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
10115
10117
  <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Callback for GitRepository updates - refresh Animals managed by it.&quot;&quot;&quot;</span>
10116
10118
  <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a> <span class="k">if</span> <span class="s1">&#39;nautobot_animal_sounds.Animal&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">repository_record</span><span class="o">.</span><span class="n">provided_contents</span> <span class="ow">or</span> <span class="n">delete</span><span class="p">:</span>
10117
10119
  <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="c1"># This repository is defined not to provide Animal records.</span>
@@ -10246,7 +10248,8 @@
10246
10248
  <!-- RTD version flyout injected on live site -->
10247
10249
  <div id="readthedocs-embed-flyout"></div>
10248
10250
 
10249
- <div class="md-social">
10251
+
10252
+ <div class="md-social">
10250
10253
 
10251
10254
 
10252
10255
 
@@ -10302,10 +10305,10 @@
10302
10305
 
10303
10306
 
10304
10307
 
10305
- <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>
10308
+ <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>
10306
10309
 
10307
10310
 
10308
- <script src="../../../../assets/javascripts/bundle.50899def.min.js"></script>
10311
+ <script src="../../../../assets/javascripts/bundle.92b07e13.min.js"></script>
10309
10312
 
10310
10313
 
10311
10314
  <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
 
@@ -7398,12 +7400,12 @@
7398
7400
 
7399
7401
 
7400
7402
  <li class="md-nav__item">
7401
- <a href="populating-extensibility-features.html" class="md-nav__link">
7403
+ <a href="prepopulating-data.html" class="md-nav__link">
7402
7404
 
7403
7405
 
7404
7406
 
7405
7407
  <span class="md-ellipsis">
7406
- Populating Extensibility Features
7408
+ Prepopulating Data
7407
7409
 
7408
7410
  </span>
7409
7411
 
@@ -10179,7 +10181,8 @@
10179
10181
  <!-- RTD version flyout injected on live site -->
10180
10182
  <div id="readthedocs-embed-flyout"></div>
10181
10183
 
10182
- <div class="md-social">
10184
+
10185
+ <div class="md-social">
10183
10186
 
10184
10187
 
10185
10188
 
@@ -10235,10 +10238,10 @@
10235
10238
 
10236
10239
 
10237
10240
 
10238
- <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>
10241
+ <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>
10239
10242
 
10240
10243
 
10241
- <script src="../../../../assets/javascripts/bundle.50899def.min.js"></script>
10244
+ <script src="../../../../assets/javascripts/bundle.92b07e13.min.js"></script>
10242
10245
 
10243
10246
 
10244
10247
  <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
 
@@ -7408,12 +7410,12 @@
7408
7410
 
7409
7411
 
7410
7412
  <li class="md-nav__item">
7411
- <a href="populating-extensibility-features.html" class="md-nav__link">
7413
+ <a href="prepopulating-data.html" class="md-nav__link">
7412
7414
 
7413
7415
 
7414
7416
 
7415
7417
  <span class="md-ellipsis">
7416
- Populating Extensibility Features
7418
+ Prepopulating Data
7417
7419
 
7418
7420
  </span>
7419
7421
 
@@ -10102,11 +10104,11 @@
10102
10104
  <h1 id="adding-jinja2-filters">Adding Jinja2 Filters<a class="headerlink" href="#adding-jinja2-filters" title="Permanent link">&para;</a></h1>
10103
10105
  <p>Apps can define custom Jinja2 filters to be used when rendering templates defined in computed fields. Check out the <a href="https://jinja.palletsprojects.com/en/3.0.x/api/#custom-filters">official Jinja2 documentation</a> on how to create filter functions.</p>
10104
10106
  <p>In the file that defines your filters (by default <code>jinja_filters.py</code>, but configurable in the <code>NautobotAppConfig</code> if desired), you must import the <code>library</code> module from the <code>django_jinja</code> library. Filters must then be decorated with <code>@library.filter</code>. See an example below that defines a filter called <code>leet_speak</code>.</p>
10105
- <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">django_jinja</span> <span class="kn">import</span> <span class="n">library</span>
10107
+ <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">django_jinja</span><span class="w"> </span><span class="kn">import</span> <span class="n">library</span>
10106
10108
  <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>
10107
10109
  <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
10108
10110
  <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="nd">@library</span><span class="o">.</span><span class="n">filter</span>
10109
- <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="k">def</span> <span class="nf">leet_speak</span><span class="p">(</span><span class="n">input_str</span><span class="p">):</span>
10111
+ <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="k">def</span><span class="w"> </span><span class="nf">leet_speak</span><span class="p">(</span><span class="n">input_str</span><span class="p">):</span>
10110
10112
  <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">charset</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;a&quot;</span><span class="p">:</span> <span class="s2">&quot;4&quot;</span><span class="p">,</span> <span class="s2">&quot;e&quot;</span><span class="p">:</span> <span class="s2">&quot;3&quot;</span><span class="p">,</span> <span class="s2">&quot;l&quot;</span><span class="p">:</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="s2">&quot;o&quot;</span><span class="p">:</span> <span class="s2">&quot;0&quot;</span><span class="p">,</span> <span class="s2">&quot;s&quot;</span><span class="p">:</span> <span class="s2">&quot;5&quot;</span><span class="p">,</span> <span class="s2">&quot;t&quot;</span><span class="p">:</span> <span class="s2">&quot;7&quot;</span><span class="p">}</span>
10111
10113
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">output_str</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span>
10112
10114
  <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">input_str</span><span class="p">:</span>
@@ -10206,7 +10208,8 @@
10206
10208
  <!-- RTD version flyout injected on live site -->
10207
10209
  <div id="readthedocs-embed-flyout"></div>
10208
10210
 
10209
- <div class="md-social">
10211
+
10212
+ <div class="md-social">
10210
10213
 
10211
10214
 
10212
10215
 
@@ -10262,10 +10265,10 @@
10262
10265
 
10263
10266
 
10264
10267
 
10265
- <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>
10268
+ <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>
10266
10269
 
10267
10270
 
10268
- <script src="../../../../assets/javascripts/bundle.50899def.min.js"></script>
10271
+ <script src="../../../../assets/javascripts/bundle.92b07e13.min.js"></script>
10269
10272
 
10270
10273
 
10271
10274
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});
@@ -14,11 +14,11 @@
14
14
  <link rel="prev" href="jinja2-filters.html">
15
15
 
16
16
 
17
- <link rel="next" href="populating-extensibility-features.html">
17
+ <link rel="next" href="prepopulating-data.html">
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
 
@@ -7408,12 +7410,12 @@
7408
7410
 
7409
7411
 
7410
7412
  <li class="md-nav__item">
7411
- <a href="populating-extensibility-features.html" class="md-nav__link">
7413
+ <a href="prepopulating-data.html" class="md-nav__link">
7412
7414
 
7413
7415
 
7414
7416
 
7415
7417
  <span class="md-ellipsis">
7416
- Populating Extensibility Features
7418
+ Prepopulating Data
7417
7419
 
7418
7420
  </span>
7419
7421
 
@@ -10103,18 +10105,18 @@
10103
10105
  <p>Apps can provide <a href="../../../../user-guide/platform-functionality/jobs/index.html">Jobs</a> to take advantage of all the built-in functionality provided by that feature (user input forms, background execution, results logging and reporting, etc.).</p>
10104
10106
  <p>By default, for each app, Nautobot looks for an iterable named <code>jobs</code> within a <code>jobs.py</code> file. (This can be overridden by setting <code>jobs</code> to a custom value on the app's <code>NautobotAppConfig</code>.) A brief example is below; for more details on Job design and implementation, refer to the Jobs feature documentation.</p>
10105
10107
  <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="c1"># jobs.py</span>
10106
- <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="kn">from</span> <span class="nn">nautobot.apps.jobs</span> <span class="kn">import</span> <span class="n">Job</span><span class="p">,</span> <span class="n">register_jobs</span>
10108
+ <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.jobs</span><span class="w"> </span><span class="kn">import</span> <span class="n">Job</span><span class="p">,</span> <span class="n">register_jobs</span>
10107
10109
  <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
10108
10110
  <a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a>
10109
- <a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="k">class</span> <span class="nc">CreateDevices</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10111
+ <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">CreateDevices</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10110
10112
  <a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="o">...</span>
10111
10113
  <a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
10112
10114
  <a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a>
10113
- <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="k">class</span> <span class="nc">DeviceConnectionsReport</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10115
+ <a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="k">class</span><span class="w"> </span><span class="nc">DeviceConnectionsReport</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10114
10116
  <a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> <span class="o">...</span>
10115
10117
  <a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a>
10116
10118
  <a id="__codelineno-0-12" name="__codelineno-0-12" href="#__codelineno-0-12"></a>
10117
- <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a><span class="k">class</span> <span class="nc">DeviceIPsReport</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10119
+ <a id="__codelineno-0-13" name="__codelineno-0-13" href="#__codelineno-0-13"></a><span class="k">class</span><span class="w"> </span><span class="nc">DeviceIPsReport</span><span class="p">(</span><span class="n">Job</span><span class="p">):</span>
10118
10120
  <a id="__codelineno-0-14" name="__codelineno-0-14" href="#__codelineno-0-14"></a> <span class="o">...</span>
10119
10121
  <a id="__codelineno-0-15" name="__codelineno-0-15" href="#__codelineno-0-15"></a>
10120
10122
  <a id="__codelineno-0-16" name="__codelineno-0-16" href="#__codelineno-0-16"></a>
@@ -10173,13 +10175,13 @@
10173
10175
 
10174
10176
 
10175
10177
 
10176
- <a href="populating-extensibility-features.html" class="md-footer__link md-footer__link--next" aria-label="Next: Populating Extensibility Features">
10178
+ <a href="prepopulating-data.html" class="md-footer__link md-footer__link--next" aria-label="Next: Prepopulating Data">
10177
10179
  <div class="md-footer__title">
10178
10180
  <span class="md-footer__direction">
10179
10181
  Next
10180
10182
  </span>
10181
10183
  <div class="md-ellipsis">
10182
- Populating Extensibility Features
10184
+ Prepopulating Data
10183
10185
  </div>
10184
10186
  </div>
10185
10187
  <div class="md-footer__button md-icon">
@@ -10214,7 +10216,8 @@
10214
10216
  <!-- RTD version flyout injected on live site -->
10215
10217
  <div id="readthedocs-embed-flyout"></div>
10216
10218
 
10217
- <div class="md-social">
10219
+
10220
+ <div class="md-social">
10218
10221
 
10219
10222
 
10220
10223
 
@@ -10270,10 +10273,10 @@
10270
10273
 
10271
10274
 
10272
10275
 
10273
- <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>
10276
+ <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>
10274
10277
 
10275
10278
 
10276
- <script src="../../../../assets/javascripts/bundle.50899def.min.js"></script>
10279
+ <script src="../../../../assets/javascripts/bundle.92b07e13.min.js"></script>
10277
10280
 
10278
10281
 
10279
10282
  <script id="init-glightbox">const lightbox = GLightbox({"touchNavigation": true, "loop": false, "zoomable": true, "draggable": true, "openEffect": "zoom", "closeEffect": "zoom", "slideEffect": "slide"});