nautobot 2.4.0b1__py3-none-any.whl → 2.4.2__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (668) hide show
  1. nautobot/apps/__init__.py +1 -1
  2. nautobot/apps/api.py +8 -8
  3. nautobot/apps/change_logging.py +2 -2
  4. nautobot/apps/choices.py +4 -4
  5. nautobot/apps/events.py +3 -3
  6. nautobot/apps/factory.py +2 -2
  7. nautobot/apps/filters.py +1 -1
  8. nautobot/apps/forms.py +20 -20
  9. nautobot/apps/graphql.py +2 -2
  10. nautobot/apps/jobs.py +8 -8
  11. nautobot/apps/models.py +19 -19
  12. nautobot/apps/tables.py +1 -1
  13. nautobot/apps/testing.py +10 -10
  14. nautobot/apps/ui.py +2 -2
  15. nautobot/apps/utils.py +7 -7
  16. nautobot/apps/views.py +7 -7
  17. nautobot/circuits/api/serializers.py +1 -0
  18. nautobot/circuits/api/views.py +4 -8
  19. nautobot/circuits/tables.py +2 -1
  20. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  21. nautobot/circuits/tests/integration/test_circuits_bulk_operations.py +43 -0
  22. nautobot/circuits/tests/integration/test_relationships.py +1 -1
  23. nautobot/circuits/views.py +3 -3
  24. nautobot/cloud/api/views.py +6 -10
  25. nautobot/cloud/models.py +1 -1
  26. nautobot/cloud/views.py +0 -16
  27. nautobot/core/api/constants.py +11 -0
  28. nautobot/core/api/fields.py +5 -5
  29. nautobot/core/api/filter_backends.py +3 -9
  30. nautobot/core/api/schema.py +13 -2
  31. nautobot/core/api/serializers.py +40 -34
  32. nautobot/core/api/views.py +56 -4
  33. nautobot/core/apps/__init__.py +0 -5
  34. nautobot/core/celery/log.py +4 -4
  35. nautobot/core/celery/schedulers.py +2 -2
  36. nautobot/core/choices.py +2 -2
  37. nautobot/core/events/__init__.py +3 -3
  38. nautobot/core/filters.py +67 -35
  39. nautobot/core/forms/__init__.py +19 -19
  40. nautobot/core/forms/fields.py +14 -11
  41. nautobot/core/forms/forms.py +33 -2
  42. nautobot/core/graphql/types.py +1 -1
  43. nautobot/core/jobs/__init__.py +28 -7
  44. nautobot/core/jobs/bulk_actions.py +285 -0
  45. nautobot/core/jobs/cleanup.py +48 -12
  46. nautobot/core/jobs/groups.py +1 -1
  47. nautobot/core/management/commands/validate_models.py +1 -1
  48. nautobot/core/models/__init__.py +3 -1
  49. nautobot/core/models/query_functions.py +2 -2
  50. nautobot/core/models/tree_queries.py +6 -3
  51. nautobot/core/settings.py +29 -2
  52. nautobot/core/settings.yaml +21 -0
  53. nautobot/core/tables.py +79 -61
  54. nautobot/core/templates/about.html +67 -0
  55. nautobot/core/templates/generic/object_bulk_destroy.html +1 -1
  56. nautobot/core/templates/inc/media.html +3 -0
  57. nautobot/core/templates/inc/nav_menu.html +1 -0
  58. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  59. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  60. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  61. nautobot/core/templates/search.html +7 -0
  62. nautobot/core/templates/utilities/render_jinja2.html +1 -1
  63. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  64. nautobot/core/templates/utilities/theme_preview.html +7 -0
  65. nautobot/core/templatetags/helpers.py +11 -2
  66. nautobot/core/testing/__init__.py +8 -8
  67. nautobot/core/testing/api.py +170 -15
  68. nautobot/core/testing/filters.py +45 -10
  69. nautobot/core/testing/forms.py +2 -0
  70. nautobot/core/testing/integration.py +514 -5
  71. nautobot/core/testing/mixins.py +7 -2
  72. nautobot/core/testing/views.py +44 -29
  73. nautobot/core/tests/integration/test_app_home.py +0 -1
  74. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  75. nautobot/core/tests/integration/test_filters.py +0 -2
  76. nautobot/core/tests/integration/test_home.py +0 -1
  77. nautobot/core/tests/integration/test_navbar.py +0 -1
  78. nautobot/core/tests/integration/test_view_authentication.py +1 -0
  79. nautobot/core/tests/runner.py +1 -1
  80. nautobot/core/tests/test_api.py +98 -1
  81. nautobot/core/tests/test_csv.py +25 -3
  82. nautobot/core/tests/test_filters.py +209 -246
  83. nautobot/core/tests/test_forms.py +1 -0
  84. nautobot/core/tests/test_jobs.py +492 -1
  85. nautobot/core/tests/test_models.py +9 -0
  86. nautobot/core/tests/test_settings_schema.py +7 -0
  87. nautobot/core/tests/test_tables.py +100 -0
  88. nautobot/core/tests/test_utils.py +63 -1
  89. nautobot/core/tests/test_views.py +30 -3
  90. nautobot/core/ui/nav.py +1 -0
  91. nautobot/core/ui/object_detail.py +15 -1
  92. nautobot/core/urls.py +11 -0
  93. nautobot/core/utils/git.py +7 -2
  94. nautobot/core/utils/lookup.py +11 -8
  95. nautobot/core/utils/querysets.py +64 -0
  96. nautobot/core/utils/requests.py +24 -9
  97. nautobot/core/views/__init__.py +42 -0
  98. nautobot/core/views/generic.py +131 -197
  99. nautobot/core/views/mixins.py +136 -41
  100. nautobot/core/views/renderers.py +6 -6
  101. nautobot/core/views/utils.py +2 -2
  102. nautobot/dcim/api/serializers.py +56 -64
  103. nautobot/dcim/api/views.py +47 -113
  104. nautobot/dcim/constants.py +6 -13
  105. nautobot/dcim/factory.py +6 -1
  106. nautobot/dcim/filters/__init__.py +31 -2
  107. nautobot/dcim/forms.py +48 -17
  108. nautobot/dcim/graphql/types.py +2 -2
  109. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  110. nautobot/dcim/models/__init__.py +1 -1
  111. nautobot/dcim/models/device_component_templates.py +2 -2
  112. nautobot/dcim/models/device_components.py +22 -20
  113. nautobot/dcim/models/devices.py +10 -1
  114. nautobot/dcim/models/locations.py +3 -3
  115. nautobot/dcim/models/power.py +6 -5
  116. nautobot/dcim/models/racks.py +4 -4
  117. nautobot/dcim/tables/__init__.py +3 -3
  118. nautobot/dcim/tables/devices.py +9 -6
  119. nautobot/dcim/tables/devicetypes.py +2 -2
  120. nautobot/dcim/tables/racks.py +1 -1
  121. nautobot/dcim/templates/dcim/cable.html +1 -1
  122. nautobot/dcim/templates/dcim/controller_create.html +1 -7
  123. nautobot/dcim/templates/dcim/controller_retrieve.html +1 -9
  124. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +2 -0
  125. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +5 -0
  126. nautobot/dcim/templates/dcim/device/base.html +1 -1
  127. nautobot/dcim/templates/dcim/device.html +3 -11
  128. nautobot/dcim/templates/dcim/device_component.html +1 -1
  129. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  130. nautobot/dcim/templates/dcim/devicetype.html +1 -1
  131. nautobot/dcim/templates/dcim/location.html +2 -10
  132. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  133. nautobot/dcim/templates/dcim/locationtype.html +1 -1
  134. nautobot/dcim/templates/dcim/locationtype_retrieve.html +1 -1
  135. nautobot/dcim/templates/dcim/manufacturer.html +1 -1
  136. nautobot/dcim/templates/dcim/platform.html +1 -1
  137. nautobot/dcim/templates/dcim/powerfeed.html +1 -1
  138. nautobot/dcim/templates/dcim/powerpanel.html +1 -1
  139. nautobot/dcim/templates/dcim/rack.html +2 -10
  140. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  141. nautobot/dcim/templates/dcim/rackgroup.html +1 -1
  142. nautobot/dcim/templates/dcim/rackreservation.html +3 -11
  143. nautobot/dcim/templates/dcim/virtualchassis.html +1 -1
  144. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +1 -9
  145. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +1 -7
  146. nautobot/dcim/tests/integration/test_controller.py +62 -0
  147. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  148. nautobot/dcim/tests/integration/test_device_bulk_operations.py +30 -0
  149. nautobot/dcim/tests/integration/test_location_bulk_operations.py +43 -0
  150. nautobot/dcim/tests/test_api.py +16 -5
  151. nautobot/dcim/tests/test_filters.py +33 -0
  152. nautobot/dcim/tests/test_forms.py +51 -2
  153. nautobot/dcim/tests/test_graphql.py +52 -0
  154. nautobot/dcim/tests/test_jobs.py +118 -0
  155. nautobot/dcim/tests/test_models.py +52 -9
  156. nautobot/dcim/tests/test_views.py +30 -84
  157. nautobot/dcim/views.py +13 -28
  158. nautobot/extras/api/customfields.py +2 -2
  159. nautobot/extras/api/serializers.py +123 -85
  160. nautobot/extras/api/views.py +33 -30
  161. nautobot/extras/constants.py +3 -0
  162. nautobot/extras/datasources/git.py +125 -0
  163. nautobot/extras/filters/__init__.py +8 -6
  164. nautobot/extras/forms/base.py +2 -2
  165. nautobot/extras/forms/forms.py +139 -31
  166. nautobot/extras/forms/mixins.py +14 -6
  167. nautobot/extras/group_sync.py +3 -3
  168. nautobot/extras/health_checks.py +1 -2
  169. nautobot/extras/jobs.py +85 -18
  170. nautobot/extras/managers.py +3 -1
  171. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  172. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  173. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  174. nautobot/extras/migrations/0122_add_graphqlquery_owner_content_type.py +34 -0
  175. nautobot/extras/models/__init__.py +1 -1
  176. nautobot/extras/models/contacts.py +1 -1
  177. nautobot/extras/models/customfields.py +41 -23
  178. nautobot/extras/models/datasources.py +85 -0
  179. nautobot/extras/models/groups.py +11 -9
  180. nautobot/extras/models/jobs.py +23 -4
  181. nautobot/extras/models/models.py +17 -2
  182. nautobot/extras/models/relationships.py +17 -5
  183. nautobot/extras/plugins/__init__.py +13 -2
  184. nautobot/extras/plugins/marketplace_manifest.yml +84 -79
  185. nautobot/extras/plugins/tables.py +16 -14
  186. nautobot/extras/plugins/views.py +65 -69
  187. nautobot/extras/registry.py +1 -1
  188. nautobot/extras/secrets/__init__.py +2 -2
  189. nautobot/extras/signals.py +15 -1
  190. nautobot/extras/tables.py +7 -5
  191. nautobot/extras/templates/extras/computedfield.html +1 -1
  192. nautobot/extras/templates/extras/configcontext.html +1 -1
  193. nautobot/extras/templates/extras/configcontextschema.html +1 -1
  194. nautobot/extras/templates/extras/customfield.html +1 -1
  195. nautobot/extras/templates/extras/customlink.html +1 -1
  196. nautobot/extras/templates/extras/dynamicgroup.html +2 -10
  197. nautobot/extras/templates/extras/exporttemplate.html +1 -1
  198. nautobot/extras/templates/extras/gitrepository.html +1 -1
  199. nautobot/extras/templates/extras/graphqlquery.html +1 -1
  200. nautobot/extras/templates/extras/job_detail.html +17 -1
  201. nautobot/extras/templates/extras/job_edit.html +1 -0
  202. nautobot/extras/templates/extras/jobbutton_retrieve.html +1 -1
  203. nautobot/extras/templates/extras/jobhook.html +1 -1
  204. nautobot/extras/templates/extras/jobqueue_retrieve.html +1 -9
  205. nautobot/extras/templates/extras/jobresult.html +1 -1
  206. nautobot/extras/templates/extras/marketplace.html +29 -11
  207. nautobot/extras/templates/extras/objectchange.html +1 -1
  208. nautobot/extras/templates/extras/plugin_detail.html +33 -16
  209. nautobot/extras/templates/extras/plugins_tiles.html +21 -10
  210. nautobot/extras/templates/extras/relationship.html +1 -63
  211. nautobot/extras/templates/extras/role_retrieve.html +1 -1
  212. nautobot/extras/templates/extras/scheduledjob.html +1 -1
  213. nautobot/extras/templates/extras/secret.html +1 -1
  214. nautobot/extras/templates/extras/secretsgroup.html +1 -1
  215. nautobot/extras/templates/extras/status.html +1 -1
  216. nautobot/extras/templates/extras/tag.html +1 -1
  217. nautobot/extras/templates/extras/webhook.html +1 -1
  218. nautobot/extras/templatetags/job_buttons.py +4 -4
  219. nautobot/extras/test_jobs/api_test_job.py +1 -1
  220. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  221. nautobot/extras/test_jobs/dry_run.py +1 -1
  222. nautobot/extras/test_jobs/fail.py +5 -5
  223. nautobot/extras/test_jobs/file_output.py +1 -1
  224. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  225. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  226. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  227. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  228. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  229. nautobot/extras/test_jobs/log_redaction.py +1 -1
  230. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  231. nautobot/extras/test_jobs/modify_db.py +1 -1
  232. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  233. nautobot/extras/test_jobs/object_var_required.py +1 -1
  234. nautobot/extras/test_jobs/object_vars.py +1 -1
  235. nautobot/extras/test_jobs/pass.py +3 -3
  236. nautobot/extras/test_jobs/profiling.py +1 -1
  237. nautobot/extras/test_jobs/relative_import.py +3 -3
  238. nautobot/extras/test_jobs/singleton.py +16 -0
  239. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  240. nautobot/extras/test_jobs/task_queues.py +1 -1
  241. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_interfaces.gql +8 -0
  242. nautobot/extras/tests/git_data/01-valid-files/graphql_queries/device_names.gql +5 -0
  243. nautobot/extras/tests/git_data/02-invalid-files/graphql_queries/bad_device_names.gql +5 -0
  244. nautobot/extras/tests/git_helper.py +9 -1
  245. nautobot/extras/tests/integration/__init__.py +29 -16
  246. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  247. nautobot/extras/tests/test_api.py +19 -13
  248. nautobot/extras/tests/test_customfields.py +50 -52
  249. nautobot/extras/tests/test_datasources.py +29 -1
  250. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  251. nautobot/extras/tests/test_filters.py +6 -6
  252. nautobot/extras/tests/test_forms.py +33 -1
  253. nautobot/extras/tests/test_jobs.py +178 -32
  254. nautobot/extras/tests/test_models.py +299 -10
  255. nautobot/extras/tests/test_plugins.py +62 -9
  256. nautobot/extras/tests/test_relationships.py +120 -9
  257. nautobot/extras/tests/test_utils.py +22 -1
  258. nautobot/extras/tests/test_views.py +56 -194
  259. nautobot/extras/utils.py +20 -10
  260. nautobot/extras/views.py +85 -110
  261. nautobot/ipam/api/fields.py +3 -3
  262. nautobot/ipam/api/serializers.py +41 -33
  263. nautobot/ipam/api/views.py +68 -117
  264. nautobot/ipam/factory.py +1 -1
  265. nautobot/ipam/filters.py +3 -2
  266. nautobot/ipam/lookups.py +101 -62
  267. nautobot/ipam/models.py +74 -18
  268. nautobot/ipam/querysets.py +2 -2
  269. nautobot/ipam/tables.py +25 -9
  270. nautobot/ipam/templates/ipam/ipaddress.html +2 -10
  271. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  272. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  273. nautobot/ipam/templates/ipam/prefix.html +2 -10
  274. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  275. nautobot/ipam/templates/ipam/rir.html +1 -1
  276. nautobot/ipam/templates/ipam/routetarget.html +1 -1
  277. nautobot/ipam/templates/ipam/service.html +1 -1
  278. nautobot/ipam/templates/ipam/vlan.html +2 -10
  279. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  280. nautobot/ipam/templates/ipam/vlangroup.html +1 -1
  281. nautobot/ipam/templates/ipam/vrf.html +1 -1
  282. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  283. nautobot/ipam/tests/test_api.py +436 -3
  284. nautobot/ipam/tests/test_forms.py +49 -47
  285. nautobot/ipam/tests/test_migrations.py +30 -30
  286. nautobot/ipam/tests/test_models.py +119 -34
  287. nautobot/ipam/tests/test_querysets.py +63 -1
  288. nautobot/ipam/tests/test_utils.py +41 -2
  289. nautobot/ipam/tests/test_views.py +3 -0
  290. nautobot/ipam/utils/__init__.py +54 -17
  291. nautobot/ipam/views.py +61 -87
  292. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  293. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  294. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  295. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  296. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  297. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  298. nautobot/project-static/docs/404.html +131 -14
  299. nautobot/project-static/docs/apps/index.html +131 -14
  300. nautobot/project-static/docs/apps/nautobot-apps.html +132 -16
  301. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  302. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.60a45f97.min.js} +2 -2
  303. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.60a45f97.min.js.map} +2 -2
  304. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js → search.f8cc74c7.min.js} +1 -1
  305. nautobot/project-static/docs/assets/javascripts/workers/{search.6ce7567c.min.js.map → search.f8cc74c7.min.js.map} +1 -1
  306. nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css → main.a40c8224.min.css} +1 -1
  307. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +147 -20
  308. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +144 -17
  309. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +459 -132
  310. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +175 -28
  311. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +180 -31
  312. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +138 -16
  313. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +137 -15
  314. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +164 -27
  315. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +187 -38
  316. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +193 -31
  317. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +216 -48
  318. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +324 -75
  319. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +666 -175
  320. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +194 -46
  321. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +538 -177
  322. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +578 -221
  323. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +145 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +156 -25
  325. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +492 -65
  326. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +705 -215
  327. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +943 -422
  328. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +144 -17
  329. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +619 -200
  330. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +474 -159
  331. nautobot/project-static/docs/development/apps/api/configuration-view.html +131 -14
  332. nautobot/project-static/docs/development/apps/api/database-backend-config.html +131 -14
  333. nautobot/project-static/docs/development/apps/api/models/django-admin.html +131 -14
  334. nautobot/project-static/docs/development/apps/api/models/global-search.html +131 -14
  335. nautobot/project-static/docs/development/apps/api/models/graphql.html +131 -14
  336. nautobot/project-static/docs/development/apps/api/models/index.html +131 -14
  337. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +131 -14
  338. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +131 -14
  339. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +131 -14
  340. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +131 -14
  341. nautobot/project-static/docs/development/apps/api/platform-features/index.html +131 -14
  342. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +131 -14
  343. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +131 -14
  344. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +131 -14
  345. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +131 -14
  346. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +153 -17
  347. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +131 -14
  348. nautobot/project-static/docs/development/apps/api/prometheus.html +131 -14
  349. nautobot/project-static/docs/development/apps/api/setup.html +131 -14
  350. nautobot/project-static/docs/development/apps/api/testing.html +131 -14
  351. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +131 -14
  352. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +131 -14
  353. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +131 -14
  354. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +131 -14
  355. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +131 -14
  356. nautobot/project-static/docs/development/apps/api/views/base-template.html +131 -14
  357. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +131 -14
  358. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +131 -14
  359. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +131 -14
  360. nautobot/project-static/docs/development/apps/api/views/index.html +131 -14
  361. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +131 -14
  362. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +131 -14
  363. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +131 -14
  364. nautobot/project-static/docs/development/apps/api/views/notes.html +131 -14
  365. nautobot/project-static/docs/development/apps/api/views/rest-api.html +137 -16
  366. nautobot/project-static/docs/development/apps/api/views/urls.html +131 -14
  367. nautobot/project-static/docs/development/apps/index.html +131 -14
  368. nautobot/project-static/docs/development/apps/migration/code-updates.html +131 -14
  369. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +131 -14
  370. nautobot/project-static/docs/development/apps/migration/from-v1.html +131 -14
  371. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +131 -14
  372. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +131 -14
  373. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +131 -14
  374. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +131 -14
  375. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +135 -18
  376. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +131 -14
  377. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +297 -25
  378. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +131 -14
  379. nautobot/project-static/docs/development/apps/porting-from-netbox.html +131 -14
  380. nautobot/project-static/docs/development/core/application-registry.html +131 -14
  381. nautobot/project-static/docs/development/core/best-practices.html +131 -14
  382. nautobot/project-static/docs/development/core/bootstrap-ui.html +131 -14
  383. nautobot/project-static/docs/development/core/caching.html +131 -14
  384. nautobot/project-static/docs/development/core/controllers.html +131 -14
  385. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +158 -84
  386. nautobot/project-static/docs/development/core/generic-views.html +131 -14
  387. nautobot/project-static/docs/development/core/getting-started.html +334 -234
  388. nautobot/project-static/docs/development/core/homepage.html +134 -17
  389. nautobot/project-static/docs/development/core/index.html +131 -14
  390. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9829 -0
  391. nautobot/project-static/docs/development/core/model-checklist.html +141 -22
  392. nautobot/project-static/docs/development/core/model-features.html +131 -14
  393. nautobot/project-static/docs/development/core/natural-keys.html +131 -14
  394. nautobot/project-static/docs/development/core/navigation-menu.html +131 -14
  395. nautobot/project-static/docs/development/core/release-checklist.html +134 -17
  396. nautobot/project-static/docs/development/core/role-internals.html +131 -14
  397. nautobot/project-static/docs/development/core/settings.html +131 -14
  398. nautobot/project-static/docs/development/core/style-guide.html +134 -17
  399. nautobot/project-static/docs/development/core/templates.html +132 -15
  400. nautobot/project-static/docs/development/core/testing.html +131 -14
  401. nautobot/project-static/docs/development/core/ui-component-framework.html +454 -283
  402. nautobot/project-static/docs/development/core/user-preferences.html +131 -14
  403. nautobot/project-static/docs/development/index.html +131 -14
  404. nautobot/project-static/docs/development/jobs/index.html +301 -132
  405. nautobot/project-static/docs/development/jobs/migration/from-v1.html +131 -14
  406. nautobot/project-static/docs/index.html +139 -33
  407. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  408. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  409. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  410. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  411. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  412. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  413. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  414. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  415. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  416. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  422. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  423. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  424. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  425. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  426. nautobot/project-static/docs/objects.inv +0 -0
  427. nautobot/project-static/docs/overview/application_stack.html +132 -17
  428. nautobot/project-static/docs/overview/design_philosophy.html +131 -14
  429. nautobot/project-static/docs/release-notes/index.html +137 -22
  430. nautobot/project-static/docs/release-notes/version-1.0.html +319 -203
  431. nautobot/project-static/docs/release-notes/version-1.1.html +316 -200
  432. nautobot/project-static/docs/release-notes/version-1.2.html +391 -275
  433. nautobot/project-static/docs/release-notes/version-1.3.html +417 -301
  434. nautobot/project-static/docs/release-notes/version-1.4.html +502 -387
  435. nautobot/project-static/docs/release-notes/version-1.5.html +690 -576
  436. nautobot/project-static/docs/release-notes/version-1.6.html +989 -457
  437. nautobot/project-static/docs/release-notes/version-2.0.html +613 -499
  438. nautobot/project-static/docs/release-notes/version-2.1.html +448 -334
  439. nautobot/project-static/docs/release-notes/version-2.2.html +441 -327
  440. nautobot/project-static/docs/release-notes/version-2.3.html +1171 -451
  441. nautobot/project-static/docs/release-notes/version-2.4.html +800 -111
  442. nautobot/project-static/docs/requirements.txt +2 -2
  443. nautobot/project-static/docs/search/search_index.json +1 -1
  444. nautobot/project-static/docs/sitemap.xml +303 -287
  445. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  446. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +131 -14
  447. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +131 -14
  448. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +133 -16
  449. nautobot/project-static/docs/user-guide/administration/configuration/index.html +131 -14
  450. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +131 -14
  451. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +195 -18
  452. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +131 -14
  453. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +134 -17
  454. nautobot/project-static/docs/user-guide/administration/guides/docker.html +131 -14
  455. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +131 -14
  456. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +131 -14
  457. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +131 -14
  458. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +131 -14
  459. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +131 -14
  460. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +133 -16
  461. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +131 -14
  462. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +131 -14
  463. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +131 -14
  464. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +151 -18
  465. nautobot/project-static/docs/user-guide/administration/installation/index.html +131 -14
  466. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +132 -15
  467. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +131 -14
  468. nautobot/project-static/docs/user-guide/administration/installation/services.html +131 -14
  469. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +131 -14
  470. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +131 -14
  471. nautobot/project-static/docs/user-guide/administration/security/index.html +9420 -0
  472. nautobot/project-static/docs/user-guide/administration/security/notices.html +9843 -0
  473. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +131 -14
  474. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +131 -14
  475. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +131 -14
  476. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +131 -14
  477. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +131 -14
  478. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +131 -14
  479. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +131 -14
  480. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +134 -18
  481. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +131 -14
  482. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +131 -14
  483. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +131 -14
  484. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +131 -14
  485. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +131 -14
  486. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +131 -14
  487. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +131 -14
  488. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +131 -14
  489. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +131 -14
  490. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +131 -14
  491. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +131 -14
  492. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +131 -14
  493. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +131 -14
  494. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +131 -14
  495. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +131 -14
  496. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +131 -14
  497. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +131 -14
  498. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +131 -14
  499. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +131 -14
  500. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +131 -14
  501. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +131 -14
  502. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +131 -14
  503. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +131 -14
  504. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +131 -14
  505. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +131 -14
  506. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +131 -14
  507. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +131 -14
  508. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +131 -14
  509. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +131 -14
  510. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +131 -14
  511. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +131 -14
  512. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +131 -14
  513. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +131 -14
  514. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +131 -14
  515. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +131 -14
  516. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +131 -14
  517. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +131 -14
  518. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +131 -14
  519. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +131 -14
  520. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +131 -14
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +131 -14
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +131 -14
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +131 -14
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +131 -14
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +131 -14
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +131 -14
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +131 -14
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +131 -14
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +131 -14
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +131 -14
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +131 -14
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +131 -14
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +131 -14
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +131 -14
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +131 -14
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +131 -14
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +131 -14
  538. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +135 -22
  539. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +131 -14
  540. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +131 -14
  541. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +131 -14
  542. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +131 -14
  543. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +131 -14
  544. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +131 -14
  545. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +131 -14
  546. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +131 -14
  547. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +131 -14
  548. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +131 -14
  549. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +131 -14
  550. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +131 -14
  551. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +134 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +131 -14
  553. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +131 -14
  554. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +131 -14
  555. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +131 -14
  556. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +131 -14
  557. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +131 -14
  558. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +131 -14
  559. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +131 -14
  560. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +131 -14
  561. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +131 -14
  562. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +131 -14
  563. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +131 -14
  564. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +131 -14
  565. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +131 -14
  566. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +131 -14
  567. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +134 -17
  568. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +131 -14
  569. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +131 -14
  570. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +131 -14
  571. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +131 -14
  572. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +131 -14
  573. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +131 -14
  574. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +236 -34
  575. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +131 -14
  576. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  577. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  578. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  579. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  580. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  581. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  582. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  583. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  584. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  585. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  586. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  587. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  589. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +131 -14
  590. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +131 -14
  591. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +134 -17
  592. nautobot/project-static/docs/{development/core/local-k8s.html → user-guide/feature-guides/wireless-networks-and-controllers.html} +632 -566
  593. nautobot/project-static/docs/user-guide/index.html +131 -14
  594. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +131 -14
  595. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +135 -18
  596. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +131 -14
  597. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +131 -14
  598. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +131 -14
  599. nautobot/project-static/docs/user-guide/platform-functionality/events.html +131 -14
  600. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +131 -14
  601. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +131 -14
  602. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +451 -16
  603. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +131 -14
  604. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +131 -14
  605. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +131 -14
  606. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +135 -17
  607. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +131 -14
  608. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +134 -17
  609. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +131 -14
  610. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +131 -14
  611. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9797 -0
  612. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +131 -14
  613. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +131 -14
  614. nautobot/project-static/docs/user-guide/platform-functionality/note.html +131 -14
  615. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +131 -14
  616. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +132 -15
  617. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +131 -14
  618. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +131 -14
  619. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +179 -35
  620. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +159 -15
  621. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +131 -14
  622. nautobot/project-static/docs/user-guide/platform-functionality/role.html +131 -14
  623. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +131 -14
  624. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +131 -14
  625. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +131 -14
  626. nautobot/project-static/docs/user-guide/platform-functionality/status.html +131 -14
  627. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +131 -14
  628. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +131 -14
  629. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +131 -14
  630. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +131 -14
  631. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +131 -14
  632. nautobot/project-static/js/forms.js +1 -1
  633. nautobot/tenancy/api/views.py +9 -13
  634. nautobot/tenancy/templates/tenancy/tenant.html +1 -2
  635. nautobot/tenancy/templates/tenancy/tenantgroup.html +1 -1
  636. nautobot/tenancy/views.py +4 -2
  637. nautobot/users/admin.py +1 -1
  638. nautobot/users/api/serializers.py +5 -4
  639. nautobot/users/api/views.py +3 -3
  640. nautobot/virtualization/api/serializers.py +4 -4
  641. nautobot/virtualization/api/views.py +5 -24
  642. nautobot/virtualization/filters.py +20 -3
  643. nautobot/virtualization/models.py +1 -1
  644. nautobot/virtualization/tables.py +2 -2
  645. nautobot/virtualization/templates/virtualization/cluster.html +1 -1
  646. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  647. nautobot/virtualization/templates/virtualization/clustergroup.html +1 -1
  648. nautobot/virtualization/templates/virtualization/clustertype.html +1 -1
  649. nautobot/virtualization/templates/virtualization/virtualmachine.html +2 -10
  650. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  651. nautobot/virtualization/templates/virtualization/vminterface.html +1 -1
  652. nautobot/virtualization/tests/test_filters.py +17 -0
  653. nautobot/wireless/filters.py +2 -2
  654. nautobot/wireless/forms.py +1 -1
  655. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -9
  656. nautobot/wireless/tests/integration/__init__.py +0 -0
  657. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  658. nautobot/wireless/tests/test_filters.py +29 -1
  659. nautobot/wireless/tests/test_views.py +22 -1
  660. nautobot/wireless/views.py +0 -10
  661. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/METADATA +9 -9
  662. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/RECORD +667 -610
  663. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/WHEEL +1 -1
  664. nautobot/core/fixtures/user-data.json +0 -59
  665. /nautobot/project-static/docs/assets/stylesheets/{main.6f8fc17f.min.css.map → main.a40c8224.min.css.map} +0 -0
  666. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/LICENSE.txt +0 -0
  667. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/NOTICE +0 -0
  668. {nautobot-2.4.0b1.dist-info → nautobot-2.4.2.dist-info}/entry_points.txt +0 -0
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  <link rel="icon" href="../../../assets/favicon.ico">
21
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.46">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.50">
22
22
 
23
23
 
24
24
 
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- <link rel="stylesheet" href="../../../assets/stylesheets/main.6f8fc17f.min.css">
29
+ <link rel="stylesheet" href="../../../assets/stylesheets/main.a40c8224.min.css">
30
30
 
31
31
 
32
32
  <link rel="stylesheet" href="../../../assets/stylesheets/palette.06af60db.min.css">
@@ -38,7 +38,7 @@
38
38
 
39
39
 
40
40
 
41
- <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1"/></svg>');}</style>
41
+ <style>:root{--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M288 0H128c-17.7 0-32 14.3-32 32s14.3 32 32 32v132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6 0 480.9 31.1 512 69.4 512h309.2c38.3 0 69.4-31.1 69.4-69.4 0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32S337.7 0 320 0zm-96 196.8V64h64v132.8c0 23.7 6.6 46.9 19 67.1l34.5 56.1h-171l34.5-56.1c12.4-20.2 19-43.4 19-67.1"/></svg>');}</style>
42
42
 
43
43
 
44
44
 
@@ -217,7 +217,7 @@
217
217
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
218
218
  <div class="md-source__icon md-icon">
219
219
 
220
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
220
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
221
221
  </div>
222
222
  <div class="md-source__repository">
223
223
  GitHub
@@ -377,7 +377,7 @@
377
377
  <a href="https://github.com/nautobot/nautobot" title="Go to repository" class="md-source" data-md-component="source">
378
378
  <div class="md-source__icon md-icon">
379
379
 
380
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
380
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
381
381
  </div>
382
382
  <div class="md-source__repository">
383
383
  GitHub
@@ -1697,6 +1697,81 @@
1697
1697
 
1698
1698
 
1699
1699
 
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+
1709
+
1710
+
1711
+
1712
+
1713
+ <li class="md-nav__item md-nav__item--nested">
1714
+
1715
+
1716
+
1717
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_1_7" >
1718
+
1719
+
1720
+
1721
+ <div class="md-nav__link md-nav__container">
1722
+ <a href="../../../user-guide/administration/security/index.html" class="md-nav__link ">
1723
+
1724
+
1725
+ <span class="md-ellipsis">
1726
+ Security
1727
+ </span>
1728
+
1729
+
1730
+ </a>
1731
+
1732
+
1733
+ <label class="md-nav__link " for="__nav_2_1_7" id="__nav_2_1_7_label" tabindex="0">
1734
+ <span class="md-nav__icon md-icon"></span>
1735
+ </label>
1736
+
1737
+ </div>
1738
+
1739
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_1_7_label" aria-expanded="false">
1740
+ <label class="md-nav__title" for="__nav_2_1_7">
1741
+ <span class="md-nav__icon md-icon"></span>
1742
+ Security
1743
+ </label>
1744
+ <ul class="md-nav__list" data-md-scrollfix>
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+ <li class="md-nav__item">
1753
+ <a href="../../../user-guide/administration/security/notices.html" class="md-nav__link">
1754
+
1755
+
1756
+ <span class="md-ellipsis">
1757
+ Notices
1758
+ </span>
1759
+
1760
+
1761
+ </a>
1762
+ </li>
1763
+
1764
+
1765
+
1766
+
1767
+ </ul>
1768
+ </nav>
1769
+
1770
+ </li>
1771
+
1772
+
1773
+
1774
+
1700
1775
  </ul>
1701
1776
  </nav>
1702
1777
 
@@ -2112,6 +2187,27 @@
2112
2187
 
2113
2188
 
2114
2189
 
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+ <li class="md-nav__item">
2197
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2198
+
2199
+
2200
+ <span class="md-ellipsis">
2201
+ Wireless Networks and Controllers
2202
+ </span>
2203
+
2204
+
2205
+ </a>
2206
+ </li>
2207
+
2208
+
2209
+
2210
+
2115
2211
  </ul>
2116
2212
  </nav>
2117
2213
 
@@ -5131,6 +5227,27 @@
5131
5227
 
5132
5228
 
5133
5229
 
5230
+ <li class="md-nav__item">
5231
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5232
+
5233
+
5234
+ <span class="md-ellipsis">
5235
+ Kubernetes Job Support
5236
+ </span>
5237
+
5238
+
5239
+ </a>
5240
+ </li>
5241
+
5242
+
5243
+
5244
+
5245
+
5246
+
5247
+
5248
+
5249
+
5250
+
5134
5251
  <li class="md-nav__item">
5135
5252
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
5136
5253
 
@@ -9025,11 +9142,11 @@
9025
9142
 
9026
9143
 
9027
9144
  <li class="md-nav__item">
9028
- <a href="../../../development/core/local-k8s.html" class="md-nav__link">
9145
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9029
9146
 
9030
9147
 
9031
9148
  <span class="md-ellipsis">
9032
- Local Kubernetes Cluster
9149
+ Minikube Dev Environment for K8s Jobs
9033
9150
  </span>
9034
9151
 
9035
9152
 
@@ -10896,7 +11013,12 @@
10896
11013
 
10897
11014
  <div class="doc doc-contents first">
10898
11015
 
10899
- <p>Utilities for apps to implement UI views.</p>
11016
+ <p>Utilities for apps to implement UI views.</p>
11017
+
11018
+
11019
+
11020
+
11021
+
10900
11022
 
10901
11023
 
10902
11024
 
@@ -10922,10 +11044,15 @@
10922
11044
 
10923
11045
  <div class="doc doc-contents ">
10924
11046
  <p class="doc doc-class-bases">
10925
- Bases: <code><autoref identifier="django.contrib.auth.mixins.AccessMixin" optional hover>AccessMixin</autoref></code></p>
11047
+ Bases: <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code></p>
11048
+
11049
+
11050
+ <p>Allows access only to admin users.</p>
11051
+
11052
+
11053
+
10926
11054
 
10927
11055
 
10928
- <p>Allows access only to admin users.</p>
10929
11056
 
10930
11057
 
10931
11058
 
@@ -10961,10 +11088,15 @@
10961
11088
 
10962
11089
  <div class="doc doc-contents ">
10963
11090
  <p class="doc doc-class-bases">
10964
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11091
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
11092
+
11093
+
11094
+ <p>Add one or more components (e.g. interfaces, console ports, etc.) to a set of Devices or VirtualMachines.</p>
11095
+
11096
+
11097
+
10965
11098
 
10966
11099
 
10967
- <p>Add one or more components (e.g. interfaces, console ports, etc.) to a set of Devices or VirtualMachines.</p>
10968
11100
 
10969
11101
 
10970
11102
 
@@ -11000,10 +11132,10 @@
11000
11132
 
11001
11133
  <div class="doc doc-contents ">
11002
11134
  <p class="doc doc-class-bases">
11003
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11135
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
11004
11136
 
11005
11137
 
11006
- <p>Create new objects in bulk.</p>
11138
+ <p>Create new objects in bulk.</p>
11007
11139
  <p>queryset: Base queryset for the objects being created
11008
11140
  form: Form class which provides the <code>pattern</code> field
11009
11141
  model_form: The ModelForm used to create individual objects
@@ -11013,6 +11145,11 @@ template_name: The name of the template</p>
11013
11145
 
11014
11146
 
11015
11147
 
11148
+
11149
+
11150
+
11151
+
11152
+
11016
11153
  <div class="doc doc-children">
11017
11154
 
11018
11155
 
@@ -11044,10 +11181,10 @@ template_name: The name of the template</p>
11044
11181
 
11045
11182
  <div class="doc doc-contents ">
11046
11183
  <p class="doc doc-class-bases">
11047
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.EditAndDeleteAllModelMixin" optional hover>EditAndDeleteAllModelMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11184
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
11048
11185
 
11049
11186
 
11050
- <p>Delete objects in bulk.</p>
11187
+ <p>Delete objects in bulk.</p>
11051
11188
  <p>queryset: Custom queryset to use when retrieving objects (e.g. to select related objects)
11052
11189
  filterset: FilterSet to apply when deleting by QuerySet
11053
11190
  table: The table used to display devices being deleted
@@ -11057,6 +11194,11 @@ template_name: The name of the template</p>
11057
11194
 
11058
11195
 
11059
11196
 
11197
+
11198
+
11199
+
11200
+
11201
+
11060
11202
  <div class="doc doc-children">
11061
11203
 
11062
11204
 
@@ -11078,7 +11220,7 @@ template_name: The name of the template</p>
11078
11220
 
11079
11221
  <div class="doc doc-contents ">
11080
11222
 
11081
- <p>Provide a standard bulk delete form if none has been specified for the view</p>
11223
+ <p>Provide a standard bulk delete form if none has been specified for the view</p>
11082
11224
 
11083
11225
  </div>
11084
11226
 
@@ -11105,10 +11247,10 @@ template_name: The name of the template</p>
11105
11247
 
11106
11248
  <div class="doc doc-contents ">
11107
11249
  <p class="doc doc-class-bases">
11108
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.EditAndDeleteAllModelMixin" optional hover>EditAndDeleteAllModelMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11250
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
11109
11251
 
11110
11252
 
11111
- <p>Edit objects in bulk.</p>
11253
+ <p>Edit objects in bulk.</p>
11112
11254
  <p>queryset: Custom queryset to use when retrieving objects (e.g. to select related objects)
11113
11255
  filter: FilterSet to apply when deleting by QuerySet
11114
11256
  table: The table used to display devices being edited
@@ -11118,6 +11260,11 @@ template_name: The name of the template</p>
11118
11260
 
11119
11261
 
11120
11262
 
11263
+
11264
+
11265
+
11266
+
11267
+
11121
11268
  <div class="doc doc-children">
11122
11269
 
11123
11270
 
@@ -11139,7 +11286,7 @@ template_name: The name of the template</p>
11139
11286
 
11140
11287
  <div class="doc doc-contents ">
11141
11288
 
11142
- <p>Extra actions after a form is saved</p>
11289
+ <p>Extra actions after a form is saved</p>
11143
11290
 
11144
11291
  </div>
11145
11292
 
@@ -11166,10 +11313,10 @@ template_name: The name of the template</p>
11166
11313
 
11167
11314
  <div class="doc doc-contents ">
11168
11315
  <p class="doc doc-class-bases">
11169
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11316
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
11170
11317
 
11171
11318
 
11172
- <p>Import objects in bulk (CSV format).</p>
11319
+ <p>Import objects in bulk (CSV format).</p>
11173
11320
  <p>Deprecated - replaced by ImportObjects system Job.</p>
11174
11321
  <p>queryset: Base queryset for the model
11175
11322
  table: The django-tables2 Table used to render the list of imported objects
@@ -11178,6 +11325,11 @@ template_name: The name of the template</p>
11178
11325
 
11179
11326
 
11180
11327
 
11328
+
11329
+
11330
+
11331
+
11332
+
11181
11333
  <div class="doc doc-children">
11182
11334
 
11183
11335
 
@@ -11209,10 +11361,15 @@ template_name: The name of the template</p>
11209
11361
 
11210
11362
  <div class="doc doc-contents ">
11211
11363
  <p class="doc doc-class-bases">
11212
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11364
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
11365
+
11366
+
11367
+ <p>An extendable view for renaming objects in bulk.</p>
11368
+
11369
+
11370
+
11213
11371
 
11214
11372
 
11215
- <p>An extendable view for renaming objects in bulk.</p>
11216
11373
 
11217
11374
 
11218
11375
 
@@ -11238,7 +11395,7 @@ template_name: The name of the template</p>
11238
11395
 
11239
11396
  <div class="doc doc-contents ">
11240
11397
 
11241
- <p>Return selected_objects parent name.</p>
11398
+ <p>Return selected_objects parent name.</p>
11242
11399
  <p>This method is intended to be overridden by child classes to return the parent name of the selected objects.</p>
11243
11400
 
11244
11401
 
@@ -11254,9 +11411,11 @@ template_name: The name of the template</p>
11254
11411
  </thead>
11255
11412
  <tbody>
11256
11413
  <tr class="doc-section-item">
11257
- <td><code>selected_objects</code></td>
11258
11414
  <td>
11259
- <code><autoref identifier="list" optional>list</autoref>[<autoref identifier="BaseModel" optional>BaseModel</autoref>]</code>
11415
+ <code>selected_objects</code>
11416
+ </td>
11417
+ <td>
11418
+ <code>list[BaseModel]</code>
11260
11419
  </td>
11261
11420
  <td>
11262
11421
  <div class="doc-md-description">
@@ -11282,7 +11441,7 @@ template_name: The name of the template</p>
11282
11441
  <tbody>
11283
11442
  <tr class="doc-section-item">
11284
11443
  <td>
11285
- <code><autoref identifier="str" optional>str</autoref></code>
11444
+ <code>str</code>
11286
11445
  </td>
11287
11446
  <td>
11288
11447
  <div class="doc-md-description">
@@ -11318,10 +11477,15 @@ template_name: The name of the template</p>
11318
11477
 
11319
11478
  <div class="doc doc-contents ">
11320
11479
  <p class="doc doc-class-bases">
11321
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11480
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
11481
+
11482
+
11483
+ <p>Add one or more components (e.g. interfaces, console ports, etc.) to a Device or VirtualMachine.</p>
11484
+
11485
+
11486
+
11322
11487
 
11323
11488
 
11324
- <p>Add one or more components (e.g. interfaces, console ports, etc.) to a Device or VirtualMachine.</p>
11325
11489
 
11326
11490
 
11327
11491
 
@@ -11357,10 +11521,10 @@ template_name: The name of the template</p>
11357
11521
 
11358
11522
  <div class="doc doc-contents ">
11359
11523
  <p class="doc doc-class-bases">
11360
- Bases: <code><autoref identifier="django.contrib.auth.mixins.AccessMixin" optional hover>AccessMixin</autoref></code></p>
11524
+ Bases: <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code></p>
11361
11525
 
11362
11526
 
11363
- <p>Similar to Django's built-in PermissionRequiredMixin, but extended to check model-level permission assignments.
11527
+ <p>Similar to Django's built-in PermissionRequiredMixin, but extended to check model-level permission assignments.
11364
11528
  This is related to ObjectPermissionRequiredMixin, except that is does not enforce object-level permissions,
11365
11529
  and fits within Nautobot's custom permission enforcement system.</p>
11366
11530
 
@@ -11372,6 +11536,11 @@ and fits within Nautobot's custom permission enforcement system.</p>
11372
11536
 
11373
11537
 
11374
11538
 
11539
+
11540
+
11541
+
11542
+
11543
+
11375
11544
  <div class="doc doc-children">
11376
11545
 
11377
11546
 
@@ -11393,7 +11562,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
11393
11562
 
11394
11563
  <div class="doc doc-contents ">
11395
11564
 
11396
- <p>Return the specific permission necessary to perform the requested action on an object.</p>
11565
+ <p>Return the specific permission necessary to perform the requested action on an object.</p>
11397
11566
 
11398
11567
  </div>
11399
11568
 
@@ -11420,13 +11589,18 @@ and fits within Nautobot's custom permission enforcement system.</p>
11420
11589
 
11421
11590
  <div class="doc doc-contents ">
11422
11591
  <p class="doc doc-class-bases">
11423
- Bases: <code><autoref identifier="django.contrib.auth.mixins.LoginRequiredMixin" optional hover>LoginRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
11592
+ Bases: <code><span title="django.contrib.auth.mixins.LoginRequiredMixin">LoginRequiredMixin</span></code>, <code><span title="django.views.generic.View">View</span></code></p>
11424
11593
 
11425
11594
 
11426
- <p>Base class for non-object-related views.</p>
11595
+ <p>Base class for non-object-related views.</p>
11427
11596
  <p>Enforces authentication, which Django's base View does not by default.</p>
11428
11597
 
11429
11598
 
11599
+
11600
+
11601
+
11602
+
11603
+
11430
11604
  </div>
11431
11605
 
11432
11606
  </div>
@@ -11445,7 +11619,12 @@ and fits within Nautobot's custom permission enforcement system.</p>
11445
11619
  <div class="doc doc-contents ">
11446
11620
 
11447
11621
 
11448
- <p>Provides logic for determining where a user should be redirected after processing a form.</p>
11622
+ <p>Provides logic for determining where a user should be redirected after processing a form.</p>
11623
+
11624
+
11625
+
11626
+
11627
+
11449
11628
 
11450
11629
 
11451
11630
 
@@ -11481,10 +11660,15 @@ and fits within Nautobot's custom permission enforcement system.</p>
11481
11660
 
11482
11661
  <div class="doc doc-contents ">
11483
11662
  <p class="doc doc-class-bases">
11484
- Bases: <code><autoref identifier="rest_framework.renderers.BrowsableAPIRenderer" optional hover>BrowsableAPIRenderer</autoref></code></p>
11663
+ Bases: <code><span title="rest_framework.renderers.BrowsableAPIRenderer">BrowsableAPIRenderer</span></code></p>
11664
+
11665
+
11666
+ <p>Inherited from BrowsableAPIRenderer to do most of the heavy lifting for getting the context needed for templates and template rendering.</p>
11667
+
11668
+
11669
+
11485
11670
 
11486
11671
 
11487
- <p>Inherited from BrowsableAPIRenderer to do most of the heavy lifting for getting the context needed for templates and template rendering.</p>
11488
11672
 
11489
11673
 
11490
11674
 
@@ -11510,7 +11694,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
11510
11694
 
11511
11695
  <div class="doc doc-contents ">
11512
11696
 
11513
- <p>Helper function to construct and paginate the table for rendering used in the ObjectListView, ObjectBulkUpdateView and ObjectBulkDestroyView.</p>
11697
+ <p>Helper function to construct and paginate the table for rendering used in the ObjectListView, ObjectBulkUpdateView and ObjectBulkDestroyView.</p>
11514
11698
 
11515
11699
  </div>
11516
11700
 
@@ -11527,7 +11711,7 @@ and fits within Nautobot's custom permission enforcement system.</p>
11527
11711
 
11528
11712
  <div class="doc doc-contents ">
11529
11713
 
11530
- <p>Helper function to gather the user's permissions to add, change, delete and view the model,
11714
+ <p>Helper function to gather the user's permissions to add, change, delete and view the model,
11531
11715
  and then render the action buttons accordingly allowed in the ObjectListView UI.</p>
11532
11716
 
11533
11717
  </div>
@@ -11545,7 +11729,7 @@ and then render the action buttons accordingly allowed in the ObjectListView UI.
11545
11729
 
11546
11730
  <div class="doc doc-contents ">
11547
11731
 
11548
- <p>Override get_context() from BrowsableAPIRenderer to obtain the context data we need to render our templates.
11732
+ <p>Override get_context() from BrowsableAPIRenderer to obtain the context data we need to render our templates.
11549
11733
  context variable contains template context needed to render Nautobot generic templates / circuits templates.
11550
11734
  Override this function to add additional key/value pair to pass it to your templates.</p>
11551
11735
 
@@ -11564,7 +11748,7 @@ Override this function to add additional key/value pair to pass it to your templ
11564
11748
 
11565
11749
  <div class="doc doc-contents ">
11566
11750
 
11567
- <p>Helper function to obtain the filter_form_class,
11751
+ <p>Helper function to obtain the filter_form_class,
11568
11752
  and then initialize and return the filter_form used in the ObjectListView UI.</p>
11569
11753
 
11570
11754
  </div>
@@ -11582,7 +11766,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11582
11766
 
11583
11767
  <div class="doc doc-contents ">
11584
11768
 
11585
- <p>Overrode render() from BrowsableAPIRenderer to set self.template with NautobotViewSet's get_template_name() before it is rendered.</p>
11769
+ <p>Overrode render() from BrowsableAPIRenderer to set self.template with NautobotViewSet's get_template_name() before it is rendered.</p>
11586
11770
 
11587
11771
  </div>
11588
11772
 
@@ -11599,7 +11783,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11599
11783
 
11600
11784
  <div class="doc doc-contents ">
11601
11785
 
11602
- <p>Verify actions in self.action_buttons are valid view actions.</p>
11786
+ <p>Verify actions in self.action_buttons are valid view actions.</p>
11603
11787
 
11604
11788
  </div>
11605
11789
 
@@ -11626,16 +11810,21 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11626
11810
 
11627
11811
  <div class="doc doc-contents ">
11628
11812
  <p class="doc doc-class-bases">
11629
- Bases: <code><autoref identifier="nautobot.core.views.mixins.ObjectDetailViewMixin" optional hover>ObjectDetailViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectListViewMixin" optional hover>ObjectListViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectEditViewMixin" optional hover>ObjectEditViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectDestroyViewMixin" optional hover>ObjectDestroyViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectBulkDestroyViewMixin" optional hover>ObjectBulkDestroyViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectBulkCreateViewMixin" optional hover>ObjectBulkCreateViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectBulkUpdateViewMixin" optional hover>ObjectBulkUpdateViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectChangeLogViewMixin" optional hover>ObjectChangeLogViewMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectNotesViewMixin" optional hover>ObjectNotesViewMixin</autoref></code></p>
11813
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectDetailViewMixin" href="#nautobot.apps.views.ObjectDetailViewMixin">ObjectDetailViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectListViewMixin" href="#nautobot.apps.views.ObjectListViewMixin">ObjectListViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectEditViewMixin" href="#nautobot.apps.views.ObjectEditViewMixin">ObjectEditViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectDestroyViewMixin" href="#nautobot.apps.views.ObjectDestroyViewMixin">ObjectDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkDestroyViewMixin" href="#nautobot.apps.views.ObjectBulkDestroyViewMixin">ObjectBulkDestroyViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkCreateViewMixin" href="#nautobot.apps.views.ObjectBulkCreateViewMixin">ObjectBulkCreateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectBulkUpdateViewMixin" href="#nautobot.apps.views.ObjectBulkUpdateViewMixin">ObjectBulkUpdateViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectChangeLogViewMixin" href="#nautobot.apps.views.ObjectChangeLogViewMixin">ObjectChangeLogViewMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectNotesViewMixin" href="#nautobot.apps.views.ObjectNotesViewMixin">ObjectNotesViewMixin</a></code></p>
11630
11814
 
11631
11815
 
11632
- <p>Nautobot BaseViewSet that is intended for UI use only. It provides default Nautobot functionalities such as
11816
+ <p>Nautobot BaseViewSet that is intended for UI use only. It provides default Nautobot functionalities such as
11633
11817
  <code>create()</code>, <code>update()</code>, <code>partial_update()</code>, <code>bulk_update()</code>, <code>destroy()</code>, <code>bulk_destroy()</code>, <code>retrieve()</code>
11634
11818
  <code>notes()</code>, <code>changelog()</code> and <code>list()</code> actions.</p>
11635
11819
 
11636
11820
 
11637
11821
 
11638
11822
 
11823
+
11824
+
11825
+
11826
+
11827
+
11639
11828
  <div class="doc doc-children">
11640
11829
 
11641
11830
 
@@ -11667,10 +11856,15 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11667
11856
 
11668
11857
  <div class="doc doc-contents ">
11669
11858
  <p class="doc doc-class-bases">
11670
- Bases: <code><autoref identifier="rest_framework.viewsets.GenericViewSet" optional hover>GenericViewSet</autoref></code>, <code><autoref identifier="django.contrib.auth.mixins.AccessMixin" optional hover>AccessMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="django.views.generic.edit.FormView" optional hover>FormView</autoref></code></p>
11859
+ Bases: <code><span title="rest_framework.viewsets.GenericViewSet">GenericViewSet</span></code>, <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><span title="django.views.generic.edit.FormView">FormView</span></code></p>
11860
+
11861
+
11862
+ <p>NautobotViewSetMixin is an aggregation of various mixins from DRF, Django and Nautobot to acheive the desired behavior pattern for NautobotUIViewSet</p>
11863
+
11864
+
11865
+
11671
11866
 
11672
11867
 
11673
- <p>NautobotViewSetMixin is an aggregation of various mixins from DRF, Django and Nautobot to acheive the desired behavior pattern for NautobotUIViewSet</p>
11674
11868
 
11675
11869
 
11676
11870
 
@@ -11696,7 +11890,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11696
11890
 
11697
11891
  <div class="doc doc-contents ">
11698
11892
 
11699
- <p>Check whether the user has the permissions needed to perform certain actions.</p>
11893
+ <p>Check whether the user has the permissions needed to perform certain actions.</p>
11700
11894
 
11701
11895
  </div>
11702
11896
 
@@ -11713,7 +11907,7 @@ and then initialize and return the filter_form used in the ObjectListView UI.</p
11713
11907
 
11714
11908
  <div class="doc doc-contents ">
11715
11909
 
11716
- <p>Override the default dispatch() method to check permissions first.
11910
+ <p>Override the default dispatch() method to check permissions first.
11717
11911
  Used to determine whether the user has permissions to a view and object-level permissions.
11718
11912
  Using AccessMixin handle_no_permission() to deal with Object-Level permissions and API-Level permissions in one pass.</p>
11719
11913
 
@@ -11732,7 +11926,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
11732
11926
 
11733
11927
  <div class="doc doc-contents ">
11734
11928
 
11735
- <p>Extra actions after a form is saved</p>
11929
+ <p>Extra actions after a form is saved</p>
11736
11930
 
11737
11931
  </div>
11738
11932
 
@@ -11749,7 +11943,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
11749
11943
 
11750
11944
  <div class="doc doc-contents ">
11751
11945
 
11752
- <p>Handle invalid forms.</p>
11946
+ <p>Handle invalid forms.</p>
11753
11947
 
11754
11948
  </div>
11755
11949
 
@@ -11766,7 +11960,7 @@ Using AccessMixin handle_no_permission() to deal with Object-Level permissions a
11766
11960
 
11767
11961
  <div class="doc doc-contents ">
11768
11962
 
11769
- <p>Generic method to save the object from form.
11963
+ <p>Generic method to save the object from form.
11770
11964
  Should be overriden by user if customization is needed.</p>
11771
11965
 
11772
11966
  </div>
@@ -11784,7 +11978,7 @@ Should be overriden by user if customization is needed.</p>
11784
11978
 
11785
11979
  <div class="doc doc-contents ">
11786
11980
 
11787
- <p>Handle valid forms and redirect to success_url.</p>
11981
+ <p>Handle valid forms and redirect to success_url.</p>
11788
11982
 
11789
11983
  </div>
11790
11984
 
@@ -11801,7 +11995,7 @@ Should be overriden by user if customization is needed.</p>
11801
11995
 
11802
11996
  <div class="doc doc-contents ">
11803
11997
 
11804
- <p>Helper method for retrieving action and if action not set defaulting to action name.</p>
11998
+ <p>Helper method for retrieving action and if action not set defaulting to action name.</p>
11805
11999
 
11806
12000
  </div>
11807
12001
 
@@ -11818,7 +12012,7 @@ Should be overriden by user if customization is needed.</p>
11818
12012
 
11819
12013
  <div class="doc doc-contents ">
11820
12014
 
11821
- <p>Return any additional context data for the template.
12015
+ <p>Return any additional context data for the template.
11822
12016
  request: The current request
11823
12017
  instance: The object being viewed</p>
11824
12018
 
@@ -11837,7 +12031,7 @@ instance: The object being viewed</p>
11837
12031
 
11838
12032
  <div class="doc doc-contents ">
11839
12033
 
11840
- <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
12034
+ <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
11841
12035
 
11842
12036
  </div>
11843
12037
 
@@ -11854,7 +12048,7 @@ instance: The object being viewed</p>
11854
12048
 
11855
12049
  <div class="doc doc-contents ">
11856
12050
 
11857
- <p>Helper function to get form for different views if specified.
12051
+ <p>Helper function to get form for different views if specified.
11858
12052
  If not, return instantiated form using form_class.</p>
11859
12053
 
11860
12054
  </div>
@@ -11872,7 +12066,7 @@ If not, return instantiated form using form_class.</p>
11872
12066
 
11873
12067
  <div class="doc doc-contents ">
11874
12068
 
11875
- <p>Helper function to get form_class for different views.</p>
12069
+ <p>Helper function to get form_class for different views.</p>
11876
12070
 
11877
12071
  </div>
11878
12072
 
@@ -11889,7 +12083,7 @@ If not, return instantiated form using form_class.</p>
11889
12083
 
11890
12084
  <div class="doc doc-contents ">
11891
12085
 
11892
- <p>Returns the object the view is displaying.
12086
+ <p>Returns the object the view is displaying.
11893
12087
  You may want to override this if you need to provide non-standard
11894
12088
  queryset lookups. Eg if objects are referenced using multiple
11895
12089
  keyword arguments in the url conf.</p>
@@ -11909,7 +12103,7 @@ keyword arguments in the url conf.</p>
11909
12103
 
11910
12104
  <div class="doc doc-contents ">
11911
12105
 
11912
- <p>Resolve the named permissions for a given model (or instance) and a list of actions (e.g. view or add).</p>
12106
+ <p>Resolve the named permissions for a given model (or instance) and a list of actions (e.g. view or add).</p>
11913
12107
  <p>:param model: A model or instance
11914
12108
  :param actions: A list of actions to perform on the model</p>
11915
12109
 
@@ -11928,7 +12122,7 @@ keyword arguments in the url conf.</p>
11928
12122
 
11929
12123
  <div class="doc doc-contents ">
11930
12124
 
11931
- <p>Get the list of items for this view.
12125
+ <p>Get the list of items for this view.
11932
12126
  This must be an iterable, and may be a queryset.
11933
12127
  Defaults to using <code>self.queryset</code>.
11934
12128
  This method should always be used rather than accessing <code>self.queryset</code>
@@ -11951,7 +12145,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
11951
12145
 
11952
12146
  <div class="doc doc-contents ">
11953
12147
 
11954
- <p>Obtain the permissions needed to perform certain actions on a model.</p>
12148
+ <p>Obtain the permissions needed to perform certain actions on a model.</p>
11955
12149
 
11956
12150
  </div>
11957
12151
 
@@ -11978,15 +12172,20 @@ Override the original <code>get_queryset()</code> to apply permission specific t
11978
12172
 
11979
12173
  <div class="doc doc-contents ">
11980
12174
  <p class="doc doc-class-bases">
11981
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code></p>
12175
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
11982
12176
 
11983
12177
 
11984
- <p>UI mixin to bulk create model instances.</p>
12178
+ <p>UI mixin to bulk create model instances.</p>
11985
12179
  <p>Deprecated - use ImportObjects system Job instead.</p>
11986
12180
 
11987
12181
 
11988
12182
 
11989
12183
 
12184
+
12185
+
12186
+
12187
+
12188
+
11990
12189
  <div class="doc doc-children">
11991
12190
 
11992
12191
 
@@ -12018,10 +12217,15 @@ Override the original <code>get_queryset()</code> to apply permission specific t
12018
12217
 
12019
12218
  <div class="doc doc-contents ">
12020
12219
  <p class="doc doc-class-bases">
12021
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkDestroyModelMixin" optional hover>BulkDestroyModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.EditAndDeleteAllModelMixin" optional hover>EditAndDeleteAllModelMixin</autoref></code></p>
12220
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkDestroyModelMixin" href="api.html#nautobot.apps.api.BulkDestroyModelMixin">BulkDestroyModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
12221
+
12222
+
12223
+ <p>UI mixin to bulk destroy model instances.</p>
12224
+
12225
+
12226
+
12022
12227
 
12023
12228
 
12024
- <p>UI mixin to bulk destroy model instances.</p>
12025
12229
 
12026
12230
 
12027
12231
 
@@ -12047,7 +12251,7 @@ Override the original <code>get_queryset()</code> to apply permission specific t
12047
12251
 
12048
12252
  <div class="doc doc-contents ">
12049
12253
 
12050
- <p>Call perform_bulk_destroy().
12254
+ <p>Call perform_bulk_destroy().
12051
12255
  The function exist to keep the DRF's get/post pattern of {action}/perform_{action}, we will need it when we transition from using forms to serializers in the UI.
12052
12256
  User should override this function to handle any actions as needed before bulk destroy.</p>
12053
12257
 
@@ -12066,7 +12270,7 @@ User should override this function to handle any actions as needed before bulk d
12066
12270
 
12067
12271
  <div class="doc doc-contents ">
12068
12272
 
12069
- <p>request.POST "_delete": Function to render the user selection of objects in a table form/BulkDestroyConfirmationForm via Response that is passed to NautobotHTMLRenderer.
12273
+ <p>request.POST "_delete": Function to render the user selection of objects in a table form/BulkDestroyConfirmationForm via Response that is passed to NautobotHTMLRenderer.
12070
12274
  request.POST "_confirm": Function to validate the table form/BulkDestroyConfirmationForm and to perform the action of bulk destroy. Render the form with errors if exceptions are raised.</p>
12071
12275
 
12072
12276
  </div>
@@ -12094,10 +12298,15 @@ request.POST "_confirm": Function to validate the table form/BulkDestroyConfirma
12094
12298
 
12095
12299
  <div class="doc doc-contents ">
12096
12300
  <p class="doc doc-class-bases">
12097
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="nautobot.core.api.views.BulkUpdateModelMixin" optional hover>BulkUpdateModelMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.EditAndDeleteAllModelMixin" optional hover>EditAndDeleteAllModelMixin</autoref></code></p>
12301
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.api.views.BulkUpdateModelMixin" href="api.html#nautobot.apps.api.BulkUpdateModelMixin">BulkUpdateModelMixin</a></code>, <code><span title="nautobot.core.views.mixins.BulkEditAndBulkDeleteModelMixin">BulkEditAndBulkDeleteModelMixin</span></code></p>
12302
+
12303
+
12304
+ <p>UI mixin to bulk update model instances.</p>
12305
+
12306
+
12307
+
12098
12308
 
12099
12309
 
12100
- <p>UI mixin to bulk update model instances.</p>
12101
12310
 
12102
12311
 
12103
12312
 
@@ -12123,7 +12332,7 @@ request.POST "_confirm": Function to validate the table form/BulkDestroyConfirma
12123
12332
 
12124
12333
  <div class="doc doc-contents ">
12125
12334
 
12126
- <p>Call perform_bulk_update().
12335
+ <p>Call perform_bulk_update().
12127
12336
  The function exist to keep the DRF's get/post pattern of {action}/perform_{action}, we will need it when we transition from using forms to serializers in the UI.
12128
12337
  User should override this function to handle any actions as needed before bulk update.</p>
12129
12338
 
@@ -12142,7 +12351,7 @@ User should override this function to handle any actions as needed before bulk u
12142
12351
 
12143
12352
  <div class="doc doc-contents ">
12144
12353
 
12145
- <p>request.POST "_edit": Function to render the user selection of objects in a table form/BulkUpdateForm via Response that is passed to NautobotHTMLRenderer.
12354
+ <p>request.POST "_edit": Function to render the user selection of objects in a table form/BulkUpdateForm via Response that is passed to NautobotHTMLRenderer.
12146
12355
  request.POST "_apply": Function to validate the table form/BulkUpdateForm and to perform the action of bulk update. Render the form with errors if exceptions are raised.</p>
12147
12356
 
12148
12357
  </div>
@@ -12170,10 +12379,21 @@ request.POST "_apply": Function to validate the table form/BulkUpdateForm and to
12170
12379
 
12171
12380
  <div class="doc doc-contents ">
12172
12381
  <p class="doc doc-class-bases">
12173
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code></p>
12382
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
12383
+
12384
+
12385
+ <p>UI mixin to list a model's changelog queryset.</p>
12386
+
12387
+
12388
+ <details class="base_template" open>
12389
+ <summary>Specify to explicitly identify the base object detail template to render.</summary>
12390
+ <p>If not provided, "<app>/<model>.html", "<app>/<model>_retrieve.html", or "generic/object_retrieve.html"
12391
+ will be used, as per <code>get_base_template()</code>.</p>
12392
+ </details>
12393
+
12394
+
12174
12395
 
12175
12396
 
12176
- <p>UI mixin to list a model's changelog queryset</p>
12177
12397
 
12178
12398
 
12179
12399
 
@@ -12209,16 +12429,21 @@ request.POST "_apply": Function to validate the table form/BulkUpdateForm and to
12209
12429
 
12210
12430
  <div class="doc doc-contents ">
12211
12431
  <p class="doc doc-class-bases">
12212
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
12432
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12213
12433
 
12214
12434
 
12215
- <p>Delete a single object.</p>
12435
+ <p>Delete a single object.</p>
12216
12436
  <p>queryset: The base queryset for the object being deleted
12217
12437
  template_name: The name of the template</p>
12218
12438
 
12219
12439
 
12220
12440
 
12221
12441
 
12442
+
12443
+
12444
+
12445
+
12446
+
12222
12447
  <div class="doc doc-children">
12223
12448
 
12224
12449
 
@@ -12240,7 +12465,7 @@ template_name: The name of the template</p>
12240
12465
 
12241
12466
  <div class="doc doc-contents ">
12242
12467
 
12243
- <p>Retrieve an object based on <code>kwargs</code>.</p>
12468
+ <p>Retrieve an object based on <code>kwargs</code>.</p>
12244
12469
 
12245
12470
  </div>
12246
12471
 
@@ -12267,10 +12492,15 @@ template_name: The name of the template</p>
12267
12492
 
12268
12493
  <div class="doc doc-contents ">
12269
12494
  <p class="doc doc-class-bases">
12270
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.mixins.DestroyModelMixin" optional hover>DestroyModelMixin</autoref></code></p>
12495
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.DestroyModelMixin">DestroyModelMixin</span></code></p>
12496
+
12497
+
12498
+ <p>UI mixin to destroy a model instance.</p>
12499
+
12500
+
12501
+
12271
12502
 
12272
12503
 
12273
- <p>UI mixin to destroy a model instance.</p>
12274
12504
 
12275
12505
 
12276
12506
 
@@ -12296,7 +12526,7 @@ template_name: The name of the template</p>
12296
12526
 
12297
12527
  <div class="doc doc-contents ">
12298
12528
 
12299
- <p>request.GET: render the ObjectDeleteConfirmationForm which is passed to NautobotHTMLRenderer as Response.
12529
+ <p>request.GET: render the ObjectDeleteConfirmationForm which is passed to NautobotHTMLRenderer as Response.
12300
12530
  request.POST: call perform_destroy() which validates the form and perform the action of delete.
12301
12531
  Override to add more variables to Response</p>
12302
12532
 
@@ -12315,7 +12545,7 @@ Override to add more variables to Response</p>
12315
12545
 
12316
12546
  <div class="doc doc-contents ">
12317
12547
 
12318
- <p>Function to validate the ObjectDeleteConfirmationForm and to delete the object.</p>
12548
+ <p>Function to validate the ObjectDeleteConfirmationForm and to delete the object.</p>
12319
12549
 
12320
12550
  </div>
12321
12551
 
@@ -12342,10 +12572,15 @@ Override to add more variables to Response</p>
12342
12572
 
12343
12573
  <div class="doc doc-contents ">
12344
12574
  <p class="doc doc-class-bases">
12345
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.mixins.RetrieveModelMixin" optional hover>RetrieveModelMixin</autoref></code></p>
12575
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.RetrieveModelMixin">RetrieveModelMixin</span></code></p>
12576
+
12577
+
12578
+ <p>UI mixin to retrieve a model instance.</p>
12579
+
12580
+
12581
+
12346
12582
 
12347
12583
 
12348
- <p>UI mixin to retrieve a model instance.</p>
12349
12584
 
12350
12585
 
12351
12586
 
@@ -12371,7 +12606,7 @@ Override to add more variables to Response</p>
12371
12606
 
12372
12607
  <div class="doc doc-contents ">
12373
12608
 
12374
- <p>Retrieve a model instance.</p>
12609
+ <p>Retrieve a model instance.</p>
12375
12610
 
12376
12611
  </div>
12377
12612
 
@@ -12398,11 +12633,21 @@ Override to add more variables to Response</p>
12398
12633
 
12399
12634
  <div class="doc doc-contents ">
12400
12635
  <p class="doc doc-class-bases">
12401
- Bases: <code><autoref identifier="nautobot.core.views.generic.GenericView" optional hover>GenericView</autoref></code></p>
12636
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.generic.GenericView" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
12637
+
12638
+
12639
+ <p>Present a list of dynamic groups associated to a particular object.</p>
12640
+
12641
+
12642
+ <details class="base_template" open>
12643
+ <summary>Specify to explicitly identify the base object detail template to render.</summary>
12644
+ <p>If not provided, "<app>/<model>.html", "<app>/<model>_retrieve.html", or "generic/object_retrieve.html"
12645
+ will be used, as per <code>get_base_template()</code>.</p>
12646
+ </details>
12647
+
12648
+
12402
12649
 
12403
12650
 
12404
- <p>Present a list of dynamic groups associated to a particular object.
12405
- base_template: The name of the template to extend. If not provided, "<app>/<model>.html" will be used.</p>
12406
12651
 
12407
12652
 
12408
12653
 
@@ -12438,10 +12683,10 @@ base_template: The name of the template to extend. If not provided, "<app>/<mode
12438
12683
 
12439
12684
  <div class="doc doc-contents ">
12440
12685
  <p class="doc doc-class-bases">
12441
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
12686
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12442
12687
 
12443
12688
 
12444
- <p>Create or edit a single object.</p>
12689
+ <p>Create or edit a single object.</p>
12445
12690
  <p>queryset: The base queryset for the object being modified
12446
12691
  model_form: The form used to create or edit the object
12447
12692
  template_name: The name of the template</p>
@@ -12449,6 +12694,11 @@ template_name: The name of the template</p>
12449
12694
 
12450
12695
 
12451
12696
 
12697
+
12698
+
12699
+
12700
+
12701
+
12452
12702
  <div class="doc doc-children">
12453
12703
 
12454
12704
 
@@ -12470,7 +12720,7 @@ template_name: The name of the template</p>
12470
12720
 
12471
12721
  <div class="doc doc-contents ">
12472
12722
 
12473
- <p>Return any additional context data for the template.</p>
12723
+ <p>Return any additional context data for the template.</p>
12474
12724
 
12475
12725
 
12476
12726
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -12485,9 +12735,11 @@ template_name: The name of the template</p>
12485
12735
  </thead>
12486
12736
  <tbody>
12487
12737
  <tr class="doc-section-item">
12488
- <td><code>request</code></td>
12489
12738
  <td>
12490
- <code><autoref identifier="HttpRequest" optional>HttpRequest</autoref></code>
12739
+ <code>request</code>
12740
+ </td>
12741
+ <td>
12742
+ <code>HttpRequest</code>
12491
12743
  </td>
12492
12744
  <td>
12493
12745
  <div class="doc-md-description">
@@ -12499,9 +12751,11 @@ template_name: The name of the template</p>
12499
12751
  </td>
12500
12752
  </tr>
12501
12753
  <tr class="doc-section-item">
12502
- <td><code>instance</code></td>
12503
12754
  <td>
12504
- <code><autoref identifier="Model" optional>Model</autoref></code>
12755
+ <code>instance</code>
12756
+ </td>
12757
+ <td>
12758
+ <code><span title="django.db.models.Model">Model</span></code>
12505
12759
  </td>
12506
12760
  <td>
12507
12761
  <div class="doc-md-description">
@@ -12527,7 +12781,7 @@ template_name: The name of the template</p>
12527
12781
  <tbody>
12528
12782
  <tr class="doc-section-item">
12529
12783
  <td>
12530
- <code><autoref identifier="dict" optional>dict</autoref></code>
12784
+ <code>dict</code>
12531
12785
  </td>
12532
12786
  <td>
12533
12787
  <div class="doc-md-description">
@@ -12553,7 +12807,7 @@ template_name: The name of the template</p>
12553
12807
 
12554
12808
  <div class="doc doc-contents ">
12555
12809
 
12556
- <p>Retrieve an object based on <code>kwargs</code>.</p>
12810
+ <p>Retrieve an object based on <code>kwargs</code>.</p>
12557
12811
 
12558
12812
  </div>
12559
12813
 
@@ -12570,7 +12824,7 @@ template_name: The name of the template</p>
12570
12824
 
12571
12825
  <div class="doc doc-contents ">
12572
12826
 
12573
- <p>Callback after the form is successfully saved but before redirecting the user.</p>
12827
+ <p>Callback after the form is successfully saved but before redirecting the user.</p>
12574
12828
 
12575
12829
  </div>
12576
12830
 
@@ -12597,10 +12851,15 @@ template_name: The name of the template</p>
12597
12851
 
12598
12852
  <div class="doc doc-contents ">
12599
12853
  <p class="doc doc-class-bases">
12600
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.mixins.CreateModelMixin" optional hover>CreateModelMixin</autoref></code>, <code><autoref identifier="rest_framework.mixins.UpdateModelMixin" optional hover>UpdateModelMixin</autoref></code></p>
12854
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.CreateModelMixin">CreateModelMixin</span></code>, <code><span title="rest_framework.mixins.UpdateModelMixin">UpdateModelMixin</span></code></p>
12855
+
12856
+
12857
+ <p>UI mixin to create or update a model instance.</p>
12858
+
12859
+
12860
+
12601
12861
 
12602
12862
 
12603
- <p>UI mixin to create or update a model instance.</p>
12604
12863
 
12605
12864
 
12606
12865
 
@@ -12626,7 +12885,7 @@ template_name: The name of the template</p>
12626
12885
 
12627
12886
  <div class="doc doc-contents ">
12628
12887
 
12629
- <p>request.GET: render the ObjectForm which is passed to NautobotHTMLRenderer as Response.
12888
+ <p>request.GET: render the ObjectForm which is passed to NautobotHTMLRenderer as Response.
12630
12889
  request.POST: call perform_create() which validates the form and perform the action of create.
12631
12890
  Override to add more variables to Response.</p>
12632
12891
 
@@ -12645,7 +12904,7 @@ Override to add more variables to Response.</p>
12645
12904
 
12646
12905
  <div class="doc doc-contents ">
12647
12906
 
12648
- <p>Append extra message at the end of create or update success message.</p>
12907
+ <p>Append extra message at the end of create or update success message.</p>
12649
12908
 
12650
12909
  </div>
12651
12910
 
@@ -12662,7 +12921,7 @@ Override to add more variables to Response.</p>
12662
12921
 
12663
12922
  <div class="doc doc-contents ">
12664
12923
 
12665
- <p>Context variables for this extra message.</p>
12924
+ <p>Context variables for this extra message.</p>
12666
12925
 
12667
12926
  </div>
12668
12927
 
@@ -12679,7 +12938,7 @@ Override to add more variables to Response.</p>
12679
12938
 
12680
12939
  <div class="doc doc-contents ">
12681
12940
 
12682
- <p>Function to validate the ObjectForm and to create a new object.</p>
12941
+ <p>Function to validate the ObjectForm and to create a new object.</p>
12683
12942
 
12684
12943
  </div>
12685
12944
 
@@ -12696,7 +12955,7 @@ Override to add more variables to Response.</p>
12696
12955
 
12697
12956
  <div class="doc doc-contents ">
12698
12957
 
12699
- <p>Function to validate the ObjectEditForm and to update/partial_update an existing object.</p>
12958
+ <p>Function to validate the ObjectEditForm and to update/partial_update an existing object.</p>
12700
12959
 
12701
12960
  </div>
12702
12961
 
@@ -12713,7 +12972,7 @@ Override to add more variables to Response.</p>
12713
12972
 
12714
12973
  <div class="doc doc-contents ">
12715
12974
 
12716
- <p>request.GET: render the ObjectEditForm which is passed to NautobotHTMLRenderer as Response.
12975
+ <p>request.GET: render the ObjectEditForm which is passed to NautobotHTMLRenderer as Response.
12717
12976
  request.POST: call perform_update() which validates the form and perform the action of update/partial_update of an existing object.
12718
12977
  Override to add more variables to Response.</p>
12719
12978
 
@@ -12742,10 +13001,10 @@ Override to add more variables to Response.</p>
12742
13001
 
12743
13002
  <div class="doc doc-contents ">
12744
13003
  <p class="doc doc-class-bases">
12745
- Bases: <code><autoref identifier="nautobot.core.views.mixins.GetReturnURLMixin" optional hover>GetReturnURLMixin</autoref></code>, <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
13004
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.GetReturnURLMixin" href="#nautobot.apps.views.GetReturnURLMixin">GetReturnURLMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12746
13005
 
12747
13006
 
12748
- <p>Import a single object (YAML or JSON format).</p>
13007
+ <p>Import a single object (YAML or JSON format).</p>
12749
13008
  <p>queryset: Base queryset for the objects being created
12750
13009
  model_form: The ModelForm used to create individual objects
12751
13010
  related_object_forms: A dictionary mapping of forms to be used for the creation of related (child) objects
@@ -12754,6 +13013,11 @@ template_name: The name of the template</p>
12754
13013
 
12755
13014
 
12756
13015
 
13016
+
13017
+
13018
+
13019
+
13020
+
12757
13021
  <div class="doc doc-children">
12758
13022
 
12759
13023
 
@@ -12785,16 +13049,16 @@ template_name: The name of the template</p>
12785
13049
 
12786
13050
  <div class="doc doc-contents ">
12787
13051
  <p class="doc doc-class-bases">
12788
- Bases: <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
13052
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
12789
13053
 
12790
13054
 
12791
- <p>List a series of objects.</p>
13055
+ <p>List a series of objects.</p>
12792
13056
 
12793
13057
 
12794
13058
  <details class="queryset" open>
12795
13059
  <summary>The queryset of objects to display. Note: Prefetching related objects is not necessary, as the</summary>
12796
13060
  <p>table will prefetch objects as needed depending on the columns being displayed.</p>
12797
- </details> <p>filter: A django-filter FilterSet that is applied to the queryset
13061
+ </details> <p>filter: A django-filter FilterSet that is applied to the queryset
12798
13062
  filter_form: The form used to render filter options
12799
13063
  table: The django-tables2 Table used to render the objects list
12800
13064
  template_name: The name of the template
@@ -12803,6 +13067,11 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12803
13067
 
12804
13068
 
12805
13069
 
13070
+
13071
+
13072
+
13073
+
13074
+
12806
13075
  <div class="doc doc-children">
12807
13076
 
12808
13077
 
@@ -12824,7 +13093,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12824
13093
 
12825
13094
  <div class="doc doc-contents ">
12826
13095
 
12827
- <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
13096
+ <p>Helper function - take request.GET and discard any parameters that are not used for queryset filtering.</p>
12828
13097
 
12829
13098
  </div>
12830
13099
 
@@ -12841,7 +13110,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12841
13110
 
12842
13111
  <div class="doc doc-contents ">
12843
13112
 
12844
- <p>Export the queryset of objects as concatenated YAML documents.</p>
13113
+ <p>Export the queryset of objects as concatenated YAML documents.</p>
12845
13114
 
12846
13115
  </div>
12847
13116
 
@@ -12858,7 +13127,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12858
13127
 
12859
13128
  <div class="doc doc-contents ">
12860
13129
 
12861
- <p>Verify actions in self.action_buttons are valid view actions.</p>
13130
+ <p>Verify actions in self.action_buttons are valid view actions.</p>
12862
13131
 
12863
13132
  </div>
12864
13133
 
@@ -12885,10 +13154,15 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12885
13154
 
12886
13155
  <div class="doc doc-contents ">
12887
13156
  <p class="doc doc-class-bases">
12888
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code>, <code><autoref identifier="rest_framework.mixins.ListModelMixin" optional hover>ListModelMixin</autoref></code></p>
13157
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code>, <code><span title="rest_framework.mixins.ListModelMixin">ListModelMixin</span></code></p>
13158
+
13159
+
13160
+ <p>UI mixin to list a model queryset</p>
13161
+
13162
+
13163
+
12889
13164
 
12890
13165
 
12891
- <p>UI mixin to list a model queryset</p>
12892
13166
 
12893
13167
 
12894
13168
 
@@ -12914,7 +13188,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12914
13188
 
12915
13189
  <div class="doc doc-contents ">
12916
13190
 
12917
- <p>Filter a query with request querystrings.</p>
13191
+ <p>Filter a query with request querystrings.</p>
12918
13192
 
12919
13193
  </div>
12920
13194
 
@@ -12931,7 +13205,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12931
13205
 
12932
13206
  <div class="doc doc-contents ">
12933
13207
 
12934
- <p>List the model instances.</p>
13208
+ <p>List the model instances.</p>
12935
13209
 
12936
13210
  </div>
12937
13211
 
@@ -12948,7 +13222,7 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12948
13222
 
12949
13223
  <div class="doc doc-contents ">
12950
13224
 
12951
- <p>Export the queryset of objects as concatenated YAML documents.</p>
13225
+ <p>Export the queryset of objects as concatenated YAML documents.</p>
12952
13226
 
12953
13227
  </div>
12954
13228
 
@@ -12975,11 +13249,21 @@ non_filter_params: List of query parameters that are <strong>not</strong> used f
12975
13249
 
12976
13250
  <div class="doc doc-contents ">
12977
13251
  <p class="doc doc-class-bases">
12978
- Bases: <code><autoref identifier="nautobot.core.views.generic.GenericView" optional hover>GenericView</autoref></code></p>
13252
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.generic.GenericView" href="#nautobot.apps.views.GenericView">GenericView</a></code></p>
13253
+
13254
+
13255
+ <p>Present a list of notes associated to a particular object.</p>
13256
+
13257
+
13258
+ <details class="base_template" open>
13259
+ <summary>Specify to explicitly identify the base object detail template to render.</summary>
13260
+ <p>If not provided, "<app>/<model>.html", "<app>/<model>_retrieve.html", or "generic/object_retrieve.html"
13261
+ will be used, as per <code>get_base_template()</code>.</p>
13262
+ </details>
13263
+
13264
+
12979
13265
 
12980
13266
 
12981
- <p>Present a list of notes associated to a particular object.
12982
- base_template: The name of the template to extend. If not provided, "<app>/<model>.html" will be used.</p>
12983
13267
 
12984
13268
 
12985
13269
 
@@ -13015,10 +13299,21 @@ base_template: The name of the template to extend. If not provided, "<app>/<mode
13015
13299
 
13016
13300
  <div class="doc doc-contents ">
13017
13301
  <p class="doc doc-class-bases">
13018
- Bases: <code><autoref identifier="nautobot.core.views.mixins.NautobotViewSetMixin" optional hover>NautobotViewSetMixin</autoref></code></p>
13302
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.NautobotViewSetMixin" href="#nautobot.apps.views.NautobotViewSetMixin">NautobotViewSetMixin</a></code></p>
13303
+
13304
+
13305
+ <p>UI Mixin for an Object's Notes.</p>
13306
+
13307
+
13308
+ <details class="base_template" open>
13309
+ <summary>Specify to explicitly identify the base object detail template to render.</summary>
13310
+ <p>If not provided, "<app>/<model>.html", "<app>/<model>_retrieve.html", or "generic/object_retrieve.html"
13311
+ will be used, as per <code>get_base_template()</code>.</p>
13312
+ </details>
13313
+
13314
+
13019
13315
 
13020
13316
 
13021
- <p>UI Mixin for an Object's Notes.</p>
13022
13317
 
13023
13318
 
13024
13319
 
@@ -13054,10 +13349,10 @@ base_template: The name of the template to extend. If not provided, "<app>/<mode
13054
13349
 
13055
13350
  <div class="doc doc-contents ">
13056
13351
  <p class="doc doc-class-bases">
13057
- Bases: <code><autoref identifier="django.contrib.auth.mixins.AccessMixin" optional hover>AccessMixin</autoref></code></p>
13352
+ Bases: <code><span title="django.contrib.auth.mixins.AccessMixin">AccessMixin</span></code></p>
13058
13353
 
13059
13354
 
13060
- <p>Similar to Django's built-in PermissionRequiredMixin, but extended to check for both model-level and object-level
13355
+ <p>Similar to Django's built-in PermissionRequiredMixin, but extended to check for both model-level and object-level
13061
13356
  permission assignments. If the user has only object-level permissions assigned, the view's queryset is filtered
13062
13357
  to return only those objects on which the user is permitted to perform the specified action.</p>
13063
13358
 
@@ -13069,6 +13364,11 @@ to return only those objects on which the user is permitted to perform the speci
13069
13364
 
13070
13365
 
13071
13366
 
13367
+
13368
+
13369
+
13370
+
13371
+
13072
13372
  <div class="doc doc-children">
13073
13373
 
13074
13374
 
@@ -13090,7 +13390,7 @@ to return only those objects on which the user is permitted to perform the speci
13090
13390
 
13091
13391
  <div class="doc doc-contents ">
13092
13392
 
13093
- <p>Return the specific permission necessary to perform the requested action on an object.</p>
13393
+ <p>Return the specific permission necessary to perform the requested action on an object.</p>
13094
13394
 
13095
13395
  </div>
13096
13396
 
@@ -13117,16 +13417,21 @@ to return only those objects on which the user is permitted to perform the speci
13117
13417
 
13118
13418
  <div class="doc doc-contents ">
13119
13419
  <p class="doc doc-class-bases">
13120
- Bases: <code><autoref identifier="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" optional hover>ObjectPermissionRequiredMixin</autoref></code>, <code><autoref identifier="django.views.generic.View" optional hover>View</autoref></code></p>
13420
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.views.mixins.ObjectPermissionRequiredMixin" href="#nautobot.apps.views.ObjectPermissionRequiredMixin">ObjectPermissionRequiredMixin</a></code>, <code><span title="django.views.generic.View">View</span></code></p>
13121
13421
 
13122
13422
 
13123
- <p>Retrieve a single object for display.</p>
13423
+ <p>Retrieve a single object for display.</p>
13124
13424
  <p>queryset: The base queryset for retrieving the object
13125
13425
  template_name: Name of the template to use</p>
13126
13426
 
13127
13427
 
13128
13428
 
13129
13429
 
13430
+
13431
+
13432
+
13433
+
13434
+
13130
13435
  <div class="doc doc-children">
13131
13436
 
13132
13437
 
@@ -13148,7 +13453,7 @@ template_name: Name of the template to use</p>
13148
13453
 
13149
13454
  <div class="doc doc-contents ">
13150
13455
 
13151
- <p>Generic GET handler for accessing an object.</p>
13456
+ <p>Generic GET handler for accessing an object.</p>
13152
13457
 
13153
13458
  </div>
13154
13459
 
@@ -13165,7 +13470,7 @@ template_name: Name of the template to use</p>
13165
13470
 
13166
13471
  <div class="doc doc-contents ">
13167
13472
 
13168
- <p>Return any additional context data for the template.</p>
13473
+ <p>Return any additional context data for the template.</p>
13169
13474
 
13170
13475
 
13171
13476
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13180,9 +13485,11 @@ template_name: Name of the template to use</p>
13180
13485
  </thead>
13181
13486
  <tbody>
13182
13487
  <tr class="doc-section-item">
13183
- <td><code>request</code></td>
13184
13488
  <td>
13185
- <code><autoref identifier="Request" optional>Request</autoref></code>
13489
+ <code>request</code>
13490
+ </td>
13491
+ <td>
13492
+ <code>Request</code>
13186
13493
  </td>
13187
13494
  <td>
13188
13495
  <div class="doc-md-description">
@@ -13194,9 +13501,11 @@ template_name: Name of the template to use</p>
13194
13501
  </td>
13195
13502
  </tr>
13196
13503
  <tr class="doc-section-item">
13197
- <td><code>instance</code></td>
13198
13504
  <td>
13199
- <code><autoref identifier="Model" optional>Model</autoref></code>
13505
+ <code>instance</code>
13506
+ </td>
13507
+ <td>
13508
+ <code><span title="django.db.models.Model">Model</span></code>
13200
13509
  </td>
13201
13510
  <td>
13202
13511
  <div class="doc-md-description">
@@ -13222,7 +13531,7 @@ template_name: Name of the template to use</p>
13222
13531
  <tbody>
13223
13532
  <tr class="doc-section-item">
13224
13533
  <td>
13225
- <code><autoref identifier="dict" optional>dict</autoref></code>
13534
+ <code>dict</code>
13226
13535
  </td>
13227
13536
  <td>
13228
13537
  <div class="doc-md-description">
@@ -13248,7 +13557,7 @@ template_name: Name of the template to use</p>
13248
13557
 
13249
13558
  <div class="doc doc-contents ">
13250
13559
 
13251
- <p>Return self.template_name if set. Otherwise, resolve the template path by model app_label and name.</p>
13560
+ <p>Return self.template_name if set. Otherwise, resolve the template path by model app_label and name.</p>
13252
13561
 
13253
13562
  </div>
13254
13563
 
@@ -13274,7 +13583,7 @@ template_name: Name of the template to use</p>
13274
13583
 
13275
13584
  <div class="doc doc-contents ">
13276
13585
 
13277
- <p>Helper for checking Git permissions and worker availability, then calling provided function if all is well
13586
+ <p>Helper for checking Git permissions and worker availability, then calling provided function if all is well
13278
13587
  Args:
13279
13588
  request (HttpRequest): request object.
13280
13589
  pk (UUID): GitRepository pk value.
@@ -13298,7 +13607,7 @@ Returns:
13298
13607
 
13299
13608
  <div class="doc doc-contents ">
13300
13609
 
13301
- <p>Return any additional context data for the template.</p>
13610
+ <p>Return any additional context data for the template.</p>
13302
13611
 
13303
13612
 
13304
13613
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13313,9 +13622,11 @@ Returns:
13313
13622
  </thead>
13314
13623
  <tbody>
13315
13624
  <tr class="doc-section-item">
13316
- <td><code>filters</code></td>
13317
13625
  <td>
13318
- <code><autoref identifier="OrderedDict" optional>OrderedDict</autoref></code>
13626
+ <code>filters</code>
13627
+ </td>
13628
+ <td>
13629
+ <code>OrderedDict</code>
13319
13630
  </td>
13320
13631
  <td>
13321
13632
  <div class="doc-md-description">
@@ -13327,9 +13638,11 @@ Returns:
13327
13638
  </td>
13328
13639
  </tr>
13329
13640
  <tr class="doc-section-item">
13330
- <td><code>field_name</code></td>
13331
13641
  <td>
13332
- <code><autoref identifier="str" optional>str</autoref></code>
13642
+ <code>field_name</code>
13643
+ </td>
13644
+ <td>
13645
+ <code>str</code>
13333
13646
  </td>
13334
13647
  <td>
13335
13648
  <div class="doc-md-description">
@@ -13341,9 +13654,11 @@ Returns:
13341
13654
  </td>
13342
13655
  </tr>
13343
13656
  <tr class="doc-section-item">
13344
- <td><code>values</code></td>
13345
13657
  <td>
13346
- <code><autoref identifier="list" optional>list</autoref>[<autoref identifier="str" optional>str</autoref>]</code>
13658
+ <code>values</code>
13659
+ </td>
13660
+ <td>
13661
+ <code>list[str]</code>
13347
13662
  </td>
13348
13663
  <td>
13349
13664
  <div class="doc-md-description">
@@ -13369,7 +13684,7 @@ Returns:
13369
13684
  <tbody>
13370
13685
  <tr class="doc-section-item">
13371
13686
  <td>
13372
- <code><autoref identifier="dict" optional>dict</autoref></code>
13687
+ <code>dict</code>
13373
13688
  </td>
13374
13689
  <td>
13375
13690
  <div class="doc-md-description">
@@ -13398,7 +13713,7 @@ Returns:
13398
13713
 
13399
13714
  <div class="doc doc-contents ">
13400
13715
 
13401
- <p>Convert the given list of data to a CSV row string.</p>
13716
+ <p>Convert the given list of data to a CSV row string.</p>
13402
13717
  <p>Encapsulate any data which contains a comma within double quotes.</p>
13403
13718
  <p>Obsolete, as CSV rendering in Nautobot core is now handled by nautobot.core.api.renderers.NautobotCSVRenderer.</p>
13404
13719
 
@@ -13417,7 +13732,7 @@ Returns:
13417
13732
 
13418
13733
  <div class="doc doc-contents ">
13419
13734
 
13420
- <p>From the given serializer class, build a list of field dicts suitable for rendering in the CSV import form.</p>
13735
+ <p>From the given serializer class, build a list of field dicts suitable for rendering in the CSV import form.</p>
13421
13736
 
13422
13737
  </div>
13423
13738
 
@@ -13434,7 +13749,7 @@ Returns:
13434
13749
 
13435
13750
  <div class="doc doc-contents ">
13436
13751
 
13437
- <p>From the given context, return the <code>object</code> that is in the context.</p>
13752
+ <p>From the given context, return the <code>object</code> that is in the context.</p>
13438
13753
  <p>If a key is specified, return the value for that key.
13439
13754
  Otherwise return the value for either of the keys <code>"obj"</code> or <code>"object"</code> as default behavior.</p>
13440
13755
 
@@ -13453,7 +13768,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
13453
13768
 
13454
13769
  <div class="doc doc-contents ">
13455
13770
 
13456
- <p>Determine the length of a page, using the following in order:</p>
13771
+ <p>Determine the length of a page, using the following in order:</p>
13457
13772
  <div class="highlight"><pre><span></span><code>1. per_page URL query parameter
13458
13773
  2. Saved view config
13459
13774
  3. Saved user preference
@@ -13475,7 +13790,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
13475
13790
 
13476
13791
  <div class="doc doc-contents ">
13477
13792
 
13478
- <p>Generate a user-friendly error message in response to a ProtectedError exception.</p>
13793
+ <p>Generate a user-friendly error message in response to a ProtectedError exception.</p>
13479
13794
 
13480
13795
  </div>
13481
13796
 
@@ -13492,7 +13807,7 @@ Otherwise return the value for either of the keys <code>"obj"</code> or <code>"o
13492
13807
 
13493
13808
  <div class="doc doc-contents ">
13494
13809
 
13495
- <p>Compile an object's <code>clone_fields</code> list into a string of URL query parameters. Tags are automatically cloned where
13810
+ <p>Compile an object's <code>clone_fields</code> list into a string of URL query parameters. Tags are automatically cloned where
13496
13811
  applicable.</p>
13497
13812
 
13498
13813
  </div>
@@ -13602,7 +13917,7 @@ applicable.</p>
13602
13917
 
13603
13918
 
13604
13919
  <a href="https://blog.networktocode.com/blog/tags/nautobot" target="_blank" rel="noopener" title="Network to Code Blog" class="md-social__link">
13605
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
13920
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64m0 352a64 64 0 1 1 128 0 64 64 0 1 1-128 0m32-256c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32"/></svg>
13606
13921
  </a>
13607
13922
 
13608
13923
 
@@ -13610,7 +13925,7 @@ applicable.</p>
13610
13925
 
13611
13926
 
13612
13927
  <a href="https://www.youtube.com/playlist?list=PLjA0bhxgryJ2Ts4GJMDA-tPzVWEncv4pb" target="_blank" rel="noopener" title="Nautobot Videos" class="md-social__link">
13613
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
13928
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z"/></svg>
13614
13929
  </a>
13615
13930
 
13616
13931
 
@@ -13618,7 +13933,7 @@ applicable.</p>
13618
13933
 
13619
13934
 
13620
13935
  <a href="https://www.networktocode.com/community/" target="_blank" rel="noopener" title="Network to Code Community" class="md-social__link">
13621
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
13936
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1s21.16-47.06 47.06-47.06h47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06S448 171 448 196.9s-21.16 47.06-47.06 47.06h-47.06zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06S309 480 283.1 480s-47.06-21.16-47.06-47.06v-47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06s21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06z"/></svg>
13622
13937
  </a>
13623
13938
 
13624
13939
 
@@ -13626,7 +13941,7 @@ applicable.</p>
13626
13941
 
13627
13942
 
13628
13943
  <a href="https://github.com/nautobot/nautobot" target="_blank" rel="noopener" title="GitHub Repo" class="md-social__link">
13629
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
13944
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
13630
13945
  </a>
13631
13946
 
13632
13947
 
@@ -13634,7 +13949,7 @@ applicable.</p>
13634
13949
 
13635
13950
 
13636
13951
  <a href="https://twitter.com/networktocode" target="_blank" rel="noopener" title="Network to Code Twitter" class="md-social__link">
13637
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
13952
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
13638
13953
  </a>
13639
13954
 
13640
13955
  </div>
@@ -13649,10 +13964,10 @@ applicable.</p>
13649
13964
  </div>
13650
13965
 
13651
13966
 
13652
- <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.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
13967
+ <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.f8cc74c7.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
13653
13968
 
13654
13969
 
13655
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
13970
+ <script src="../../../assets/javascripts/bundle.60a45f97.min.js"></script>
13656
13971
 
13657
13972
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
13658
13973