nautobot 2.3.15b1__py3-none-any.whl → 2.4.0__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 (785) hide show
  1. nautobot/__init__.py +15 -0
  2. nautobot/apps/__init__.py +1 -1
  3. nautobot/apps/api.py +8 -10
  4. nautobot/apps/change_logging.py +2 -2
  5. nautobot/apps/choices.py +4 -4
  6. nautobot/apps/config.py +32 -3
  7. nautobot/apps/events.py +19 -0
  8. nautobot/apps/exceptions.py +0 -2
  9. nautobot/apps/factory.py +2 -2
  10. nautobot/apps/filters.py +1 -1
  11. nautobot/apps/forms.py +20 -20
  12. nautobot/apps/graphql.py +2 -2
  13. nautobot/apps/jobs.py +8 -8
  14. nautobot/apps/models.py +19 -19
  15. nautobot/apps/tables.py +1 -1
  16. nautobot/apps/testing.py +10 -10
  17. nautobot/apps/ui.py +44 -9
  18. nautobot/apps/utils.py +7 -15
  19. nautobot/apps/views.py +8 -6
  20. nautobot/circuits/api/serializers.py +1 -0
  21. nautobot/circuits/api/views.py +4 -8
  22. nautobot/circuits/navigation.py +0 -57
  23. nautobot/circuits/templates/circuits/circuit_create.html +1 -7
  24. nautobot/circuits/templates/circuits/circuit_retrieve.html +0 -71
  25. nautobot/circuits/templates/circuits/inc/circuit_termination.html +6 -64
  26. nautobot/circuits/templates/circuits/inc/circuit_termination_cable_fragment.html +40 -0
  27. nautobot/circuits/templates/circuits/inc/circuit_termination_header_extra_content.html +26 -0
  28. nautobot/circuits/templates/circuits/provider_retrieve.html +0 -76
  29. nautobot/circuits/tests/integration/test_relationships.py +33 -24
  30. nautobot/circuits/tests/test_filters.py +4 -8
  31. nautobot/circuits/views.py +143 -26
  32. nautobot/cloud/api/views.py +6 -10
  33. nautobot/cloud/factory.py +4 -1
  34. nautobot/cloud/models.py +1 -1
  35. nautobot/cloud/tests/test_filters.py +5 -4
  36. nautobot/cloud/views.py +0 -16
  37. nautobot/core/api/constants.py +11 -0
  38. nautobot/core/api/fields.py +5 -5
  39. nautobot/core/api/filter_backends.py +3 -9
  40. nautobot/core/api/metadata.py +28 -256
  41. nautobot/core/api/pagination.py +3 -2
  42. nautobot/core/api/renderers.py +3 -0
  43. nautobot/core/api/schema.py +13 -2
  44. nautobot/core/api/serializers.py +54 -268
  45. nautobot/core/api/urls.py +3 -4
  46. nautobot/core/api/utils.py +0 -62
  47. nautobot/core/api/views.py +102 -159
  48. nautobot/core/apps/__init__.py +22 -575
  49. nautobot/core/celery/__init__.py +13 -0
  50. nautobot/core/celery/schedulers.py +48 -3
  51. nautobot/core/choices.py +2 -2
  52. nautobot/core/cli/__init__.py +8 -0
  53. nautobot/core/constants.py +7 -0
  54. nautobot/core/events/__init__.py +116 -0
  55. nautobot/core/events/base.py +27 -0
  56. nautobot/core/events/exceptions.py +10 -0
  57. nautobot/core/events/redis_broker.py +48 -0
  58. nautobot/core/events/syslog_broker.py +19 -0
  59. nautobot/core/exceptions.py +0 -6
  60. nautobot/core/filters.py +19 -16
  61. nautobot/core/forms/__init__.py +19 -19
  62. nautobot/core/forms/fields.py +62 -14
  63. nautobot/core/forms/forms.py +33 -2
  64. nautobot/core/forms/utils.py +2 -1
  65. nautobot/core/graphql/schema.py +3 -1
  66. nautobot/core/graphql/types.py +1 -1
  67. nautobot/core/jobs/__init__.py +28 -7
  68. nautobot/core/jobs/bulk_actions.py +248 -0
  69. nautobot/core/jobs/cleanup.py +2 -2
  70. nautobot/core/jobs/groups.py +1 -1
  71. nautobot/core/management/commands/generate_test_data.py +21 -0
  72. nautobot/core/management/commands/validate_models.py +1 -1
  73. nautobot/core/middleware.py +16 -0
  74. nautobot/core/models/__init__.py +1 -1
  75. nautobot/core/models/fields.py +11 -7
  76. nautobot/core/models/query_functions.py +2 -2
  77. nautobot/core/models/tree_queries.py +2 -2
  78. nautobot/core/settings.py +71 -4
  79. nautobot/core/settings.yaml +107 -0
  80. nautobot/core/tables.py +15 -51
  81. nautobot/core/tasks.py +1 -1
  82. nautobot/core/templates/about.html +67 -0
  83. nautobot/core/templates/components/button/default.html +7 -0
  84. nautobot/core/templates/components/button/dropdown.html +20 -0
  85. nautobot/core/templates/components/layout/one_over_two.html +19 -0
  86. nautobot/core/templates/components/layout/two_over_one.html +19 -0
  87. nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
  88. nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
  89. nautobot/core/templates/components/panel/body_content_tags.html +6 -0
  90. nautobot/core/templates/components/panel/body_content_text.html +12 -0
  91. nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
  92. nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
  93. nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
  94. nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
  95. nautobot/core/templates/components/panel/footer_content_table.html +14 -0
  96. nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
  97. nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
  98. nautobot/core/templates/components/panel/panel.html +16 -0
  99. nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
  100. nautobot/core/templates/components/tab/content_wrapper.html +3 -0
  101. nautobot/core/templates/components/tab/label_wrapper.html +5 -0
  102. nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
  103. nautobot/core/templates/generic/object_retrieve.html +28 -17
  104. nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
  105. nautobot/core/templates/inc/custom_fields/panel.html +2 -2
  106. nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
  107. nautobot/core/templates/inc/footer.html +1 -0
  108. nautobot/core/templates/inc/media.html +3 -0
  109. nautobot/core/templates/inc/nav_menu.html +2 -1
  110. nautobot/core/templates/inc/relationships_panel.html +1 -1
  111. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  112. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  113. nautobot/core/templates/nautobot_config.py.j2 +16 -0
  114. nautobot/core/templates/panel_table.html +12 -0
  115. nautobot/core/templates/utilities/render_jinja2.html +117 -0
  116. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  117. nautobot/core/templates/utilities/theme_preview.html +7 -0
  118. nautobot/core/templatetags/helpers.py +104 -6
  119. nautobot/core/templatetags/ui_framework.py +40 -0
  120. nautobot/core/testing/__init__.py +8 -8
  121. nautobot/core/testing/api.py +187 -137
  122. nautobot/core/testing/context.py +18 -0
  123. nautobot/core/testing/filters.py +44 -34
  124. nautobot/core/testing/forms.py +2 -0
  125. nautobot/core/testing/views.py +68 -146
  126. nautobot/core/tests/integration/test_app_home.py +0 -1
  127. nautobot/core/tests/integration/test_app_navbar.py +0 -1
  128. nautobot/core/tests/integration/test_filters.py +0 -2
  129. nautobot/core/tests/integration/test_home.py +0 -1
  130. nautobot/core/tests/integration/test_navbar.py +0 -1
  131. nautobot/core/tests/integration/test_view_authentication.py +2 -1
  132. nautobot/core/tests/nautobot_config.py +198 -0
  133. nautobot/core/tests/runner.py +3 -3
  134. nautobot/core/tests/test_api.py +154 -176
  135. nautobot/core/tests/test_events.py +214 -0
  136. nautobot/core/tests/test_forms.py +1 -0
  137. nautobot/core/tests/test_jinja_filters.py +1 -0
  138. nautobot/core/tests/test_jobs.py +387 -14
  139. nautobot/core/tests/test_navigations.py +7 -241
  140. nautobot/core/tests/test_settings_schema.py +7 -0
  141. nautobot/core/tests/test_tables.py +100 -0
  142. nautobot/core/tests/test_templatetags_helpers.py +16 -0
  143. nautobot/core/tests/test_ui.py +150 -0
  144. nautobot/core/tests/test_utils.py +55 -18
  145. nautobot/core/tests/test_views.py +153 -5
  146. nautobot/core/ui/__init__.py +0 -0
  147. nautobot/core/ui/base.py +11 -0
  148. nautobot/core/ui/choices.py +44 -0
  149. nautobot/core/ui/homepage.py +167 -0
  150. nautobot/core/ui/nav.py +280 -0
  151. nautobot/core/ui/object_detail.py +1855 -0
  152. nautobot/core/ui/utils.py +36 -0
  153. nautobot/core/urls.py +15 -0
  154. nautobot/core/utils/config.py +30 -3
  155. nautobot/core/utils/lookup.py +12 -2
  156. nautobot/core/utils/querysets.py +64 -0
  157. nautobot/core/utils/requests.py +24 -9
  158. nautobot/core/views/__init__.py +48 -1
  159. nautobot/core/views/generic.py +82 -177
  160. nautobot/core/views/mixins.py +98 -38
  161. nautobot/core/views/paginator.py +8 -5
  162. nautobot/core/views/renderers.py +9 -9
  163. nautobot/core/views/utils.py +11 -0
  164. nautobot/core/wsgi.py +3 -3
  165. nautobot/dcim/api/serializers.py +82 -189
  166. nautobot/dcim/api/urls.py +5 -0
  167. nautobot/dcim/api/views.py +57 -110
  168. nautobot/dcim/apps.py +1 -0
  169. nautobot/dcim/choices.py +28 -0
  170. nautobot/dcim/factory.py +58 -0
  171. nautobot/dcim/filters/__init__.py +204 -2
  172. nautobot/dcim/forms.py +221 -9
  173. nautobot/dcim/graphql/types.py +2 -2
  174. nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
  175. nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
  176. nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
  177. nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
  178. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  179. nautobot/dcim/models/__init__.py +5 -1
  180. nautobot/dcim/models/device_component_templates.py +2 -2
  181. nautobot/dcim/models/device_components.py +22 -20
  182. nautobot/dcim/models/devices.py +181 -3
  183. nautobot/dcim/models/locations.py +3 -3
  184. nautobot/dcim/models/power.py +6 -5
  185. nautobot/dcim/models/racks.py +6 -6
  186. nautobot/dcim/navigation.py +25 -224
  187. nautobot/dcim/signals.py +44 -0
  188. nautobot/dcim/tables/__init__.py +5 -3
  189. nautobot/dcim/tables/devices.py +103 -7
  190. nautobot/dcim/tables/devicetypes.py +2 -2
  191. nautobot/dcim/tables/racks.py +1 -1
  192. nautobot/dcim/templates/dcim/controller/base.html +10 -0
  193. nautobot/dcim/templates/dcim/controller_create.html +2 -7
  194. nautobot/dcim/templates/dcim/controller_retrieve.html +6 -10
  195. nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
  196. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -0
  197. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +51 -0
  198. nautobot/dcim/templates/dcim/device/base.html +6 -42
  199. nautobot/dcim/templates/dcim/device/wireless.html +73 -0
  200. nautobot/dcim/templates/dcim/device.html +4 -10
  201. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  202. nautobot/dcim/templates/dcim/interface.html +1 -0
  203. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  204. nautobot/dcim/templates/dcim/location.html +1 -9
  205. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  206. nautobot/dcim/templates/dcim/locationtype.html +0 -107
  207. nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
  208. nautobot/dcim/templates/dcim/rack.html +1 -9
  209. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  210. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  211. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +68 -0
  212. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +28 -0
  213. nautobot/dcim/tests/integration/test_controller.py +62 -0
  214. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  215. nautobot/dcim/tests/test_api.py +188 -64
  216. nautobot/dcim/tests/test_filters.py +172 -76
  217. nautobot/dcim/tests/test_graphql.py +52 -0
  218. nautobot/dcim/tests/test_jobs.py +118 -0
  219. nautobot/dcim/tests/test_models.py +159 -5
  220. nautobot/dcim/tests/test_signals.py +1 -0
  221. nautobot/dcim/tests/test_views.py +118 -88
  222. nautobot/dcim/urls.py +72 -27
  223. nautobot/dcim/utils.py +2 -2
  224. nautobot/dcim/views.py +357 -62
  225. nautobot/extras/api/customfields.py +2 -2
  226. nautobot/extras/api/serializers.py +111 -87
  227. nautobot/extras/api/urls.py +4 -0
  228. nautobot/extras/api/views.py +93 -35
  229. nautobot/extras/choices.py +13 -0
  230. nautobot/extras/constants.py +2 -1
  231. nautobot/extras/context_managers.py +23 -6
  232. nautobot/extras/datasources/git.py +4 -1
  233. nautobot/extras/factory.py +27 -0
  234. nautobot/extras/filters/__init__.py +66 -5
  235. nautobot/extras/forms/base.py +2 -2
  236. nautobot/extras/forms/forms.py +262 -59
  237. nautobot/extras/forms/mixins.py +3 -3
  238. nautobot/extras/graphql/types.py +25 -1
  239. nautobot/extras/health_checks.py +1 -2
  240. nautobot/extras/jobs.py +114 -20
  241. nautobot/extras/management/__init__.py +1 -0
  242. nautobot/extras/management/commands/runjob.py +7 -79
  243. nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
  244. nautobot/extras/management/utils.py +87 -0
  245. nautobot/extras/managers.py +3 -1
  246. nautobot/extras/migrations/0018_joblog_data_migration.py +7 -9
  247. nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
  248. nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
  249. nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
  250. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  251. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  252. nautobot/extras/models/__init__.py +5 -1
  253. nautobot/extras/models/change_logging.py +7 -3
  254. nautobot/extras/models/contacts.py +1 -1
  255. nautobot/extras/models/customfields.py +12 -11
  256. nautobot/extras/models/groups.py +11 -9
  257. nautobot/extras/models/jobs.py +237 -37
  258. nautobot/extras/models/models.py +2 -2
  259. nautobot/extras/models/relationships.py +69 -1
  260. nautobot/extras/models/secrets.py +5 -0
  261. nautobot/extras/navigation.py +20 -262
  262. nautobot/extras/plugins/__init__.py +54 -19
  263. nautobot/extras/plugins/marketplace_manifest.yml +455 -0
  264. nautobot/extras/plugins/tables.py +16 -14
  265. nautobot/extras/plugins/urls.py +1 -0
  266. nautobot/extras/plugins/views.py +104 -61
  267. nautobot/extras/registry.py +1 -1
  268. nautobot/extras/secrets/__init__.py +2 -2
  269. nautobot/extras/signals.py +39 -1
  270. nautobot/extras/tables.py +42 -6
  271. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  272. nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
  273. nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
  274. nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
  275. nautobot/extras/templates/extras/job_detail.html +52 -6
  276. nautobot/extras/templates/extras/job_edit.html +6 -2
  277. nautobot/extras/templates/extras/job_list.html +2 -7
  278. nautobot/extras/templates/extras/jobqueue_retrieve.html +36 -0
  279. nautobot/extras/templates/extras/marketplace.html +296 -0
  280. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  281. nautobot/extras/templates/extras/plugins_list.html +35 -1
  282. nautobot/extras/templates/extras/plugins_tiles.html +90 -0
  283. nautobot/extras/templates/extras/role_retrieve.html +16 -0
  284. nautobot/extras/templates/extras/secret.html +0 -65
  285. nautobot/extras/templates/extras/secret_check.js +16 -0
  286. nautobot/extras/templates/extras/secret_create.html +114 -0
  287. nautobot/extras/templates/extras/secret_edit.html +1 -114
  288. nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
  289. nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
  290. nautobot/extras/templatetags/job_buttons.py +5 -4
  291. nautobot/extras/templatetags/plugins.py +69 -6
  292. nautobot/extras/test_jobs/api_test_job.py +1 -1
  293. nautobot/extras/test_jobs/atomic_transaction.py +2 -2
  294. nautobot/extras/test_jobs/dry_run.py +1 -1
  295. nautobot/extras/test_jobs/fail.py +5 -5
  296. nautobot/extras/test_jobs/file_output.py +1 -1
  297. nautobot/extras/test_jobs/file_upload_fail.py +1 -1
  298. nautobot/extras/test_jobs/file_upload_pass.py +1 -1
  299. nautobot/extras/test_jobs/ipaddress_vars.py +3 -1
  300. nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +1 -1
  301. nautobot/extras/test_jobs/location_with_custom_field.py +1 -1
  302. nautobot/extras/test_jobs/log_redaction.py +1 -1
  303. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -1
  304. nautobot/extras/test_jobs/modify_db.py +1 -1
  305. nautobot/extras/test_jobs/object_var_optional.py +1 -1
  306. nautobot/extras/test_jobs/object_var_required.py +1 -1
  307. nautobot/extras/test_jobs/object_vars.py +1 -1
  308. nautobot/extras/test_jobs/pass.py +3 -3
  309. nautobot/extras/test_jobs/profiling.py +1 -1
  310. nautobot/extras/test_jobs/relative_import.py +3 -3
  311. nautobot/extras/test_jobs/singleton.py +16 -0
  312. nautobot/extras/test_jobs/soft_time_limit_greater_than_time_limit.py +1 -1
  313. nautobot/extras/test_jobs/task_queues.py +1 -1
  314. nautobot/extras/tests/integration/test_plugin_banner.py +0 -2
  315. nautobot/extras/tests/test_api.py +157 -55
  316. nautobot/extras/tests/test_context_managers.py +4 -1
  317. nautobot/extras/tests/test_customfields.py +1 -1
  318. nautobot/extras/tests/test_datasources.py +2 -1
  319. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  320. nautobot/extras/tests/test_filters.py +219 -535
  321. nautobot/extras/tests/test_forms.py +20 -1
  322. nautobot/extras/tests/test_job_variables.py +73 -152
  323. nautobot/extras/tests/test_jobs.py +192 -62
  324. nautobot/extras/tests/test_models.py +71 -16
  325. nautobot/extras/tests/test_plugins.py +62 -9
  326. nautobot/extras/tests/test_relationships.py +124 -10
  327. nautobot/extras/tests/test_utils.py +23 -2
  328. nautobot/extras/tests/test_views.py +162 -161
  329. nautobot/extras/tests/test_webhooks.py +2 -1
  330. nautobot/extras/urls.py +2 -20
  331. nautobot/extras/utils.py +119 -4
  332. nautobot/extras/views.py +188 -141
  333. nautobot/extras/webhooks.py +5 -2
  334. nautobot/ipam/api/fields.py +3 -3
  335. nautobot/ipam/api/serializers.py +44 -137
  336. nautobot/ipam/api/views.py +68 -110
  337. nautobot/ipam/factory.py +1 -1
  338. nautobot/ipam/filters.py +3 -2
  339. nautobot/ipam/models.py +10 -12
  340. nautobot/ipam/navigation.py +0 -90
  341. nautobot/ipam/querysets.py +2 -2
  342. nautobot/ipam/tables.py +3 -1
  343. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  344. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  345. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  346. nautobot/ipam/templates/ipam/prefix.html +1 -9
  347. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  348. nautobot/ipam/templates/ipam/routetarget.html +0 -28
  349. nautobot/ipam/templates/ipam/vlan.html +1 -9
  350. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  351. nautobot/ipam/templates/ipam/vrf.html +0 -47
  352. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  353. nautobot/ipam/tests/test_api.py +19 -6
  354. nautobot/ipam/tests/test_filters.py +39 -119
  355. nautobot/ipam/tests/test_forms.py +49 -47
  356. nautobot/ipam/tests/test_migrations.py +30 -30
  357. nautobot/ipam/tests/test_models.py +56 -36
  358. nautobot/ipam/tests/test_querysets.py +14 -0
  359. nautobot/ipam/tests/test_views.py +3 -0
  360. nautobot/ipam/urls.py +3 -69
  361. nautobot/ipam/utils/__init__.py +16 -10
  362. nautobot/ipam/views.py +91 -162
  363. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  364. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  365. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  366. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  367. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  368. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  369. nautobot/project-static/css/base.css +38 -3
  370. nautobot/project-static/docs/404.html +463 -19
  371. nautobot/project-static/docs/apps/index.html +463 -19
  372. nautobot/project-static/docs/apps/nautobot-apps.html +464 -21
  373. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  374. nautobot/project-static/docs/assets/extra.css +5 -1
  375. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js → bundle.88dd0f4e.min.js} +2 -2
  376. nautobot/project-static/docs/assets/javascripts/{bundle.83f73b43.min.js.map → bundle.88dd0f4e.min.js.map} +2 -2
  377. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +479 -25
  378. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +476 -22
  379. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +792 -291
  380. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +507 -33
  381. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +512 -36
  382. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +473 -22
  383. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +469 -20
  384. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +499 -35
  385. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9883 -0
  386. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +525 -77
  387. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +548 -53
  388. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +672 -96
  389. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1033 -180
  390. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +526 -51
  391. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +876 -190
  392. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +957 -237
  393. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +477 -23
  394. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +488 -30
  395. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +663 -101
  396. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +949 -481
  397. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6427 -1236
  398. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +476 -22
  399. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +879 -346
  400. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +830 -173
  401. nautobot/project-static/docs/development/apps/api/configuration-view.html +463 -19
  402. nautobot/project-static/docs/development/apps/api/database-backend-config.html +463 -19
  403. nautobot/project-static/docs/development/apps/api/models/django-admin.html +463 -19
  404. nautobot/project-static/docs/development/apps/api/models/global-search.html +463 -19
  405. nautobot/project-static/docs/development/apps/api/models/graphql.html +463 -19
  406. nautobot/project-static/docs/development/apps/api/models/index.html +463 -19
  407. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +463 -19
  408. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +463 -19
  409. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +463 -19
  410. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +463 -19
  411. nautobot/project-static/docs/development/apps/api/platform-features/index.html +463 -19
  412. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +463 -19
  413. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +463 -19
  414. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +463 -19
  415. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +463 -19
  416. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +463 -19
  417. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +463 -19
  418. nautobot/project-static/docs/development/apps/api/prometheus.html +463 -19
  419. nautobot/project-static/docs/development/apps/api/setup.html +467 -155
  420. nautobot/project-static/docs/development/apps/api/testing.html +463 -19
  421. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +463 -19
  422. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +463 -19
  423. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +463 -19
  424. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +463 -19
  425. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +743 -130
  426. nautobot/project-static/docs/development/apps/api/views/base-template.html +463 -19
  427. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +463 -19
  428. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +463 -19
  429. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +463 -19
  430. nautobot/project-static/docs/development/apps/api/views/index.html +465 -20
  431. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +467 -19
  432. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +493 -19
  433. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +463 -19
  434. nautobot/project-static/docs/development/apps/api/views/notes.html +463 -19
  435. nautobot/project-static/docs/development/apps/api/views/rest-api.html +469 -21
  436. nautobot/project-static/docs/development/apps/api/views/urls.html +463 -19
  437. nautobot/project-static/docs/development/apps/index.html +463 -19
  438. nautobot/project-static/docs/development/apps/migration/code-updates.html +464 -52
  439. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +464 -20
  440. nautobot/project-static/docs/development/apps/migration/from-v1.html +463 -19
  441. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +463 -19
  442. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +463 -19
  443. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +463 -19
  444. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +466 -22
  445. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9261 -0
  446. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9375 -0
  447. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9671 -0
  448. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9559 -0
  449. nautobot/project-static/docs/development/apps/porting-from-netbox.html +466 -22
  450. nautobot/project-static/docs/development/core/application-registry.html +463 -19
  451. nautobot/project-static/docs/development/core/best-practices.html +463 -19
  452. nautobot/project-static/docs/development/core/bootstrap-ui.html +463 -19
  453. nautobot/project-static/docs/development/core/caching.html +463 -19
  454. nautobot/project-static/docs/development/core/controllers.html +465 -19
  455. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +491 -90
  456. nautobot/project-static/docs/development/core/generic-views.html +463 -19
  457. nautobot/project-static/docs/development/core/getting-started.html +541 -129
  458. nautobot/project-static/docs/development/core/homepage.html +474 -30
  459. nautobot/project-static/docs/development/core/index.html +463 -19
  460. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9754 -0
  461. nautobot/project-static/docs/development/core/model-checklist.html +473 -27
  462. nautobot/project-static/docs/development/core/model-features.html +463 -19
  463. nautobot/project-static/docs/development/core/natural-keys.html +463 -19
  464. nautobot/project-static/docs/development/core/navigation-menu.html +480 -26
  465. nautobot/project-static/docs/development/core/release-checklist.html +480 -48
  466. nautobot/project-static/docs/development/core/role-internals.html +463 -19
  467. nautobot/project-static/docs/development/core/settings.html +463 -19
  468. nautobot/project-static/docs/development/core/style-guide.html +466 -22
  469. nautobot/project-static/docs/development/core/templates.html +473 -22
  470. nautobot/project-static/docs/development/core/testing.html +463 -19
  471. nautobot/project-static/docs/development/core/ui-component-framework.html +11116 -0
  472. nautobot/project-static/docs/development/core/user-preferences.html +466 -22
  473. nautobot/project-static/docs/development/index.html +463 -19
  474. nautobot/project-static/docs/development/jobs/index.html +501 -21
  475. nautobot/project-static/docs/development/jobs/migration/from-v1.html +463 -19
  476. nautobot/project-static/docs/index.html +471 -38
  477. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  478. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  479. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  480. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  481. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  482. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  483. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  484. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  485. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  486. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  487. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  488. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  489. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  490. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  491. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  492. nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
  493. nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
  494. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  495. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  496. nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
  497. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
  498. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
  499. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
  500. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  501. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  502. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
  503. nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
  504. nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
  505. nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
  506. nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
  507. nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
  508. nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
  509. nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
  510. nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
  511. nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
  512. nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
  513. nautobot/project-static/docs/objects.inv +0 -0
  514. nautobot/project-static/docs/overview/application_stack.html +469 -23
  515. nautobot/project-static/docs/overview/design_philosophy.html +463 -19
  516. nautobot/project-static/docs/release-notes/index.html +485 -22
  517. nautobot/project-static/docs/release-notes/version-1.0.html +651 -208
  518. nautobot/project-static/docs/release-notes/version-1.1.html +648 -205
  519. nautobot/project-static/docs/release-notes/version-1.2.html +723 -280
  520. nautobot/project-static/docs/release-notes/version-1.3.html +749 -306
  521. nautobot/project-static/docs/release-notes/version-1.4.html +834 -392
  522. nautobot/project-static/docs/release-notes/version-1.5.html +1022 -581
  523. nautobot/project-static/docs/release-notes/version-1.6.html +942 -518
  524. nautobot/project-static/docs/release-notes/version-2.0.html +945 -504
  525. nautobot/project-static/docs/release-notes/version-2.1.html +780 -339
  526. nautobot/project-static/docs/release-notes/version-2.2.html +773 -332
  527. nautobot/project-static/docs/release-notes/version-2.3.html +1142 -448
  528. nautobot/project-static/docs/release-notes/version-2.4.html +10323 -0
  529. nautobot/project-static/docs/requirements.txt +2 -2
  530. nautobot/project-static/docs/search/search_index.json +1 -1
  531. nautobot/project-static/docs/sitemap.xml +342 -270
  532. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  533. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +463 -19
  534. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +463 -19
  535. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +463 -19
  536. nautobot/project-static/docs/user-guide/administration/configuration/index.html +475 -32
  537. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +463 -19
  538. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +894 -180
  539. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +463 -19
  540. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +463 -19
  541. nautobot/project-static/docs/user-guide/administration/guides/docker.html +476 -29
  542. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +463 -19
  543. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +463 -19
  544. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +463 -19
  545. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +463 -19
  546. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +463 -19
  547. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +465 -21
  548. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +463 -19
  549. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +463 -19
  550. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +463 -19
  551. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +483 -23
  552. nautobot/project-static/docs/user-guide/administration/installation/index.html +468 -20
  553. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +464 -20
  554. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +463 -19
  555. nautobot/project-static/docs/user-guide/administration/installation/services.html +463 -19
  556. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +463 -19
  557. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +484 -41
  558. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +477 -66
  559. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +477 -66
  560. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +463 -19
  561. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +463 -19
  562. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +463 -19
  563. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +463 -19
  564. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +463 -19
  565. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +466 -23
  566. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +463 -19
  567. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
  568. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +463 -19
  569. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +469 -21
  570. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +463 -19
  571. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +463 -19
  572. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +463 -19
  573. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +463 -19
  574. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +463 -19
  575. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +463 -19
  576. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +463 -19
  577. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +463 -19
  578. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +463 -19
  579. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +463 -19
  580. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +463 -19
  581. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +463 -19
  582. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +463 -19
  583. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +463 -19
  584. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +463 -19
  585. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +463 -19
  586. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +463 -19
  587. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +499 -20
  588. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +489 -22
  589. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +463 -19
  590. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +463 -19
  591. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +463 -19
  592. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +463 -19
  593. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +463 -19
  594. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +463 -19
  595. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +463 -19
  596. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +463 -19
  597. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +463 -19
  598. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +463 -19
  599. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +463 -19
  600. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +463 -19
  601. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +463 -19
  602. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +463 -19
  603. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +463 -19
  604. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +463 -19
  605. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +463 -19
  606. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +463 -19
  607. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +463 -19
  608. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +463 -19
  609. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +463 -19
  610. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +463 -19
  611. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +463 -19
  612. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +463 -19
  613. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +463 -19
  614. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +463 -19
  615. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +463 -19
  616. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +463 -19
  617. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +463 -19
  618. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +463 -19
  619. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +463 -19
  620. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +463 -19
  621. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +463 -19
  622. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +463 -19
  623. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9375 -0
  624. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +470 -30
  625. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +463 -19
  626. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +463 -19
  627. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +463 -19
  628. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +463 -19
  629. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +463 -19
  630. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +463 -19
  631. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +463 -19
  632. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +463 -19
  633. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +463 -19
  634. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +463 -19
  635. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +463 -19
  636. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +463 -19
  637. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +466 -22
  638. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +463 -19
  639. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +463 -19
  640. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +463 -19
  641. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +463 -19
  642. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +463 -19
  643. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +463 -19
  644. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +466 -22
  645. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9313 -0
  646. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9217 -0
  647. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9211 -0
  648. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9277 -0
  649. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +463 -19
  650. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +463 -19
  651. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +463 -19
  652. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +463 -19
  653. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +463 -19
  654. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +463 -19
  655. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +463 -19
  656. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +463 -19
  657. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +463 -19
  658. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +463 -19
  659. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +463 -19
  660. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +468 -22
  661. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +463 -19
  662. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  663. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  664. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  665. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  666. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  667. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  668. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  669. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  670. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  671. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  672. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  673. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  674. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  675. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +463 -19
  676. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +463 -19
  677. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +466 -22
  678. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  679. nautobot/project-static/docs/user-guide/index.html +463 -19
  680. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +466 -22
  681. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +467 -23
  682. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +463 -19
  683. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +463 -19
  684. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +463 -19
  685. nautobot/project-static/docs/user-guide/platform-functionality/events.html +9617 -0
  686. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +466 -22
  687. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +463 -19
  688. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +463 -19
  689. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +463 -19
  690. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +463 -19
  691. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +463 -19
  692. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +472 -23
  693. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +466 -22
  694. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +466 -22
  695. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +463 -19
  696. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9224 -0
  697. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  698. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +466 -22
  699. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +463 -19
  700. nautobot/project-static/docs/user-guide/platform-functionality/note.html +463 -19
  701. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +463 -19
  702. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +467 -23
  703. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9292 -0
  704. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +463 -19
  705. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +511 -40
  706. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +494 -23
  707. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +463 -19
  708. nautobot/project-static/docs/user-guide/platform-functionality/role.html +463 -19
  709. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +463 -19
  710. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +463 -19
  711. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +466 -22
  712. nautobot/project-static/docs/user-guide/platform-functionality/status.html +463 -19
  713. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +463 -19
  714. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +531 -56
  715. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +463 -19
  716. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +463 -19
  717. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +463 -19
  718. nautobot/project-static/img/jinja_logo.svg +97 -0
  719. nautobot/project-static/js/forms.js +6 -1
  720. nautobot/project-static/js/nav_menu.js +2 -1
  721. nautobot/tenancy/api/serializers.py +0 -2
  722. nautobot/tenancy/api/views.py +9 -13
  723. nautobot/tenancy/factory.py +1 -1
  724. nautobot/tenancy/navigation.py +0 -29
  725. nautobot/tenancy/templates/tenancy/tenant.html +4 -91
  726. nautobot/tenancy/tests/test_filters.py +29 -134
  727. nautobot/tenancy/views.py +35 -24
  728. nautobot/users/admin.py +3 -1
  729. nautobot/users/api/serializers.py +4 -4
  730. nautobot/users/api/views.py +3 -3
  731. nautobot/users/forms.py +19 -0
  732. nautobot/users/templates/users/preferences.html +22 -0
  733. nautobot/users/tests/test_filters.py +1 -19
  734. nautobot/users/tests/test_views.py +57 -0
  735. nautobot/users/utils.py +8 -0
  736. nautobot/users/views.py +48 -11
  737. nautobot/virtualization/api/serializers.py +4 -4
  738. nautobot/virtualization/api/views.py +5 -24
  739. nautobot/virtualization/filters.py +1 -2
  740. nautobot/virtualization/models.py +1 -1
  741. nautobot/virtualization/navigation.py +0 -48
  742. nautobot/virtualization/tables.py +2 -2
  743. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  744. nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
  745. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  746. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  747. nautobot/virtualization/tests/test_filters.py +57 -166
  748. nautobot/virtualization/views.py +18 -15
  749. nautobot/wireless/__init__.py +0 -0
  750. nautobot/wireless/api/__init__.py +0 -0
  751. nautobot/wireless/api/serializers.py +44 -0
  752. nautobot/wireless/api/urls.py +20 -0
  753. nautobot/wireless/api/views.py +34 -0
  754. nautobot/wireless/apps.py +8 -0
  755. nautobot/wireless/choices.py +345 -0
  756. nautobot/wireless/factory.py +138 -0
  757. nautobot/wireless/filters.py +167 -0
  758. nautobot/wireless/forms.py +283 -0
  759. nautobot/wireless/homepage.py +19 -0
  760. nautobot/wireless/migrations/0001_initial.py +223 -0
  761. nautobot/wireless/migrations/__init__.py +0 -0
  762. nautobot/wireless/models.py +207 -0
  763. nautobot/wireless/navigation.py +105 -0
  764. nautobot/wireless/tables.py +244 -0
  765. nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
  766. nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
  767. nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
  768. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +56 -0
  769. nautobot/wireless/tests/__init__.py +0 -0
  770. nautobot/wireless/tests/integration/__init__.py +0 -0
  771. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  772. nautobot/wireless/tests/test_api.py +247 -0
  773. nautobot/wireless/tests/test_filters.py +82 -0
  774. nautobot/wireless/tests/test_models.py +22 -0
  775. nautobot/wireless/tests/test_views.py +378 -0
  776. nautobot/wireless/urls.py +13 -0
  777. nautobot/wireless/views.py +119 -0
  778. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.dist-info}/METADATA +11 -13
  779. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.dist-info}/RECORD +783 -613
  780. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.dist-info}/WHEEL +1 -1
  781. nautobot/core/fixtures/user-data.json +0 -59
  782. nautobot/core/utils/navigation.py +0 -54
  783. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.dist-info}/LICENSE.txt +0 -0
  784. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.dist-info}/NOTICE +0 -0
  785. {nautobot-2.3.15b1.dist-info → nautobot-2.4.0.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.48">
21
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.5.49">
22
22
 
23
23
 
24
24
 
@@ -2112,6 +2112,27 @@
2112
2112
 
2113
2113
 
2114
2114
 
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+ <li class="md-nav__item">
2122
+ <a href="../../../user-guide/feature-guides/wireless-networks-and-controllers.html" class="md-nav__link">
2123
+
2124
+
2125
+ <span class="md-ellipsis">
2126
+ Wireless Networks and Controllers
2127
+ </span>
2128
+
2129
+
2130
+ </a>
2131
+ </li>
2132
+
2133
+
2134
+
2135
+
2115
2136
  </ul>
2116
2137
  </nav>
2117
2138
 
@@ -3944,6 +3965,27 @@
3944
3965
 
3945
3966
 
3946
3967
 
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+ <li class="md-nav__item">
3975
+ <a href="../../../user-guide/core-data-model/dcim/virtualdevicecontext.html" class="md-nav__link">
3976
+
3977
+
3978
+ <span class="md-ellipsis">
3979
+ Virtual Device Context
3980
+ </span>
3981
+
3982
+
3983
+ </a>
3984
+ </li>
3985
+
3986
+
3987
+
3988
+
3947
3989
  </ul>
3948
3990
  </nav>
3949
3991
 
@@ -4556,6 +4598,123 @@
4556
4598
 
4557
4599
 
4558
4600
 
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+
4607
+
4608
+
4609
+
4610
+
4611
+
4612
+
4613
+
4614
+ <li class="md-nav__item md-nav__item--nested">
4615
+
4616
+
4617
+
4618
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3_9" >
4619
+
4620
+
4621
+
4622
+ <div class="md-nav__link md-nav__container">
4623
+ <a href="../../../user-guide/core-data-model/wireless/index.html" class="md-nav__link ">
4624
+
4625
+
4626
+ <span class="md-ellipsis">
4627
+ Wireless
4628
+ </span>
4629
+
4630
+
4631
+ </a>
4632
+
4633
+
4634
+ <label class="md-nav__link " for="__nav_2_3_9" id="__nav_2_3_9_label" tabindex="0">
4635
+ <span class="md-nav__icon md-icon"></span>
4636
+ </label>
4637
+
4638
+ </div>
4639
+
4640
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_3_9_label" aria-expanded="false">
4641
+ <label class="md-nav__title" for="__nav_2_3_9">
4642
+ <span class="md-nav__icon md-icon"></span>
4643
+ Wireless
4644
+ </label>
4645
+ <ul class="md-nav__list" data-md-scrollfix>
4646
+
4647
+
4648
+
4649
+
4650
+
4651
+
4652
+
4653
+ <li class="md-nav__item">
4654
+ <a href="../../../user-guide/core-data-model/wireless/supporteddatarate.html" class="md-nav__link">
4655
+
4656
+
4657
+ <span class="md-ellipsis">
4658
+ Supported Data Rate
4659
+ </span>
4660
+
4661
+
4662
+ </a>
4663
+ </li>
4664
+
4665
+
4666
+
4667
+
4668
+
4669
+
4670
+
4671
+
4672
+
4673
+
4674
+ <li class="md-nav__item">
4675
+ <a href="../../../user-guide/core-data-model/wireless/radioprofile.html" class="md-nav__link">
4676
+
4677
+
4678
+ <span class="md-ellipsis">
4679
+ Radio Profile
4680
+ </span>
4681
+
4682
+
4683
+ </a>
4684
+ </li>
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+ <li class="md-nav__item">
4696
+ <a href="../../../user-guide/core-data-model/wireless/wirelessnetwork.html" class="md-nav__link">
4697
+
4698
+
4699
+ <span class="md-ellipsis">
4700
+ Wireless Network
4701
+ </span>
4702
+
4703
+
4704
+ </a>
4705
+ </li>
4706
+
4707
+
4708
+
4709
+
4710
+ </ul>
4711
+ </nav>
4712
+
4713
+ </li>
4714
+
4715
+
4716
+
4717
+
4559
4718
  </ul>
4560
4719
  </nav>
4561
4720
 
@@ -4767,6 +4926,27 @@
4767
4926
 
4768
4927
 
4769
4928
 
4929
+ <li class="md-nav__item">
4930
+ <a href="../../../user-guide/platform-functionality/events.html" class="md-nav__link">
4931
+
4932
+
4933
+ <span class="md-ellipsis">
4934
+ Event Notifications
4935
+ </span>
4936
+
4937
+
4938
+ </a>
4939
+ </li>
4940
+
4941
+
4942
+
4943
+
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4770
4950
  <li class="md-nav__item">
4771
4951
  <a href="../../../user-guide/platform-functionality/exporttemplate.html" class="md-nav__link">
4772
4952
 
@@ -4841,7 +5021,7 @@
4841
5021
 
4842
5022
 
4843
5023
 
4844
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_9" >
5024
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_10" >
4845
5025
 
4846
5026
 
4847
5027
 
@@ -4857,14 +5037,14 @@
4857
5037
  </a>
4858
5038
 
4859
5039
 
4860
- <label class="md-nav__link " for="__nav_2_4_9" id="__nav_2_4_9_label" tabindex="0">
5040
+ <label class="md-nav__link " for="__nav_2_4_10" id="__nav_2_4_10_label" tabindex="0">
4861
5041
  <span class="md-nav__icon md-icon"></span>
4862
5042
  </label>
4863
5043
 
4864
5044
  </div>
4865
5045
 
4866
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_9_label" aria-expanded="false">
4867
- <label class="md-nav__title" for="__nav_2_4_9">
5046
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_10_label" aria-expanded="false">
5047
+ <label class="md-nav__title" for="__nav_2_4_10">
4868
5048
  <span class="md-nav__icon md-icon"></span>
4869
5049
  GraphQL
4870
5050
  </label>
@@ -4937,7 +5117,7 @@
4937
5117
 
4938
5118
 
4939
5119
 
4940
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_11" >
5120
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_12" >
4941
5121
 
4942
5122
 
4943
5123
 
@@ -4953,14 +5133,14 @@
4953
5133
  </a>
4954
5134
 
4955
5135
 
4956
- <label class="md-nav__link " for="__nav_2_4_11" id="__nav_2_4_11_label" tabindex="0">
5136
+ <label class="md-nav__link " for="__nav_2_4_12" id="__nav_2_4_12_label" tabindex="0">
4957
5137
  <span class="md-nav__icon md-icon"></span>
4958
5138
  </label>
4959
5139
 
4960
5140
  </div>
4961
5141
 
4962
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_11_label" aria-expanded="false">
4963
- <label class="md-nav__title" for="__nav_2_4_11">
5142
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_12_label" aria-expanded="false">
5143
+ <label class="md-nav__title" for="__nav_2_4_12">
4964
5144
  <span class="md-nav__icon md-icon"></span>
4965
5145
  Jobs
4966
5146
  </label>
@@ -4972,6 +5152,27 @@
4972
5152
 
4973
5153
 
4974
5154
 
5155
+ <li class="md-nav__item">
5156
+ <a href="../../../user-guide/platform-functionality/jobs/kubernetes-job-support.html" class="md-nav__link">
5157
+
5158
+
5159
+ <span class="md-ellipsis">
5160
+ Kubernetes Job Support
5161
+ </span>
5162
+
5163
+
5164
+ </a>
5165
+ </li>
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
4975
5176
  <li class="md-nav__item">
4976
5177
  <a href="../../../user-guide/platform-functionality/jobs/jobbutton.html" class="md-nav__link">
4977
5178
 
@@ -5035,6 +5236,27 @@
5035
5236
 
5036
5237
 
5037
5238
 
5239
+ <li class="md-nav__item">
5240
+ <a href="../../../user-guide/platform-functionality/jobs/jobqueue.html" class="md-nav__link">
5241
+
5242
+
5243
+ <span class="md-ellipsis">
5244
+ Job Queues
5245
+ </span>
5246
+
5247
+
5248
+ </a>
5249
+ </li>
5250
+
5251
+
5252
+
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+
5038
5260
  <li class="md-nav__item">
5039
5261
  <a href="../../../user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html" class="md-nav__link">
5040
5262
 
@@ -5148,6 +5370,27 @@
5148
5370
 
5149
5371
 
5150
5372
 
5373
+ <li class="md-nav__item">
5374
+ <a href="../../../user-guide/platform-functionality/rendering-jinja-templates.html" class="md-nav__link">
5375
+
5376
+
5377
+ <span class="md-ellipsis">
5378
+ Rendering Jinja Templates
5379
+ </span>
5380
+
5381
+
5382
+ </a>
5383
+ </li>
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5151
5394
 
5152
5395
 
5153
5396
 
@@ -5159,7 +5402,7 @@
5159
5402
 
5160
5403
 
5161
5404
 
5162
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_16" >
5405
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_18" >
5163
5406
 
5164
5407
 
5165
5408
 
@@ -5175,14 +5418,14 @@
5175
5418
  </a>
5176
5419
 
5177
5420
 
5178
- <label class="md-nav__link " for="__nav_2_4_16" id="__nav_2_4_16_label" tabindex="0">
5421
+ <label class="md-nav__link " for="__nav_2_4_18" id="__nav_2_4_18_label" tabindex="0">
5179
5422
  <span class="md-nav__icon md-icon"></span>
5180
5423
  </label>
5181
5424
 
5182
5425
  </div>
5183
5426
 
5184
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_16_label" aria-expanded="false">
5185
- <label class="md-nav__title" for="__nav_2_4_16">
5427
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_18_label" aria-expanded="false">
5428
+ <label class="md-nav__title" for="__nav_2_4_18">
5186
5429
  <span class="md-nav__icon md-icon"></span>
5187
5430
  REST API
5188
5431
  </label>
@@ -5402,10 +5645,10 @@
5402
5645
 
5403
5646
 
5404
5647
 
5405
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_23" >
5648
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_4_25" >
5406
5649
 
5407
5650
 
5408
- <label class="md-nav__link" for="__nav_2_4_23" id="__nav_2_4_23_label" tabindex="0">
5651
+ <label class="md-nav__link" for="__nav_2_4_25" id="__nav_2_4_25_label" tabindex="0">
5409
5652
 
5410
5653
 
5411
5654
  <span class="md-ellipsis">
@@ -5416,8 +5659,8 @@
5416
5659
  <span class="md-nav__icon md-icon"></span>
5417
5660
  </label>
5418
5661
 
5419
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_23_label" aria-expanded="false">
5420
- <label class="md-nav__title" for="__nav_2_4_23">
5662
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_4_25_label" aria-expanded="false">
5663
+ <label class="md-nav__title" for="__nav_2_4_25">
5421
5664
  <span class="md-nav__icon md-icon"></span>
5422
5665
  Users
5423
5666
  </label>
@@ -6831,6 +7074,27 @@
6831
7074
 
6832
7075
 
6833
7076
 
7077
+ <li class="md-nav__item">
7078
+ <a href="events.html" class="md-nav__link">
7079
+
7080
+
7081
+ <span class="md-ellipsis">
7082
+ nautobot.apps.events
7083
+ </span>
7084
+
7085
+
7086
+ </a>
7087
+ </li>
7088
+
7089
+
7090
+
7091
+
7092
+
7093
+
7094
+
7095
+
7096
+
7097
+
6834
7098
  <li class="md-nav__item">
6835
7099
  <a href="exceptions.html" class="md-nav__link">
6836
7100
 
@@ -7773,14 +8037,6 @@
7773
8037
 
7774
8038
 
7775
8039
 
7776
- </ul>
7777
- </nav>
7778
-
7779
- </li>
7780
-
7781
-
7782
-
7783
-
7784
8040
 
7785
8041
 
7786
8042
 
@@ -7798,21 +8054,146 @@
7798
8054
 
7799
8055
 
7800
8056
 
7801
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
8057
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
7802
8058
 
7803
8059
 
7804
- <label class="md-nav__link" for="__nav_3_2_10" id="__nav_3_2_10_label" tabindex="0">
7805
-
8060
+
8061
+ <div class="md-nav__link md-nav__container">
8062
+ <a href="../../../development/apps/migration/ui-component-framework/index.html" class="md-nav__link ">
8063
+
7806
8064
 
7807
8065
  <span class="md-ellipsis">
7808
- Advanced
8066
+ UI Component Framework
7809
8067
  </span>
7810
8068
 
7811
8069
 
7812
- <span class="md-nav__icon md-icon"></span>
7813
- </label>
7814
-
7815
- <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_10_label" aria-expanded="false">
8070
+ </a>
8071
+
8072
+
8073
+ <label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
8074
+ <span class="md-nav__icon md-icon"></span>
8075
+ </label>
8076
+
8077
+ </div>
8078
+
8079
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
8080
+ <label class="md-nav__title" for="__nav_3_2_9_5">
8081
+ <span class="md-nav__icon md-icon"></span>
8082
+ UI Component Framework
8083
+ </label>
8084
+ <ul class="md-nav__list" data-md-scrollfix>
8085
+
8086
+
8087
+
8088
+
8089
+
8090
+
8091
+
8092
+ <li class="md-nav__item">
8093
+ <a href="../../../development/apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
8094
+
8095
+
8096
+ <span class="md-ellipsis">
8097
+ Migration steps
8098
+ </span>
8099
+
8100
+
8101
+ </a>
8102
+ </li>
8103
+
8104
+
8105
+
8106
+
8107
+
8108
+
8109
+
8110
+
8111
+
8112
+
8113
+ <li class="md-nav__item">
8114
+ <a href="../../../development/apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
8115
+
8116
+
8117
+ <span class="md-ellipsis">
8118
+ Custom content
8119
+ </span>
8120
+
8121
+
8122
+ </a>
8123
+ </li>
8124
+
8125
+
8126
+
8127
+
8128
+
8129
+
8130
+
8131
+
8132
+
8133
+
8134
+ <li class="md-nav__item">
8135
+ <a href="../../../development/apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
8136
+
8137
+
8138
+ <span class="md-ellipsis">
8139
+ Best practices
8140
+ </span>
8141
+
8142
+
8143
+ </a>
8144
+ </li>
8145
+
8146
+
8147
+
8148
+
8149
+ </ul>
8150
+ </nav>
8151
+
8152
+ </li>
8153
+
8154
+
8155
+
8156
+
8157
+ </ul>
8158
+ </nav>
8159
+
8160
+ </li>
8161
+
8162
+
8163
+
8164
+
8165
+
8166
+
8167
+
8168
+
8169
+
8170
+
8171
+
8172
+
8173
+
8174
+
8175
+
8176
+
8177
+
8178
+ <li class="md-nav__item md-nav__item--nested">
8179
+
8180
+
8181
+
8182
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_10" >
8183
+
8184
+
8185
+ <label class="md-nav__link" for="__nav_3_2_10" id="__nav_3_2_10_label" tabindex="0">
8186
+
8187
+
8188
+ <span class="md-ellipsis">
8189
+ Advanced
8190
+ </span>
8191
+
8192
+
8193
+ <span class="md-nav__icon md-icon"></span>
8194
+ </label>
8195
+
8196
+ <nav class="md-nav" data-md-level="3" aria-labelledby="__nav_3_2_10_label" aria-expanded="false">
7816
8197
  <label class="md-nav__title" for="__nav_3_2_10">
7817
8198
  <span class="md-nav__icon md-icon"></span>
7818
8199
  Advanced
@@ -8118,6 +8499,27 @@
8118
8499
 
8119
8500
 
8120
8501
 
8502
+ <li class="md-nav__item">
8503
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
8504
+
8505
+
8506
+ <span class="md-ellipsis">
8507
+ Minikube Dev Environment for K8s Jobs
8508
+ </span>
8509
+
8510
+
8511
+ </a>
8512
+ </li>
8513
+
8514
+
8515
+
8516
+
8517
+
8518
+
8519
+
8520
+
8521
+
8522
+
8121
8523
  <li class="md-nav__item">
8122
8524
  <a href="../../../development/core/model-checklist.html" class="md-nav__link">
8123
8525
 
@@ -8307,6 +8709,27 @@
8307
8709
 
8308
8710
 
8309
8711
 
8712
+ <li class="md-nav__item">
8713
+ <a href="../../../development/core/ui-component-framework.html" class="md-nav__link">
8714
+
8715
+
8716
+ <span class="md-ellipsis">
8717
+ UI Component Framework
8718
+ </span>
8719
+
8720
+
8721
+ </a>
8722
+ </li>
8723
+
8724
+
8725
+
8726
+
8727
+
8728
+
8729
+
8730
+
8731
+
8732
+
8310
8733
  <li class="md-nav__item">
8311
8734
  <a href="../../../development/core/release-checklist.html" class="md-nav__link">
8312
8735
 
@@ -8389,6 +8812,27 @@
8389
8812
 
8390
8813
 
8391
8814
 
8815
+ <li class="md-nav__item">
8816
+ <a href="../../../release-notes/version-2.4.html" class="md-nav__link">
8817
+
8818
+
8819
+ <span class="md-ellipsis">
8820
+ Version 2.4
8821
+ </span>
8822
+
8823
+
8824
+ </a>
8825
+ </li>
8826
+
8827
+
8828
+
8829
+
8830
+
8831
+
8832
+
8833
+
8834
+
8835
+
8392
8836
  <li class="md-nav__item">
8393
8837
  <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
8394
8838
 
@@ -9360,7 +9804,12 @@
9360
9804
 
9361
9805
  <div class="doc doc-contents first">
9362
9806
 
9363
- <p>Filterset base classes and mixins for app implementation.</p>
9807
+ <p>Filterset base classes and mixins for app implementation.</p>
9808
+
9809
+
9810
+
9811
+
9812
+
9364
9813
 
9365
9814
 
9366
9815
 
@@ -9386,10 +9835,15 @@
9386
9835
 
9387
9836
  <div class="doc doc-contents ">
9388
9837
  <p class="doc doc-class-bases">
9389
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
9838
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
9839
+
9840
+
9841
+ <p>A base filterset which provides common functionality to all Nautobot filtersets.</p>
9842
+
9843
+
9844
+
9390
9845
 
9391
9846
 
9392
- <p>A base filterset which provides common functionality to all Nautobot filtersets.</p>
9393
9847
 
9394
9848
 
9395
9849
 
@@ -9418,7 +9872,7 @@
9418
9872
 
9419
9873
  <div class="doc doc-contents ">
9420
9874
 
9421
- <p>Extend FilterSet.errors to potentially include additional errors from settings.STRICT_FILTERING.</p>
9875
+ <p>Extend FilterSet.errors to potentially include additional errors from settings.STRICT_FILTERING.</p>
9422
9876
  </div>
9423
9877
 
9424
9878
  </div>
@@ -9440,7 +9894,7 @@
9440
9894
 
9441
9895
  <div class="doc doc-contents ">
9442
9896
 
9443
- <p>Allow filters to be added post-generation on import.</p>
9897
+ <p>Allow filters to be added post-generation on import.</p>
9444
9898
  <p>Will provide <code>&lt;field_name&gt;__&lt;lookup_expr&gt;</code> generation automagically.</p>
9445
9899
 
9446
9900
  </div>
@@ -9462,7 +9916,7 @@
9462
9916
 
9463
9917
  <div class="doc doc-contents ">
9464
9918
 
9465
- <p>Override filter_for_lookup method to set ChoiceField Filter to MultipleChoiceFilter.</p>
9919
+ <p>Override filter_for_lookup method to set ChoiceField Filter to MultipleChoiceFilter.</p>
9466
9920
  <p>Note: Any CharField or IntegerField with choices set is a ChoiceField.</p>
9467
9921
 
9468
9922
  </div>
@@ -9484,7 +9938,7 @@
9484
9938
 
9485
9939
  <div class="doc doc-contents ">
9486
9940
 
9487
- <p>Override filter generation to support dynamic lookup expressions for certain filter types.</p>
9941
+ <p>Override filter generation to support dynamic lookup expressions for certain filter types.</p>
9488
9942
 
9489
9943
  </div>
9490
9944
 
@@ -9501,7 +9955,7 @@
9501
9955
 
9502
9956
  <div class="doc doc-contents ">
9503
9957
 
9504
- <p>Extend FilterSet.is_valid() to potentially enforce settings.STRICT_FILTERING.</p>
9958
+ <p>Extend FilterSet.is_valid() to potentially enforce settings.STRICT_FILTERING.</p>
9505
9959
 
9506
9960
  </div>
9507
9961
 
@@ -9528,10 +9982,15 @@
9528
9982
 
9529
9983
  <div class="doc doc-contents ">
9530
9984
  <p class="doc doc-class-bases">
9531
- Bases: <code><autoref identifier="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" optional hover>NaturalKeyOrPKMultipleChoiceFilter</autoref></code></p>
9985
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" href="#nautobot.apps.filters.NaturalKeyOrPKMultipleChoiceFilter">NaturalKeyOrPKMultipleChoiceFilter</a></code></p>
9986
+
9987
+
9988
+ <p>Limit role choices to the available role choices for Device and VM</p>
9989
+
9990
+
9991
+
9532
9992
 
9533
9993
 
9534
- <p>Limit role choices to the available role choices for Device and VM</p>
9535
9994
 
9536
9995
 
9537
9996
 
@@ -9567,10 +10026,10 @@
9567
10026
 
9568
10027
  <div class="doc doc-contents ">
9569
10028
  <p class="doc doc-class-bases">
9570
- Bases: <code><autoref identifier="nautobot.core.filters.ContentTypeFilterMixin" optional hover>ContentTypeFilterMixin</autoref></code>, <code><autoref identifier="django_filters.ChoiceFilter" optional hover>ChoiceFilter</autoref></code></p>
10029
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.ContentTypeFilterMixin" href="#nautobot.apps.filters.ContentTypeFilterMixin">ContentTypeFilterMixin</a></code>, <code><span title="django_filters.ChoiceFilter">ChoiceFilter</span></code></p>
9571
10030
 
9572
10031
 
9573
- <p>Allows character-based ContentType filtering by <app_label>.<model> (e.g.
10032
+ <p>Allows character-based ContentType filtering by <app_label>.<model> (e.g.
9574
10033
  "dcim.location") but an explicit set of choices must be provided.</p>
9575
10034
  <p>Example use on a <code>FilterSet</code>:</p>
9576
10035
  <div class="highlight"><pre><span></span><code>content_type = ContentTypeChoiceFilter(
@@ -9581,6 +10040,11 @@
9581
10040
 
9582
10041
 
9583
10042
 
10043
+
10044
+
10045
+
10046
+
10047
+
9584
10048
  <div class="doc doc-children">
9585
10049
 
9586
10050
 
@@ -9612,10 +10076,10 @@
9612
10076
 
9613
10077
  <div class="doc doc-contents ">
9614
10078
  <p class="doc doc-class-bases">
9615
- Bases: <code><autoref identifier="nautobot.core.filters.ContentTypeFilterMixin" optional hover>ContentTypeFilterMixin</autoref></code>, <code><autoref identifier="django_filters.CharFilter" optional hover>CharFilter</autoref></code></p>
10079
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.ContentTypeFilterMixin" href="#nautobot.apps.filters.ContentTypeFilterMixin">ContentTypeFilterMixin</a></code>, <code><span title="django_filters.CharFilter">CharFilter</span></code></p>
9616
10080
 
9617
10081
 
9618
- <p>Allows character-based ContentType filtering by <app_label>.<model> (e.g. "dcim.location").</p>
10082
+ <p>Allows character-based ContentType filtering by <app_label>.<model> (e.g. "dcim.location").</p>
9619
10083
  <p>Does not support limiting of choices. Can be used without arguments on a <code>FilterSet</code>:</p>
9620
10084
  <div class="highlight"><pre><span></span><code>content_type = ContentTypeFilter()
9621
10085
  </code></pre></div>
@@ -9623,6 +10087,11 @@
9623
10087
 
9624
10088
 
9625
10089
 
10090
+
10091
+
10092
+
10093
+
10094
+
9626
10095
  <div class="doc doc-children">
9627
10096
 
9628
10097
 
@@ -9655,7 +10124,12 @@
9655
10124
  <div class="doc doc-contents ">
9656
10125
 
9657
10126
 
9658
- <p>Mixin to allow specifying a ContentType by <app_label>.<model> (e.g. "dcim.location").</p>
10127
+ <p>Mixin to allow specifying a ContentType by <app_label>.<model> (e.g. "dcim.location").</p>
10128
+
10129
+
10130
+
10131
+
10132
+
9659
10133
 
9660
10134
 
9661
10135
 
@@ -9691,10 +10165,10 @@
9691
10165
 
9692
10166
  <div class="doc doc-contents ">
9693
10167
  <p class="doc doc-class-bases">
9694
- Bases: <code><autoref identifier="django_filters.MultipleChoiceFilter" optional hover>MultipleChoiceFilter</autoref></code></p>
10168
+ Bases: <code><span title="django_filters.MultipleChoiceFilter">MultipleChoiceFilter</span></code></p>
9695
10169
 
9696
10170
 
9697
- <p>Allows multiple-choice ContentType filtering by <app_label>.<model> (e.g. "dcim.location").</p>
10171
+ <p>Allows multiple-choice ContentType filtering by <app_label>.<model> (e.g. "dcim.location").</p>
9698
10172
  <p>Defaults to joining multiple options with "AND". Pass <code>conjoined=False</code> to
9699
10173
  override this behavior to join with "OR" instead.</p>
9700
10174
  <p>Example use on a <code>FilterSet</code>:</p>
@@ -9706,6 +10180,11 @@ override this behavior to join with "OR" instead.</p>
9706
10180
 
9707
10181
 
9708
10182
 
10183
+
10184
+
10185
+
10186
+
10187
+
9709
10188
  <div class="doc doc-children">
9710
10189
 
9711
10190
 
@@ -9727,7 +10206,7 @@ override this behavior to join with "OR" instead.</p>
9727
10206
 
9728
10207
  <div class="doc doc-contents ">
9729
10208
 
9730
- <p>Filter on value, which should be list of content-type names.</p>
10209
+ <p>Filter on value, which should be list of content-type names.</p>
9731
10210
  <p>e.g. <code>['dcim.device', 'dcim.rack']</code></p>
9732
10211
 
9733
10212
  </div>
@@ -9755,15 +10234,20 @@ override this behavior to join with "OR" instead.</p>
9755
10234
 
9756
10235
  <div class="doc doc-contents ">
9757
10236
  <p class="doc doc-class-bases">
9758
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
10237
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
9759
10238
 
9760
10239
 
9761
- <p>Dynamically add a Filter for each CustomField applicable to the parent model. Add filters for
10240
+ <p>Dynamically add a Filter for each CustomField applicable to the parent model. Add filters for
9762
10241
  extra lookup expressions on supported CustomField types.</p>
9763
10242
 
9764
10243
 
9765
10244
 
9766
10245
 
10246
+
10247
+
10248
+
10249
+
10250
+
9767
10251
  <div class="doc doc-children">
9768
10252
 
9769
10253
 
@@ -9796,7 +10280,12 @@ extra lookup expressions on supported CustomField types.</p>
9796
10280
  <div class="doc doc-contents ">
9797
10281
 
9798
10282
 
9799
- <p>Class that may be returned by a registered Filter Extension function.</p>
10283
+ <p>Class that may be returned by a registered Filter Extension function.</p>
10284
+
10285
+
10286
+
10287
+
10288
+
9800
10289
 
9801
10290
 
9802
10291
 
@@ -9833,7 +10322,7 @@ extra lookup expressions on supported CustomField types.</p>
9833
10322
  <div class="doc doc-contents ">
9834
10323
 
9835
10324
 
9836
- <p>A filter mixin to provide the ability to specify fields and lookup expressions to use for
10325
+ <p>A filter mixin to provide the ability to specify fields and lookup expressions to use for
9837
10326
  filtering.</p>
9838
10327
  <p>A mapping of filter predicates (field_name: lookup_expr) must be provided to the filter when
9839
10328
  declared on a filterset. This mapping is used to construct a <code>Q</code> query to filter based on the
@@ -9864,6 +10353,11 @@ skipped.</p>
9864
10353
 
9865
10354
 
9866
10355
 
10356
+
10357
+
10358
+
10359
+
10360
+
9867
10361
  <div class="doc doc-children">
9868
10362
 
9869
10363
 
@@ -9885,7 +10379,7 @@ skipped.</p>
9885
10379
 
9886
10380
  <div class="doc doc-contents ">
9887
10381
 
9888
- <p>Given a <code>value</code>, return a <code>Q</code> object for 2-tuple of <code>predicate=value</code>. Filter predicates are
10382
+ <p>Given a <code>value</code>, return a <code>Q</code> object for 2-tuple of <code>predicate=value</code>. Filter predicates are
9889
10383
  read from the instance filter. Any <code>kwargs</code> are ignored.</p>
9890
10384
 
9891
10385
  </div>
@@ -9913,10 +10407,15 @@ read from the instance filter. Any <code>kwargs</code> are ignored.</p>
9913
10407
 
9914
10408
  <div class="doc doc-contents ">
9915
10409
  <p class="doc doc-class-bases">
9916
- Bases: <code><autoref identifier="nautobot.core.filters.MultiValueNumberFilter" optional hover>MultiValueNumberFilter</autoref></code></p>
10410
+ Bases: <code><span title="nautobot.core.filters.MultiValueNumberFilter">MultiValueNumberFilter</span></code></p>
10411
+
10412
+
10413
+ <p>Subclass of MultiValueNumberFilter used for BigInteger model fields.</p>
10414
+
10415
+
10416
+
9917
10417
 
9918
10418
 
9919
- <p>Subclass of MultiValueNumberFilter used for BigInteger model fields.</p>
9920
10419
 
9921
10420
 
9922
10421
 
@@ -9952,10 +10451,15 @@ read from the instance filter. Any <code>kwargs</code> are ignored.</p>
9952
10451
 
9953
10452
  <div class="doc doc-contents ">
9954
10453
  <p class="doc doc-class-bases">
9955
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
10454
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
10455
+
10456
+
10457
+ <p>A base class for adding the search method to models which only expose the <code>name</code> field in searches.</p>
10458
+
10459
+
10460
+
9956
10461
 
9957
10462
 
9958
- <p>A base class for adding the search method to models which only expose the <code>name</code> field in searches.</p>
9959
10463
 
9960
10464
 
9961
10465
 
@@ -9991,10 +10495,10 @@ read from the instance filter. Any <code>kwargs</code> are ignored.</p>
9991
10495
 
9992
10496
  <div class="doc doc-contents ">
9993
10497
  <p class="doc doc-class-bases">
9994
- Bases: <code><autoref identifier="django_filters.ModelMultipleChoiceFilter" optional hover>ModelMultipleChoiceFilter</autoref></code></p>
10498
+ Bases: <code><span title="django_filters.ModelMultipleChoiceFilter">ModelMultipleChoiceFilter</span></code></p>
9995
10499
 
9996
10500
 
9997
- <p>Filter that supports filtering on values matching the <code>pk</code> field and another
10501
+ <p>Filter that supports filtering on values matching the <code>pk</code> field and another
9998
10502
  field of a foreign-key related object. The desired field is set using the <code>to_field_name</code>
9999
10503
  keyword argument on filter initialization (defaults to <code>name</code>).</p>
10000
10504
  <p>NOTE that the <code>to_field_name</code> field does not have to be a "true" natural key (ie. unique), it
@@ -10003,6 +10507,11 @@ was just the best name we could come up with for this filter</p>
10003
10507
 
10004
10508
 
10005
10509
 
10510
+
10511
+
10512
+
10513
+
10514
+
10006
10515
  <div class="doc doc-children">
10007
10516
 
10008
10517
 
@@ -10024,7 +10533,7 @@ was just the best name we could come up with for this filter</p>
10024
10533
 
10025
10534
  <div class="doc doc-contents ">
10026
10535
 
10027
- <p>Initialize the NaturalKeyOrPKMultipleChoiceFilter.</p>
10536
+ <p>Initialize the NaturalKeyOrPKMultipleChoiceFilter.</p>
10028
10537
 
10029
10538
 
10030
10539
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -10039,9 +10548,11 @@ was just the best name we could come up with for this filter</p>
10039
10548
  </thead>
10040
10549
  <tbody>
10041
10550
  <tr class="doc-section-item">
10042
- <td><code>prefers_id</code></td>
10043
10551
  <td>
10044
- <code><autoref identifier="bool" optional>bool</autoref></code>
10552
+ <code>prefers_id</code>
10553
+ </td>
10554
+ <td>
10555
+ <code>bool</code>
10045
10556
  </td>
10046
10557
  <td>
10047
10558
  <div class="doc-md-description">
@@ -10070,7 +10581,7 @@ was just the best name we could come up with for this filter</p>
10070
10581
 
10071
10582
  <div class="doc doc-contents ">
10072
10583
 
10073
- <p>Override base filter behavior to force the filter to use the <code>pk</code> field instead of
10584
+ <p>Override base filter behavior to force the filter to use the <code>pk</code> field instead of
10074
10585
  the natural key in the generated filter.</p>
10075
10586
 
10076
10587
  </div>
@@ -10098,16 +10609,21 @@ the natural key in the generated filter.</p>
10098
10609
 
10099
10610
  <div class="doc doc-contents ">
10100
10611
  <p class="doc doc-class-bases">
10101
- Bases: <code><autoref identifier="nautobot.core.filters.BaseFilterSet" optional hover>BaseFilterSet</autoref></code>, <code><autoref identifier="nautobot.extras.filters.mixins.CreatedUpdatedModelFilterSetMixin" optional hover>CreatedUpdatedModelFilterSetMixin</autoref></code>, <code><autoref identifier="nautobot.extras.filters.mixins.RelationshipModelFilterSetMixin" optional hover>RelationshipModelFilterSetMixin</autoref></code>, <code><autoref identifier="nautobot.extras.filters.mixins.CustomFieldModelFilterSetMixin" optional hover>CustomFieldModelFilterSetMixin</autoref></code></p>
10612
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.BaseFilterSet" href="#nautobot.apps.filters.BaseFilterSet">BaseFilterSet</a></code>, <code><span title="nautobot.extras.filters.mixins.CreatedUpdatedModelFilterSetMixin">CreatedUpdatedModelFilterSetMixin</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.filters.mixins.RelationshipModelFilterSetMixin" href="#nautobot.apps.filters.RelationshipModelFilterSetMixin">RelationshipModelFilterSetMixin</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.extras.filters.mixins.CustomFieldModelFilterSetMixin" href="#nautobot.apps.filters.CustomFieldModelFilterSetMixin">CustomFieldModelFilterSetMixin</a></code></p>
10102
10613
 
10103
10614
 
10104
- <p>This class exists to combine common functionality and is used as a base class throughout the codebase where all of
10615
+ <p>This class exists to combine common functionality and is used as a base class throughout the codebase where all of
10105
10616
  BaseFilterSet, CreatedUpdatedModelFilterSetMixin, RelationshipModelFilterSetMixin and CustomFieldModelFilterSetMixin
10106
10617
  are needed.</p>
10107
10618
 
10108
10619
 
10109
10620
 
10110
10621
 
10622
+
10623
+
10624
+
10625
+
10626
+
10111
10627
  <div class="doc doc-children">
10112
10628
 
10113
10629
 
@@ -10139,10 +10655,15 @@ are needed.</p>
10139
10655
 
10140
10656
  <div class="doc doc-contents ">
10141
10657
  <p class="doc doc-class-bases">
10142
- Bases: <code><autoref identifier="django_filters.NumberFilter" optional hover>NumberFilter</autoref></code></p>
10658
+ Bases: <code><span title="django_filters.NumberFilter">NumberFilter</span></code></p>
10659
+
10660
+
10661
+ <p>Filter based on the presence of an integer within an ArrayField.</p>
10662
+
10663
+
10664
+
10143
10665
 
10144
10666
 
10145
- <p>Filter based on the presence of an integer within an ArrayField.</p>
10146
10667
 
10147
10668
 
10148
10669
 
@@ -10178,10 +10699,10 @@ are needed.</p>
10178
10699
 
10179
10700
  <div class="doc doc-contents ">
10180
10701
  <p class="doc doc-class-bases">
10181
- Bases: <code><autoref identifier="django_filters.BooleanFilter" optional hover>BooleanFilter</autoref></code></p>
10702
+ Bases: <code><span title="django_filters.BooleanFilter">BooleanFilter</span></code></p>
10182
10703
 
10183
10704
 
10184
- <p>BooleanFilter for related objects that will explicitly perform <code>isnull</code> lookups.
10705
+ <p>BooleanFilter for related objects that will explicitly perform <code>isnull</code> lookups.
10185
10706
  The <code>field_name</code> argument is required and must be set to the related field on the
10186
10707
  model.</p>
10187
10708
  <p>This should be used instead of a default <code>BooleanFilter</code> paired <code>method=</code>
@@ -10215,6 +10736,11 @@ See the below table for more information:
10215
10736
 
10216
10737
 
10217
10738
 
10739
+
10740
+
10741
+
10742
+
10743
+
10218
10744
  <div class="doc doc-children">
10219
10745
 
10220
10746
 
@@ -10246,10 +10772,15 @@ See the below table for more information:
10246
10772
 
10247
10773
  <div class="doc doc-contents ">
10248
10774
  <p class="doc doc-class-bases">
10249
- Bases: <code><autoref identifier="django_filters.ModelMultipleChoiceFilter" optional hover>ModelMultipleChoiceFilter</autoref></code></p>
10775
+ Bases: <code><span title="django_filters.ModelMultipleChoiceFilter">ModelMultipleChoiceFilter</span></code></p>
10776
+
10777
+
10778
+ <p>Filter objects by the presence of associations on a given Relationship.</p>
10779
+
10780
+
10781
+
10250
10782
 
10251
10783
 
10252
- <p>Filter objects by the presence of associations on a given Relationship.</p>
10253
10784
 
10254
10785
 
10255
10786
 
@@ -10285,10 +10816,15 @@ See the below table for more information:
10285
10816
 
10286
10817
  <div class="doc doc-contents ">
10287
10818
  <p class="doc doc-class-bases">
10288
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
10819
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
10820
+
10821
+
10822
+ <p>Filterset for relationships applicable to the parent model.</p>
10823
+
10824
+
10825
+
10289
10826
 
10290
10827
 
10291
- <p>Filterset for relationships applicable to the parent model.</p>
10292
10828
 
10293
10829
 
10294
10830
 
@@ -10324,10 +10860,15 @@ See the below table for more information:
10324
10860
 
10325
10861
  <div class="doc doc-contents ">
10326
10862
  <p class="doc doc-class-bases">
10327
- Bases: <code><autoref identifier="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" optional hover>NaturalKeyOrPKMultipleChoiceFilter</autoref></code></p>
10863
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" href="#nautobot.apps.filters.NaturalKeyOrPKMultipleChoiceFilter">NaturalKeyOrPKMultipleChoiceFilter</a></code></p>
10864
+
10865
+
10866
+ <p>Filter field used for filtering Role fields.</p>
10867
+
10868
+
10869
+
10328
10870
 
10329
10871
 
10330
- <p>Filter field used for filtering Role fields.</p>
10331
10872
 
10332
10873
 
10333
10874
 
@@ -10363,10 +10904,15 @@ See the below table for more information:
10363
10904
 
10364
10905
  <div class="doc doc-contents ">
10365
10906
  <p class="doc doc-class-bases">
10366
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
10907
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
10908
+
10909
+
10910
+ <p>Mixin to add a <code>role</code> filter field to a FilterSet.</p>
10911
+
10912
+
10913
+
10367
10914
 
10368
10915
 
10369
- <p>Mixin to add a <code>role</code> filter field to a FilterSet.</p>
10370
10916
 
10371
10917
 
10372
10918
 
@@ -10402,15 +10948,20 @@ See the below table for more information:
10402
10948
 
10403
10949
  <div class="doc doc-contents ">
10404
10950
  <p class="doc doc-class-bases">
10405
- Bases: <code><autoref identifier="nautobot.core.filters.MappedPredicatesFilterMixin" optional hover>MappedPredicatesFilterMixin</autoref></code>, <code><autoref identifier="django_filters.CharFilter" optional hover>CharFilter</autoref></code></p>
10951
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.MappedPredicatesFilterMixin" href="#nautobot.apps.filters.MappedPredicatesFilterMixin">MappedPredicatesFilterMixin</a></code>, <code><span title="django_filters.CharFilter">CharFilter</span></code></p>
10406
10952
 
10407
10953
 
10408
- <p>Provide a search filter for use on filtersets as the <code>q=</code> parameter.</p>
10954
+ <p>Provide a search filter for use on filtersets as the <code>q=</code> parameter.</p>
10409
10955
  <p>See the docstring for <code>nautobot.core.filters.MappedPredicatesFilterMixin</code> for usage.</p>
10410
10956
 
10411
10957
 
10412
10958
 
10413
10959
 
10960
+
10961
+
10962
+
10963
+
10964
+
10414
10965
  <div class="doc doc-children">
10415
10966
 
10416
10967
 
@@ -10442,10 +10993,15 @@ See the below table for more information:
10442
10993
 
10443
10994
  <div class="doc doc-contents ">
10444
10995
  <p class="doc doc-class-bases">
10445
- Bases: <code><autoref identifier="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" optional hover>NaturalKeyOrPKMultipleChoiceFilter</autoref></code></p>
10996
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" href="#nautobot.apps.filters.NaturalKeyOrPKMultipleChoiceFilter">NaturalKeyOrPKMultipleChoiceFilter</a></code></p>
10997
+
10998
+
10999
+ <p>Filter field used for filtering Status fields.</p>
11000
+
11001
+
11002
+
10446
11003
 
10447
11004
 
10448
- <p>Filter field used for filtering Status fields.</p>
10449
11005
 
10450
11006
 
10451
11007
 
@@ -10481,10 +11037,15 @@ See the below table for more information:
10481
11037
 
10482
11038
  <div class="doc doc-contents ">
10483
11039
  <p class="doc doc-class-bases">
10484
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
11040
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
11041
+
11042
+
11043
+ <p>Mixin to add a <code>status</code> filter field to a FilterSet.</p>
11044
+
11045
+
11046
+
10485
11047
 
10486
11048
 
10487
- <p>Mixin to add a <code>status</code> filter field to a FilterSet.</p>
10488
11049
 
10489
11050
 
10490
11051
 
@@ -10520,15 +11081,20 @@ See the below table for more information:
10520
11081
 
10521
11082
  <div class="doc doc-contents ">
10522
11083
  <p class="doc doc-class-bases">
10523
- Bases: <code><autoref identifier="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" optional hover>NaturalKeyOrPKMultipleChoiceFilter</autoref></code></p>
11084
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" href="#nautobot.apps.filters.NaturalKeyOrPKMultipleChoiceFilter">NaturalKeyOrPKMultipleChoiceFilter</a></code></p>
10524
11085
 
10525
11086
 
10526
- <p>Match on one or more assigned tags. If multiple tags are specified (e.g. ?tag=foo&amp;tag=bar), the queryset is filtered
11087
+ <p>Match on one or more assigned tags. If multiple tags are specified (e.g. ?tag=foo&amp;tag=bar), the queryset is filtered
10527
11088
  to objects matching all tags.</p>
10528
11089
 
10529
11090
 
10530
11091
 
10531
11092
 
11093
+
11094
+
11095
+
11096
+
11097
+
10532
11098
  <div class="doc doc-children">
10533
11099
 
10534
11100
 
@@ -10560,10 +11126,15 @@ to objects matching all tags.</p>
10560
11126
 
10561
11127
  <div class="doc doc-contents ">
10562
11128
  <p class="doc doc-class-bases">
10563
- Bases: <code><autoref identifier="django_filters.FilterSet" optional hover>FilterSet</autoref></code></p>
11129
+ Bases: <code><span title="django_filters.FilterSet">FilterSet</span></code></p>
11130
+
11131
+
11132
+ <p>An inheritable FilterSet for models which support Tenant assignment.</p>
11133
+
11134
+
11135
+
10564
11136
 
10565
11137
 
10566
- <p>An inheritable FilterSet for models which support Tenant assignment.</p>
10567
11138
 
10568
11139
 
10569
11140
 
@@ -10599,10 +11170,10 @@ to objects matching all tags.</p>
10599
11170
 
10600
11171
  <div class="doc doc-contents ">
10601
11172
  <p class="doc doc-class-bases">
10602
- Bases: <code><autoref identifier="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" optional hover>NaturalKeyOrPKMultipleChoiceFilter</autoref></code></p>
11173
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.filters.NaturalKeyOrPKMultipleChoiceFilter" href="#nautobot.apps.filters.NaturalKeyOrPKMultipleChoiceFilter">NaturalKeyOrPKMultipleChoiceFilter</a></code></p>
10603
11174
 
10604
11175
 
10605
- <p>Filter that matches on the given model(s) (identified by name and/or pk) <em>as well as their tree descendants.</em></p>
11176
+ <p>Filter that matches on the given model(s) (identified by name and/or pk) <em>as well as their tree descendants.</em></p>
10606
11177
  <p>For example, if we have:</p>
10607
11178
  <div class="highlight"><pre><span></span><code>Location &quot;Earth&quot;
10608
11179
  Location &quot;USA&quot;
@@ -10617,6 +11188,11 @@ would match both "Athens" and "Durham" in addition to "GA" and "NC".</p>
10617
11188
 
10618
11189
 
10619
11190
 
11191
+
11192
+
11193
+
11194
+
11195
+
10620
11196
  <div class="doc doc-children">
10621
11197
 
10622
11198
 
@@ -10638,7 +11214,7 @@ would match both "Athens" and "Durham" in addition to "GA" and "NC".</p>
10638
11214
 
10639
11215
  <div class="doc doc-contents ">
10640
11216
 
10641
- <p>Given a filter value, return a <code>Q</code> object that accounts for nested tree node descendants.</p>
11217
+ <p>Given a filter value, return a <code>Q</code> object that accounts for nested tree node descendants.</p>
10642
11218
 
10643
11219
  </div>
10644
11220
 
@@ -10664,7 +11240,7 @@ would match both "Athens" and "Durham" in addition to "GA" and "NC".</p>
10664
11240
 
10665
11241
  <div class="doc doc-contents ">
10666
11242
 
10667
- <p>Given a form field class, return a subclass capable of accepting multiple values. This allows us to OR on multiple
11243
+ <p>Given a form field class, return a subclass capable of accepting multiple values. This allows us to OR on multiple
10668
11244
  filter values while maintaining the field's built-in validation. Example: GET /api/dcim/devices/?name=foo&amp;name=bar</p>
10669
11245
 
10670
11246
  </div>
@@ -10821,10 +11397,10 @@ filter values while maintaining the field's built-in validation. Example: GET /a
10821
11397
  </div>
10822
11398
 
10823
11399
 
10824
- <script id="__config" type="application/json">{"base": "../../..", "features": ["content.code.copy", "content.tabs.link", "navigation.footer", "navigation.tabs", "navigation.tabs.sticky", "navigation.tracking", "search.highlight", "search.share", "search.suggest"], "search": "../../../assets/javascripts/workers/search.6ce7567c.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
11400
+ <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>
10825
11401
 
10826
11402
 
10827
- <script src="../../../assets/javascripts/bundle.83f73b43.min.js"></script>
11403
+ <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>
10828
11404
 
10829
11405
  <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
10830
11406