nautobot 2.3.16__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 (721) 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 +140 -23
  32. nautobot/cloud/api/views.py +6 -10
  33. nautobot/cloud/factory.py +4 -1
  34. nautobot/cloud/tests/test_filters.py +5 -4
  35. nautobot/cloud/views.py +0 -16
  36. nautobot/core/api/constants.py +11 -0
  37. nautobot/core/api/filter_backends.py +3 -9
  38. nautobot/core/api/metadata.py +28 -256
  39. nautobot/core/api/pagination.py +3 -2
  40. nautobot/core/api/renderers.py +3 -0
  41. nautobot/core/api/schema.py +13 -2
  42. nautobot/core/api/serializers.py +45 -259
  43. nautobot/core/api/urls.py +3 -4
  44. nautobot/core/api/utils.py +0 -62
  45. nautobot/core/api/views.py +99 -157
  46. nautobot/core/apps/__init__.py +22 -578
  47. nautobot/core/celery/__init__.py +13 -0
  48. nautobot/core/celery/schedulers.py +47 -2
  49. nautobot/core/choices.py +2 -2
  50. nautobot/core/cli/__init__.py +8 -0
  51. nautobot/core/constants.py +7 -0
  52. nautobot/core/events/__init__.py +116 -0
  53. nautobot/core/events/base.py +27 -0
  54. nautobot/core/events/exceptions.py +10 -0
  55. nautobot/core/events/redis_broker.py +48 -0
  56. nautobot/core/events/syslog_broker.py +19 -0
  57. nautobot/core/exceptions.py +0 -6
  58. nautobot/core/forms/__init__.py +19 -19
  59. nautobot/core/forms/fields.py +57 -9
  60. nautobot/core/forms/forms.py +33 -2
  61. nautobot/core/forms/utils.py +2 -1
  62. nautobot/core/graphql/schema.py +3 -1
  63. nautobot/core/jobs/__init__.py +24 -3
  64. nautobot/core/jobs/bulk_actions.py +248 -0
  65. nautobot/core/jobs/cleanup.py +1 -1
  66. nautobot/core/management/commands/generate_test_data.py +21 -0
  67. nautobot/core/middleware.py +16 -0
  68. nautobot/core/models/fields.py +11 -7
  69. nautobot/core/settings.py +68 -4
  70. nautobot/core/settings.yaml +99 -0
  71. nautobot/core/tables.py +10 -46
  72. nautobot/core/tasks.py +1 -1
  73. nautobot/core/templates/about.html +67 -0
  74. nautobot/core/templates/components/button/default.html +7 -0
  75. nautobot/core/templates/components/button/dropdown.html +20 -0
  76. nautobot/core/templates/components/layout/one_over_two.html +19 -0
  77. nautobot/core/templates/components/layout/two_over_one.html +19 -0
  78. nautobot/core/templates/components/panel/body_content_data_table.html +27 -0
  79. nautobot/core/templates/components/panel/body_content_objects_table.html +4 -0
  80. nautobot/core/templates/components/panel/body_content_tags.html +6 -0
  81. nautobot/core/templates/components/panel/body_content_text.html +12 -0
  82. nautobot/core/templates/components/panel/body_wrapper_generic.html +3 -0
  83. nautobot/core/templates/components/panel/body_wrapper_key_value_table.html +3 -0
  84. nautobot/core/templates/components/panel/body_wrapper_table.html +3 -0
  85. nautobot/core/templates/components/panel/footer_contacts_table.html +20 -0
  86. nautobot/core/templates/components/panel/footer_content_table.html +14 -0
  87. nautobot/core/templates/components/panel/grouping_toggle.html +14 -0
  88. nautobot/core/templates/components/panel/header_extra_content_table.html +3 -0
  89. nautobot/core/templates/components/panel/panel.html +16 -0
  90. nautobot/core/templates/components/panel/stats_panel_body.html +8 -0
  91. nautobot/core/templates/components/tab/content_wrapper.html +3 -0
  92. nautobot/core/templates/components/tab/label_wrapper.html +5 -0
  93. nautobot/core/templates/components/tab/label_wrapper_distinct_view.html +3 -0
  94. nautobot/core/templates/generic/object_retrieve.html +28 -17
  95. nautobot/core/templates/inc/computed_fields/panel_data.html +4 -7
  96. nautobot/core/templates/inc/custom_fields/panel.html +2 -2
  97. nautobot/core/templates/inc/custom_fields/panel_data.html +4 -7
  98. nautobot/core/templates/inc/footer.html +1 -0
  99. nautobot/core/templates/inc/nav_menu.html +2 -1
  100. nautobot/core/templates/inc/relationships_panel.html +1 -1
  101. nautobot/core/templates/inc/tenancy_form_panel.html +9 -0
  102. nautobot/core/templates/inc/tenant_table_row.html +11 -0
  103. nautobot/core/templates/nautobot_config.py.j2 +13 -0
  104. nautobot/core/templates/panel_table.html +12 -0
  105. nautobot/core/templates/utilities/render_jinja2.html +117 -0
  106. nautobot/core/templates/utilities/templatetags/tag.html +1 -1
  107. nautobot/core/templates/utilities/theme_preview.html +7 -0
  108. nautobot/core/templatetags/helpers.py +104 -6
  109. nautobot/core/templatetags/ui_framework.py +40 -0
  110. nautobot/core/testing/__init__.py +8 -8
  111. nautobot/core/testing/api.py +187 -137
  112. nautobot/core/testing/context.py +18 -0
  113. nautobot/core/testing/filters.py +41 -35
  114. nautobot/core/testing/forms.py +2 -0
  115. nautobot/core/testing/views.py +65 -148
  116. nautobot/core/tests/integration/test_view_authentication.py +1 -1
  117. nautobot/core/tests/nautobot_config.py +198 -0
  118. nautobot/core/tests/runner.py +2 -2
  119. nautobot/core/tests/test_api.py +154 -176
  120. nautobot/core/tests/test_events.py +214 -0
  121. nautobot/core/tests/test_forms.py +1 -0
  122. nautobot/core/tests/test_jinja_filters.py +1 -0
  123. nautobot/core/tests/test_jobs.py +387 -14
  124. nautobot/core/tests/test_navigations.py +7 -241
  125. nautobot/core/tests/test_settings_schema.py +7 -0
  126. nautobot/core/tests/test_tables.py +100 -0
  127. nautobot/core/tests/test_templatetags_helpers.py +16 -0
  128. nautobot/core/tests/test_ui.py +150 -0
  129. nautobot/core/tests/test_utils.py +55 -18
  130. nautobot/core/tests/test_views.py +124 -5
  131. nautobot/core/ui/__init__.py +0 -0
  132. nautobot/core/ui/base.py +11 -0
  133. nautobot/core/ui/choices.py +44 -0
  134. nautobot/core/ui/homepage.py +167 -0
  135. nautobot/core/ui/nav.py +280 -0
  136. nautobot/core/ui/object_detail.py +1855 -0
  137. nautobot/core/ui/utils.py +36 -0
  138. nautobot/core/urls.py +6 -0
  139. nautobot/core/utils/config.py +30 -3
  140. nautobot/core/utils/lookup.py +12 -2
  141. nautobot/core/utils/querysets.py +64 -0
  142. nautobot/core/utils/requests.py +24 -9
  143. nautobot/core/views/__init__.py +48 -1
  144. nautobot/core/views/generic.py +37 -140
  145. nautobot/core/views/mixins.py +82 -32
  146. nautobot/core/views/paginator.py +8 -5
  147. nautobot/core/views/renderers.py +9 -9
  148. nautobot/core/views/utils.py +11 -0
  149. nautobot/core/wsgi.py +3 -3
  150. nautobot/dcim/api/serializers.py +34 -141
  151. nautobot/dcim/api/urls.py +5 -0
  152. nautobot/dcim/api/views.py +57 -110
  153. nautobot/dcim/apps.py +1 -0
  154. nautobot/dcim/choices.py +28 -0
  155. nautobot/dcim/factory.py +58 -0
  156. nautobot/dcim/filters/__init__.py +204 -2
  157. nautobot/dcim/forms.py +219 -9
  158. nautobot/dcim/migrations/0063_interfacevdcassignment_virtualdevicecontext_and_more.py +165 -0
  159. nautobot/dcim/migrations/0064_virtualdevicecontext_status_data_migration.py +28 -0
  160. nautobot/dcim/migrations/0065_controller_capabilities_and_more.py +29 -0
  161. nautobot/dcim/migrations/0066_controllermanageddevicegroup_radio_profiles_and_more.py +33 -0
  162. nautobot/dcim/migrations/0067_controllermanageddevicegroup_tenant.py +25 -0
  163. nautobot/dcim/models/__init__.py +5 -1
  164. nautobot/dcim/models/devices.py +180 -2
  165. nautobot/dcim/models/racks.py +2 -2
  166. nautobot/dcim/navigation.py +25 -224
  167. nautobot/dcim/signals.py +44 -0
  168. nautobot/dcim/tables/__init__.py +2 -0
  169. nautobot/dcim/tables/devices.py +103 -7
  170. nautobot/dcim/tables/racks.py +1 -1
  171. nautobot/dcim/templates/dcim/controller/base.html +10 -0
  172. nautobot/dcim/templates/dcim/controller_create.html +2 -7
  173. nautobot/dcim/templates/dcim/controller_retrieve.html +6 -10
  174. nautobot/dcim/templates/dcim/controller_wirelessnetworks.html +25 -0
  175. nautobot/dcim/templates/dcim/controllermanageddevicegroup_create.html +68 -0
  176. nautobot/dcim/templates/dcim/controllermanageddevicegroup_retrieve.html +51 -0
  177. nautobot/dcim/templates/dcim/device/base.html +6 -42
  178. nautobot/dcim/templates/dcim/device/wireless.html +73 -0
  179. nautobot/dcim/templates/dcim/device.html +4 -10
  180. nautobot/dcim/templates/dcim/device_edit.html +36 -37
  181. nautobot/dcim/templates/dcim/interface.html +1 -0
  182. nautobot/dcim/templates/dcim/interface_edit.html +1 -0
  183. nautobot/dcim/templates/dcim/location.html +1 -9
  184. nautobot/dcim/templates/dcim/location_edit.html +1 -7
  185. nautobot/dcim/templates/dcim/locationtype.html +0 -107
  186. nautobot/dcim/templates/dcim/locationtype_retrieve.html +8 -0
  187. nautobot/dcim/templates/dcim/rack.html +1 -9
  188. nautobot/dcim/templates/dcim/rack_edit.html +1 -7
  189. nautobot/dcim/templates/dcim/rackreservation.html +1 -9
  190. nautobot/dcim/templates/dcim/virtualdevicecontext_retrieve.html +68 -0
  191. nautobot/dcim/templates/dcim/virtualdevicecontext_update.html +28 -0
  192. nautobot/dcim/tests/integration/test_controller.py +62 -0
  193. nautobot/dcim/tests/integration/test_controller_managed_device_group.py +71 -0
  194. nautobot/dcim/tests/test_api.py +188 -64
  195. nautobot/dcim/tests/test_filters.py +171 -76
  196. nautobot/dcim/tests/test_jobs.py +118 -0
  197. nautobot/dcim/tests/test_models.py +157 -6
  198. nautobot/dcim/tests/test_signals.py +1 -0
  199. nautobot/dcim/tests/test_views.py +118 -88
  200. nautobot/dcim/urls.py +72 -27
  201. nautobot/dcim/utils.py +2 -2
  202. nautobot/dcim/views.py +356 -61
  203. nautobot/extras/api/serializers.py +39 -18
  204. nautobot/extras/api/urls.py +4 -0
  205. nautobot/extras/api/views.py +89 -31
  206. nautobot/extras/choices.py +13 -0
  207. nautobot/extras/constants.py +2 -1
  208. nautobot/extras/context_managers.py +23 -6
  209. nautobot/extras/datasources/git.py +4 -1
  210. nautobot/extras/factory.py +27 -0
  211. nautobot/extras/filters/__init__.py +66 -5
  212. nautobot/extras/forms/base.py +2 -2
  213. nautobot/extras/forms/forms.py +262 -59
  214. nautobot/extras/forms/mixins.py +2 -2
  215. nautobot/extras/graphql/types.py +25 -1
  216. nautobot/extras/jobs.py +109 -15
  217. nautobot/extras/management/__init__.py +1 -0
  218. nautobot/extras/management/commands/runjob.py +7 -79
  219. nautobot/extras/management/commands/runjob_with_job_result.py +46 -0
  220. nautobot/extras/management/utils.py +87 -0
  221. nautobot/extras/migrations/0117_create_job_queue_model.py +129 -0
  222. nautobot/extras/migrations/0118_task_queue_to_job_queue_migration.py +78 -0
  223. nautobot/extras/migrations/0119_remove_task_queues_from_job_and_queue_from_scheduled_job.py +28 -0
  224. nautobot/extras/migrations/0120_job_is_singleton_job_is_singleton_override.py +22 -0
  225. nautobot/extras/migrations/0121_alter_team_contacts.py +17 -0
  226. nautobot/extras/models/__init__.py +5 -1
  227. nautobot/extras/models/change_logging.py +7 -3
  228. nautobot/extras/models/contacts.py +1 -1
  229. nautobot/extras/models/groups.py +0 -2
  230. nautobot/extras/models/jobs.py +233 -33
  231. nautobot/extras/models/relationships.py +69 -1
  232. nautobot/extras/models/secrets.py +5 -0
  233. nautobot/extras/navigation.py +20 -262
  234. nautobot/extras/plugins/__init__.py +54 -19
  235. nautobot/extras/plugins/marketplace_manifest.yml +455 -0
  236. nautobot/extras/plugins/tables.py +16 -14
  237. nautobot/extras/plugins/urls.py +1 -0
  238. nautobot/extras/plugins/views.py +103 -60
  239. nautobot/extras/registry.py +1 -1
  240. nautobot/extras/secrets/__init__.py +2 -2
  241. nautobot/extras/signals.py +39 -1
  242. nautobot/extras/tables.py +37 -1
  243. nautobot/extras/templates/extras/dynamicgroup.html +1 -9
  244. nautobot/extras/templates/extras/externalintegration_retrieve.html +0 -47
  245. nautobot/extras/templates/extras/inc/tags_panel.html +1 -5
  246. nautobot/extras/templates/extras/job_bulk_edit.html +2 -1
  247. nautobot/extras/templates/extras/job_detail.html +52 -6
  248. nautobot/extras/templates/extras/job_edit.html +6 -2
  249. nautobot/extras/templates/extras/job_list.html +2 -7
  250. nautobot/extras/templates/extras/jobqueue_retrieve.html +36 -0
  251. nautobot/extras/templates/extras/marketplace.html +296 -0
  252. nautobot/extras/templates/extras/plugin_detail.html +32 -15
  253. nautobot/extras/templates/extras/plugins_list.html +35 -1
  254. nautobot/extras/templates/extras/plugins_tiles.html +90 -0
  255. nautobot/extras/templates/extras/role_retrieve.html +16 -0
  256. nautobot/extras/templates/extras/secret.html +0 -65
  257. nautobot/extras/templates/extras/secret_check.js +16 -0
  258. nautobot/extras/templates/extras/secret_create.html +114 -0
  259. nautobot/extras/templates/extras/secret_edit.html +1 -114
  260. nautobot/extras/templates/extras/secretsgroup_edit.html +1 -1
  261. nautobot/extras/templates/extras/templatetags/plugin_object_detail_tabs.html +2 -0
  262. nautobot/extras/templatetags/job_buttons.py +5 -4
  263. nautobot/extras/templatetags/plugins.py +69 -6
  264. nautobot/extras/test_jobs/singleton.py +16 -0
  265. nautobot/extras/tests/test_api.py +145 -43
  266. nautobot/extras/tests/test_context_managers.py +4 -1
  267. nautobot/extras/tests/test_filters.py +213 -529
  268. nautobot/extras/tests/test_job_variables.py +73 -152
  269. nautobot/extras/tests/test_jobs.py +181 -51
  270. nautobot/extras/tests/test_models.py +61 -6
  271. nautobot/extras/tests/test_plugins.py +62 -9
  272. nautobot/extras/tests/test_relationships.py +123 -9
  273. nautobot/extras/tests/test_utils.py +23 -2
  274. nautobot/extras/tests/test_views.py +146 -145
  275. nautobot/extras/tests/test_webhooks.py +2 -1
  276. nautobot/extras/urls.py +2 -20
  277. nautobot/extras/utils.py +119 -4
  278. nautobot/extras/views.py +168 -125
  279. nautobot/extras/webhooks.py +5 -2
  280. nautobot/ipam/api/serializers.py +10 -103
  281. nautobot/ipam/api/views.py +31 -49
  282. nautobot/ipam/factory.py +1 -1
  283. nautobot/ipam/filters.py +3 -2
  284. nautobot/ipam/models.py +10 -12
  285. nautobot/ipam/navigation.py +0 -90
  286. nautobot/ipam/tables.py +3 -1
  287. nautobot/ipam/templates/ipam/ipaddress.html +1 -9
  288. nautobot/ipam/templates/ipam/ipaddress_bulk_add.html +1 -7
  289. nautobot/ipam/templates/ipam/ipaddress_edit.html +1 -7
  290. nautobot/ipam/templates/ipam/prefix.html +1 -9
  291. nautobot/ipam/templates/ipam/prefix_edit.html +1 -7
  292. nautobot/ipam/templates/ipam/routetarget.html +0 -28
  293. nautobot/ipam/templates/ipam/vlan.html +1 -9
  294. nautobot/ipam/templates/ipam/vlan_edit.html +1 -7
  295. nautobot/ipam/templates/ipam/vrf.html +0 -47
  296. nautobot/ipam/templates/ipam/vrf_edit.html +1 -7
  297. nautobot/ipam/tests/test_api.py +7 -5
  298. nautobot/ipam/tests/test_filters.py +39 -119
  299. nautobot/ipam/tests/test_forms.py +0 -2
  300. nautobot/ipam/tests/test_models.py +56 -36
  301. nautobot/ipam/tests/test_views.py +3 -0
  302. nautobot/ipam/urls.py +3 -69
  303. nautobot/ipam/utils/__init__.py +16 -10
  304. nautobot/ipam/views.py +91 -162
  305. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map +1 -1
  306. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map +1 -1
  307. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css +40 -2
  308. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map +1 -1
  309. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css +1 -1
  310. nautobot/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map +1 -1
  311. nautobot/project-static/css/base.css +38 -3
  312. nautobot/project-static/docs/404.html +461 -17
  313. nautobot/project-static/docs/apps/index.html +461 -17
  314. nautobot/project-static/docs/apps/nautobot-apps.html +462 -19
  315. nautobot/project-static/docs/assets/_mkdocstrings.css +25 -1
  316. nautobot/project-static/docs/assets/extra.css +5 -1
  317. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +477 -23
  318. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +474 -20
  319. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +790 -289
  320. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +505 -31
  321. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +510 -34
  322. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +471 -20
  323. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +467 -18
  324. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +497 -33
  325. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +9883 -0
  326. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +523 -75
  327. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +546 -51
  328. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +670 -94
  329. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +1030 -177
  330. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +524 -49
  331. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +874 -188
  332. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +955 -235
  333. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +475 -21
  334. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +486 -28
  335. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +661 -99
  336. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +947 -479
  337. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6425 -1234
  338. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +474 -20
  339. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +877 -344
  340. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +828 -171
  341. nautobot/project-static/docs/development/apps/api/configuration-view.html +461 -17
  342. nautobot/project-static/docs/development/apps/api/database-backend-config.html +461 -17
  343. nautobot/project-static/docs/development/apps/api/models/django-admin.html +461 -17
  344. nautobot/project-static/docs/development/apps/api/models/global-search.html +461 -17
  345. nautobot/project-static/docs/development/apps/api/models/graphql.html +461 -17
  346. nautobot/project-static/docs/development/apps/api/models/index.html +461 -17
  347. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +461 -17
  348. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +461 -17
  349. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +461 -17
  350. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +461 -17
  351. nautobot/project-static/docs/development/apps/api/platform-features/index.html +461 -17
  352. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +461 -17
  353. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +461 -17
  354. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +461 -17
  355. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +461 -17
  356. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +461 -17
  357. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +461 -17
  358. nautobot/project-static/docs/development/apps/api/prometheus.html +461 -17
  359. nautobot/project-static/docs/development/apps/api/setup.html +465 -153
  360. nautobot/project-static/docs/development/apps/api/testing.html +461 -17
  361. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +461 -17
  362. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +461 -17
  363. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +461 -17
  364. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +461 -17
  365. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +741 -128
  366. nautobot/project-static/docs/development/apps/api/views/base-template.html +461 -17
  367. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +461 -17
  368. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +461 -17
  369. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +461 -17
  370. nautobot/project-static/docs/development/apps/api/views/index.html +463 -18
  371. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +465 -17
  372. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +491 -17
  373. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +461 -17
  374. nautobot/project-static/docs/development/apps/api/views/notes.html +461 -17
  375. nautobot/project-static/docs/development/apps/api/views/rest-api.html +467 -19
  376. nautobot/project-static/docs/development/apps/api/views/urls.html +461 -17
  377. nautobot/project-static/docs/development/apps/index.html +461 -17
  378. nautobot/project-static/docs/development/apps/migration/code-updates.html +462 -50
  379. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +462 -18
  380. nautobot/project-static/docs/development/apps/migration/from-v1.html +461 -17
  381. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +461 -17
  382. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +461 -17
  383. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +461 -17
  384. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +464 -20
  385. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +9261 -0
  386. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +9375 -0
  387. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +9671 -0
  388. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +9559 -0
  389. nautobot/project-static/docs/development/apps/porting-from-netbox.html +464 -20
  390. nautobot/project-static/docs/development/core/application-registry.html +461 -17
  391. nautobot/project-static/docs/development/core/best-practices.html +461 -17
  392. nautobot/project-static/docs/development/core/bootstrap-ui.html +461 -17
  393. nautobot/project-static/docs/development/core/caching.html +461 -17
  394. nautobot/project-static/docs/development/core/controllers.html +463 -17
  395. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +464 -20
  396. nautobot/project-static/docs/development/core/generic-views.html +461 -17
  397. nautobot/project-static/docs/development/core/getting-started.html +539 -127
  398. nautobot/project-static/docs/development/core/homepage.html +472 -28
  399. nautobot/project-static/docs/development/core/index.html +461 -17
  400. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +9754 -0
  401. nautobot/project-static/docs/development/core/model-checklist.html +471 -25
  402. nautobot/project-static/docs/development/core/model-features.html +461 -17
  403. nautobot/project-static/docs/development/core/natural-keys.html +461 -17
  404. nautobot/project-static/docs/development/core/navigation-menu.html +478 -24
  405. nautobot/project-static/docs/development/core/release-checklist.html +478 -46
  406. nautobot/project-static/docs/development/core/role-internals.html +461 -17
  407. nautobot/project-static/docs/development/core/settings.html +461 -17
  408. nautobot/project-static/docs/development/core/style-guide.html +464 -20
  409. nautobot/project-static/docs/development/core/templates.html +471 -20
  410. nautobot/project-static/docs/development/core/testing.html +461 -17
  411. nautobot/project-static/docs/development/core/ui-component-framework.html +11116 -0
  412. nautobot/project-static/docs/development/core/user-preferences.html +464 -20
  413. nautobot/project-static/docs/development/index.html +461 -17
  414. nautobot/project-static/docs/development/jobs/index.html +499 -19
  415. nautobot/project-static/docs/development/jobs/migration/from-v1.html +461 -17
  416. nautobot/project-static/docs/index.html +469 -36
  417. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit.png +0 -0
  418. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_edit_button.png +0 -0
  419. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_nav.png +0 -0
  420. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_list_view.png +0 -0
  421. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue.png +0 -0
  422. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_add.png +0 -0
  423. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_queue_config.png +0 -0
  424. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_completed.png +0 -0
  425. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_nav.png +0 -0
  426. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_result_pending.png +0 -0
  427. nautobot/project-static/docs/media/development/core/kubernetes/k8s_job_run_form.png +0 -0
  428. nautobot/project-static/docs/media/development/core/kubernetes/k8s_nautobot_login.png +0 -0
  429. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_job.png +0 -0
  430. nautobot/project-static/docs/media/development/core/kubernetes/k8s_run_scheduled_job_form.png +0 -0
  431. nautobot/project-static/docs/media/development/core/kubernetes/k8s_scheduled_job_result.png +0 -0
  432. nautobot/project-static/docs/media/development/core/ui-component-framework/basic-panel-layout.png +0 -0
  433. nautobot/project-static/docs/media/development/core/ui-component-framework/button-example.png +0 -0
  434. nautobot/project-static/docs/media/development/core/ui-component-framework/buttons-example.png +0 -0
  435. nautobot/project-static/docs/media/development/core/ui-component-framework/cluster-type-before-after-example.png +0 -0
  436. nautobot/project-static/docs/media/development/core/ui-component-framework/dropdown-button-example.png +0 -0
  437. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-1.png +0 -0
  438. nautobot/project-static/docs/media/development/core/ui-component-framework/grouped-key-value-table-panel-example-2.png +0 -0
  439. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example.png +0 -0
  440. nautobot/project-static/docs/media/development/core/ui-component-framework/object-fields-panel-example_2.png +0 -0
  441. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example-code.png +0 -0
  442. nautobot/project-static/docs/media/development/core/ui-component-framework/stats-panel-example.png +0 -0
  443. nautobot/project-static/docs/media/development/core/ui-component-framework/table-panels-family.png +0 -0
  444. nautobot/project-static/docs/media/development/core/ui-component-framework/text-panels-family.png +0 -0
  445. nautobot/project-static/docs/media/development/core/ui-component-framework/ui-framework-example.png +0 -0
  446. nautobot/project-static/docs/media/models/virtual_device_context_overview.drawio +73 -0
  447. nautobot/project-static/docs/media/models/virtual_device_context_overview.png +0 -0
  448. nautobot/project-static/docs/models/dcim/virtualdevicecontext.html +14 -0
  449. nautobot/project-static/docs/models/extras/jobqueue.html +14 -0
  450. nautobot/project-static/docs/models/wireless/radioprofile.html +14 -0
  451. nautobot/project-static/docs/models/wireless/supporteddatarate.html +14 -0
  452. nautobot/project-static/docs/models/wireless/wirelessnetwork.html +14 -0
  453. nautobot/project-static/docs/objects.inv +0 -0
  454. nautobot/project-static/docs/overview/application_stack.html +467 -21
  455. nautobot/project-static/docs/overview/design_philosophy.html +461 -17
  456. nautobot/project-static/docs/release-notes/index.html +483 -20
  457. nautobot/project-static/docs/release-notes/version-1.0.html +649 -206
  458. nautobot/project-static/docs/release-notes/version-1.1.html +646 -203
  459. nautobot/project-static/docs/release-notes/version-1.2.html +721 -278
  460. nautobot/project-static/docs/release-notes/version-1.3.html +747 -304
  461. nautobot/project-static/docs/release-notes/version-1.4.html +832 -390
  462. nautobot/project-static/docs/release-notes/version-1.5.html +1020 -579
  463. nautobot/project-static/docs/release-notes/version-1.6.html +940 -516
  464. nautobot/project-static/docs/release-notes/version-2.0.html +943 -502
  465. nautobot/project-static/docs/release-notes/version-2.1.html +778 -337
  466. nautobot/project-static/docs/release-notes/version-2.2.html +771 -330
  467. nautobot/project-static/docs/release-notes/version-2.3.html +914 -471
  468. nautobot/project-static/docs/release-notes/version-2.4.html +10323 -0
  469. nautobot/project-static/docs/search/search_index.json +1 -1
  470. nautobot/project-static/docs/sitemap.xml +342 -270
  471. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  472. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +461 -17
  473. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +461 -17
  474. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +461 -17
  475. nautobot/project-static/docs/user-guide/administration/configuration/index.html +473 -30
  476. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +461 -17
  477. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +842 -155
  478. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +461 -17
  479. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +461 -17
  480. nautobot/project-static/docs/user-guide/administration/guides/docker.html +474 -27
  481. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +461 -17
  482. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +461 -17
  483. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +461 -17
  484. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +461 -17
  485. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +461 -17
  486. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +463 -19
  487. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +461 -17
  488. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +461 -17
  489. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +461 -17
  490. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +481 -21
  491. nautobot/project-static/docs/user-guide/administration/installation/index.html +466 -18
  492. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +462 -18
  493. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +461 -17
  494. nautobot/project-static/docs/user-guide/administration/installation/services.html +461 -17
  495. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +461 -17
  496. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +482 -39
  497. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +475 -64
  498. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +475 -64
  499. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +461 -17
  500. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +461 -17
  501. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +461 -17
  502. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +461 -17
  503. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +461 -17
  504. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +464 -21
  505. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +461 -17
  506. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/tables/v2-code-nautobot-app-location.yaml +0 -16
  507. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +461 -17
  508. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +467 -19
  509. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +461 -17
  510. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +461 -17
  511. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +461 -17
  512. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +461 -17
  513. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +461 -17
  514. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +461 -17
  515. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +461 -17
  516. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +461 -17
  517. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +461 -17
  518. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +461 -17
  519. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +461 -17
  520. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +461 -17
  521. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +461 -17
  522. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +461 -17
  523. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +461 -17
  524. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +461 -17
  525. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +461 -17
  526. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +497 -18
  527. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +487 -20
  528. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +461 -17
  529. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +461 -17
  530. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +461 -17
  531. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +461 -17
  532. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +461 -17
  533. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +461 -17
  534. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +461 -17
  535. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +461 -17
  536. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +461 -17
  537. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +461 -17
  538. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +461 -17
  539. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +461 -17
  540. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +461 -17
  541. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +461 -17
  542. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +461 -17
  543. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +461 -17
  544. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +461 -17
  545. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +461 -17
  546. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +461 -17
  547. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +461 -17
  548. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +461 -17
  549. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +461 -17
  550. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +461 -17
  551. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +461 -17
  552. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +461 -17
  553. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +461 -17
  554. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +461 -17
  555. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +461 -17
  556. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +461 -17
  557. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +461 -17
  558. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +461 -17
  559. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +461 -17
  560. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +461 -17
  561. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +461 -17
  562. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +9375 -0
  563. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +468 -28
  564. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +461 -17
  565. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +461 -17
  566. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +461 -17
  567. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +461 -17
  568. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +461 -17
  569. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +461 -17
  570. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +461 -17
  571. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +461 -17
  572. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +461 -17
  573. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +461 -17
  574. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +461 -17
  575. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +461 -17
  576. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +464 -20
  577. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +461 -17
  578. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +461 -17
  579. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +461 -17
  580. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +461 -17
  581. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +461 -17
  582. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +461 -17
  583. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +464 -20
  584. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +9313 -0
  585. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +9217 -0
  586. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +9211 -0
  587. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +9277 -0
  588. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +461 -17
  589. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +461 -17
  590. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +461 -17
  591. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +461 -17
  592. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +461 -17
  593. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +461 -17
  594. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +461 -17
  595. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +461 -17
  596. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +461 -17
  597. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +461 -17
  598. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +461 -17
  599. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +466 -20
  600. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +461 -17
  601. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/central-mode.png +0 -0
  602. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-add.png +0 -0
  603. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-1.png +0 -0
  604. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/device-group-create-2.png +0 -0
  605. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-add.png +0 -0
  606. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/radio-profile-create.png +0 -0
  607. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-add.png +0 -0
  608. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/supported-data-rate-create.png +0 -0
  609. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-add.png +0 -0
  610. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-1.png +0 -0
  611. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-controller-create-2.png +0 -0
  612. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-add.png +0 -0
  613. nautobot/project-static/docs/user-guide/feature-guides/images/wireless/wireless-network-create.png +0 -0
  614. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +461 -17
  615. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +461 -17
  616. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +464 -20
  617. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +9444 -0
  618. nautobot/project-static/docs/user-guide/index.html +461 -17
  619. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +464 -20
  620. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +465 -21
  621. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +461 -17
  622. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +461 -17
  623. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +461 -17
  624. nautobot/project-static/docs/user-guide/platform-functionality/events.html +9617 -0
  625. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +464 -20
  626. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +461 -17
  627. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +461 -17
  628. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +461 -17
  629. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +461 -17
  630. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +461 -17
  631. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +470 -21
  632. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +464 -20
  633. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +464 -20
  634. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +461 -17
  635. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +9224 -0
  636. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +9722 -0
  637. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +464 -20
  638. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +461 -17
  639. nautobot/project-static/docs/user-guide/platform-functionality/note.html +461 -17
  640. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +461 -17
  641. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +465 -21
  642. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +9292 -0
  643. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +461 -17
  644. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +509 -38
  645. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +492 -21
  646. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +461 -17
  647. nautobot/project-static/docs/user-guide/platform-functionality/role.html +461 -17
  648. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +461 -17
  649. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +461 -17
  650. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +464 -20
  651. nautobot/project-static/docs/user-guide/platform-functionality/status.html +461 -17
  652. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +461 -17
  653. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +529 -54
  654. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +461 -17
  655. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +461 -17
  656. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +461 -17
  657. nautobot/project-static/img/jinja_logo.svg +97 -0
  658. nautobot/project-static/js/forms.js +6 -1
  659. nautobot/project-static/js/nav_menu.js +2 -1
  660. nautobot/tenancy/api/serializers.py +0 -2
  661. nautobot/tenancy/api/views.py +9 -13
  662. nautobot/tenancy/factory.py +1 -1
  663. nautobot/tenancy/navigation.py +0 -29
  664. nautobot/tenancy/templates/tenancy/tenant.html +4 -91
  665. nautobot/tenancy/tests/test_filters.py +29 -134
  666. nautobot/tenancy/views.py +35 -24
  667. nautobot/users/admin.py +2 -0
  668. nautobot/users/api/views.py +2 -2
  669. nautobot/users/forms.py +19 -0
  670. nautobot/users/templates/users/preferences.html +22 -0
  671. nautobot/users/tests/test_filters.py +1 -19
  672. nautobot/users/tests/test_views.py +57 -0
  673. nautobot/users/utils.py +8 -0
  674. nautobot/users/views.py +48 -11
  675. nautobot/virtualization/api/views.py +5 -24
  676. nautobot/virtualization/filters.py +1 -2
  677. nautobot/virtualization/models.py +1 -1
  678. nautobot/virtualization/navigation.py +0 -48
  679. nautobot/virtualization/tables.py +2 -2
  680. nautobot/virtualization/templates/virtualization/cluster_edit.html +1 -7
  681. nautobot/virtualization/templates/virtualization/clustertype.html +0 -39
  682. nautobot/virtualization/templates/virtualization/virtualmachine.html +1 -9
  683. nautobot/virtualization/templates/virtualization/virtualmachine_edit.html +2 -8
  684. nautobot/virtualization/tests/test_filters.py +57 -166
  685. nautobot/virtualization/views.py +18 -15
  686. nautobot/wireless/__init__.py +0 -0
  687. nautobot/wireless/api/__init__.py +0 -0
  688. nautobot/wireless/api/serializers.py +44 -0
  689. nautobot/wireless/api/urls.py +20 -0
  690. nautobot/wireless/api/views.py +34 -0
  691. nautobot/wireless/apps.py +8 -0
  692. nautobot/wireless/choices.py +345 -0
  693. nautobot/wireless/factory.py +138 -0
  694. nautobot/wireless/filters.py +167 -0
  695. nautobot/wireless/forms.py +283 -0
  696. nautobot/wireless/homepage.py +19 -0
  697. nautobot/wireless/migrations/0001_initial.py +223 -0
  698. nautobot/wireless/migrations/__init__.py +0 -0
  699. nautobot/wireless/models.py +207 -0
  700. nautobot/wireless/navigation.py +105 -0
  701. nautobot/wireless/tables.py +244 -0
  702. nautobot/wireless/templates/wireless/radioprofile_retrieve.html +81 -0
  703. nautobot/wireless/templates/wireless/supporteddatarate_retrieve.html +26 -0
  704. nautobot/wireless/templates/wireless/wirelessnetwork_create.html +88 -0
  705. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +56 -0
  706. nautobot/wireless/tests/__init__.py +0 -0
  707. nautobot/wireless/tests/integration/__init__.py +0 -0
  708. nautobot/wireless/tests/integration/test_radio_profile.py +42 -0
  709. nautobot/wireless/tests/test_api.py +247 -0
  710. nautobot/wireless/tests/test_filters.py +82 -0
  711. nautobot/wireless/tests/test_models.py +22 -0
  712. nautobot/wireless/tests/test_views.py +378 -0
  713. nautobot/wireless/urls.py +13 -0
  714. nautobot/wireless/views.py +119 -0
  715. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/METADATA +9 -12
  716. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/RECORD +720 -549
  717. nautobot/core/utils/navigation.py +0 -54
  718. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/LICENSE.txt +0 -0
  719. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/NOTICE +0 -0
  720. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/WHEEL +0 -0
  721. {nautobot-2.3.16.dist-info → nautobot-2.4.0.dist-info}/entry_points.txt +0 -0
@@ -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
 
@@ -7104,6 +7368,15 @@
7104
7368
  </span>
7105
7369
  </a>
7106
7370
 
7371
+ </li>
7372
+
7373
+ <li class="md-nav__item">
7374
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
7375
+ <span class="md-ellipsis">
7376
+ get_m2m_fields
7377
+ </span>
7378
+ </a>
7379
+
7107
7380
  </li>
7108
7381
 
7109
7382
  <li class="md-nav__item">
@@ -7624,15 +7897,6 @@
7624
7897
  </span>
7625
7898
  </a>
7626
7899
 
7627
- </li>
7628
-
7629
- <li class="md-nav__item">
7630
- <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_q_filter_exists" class="md-nav__link">
7631
- <span class="md-ellipsis">
7632
- test_q_filter_exists
7633
- </span>
7634
- </a>
7635
-
7636
7900
  </li>
7637
7901
 
7638
7902
  <li class="md-nav__item">
@@ -7665,45 +7929,15 @@
7665
7929
  </span>
7666
7930
  </a>
7667
7931
 
7668
- <nav class="md-nav" aria-label="NameOnlyFilterTestCase">
7669
- <ul class="md-nav__list">
7932
+ </li>
7670
7933
 
7671
7934
  <li class="md-nav__item">
7672
- <a href="#nautobot.apps.testing.FilterTestCases.NameOnlyFilterTestCase.test_name" class="md-nav__link">
7935
+ <a href="#nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase" class="md-nav__link">
7673
7936
  <span class="md-ellipsis">
7674
- test_name
7937
+ NameSlugFilterTestCase
7675
7938
  </span>
7676
7939
  </a>
7677
7940
 
7678
- </li>
7679
-
7680
- </ul>
7681
- </nav>
7682
-
7683
- </li>
7684
-
7685
- <li class="md-nav__item">
7686
- <a href="#nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase" class="md-nav__link">
7687
- <span class="md-ellipsis">
7688
- NameSlugFilterTestCase
7689
- </span>
7690
- </a>
7691
-
7692
- <nav class="md-nav" aria-label="NameSlugFilterTestCase">
7693
- <ul class="md-nav__list">
7694
-
7695
- <li class="md-nav__item">
7696
- <a href="#nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase.test_slug" class="md-nav__link">
7697
- <span class="md-ellipsis">
7698
- test_slug
7699
- </span>
7700
- </a>
7701
-
7702
- </li>
7703
-
7704
- </ul>
7705
- </nav>
7706
-
7707
7941
  </li>
7708
7942
 
7709
7943
  <li class="md-nav__item">
@@ -8292,15 +8526,6 @@
8292
8526
  </span>
8293
8527
  </a>
8294
8528
 
8295
- </li>
8296
-
8297
- <li class="md-nav__item">
8298
- <a href="#nautobot.apps.testing.ViewTestCases.BulkImportObjectsViewTestCase" class="md-nav__link">
8299
- <span class="md-ellipsis">
8300
- BulkImportObjectsViewTestCase
8301
- </span>
8302
- </a>
8303
-
8304
8529
  </li>
8305
8530
 
8306
8531
  <li class="md-nav__item">
@@ -8328,30 +8553,6 @@
8328
8553
  </span>
8329
8554
  </a>
8330
8555
 
8331
- <nav class="md-nav" aria-label="CreateObjectViewTestCase">
8332
- <ul class="md-nav__list">
8333
-
8334
- <li class="md-nav__item">
8335
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_autocreation" class="md-nav__link">
8336
- <span class="md-ellipsis">
8337
- test_slug_autocreation
8338
- </span>
8339
- </a>
8340
-
8341
- </li>
8342
-
8343
- <li class="md-nav__item">
8344
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_not_modified" class="md-nav__link">
8345
- <span class="md-ellipsis">
8346
- test_slug_not_modified
8347
- </span>
8348
- </a>
8349
-
8350
- </li>
8351
-
8352
- </ul>
8353
- </nav>
8354
-
8355
8556
  </li>
8356
8557
 
8357
8558
  <li class="md-nav__item">
@@ -8943,6 +9144,123 @@
8943
9144
 
8944
9145
 
8945
9146
 
9147
+
9148
+
9149
+
9150
+
9151
+
9152
+
9153
+
9154
+
9155
+
9156
+
9157
+
9158
+
9159
+
9160
+ <li class="md-nav__item md-nav__item--nested">
9161
+
9162
+
9163
+
9164
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_2_9_5" >
9165
+
9166
+
9167
+
9168
+ <div class="md-nav__link md-nav__container">
9169
+ <a href="../../../development/apps/migration/ui-component-framework/index.html" class="md-nav__link ">
9170
+
9171
+
9172
+ <span class="md-ellipsis">
9173
+ UI Component Framework
9174
+ </span>
9175
+
9176
+
9177
+ </a>
9178
+
9179
+
9180
+ <label class="md-nav__link " for="__nav_3_2_9_5" id="__nav_3_2_9_5_label" tabindex="0">
9181
+ <span class="md-nav__icon md-icon"></span>
9182
+ </label>
9183
+
9184
+ </div>
9185
+
9186
+ <nav class="md-nav" data-md-level="4" aria-labelledby="__nav_3_2_9_5_label" aria-expanded="false">
9187
+ <label class="md-nav__title" for="__nav_3_2_9_5">
9188
+ <span class="md-nav__icon md-icon"></span>
9189
+ UI Component Framework
9190
+ </label>
9191
+ <ul class="md-nav__list" data-md-scrollfix>
9192
+
9193
+
9194
+
9195
+
9196
+
9197
+
9198
+
9199
+ <li class="md-nav__item">
9200
+ <a href="../../../development/apps/migration/ui-component-framework/migration-steps.html" class="md-nav__link">
9201
+
9202
+
9203
+ <span class="md-ellipsis">
9204
+ Migration steps
9205
+ </span>
9206
+
9207
+
9208
+ </a>
9209
+ </li>
9210
+
9211
+
9212
+
9213
+
9214
+
9215
+
9216
+
9217
+
9218
+
9219
+
9220
+ <li class="md-nav__item">
9221
+ <a href="../../../development/apps/migration/ui-component-framework/custom-content.html" class="md-nav__link">
9222
+
9223
+
9224
+ <span class="md-ellipsis">
9225
+ Custom content
9226
+ </span>
9227
+
9228
+
9229
+ </a>
9230
+ </li>
9231
+
9232
+
9233
+
9234
+
9235
+
9236
+
9237
+
9238
+
9239
+
9240
+
9241
+ <li class="md-nav__item">
9242
+ <a href="../../../development/apps/migration/ui-component-framework/best-practices.html" class="md-nav__link">
9243
+
9244
+
9245
+ <span class="md-ellipsis">
9246
+ Best practices
9247
+ </span>
9248
+
9249
+
9250
+ </a>
9251
+ </li>
9252
+
9253
+
9254
+
9255
+
9256
+ </ul>
9257
+ </nav>
9258
+
9259
+ </li>
9260
+
9261
+
9262
+
9263
+
8946
9264
  </ul>
8947
9265
  </nav>
8948
9266
 
@@ -9288,6 +9606,27 @@
9288
9606
 
9289
9607
 
9290
9608
 
9609
+ <li class="md-nav__item">
9610
+ <a href="../../../development/core/minikube-dev-environment-for-k8s-jobs.html" class="md-nav__link">
9611
+
9612
+
9613
+ <span class="md-ellipsis">
9614
+ Minikube Dev Environment for K8s Jobs
9615
+ </span>
9616
+
9617
+
9618
+ </a>
9619
+ </li>
9620
+
9621
+
9622
+
9623
+
9624
+
9625
+
9626
+
9627
+
9628
+
9629
+
9291
9630
  <li class="md-nav__item">
9292
9631
  <a href="../../../development/core/model-checklist.html" class="md-nav__link">
9293
9632
 
@@ -9477,6 +9816,27 @@
9477
9816
 
9478
9817
 
9479
9818
 
9819
+ <li class="md-nav__item">
9820
+ <a href="../../../development/core/ui-component-framework.html" class="md-nav__link">
9821
+
9822
+
9823
+ <span class="md-ellipsis">
9824
+ UI Component Framework
9825
+ </span>
9826
+
9827
+
9828
+ </a>
9829
+ </li>
9830
+
9831
+
9832
+
9833
+
9834
+
9835
+
9836
+
9837
+
9838
+
9839
+
9480
9840
  <li class="md-nav__item">
9481
9841
  <a href="../../../development/core/release-checklist.html" class="md-nav__link">
9482
9842
 
@@ -9559,6 +9919,27 @@
9559
9919
 
9560
9920
 
9561
9921
 
9922
+ <li class="md-nav__item">
9923
+ <a href="../../../release-notes/version-2.4.html" class="md-nav__link">
9924
+
9925
+
9926
+ <span class="md-ellipsis">
9927
+ Version 2.4
9928
+ </span>
9929
+
9930
+
9931
+ </a>
9932
+ </li>
9933
+
9934
+
9935
+
9936
+
9937
+
9938
+
9939
+
9940
+
9941
+
9942
+
9562
9943
  <li class="md-nav__item">
9563
9944
  <a href="../../../release-notes/version-2.3.html" class="md-nav__link">
9564
9945
 
@@ -10163,6 +10544,15 @@
10163
10544
  </span>
10164
10545
  </a>
10165
10546
 
10547
+ </li>
10548
+
10549
+ <li class="md-nav__item">
10550
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="md-nav__link">
10551
+ <span class="md-ellipsis">
10552
+ get_m2m_fields
10553
+ </span>
10554
+ </a>
10555
+
10166
10556
  </li>
10167
10557
 
10168
10558
  <li class="md-nav__item">
@@ -10683,15 +11073,6 @@
10683
11073
  </span>
10684
11074
  </a>
10685
11075
 
10686
- </li>
10687
-
10688
- <li class="md-nav__item">
10689
- <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_q_filter_exists" class="md-nav__link">
10690
- <span class="md-ellipsis">
10691
- test_q_filter_exists
10692
- </span>
10693
- </a>
10694
-
10695
11076
  </li>
10696
11077
 
10697
11078
  <li class="md-nav__item">
@@ -10724,21 +11105,6 @@
10724
11105
  </span>
10725
11106
  </a>
10726
11107
 
10727
- <nav class="md-nav" aria-label="NameOnlyFilterTestCase">
10728
- <ul class="md-nav__list">
10729
-
10730
- <li class="md-nav__item">
10731
- <a href="#nautobot.apps.testing.FilterTestCases.NameOnlyFilterTestCase.test_name" class="md-nav__link">
10732
- <span class="md-ellipsis">
10733
- test_name
10734
- </span>
10735
- </a>
10736
-
10737
- </li>
10738
-
10739
- </ul>
10740
- </nav>
10741
-
10742
11108
  </li>
10743
11109
 
10744
11110
  <li class="md-nav__item">
@@ -10748,21 +11114,6 @@
10748
11114
  </span>
10749
11115
  </a>
10750
11116
 
10751
- <nav class="md-nav" aria-label="NameSlugFilterTestCase">
10752
- <ul class="md-nav__list">
10753
-
10754
- <li class="md-nav__item">
10755
- <a href="#nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase.test_slug" class="md-nav__link">
10756
- <span class="md-ellipsis">
10757
- test_slug
10758
- </span>
10759
- </a>
10760
-
10761
- </li>
10762
-
10763
- </ul>
10764
- </nav>
10765
-
10766
11117
  </li>
10767
11118
 
10768
11119
  <li class="md-nav__item">
@@ -11354,25 +11705,16 @@
11354
11705
  </li>
11355
11706
 
11356
11707
  <li class="md-nav__item">
11357
- <a href="#nautobot.apps.testing.ViewTestCases.BulkImportObjectsViewTestCase" class="md-nav__link">
11708
+ <a href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase" class="md-nav__link">
11358
11709
  <span class="md-ellipsis">
11359
- BulkImportObjectsViewTestCase
11710
+ BulkRenameObjectsViewTestCase
11360
11711
  </span>
11361
11712
  </a>
11362
11713
 
11363
11714
  </li>
11364
11715
 
11365
11716
  <li class="md-nav__item">
11366
- <a href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase" class="md-nav__link">
11367
- <span class="md-ellipsis">
11368
- BulkRenameObjectsViewTestCase
11369
- </span>
11370
- </a>
11371
-
11372
- </li>
11373
-
11374
- <li class="md-nav__item">
11375
- <a href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase" class="md-nav__link">
11717
+ <a href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase" class="md-nav__link">
11376
11718
  <span class="md-ellipsis">
11377
11719
  CreateMultipleObjectsViewTestCase
11378
11720
  </span>
@@ -11387,30 +11729,6 @@
11387
11729
  </span>
11388
11730
  </a>
11389
11731
 
11390
- <nav class="md-nav" aria-label="CreateObjectViewTestCase">
11391
- <ul class="md-nav__list">
11392
-
11393
- <li class="md-nav__item">
11394
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_autocreation" class="md-nav__link">
11395
- <span class="md-ellipsis">
11396
- test_slug_autocreation
11397
- </span>
11398
- </a>
11399
-
11400
- </li>
11401
-
11402
- <li class="md-nav__item">
11403
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_not_modified" class="md-nav__link">
11404
- <span class="md-ellipsis">
11405
- test_slug_not_modified
11406
- </span>
11407
- </a>
11408
-
11409
- </li>
11410
-
11411
- </ul>
11412
- </nav>
11413
-
11414
11732
  </li>
11415
11733
 
11416
11734
  <li class="md-nav__item">
@@ -11700,7 +12018,12 @@
11700
12018
 
11701
12019
  <div class="doc doc-contents first">
11702
12020
 
11703
- <p>Utilities for apps to implement test automation.</p>
12021
+ <p>Utilities for apps to implement test automation.</p>
12022
+
12023
+
12024
+
12025
+
12026
+
11704
12027
 
11705
12028
 
11706
12029
 
@@ -11726,15 +12049,20 @@
11726
12049
 
11727
12050
  <div class="doc doc-contents ">
11728
12051
  <p class="doc doc-class-bases">
11729
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
12052
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
11730
12053
 
11731
12054
 
11732
- <p>Base test case for API requests.</p>
12055
+ <p>Base test case for API requests.</p>
11733
12056
  <p>api_version: Specific API version to test. Leave unset to test the default behavior. Override with set_api_version()</p>
11734
12057
 
11735
12058
 
11736
12059
 
11737
12060
 
12061
+
12062
+
12063
+
12064
+
12065
+
11738
12066
  <div class="doc doc-children">
11739
12067
 
11740
12068
 
@@ -11756,7 +12084,7 @@
11756
12084
 
11757
12085
  <div class="doc doc-contents ">
11758
12086
 
11759
- <p>Check an API response for content that should not be exposed in the API.</p>
12087
+ <p>Check an API response for content that should not be exposed in the API.</p>
11760
12088
  <p>If a specific API has a false failure here (maybe it has security-related strings as model flags or something?),
11761
12089
  its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11762
12090
 
@@ -11767,6 +12095,23 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11767
12095
  <div class="doc doc-object doc-function">
11768
12096
 
11769
12097
 
12098
+ <h3 id="nautobot.apps.testing.APITestCase.get_m2m_fields" class="doc doc-heading">
12099
+ <code class="highlight language-python"><span class="n">get_m2m_fields</span><span class="p">()</span></code>
12100
+
12101
+ <a href="#nautobot.apps.testing.APITestCase.get_m2m_fields" class="headerlink" title="Permanent link">&para;</a></h3>
12102
+
12103
+
12104
+ <div class="doc doc-contents ">
12105
+
12106
+ <p>Get serializer field names that are many-to-many or one-to-many and thus affected by ?exclude_m2m=true.</p>
12107
+
12108
+ </div>
12109
+
12110
+ </div>
12111
+
12112
+ <div class="doc doc-object doc-function">
12113
+
12114
+
11770
12115
  <h3 id="nautobot.apps.testing.APITestCase.setUp" class="doc doc-heading">
11771
12116
  <code class="highlight language-python"><span class="n">setUp</span><span class="p">()</span></code>
11772
12117
 
@@ -11775,7 +12120,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11775
12120
 
11776
12121
  <div class="doc doc-contents ">
11777
12122
 
11778
- <p>Create a token for API calls.</p>
12123
+ <p>Create a token for API calls.</p>
11779
12124
 
11780
12125
  </div>
11781
12126
 
@@ -11792,7 +12137,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11792
12137
 
11793
12138
  <div class="doc doc-contents ">
11794
12139
 
11795
- <p>Set or unset a specific API version for requests in this test case.</p>
12140
+ <p>Set or unset a specific API version for requests in this test case.</p>
11796
12141
 
11797
12142
  </div>
11798
12143
 
@@ -11819,7 +12164,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11819
12164
 
11820
12165
  <div class="doc doc-contents ">
11821
12166
  <p class="doc doc-class-bases">
11822
- Bases: <code><autoref identifier="rest_framework.test.APITransactionTestCase" optional hover>APITransactionTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code></p>
12167
+ Bases: <code><span title="rest_framework.test.APITransactionTestCase">APITransactionTestCase</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code></p>
12168
+
12169
+
12170
+
12171
+
12172
+
11823
12173
 
11824
12174
 
11825
12175
 
@@ -11846,7 +12196,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11846
12196
 
11847
12197
  <div class="doc doc-contents ">
11848
12198
 
11849
- <p>Create a superuser and token for API calls.</p>
12199
+ <p>Create a superuser and token for API calls.</p>
11850
12200
 
11851
12201
  </div>
11852
12202
 
@@ -11877,6 +12227,11 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11877
12227
 
11878
12228
 
11879
12229
 
12230
+
12231
+
12232
+
12233
+
12234
+
11880
12235
  <div class="doc doc-children">
11881
12236
 
11882
12237
 
@@ -11899,7 +12254,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11899
12254
 
11900
12255
  <div class="doc doc-contents ">
11901
12256
  <p class="doc doc-class-bases">
11902
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12257
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12258
+
12259
+
12260
+
12261
+
12262
+
11903
12263
 
11904
12264
 
11905
12265
 
@@ -11926,7 +12286,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11926
12286
 
11927
12287
  <div class="doc doc-contents ">
11928
12288
 
11929
- <p>POST a set of objects in a single request.</p>
12289
+ <p>POST a set of objects in a single request.</p>
11930
12290
 
11931
12291
  </div>
11932
12292
 
@@ -11943,7 +12303,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11943
12303
 
11944
12304
  <div class="doc doc-contents ">
11945
12305
 
11946
- <p>POST a single object with permission.</p>
12306
+ <p>POST a single object with permission.</p>
11947
12307
 
11948
12308
  </div>
11949
12309
 
@@ -11960,7 +12320,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11960
12320
 
11961
12321
  <div class="doc doc-contents ">
11962
12322
 
11963
- <p>POST a single object without permission.</p>
12323
+ <p>POST a single object without permission.</p>
11964
12324
 
11965
12325
  </div>
11966
12326
 
@@ -11977,7 +12337,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
11977
12337
 
11978
12338
  <div class="doc doc-contents ">
11979
12339
 
11980
- <p>CSV export an object, delete it, and recreate it via CSV import.</p>
12340
+ <p>CSV export an object, delete it, and recreate it via CSV import.</p>
11981
12341
 
11982
12342
  </div>
11983
12343
 
@@ -12004,7 +12364,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12004
12364
 
12005
12365
  <div class="doc doc-contents ">
12006
12366
  <p class="doc doc-class-bases">
12007
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12367
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12368
+
12369
+
12370
+
12371
+
12372
+
12008
12373
 
12009
12374
 
12010
12375
 
@@ -12031,7 +12396,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12031
12396
 
12032
12397
  <div class="doc doc-contents ">
12033
12398
 
12034
- <p>Get an instance that can be deleted.</p>
12399
+ <p>Get an instance that can be deleted.</p>
12035
12400
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
12036
12401
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12037
12402
 
@@ -12050,7 +12415,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12050
12415
 
12051
12416
  <div class="doc doc-contents ">
12052
12417
 
12053
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12418
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
12054
12419
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
12055
12420
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
12056
12421
 
@@ -12069,7 +12434,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12069
12434
 
12070
12435
  <div class="doc doc-contents ">
12071
12436
 
12072
- <p>DELETE a set of objects in a single request.</p>
12437
+ <p>DELETE a set of objects in a single request.</p>
12073
12438
 
12074
12439
  </div>
12075
12440
 
@@ -12086,7 +12451,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12086
12451
 
12087
12452
  <div class="doc doc-contents ">
12088
12453
 
12089
- <p>DELETE a single object identified by its primary key.</p>
12454
+ <p>DELETE a single object identified by its primary key.</p>
12090
12455
 
12091
12456
  </div>
12092
12457
 
@@ -12103,7 +12468,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12103
12468
 
12104
12469
  <div class="doc doc-contents ">
12105
12470
 
12106
- <p>DELETE a single object without permission.</p>
12471
+ <p>DELETE a single object without permission.</p>
12107
12472
 
12108
12473
  </div>
12109
12474
 
@@ -12130,7 +12495,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12130
12495
 
12131
12496
  <div class="doc doc-contents ">
12132
12497
  <p class="doc doc-class-bases">
12133
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12498
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12499
+
12500
+
12501
+
12502
+
12503
+
12134
12504
 
12135
12505
 
12136
12506
 
@@ -12157,7 +12527,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12157
12527
 
12158
12528
  <div class="doc doc-contents ">
12159
12529
 
12160
- <p>GET a single object as an authenticated user with permission to view the object.</p>
12530
+ <p>GET a single object as an authenticated user with permission to view the object.</p>
12161
12531
 
12162
12532
  </div>
12163
12533
 
@@ -12174,7 +12544,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12174
12544
 
12175
12545
  <div class="doc doc-contents ">
12176
12546
 
12177
- <p>GET a single object as an unauthenticated user.</p>
12547
+ <p>GET a single object as an unauthenticated user.</p>
12178
12548
 
12179
12549
  </div>
12180
12550
 
@@ -12191,7 +12561,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12191
12561
 
12192
12562
  <div class="doc doc-contents ">
12193
12563
 
12194
- <p>GET a single object as an authenticated user without the required permission.</p>
12564
+ <p>GET a single object as an authenticated user without the required permission.</p>
12195
12565
 
12196
12566
  </div>
12197
12567
 
@@ -12208,7 +12578,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12208
12578
 
12209
12579
  <div class="doc doc-contents ">
12210
12580
 
12211
- <p>Make an OPTIONS request for a single object.</p>
12581
+ <p>Make an OPTIONS request for a single object.</p>
12212
12582
 
12213
12583
  </div>
12214
12584
 
@@ -12235,7 +12605,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12235
12605
 
12236
12606
  <div class="doc doc-contents ">
12237
12607
  <p class="doc doc-class-bases">
12238
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12608
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12609
+
12610
+
12611
+
12612
+
12613
+
12239
12614
 
12240
12615
 
12241
12616
 
@@ -12262,7 +12637,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12262
12637
 
12263
12638
  <div class="doc doc-contents ">
12264
12639
 
12265
- <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12640
+ <p>Get a list of model fields that could be tested with the ?depth query parameter</p>
12266
12641
 
12267
12642
  </div>
12268
12643
 
@@ -12279,7 +12654,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12279
12654
 
12280
12655
  <div class="doc doc-contents ">
12281
12656
 
12282
- <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12657
+ <p>GET a list of objects as an authenticated user with permission to view the objects.</p>
12283
12658
 
12284
12659
  </div>
12285
12660
 
@@ -12296,7 +12671,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12296
12671
 
12297
12672
  <div class="doc doc-contents ">
12298
12673
 
12299
- <p>GET a list of objects as an unauthenticated user.</p>
12674
+ <p>GET a list of objects as an unauthenticated user.</p>
12300
12675
 
12301
12676
  </div>
12302
12677
 
@@ -12313,7 +12688,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12313
12688
 
12314
12689
  <div class="doc doc-contents ">
12315
12690
 
12316
- <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12691
+ <p>GET a list of objects in CSV format as an authenticated user with permission to view some objects.</p>
12317
12692
 
12318
12693
  </div>
12319
12694
 
@@ -12330,7 +12705,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12330
12705
 
12331
12706
  <div class="doc doc-contents ">
12332
12707
 
12333
- <p>GET a list of objects using the "?depth=0" parameter.</p>
12708
+ <p>GET a list of objects using the "?depth=0" parameter.</p>
12334
12709
 
12335
12710
  </div>
12336
12711
 
@@ -12347,7 +12722,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12347
12722
 
12348
12723
  <div class="doc doc-contents ">
12349
12724
 
12350
- <p>GET a list of objects using the "?depth=1" parameter.</p>
12725
+ <p>GET a list of objects using the "?depth=1" parameter.</p>
12351
12726
 
12352
12727
  </div>
12353
12728
 
@@ -12364,7 +12739,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12364
12739
 
12365
12740
  <div class="doc doc-contents ">
12366
12741
 
12367
- <p>GET a list of objects filtered by ID.</p>
12742
+ <p>GET a list of objects filtered by ID.</p>
12368
12743
 
12369
12744
  </div>
12370
12745
 
@@ -12381,7 +12756,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12381
12756
 
12382
12757
  <div class="doc doc-contents ">
12383
12758
 
12384
- <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12759
+ <p>GET a list of objects with an unknown filter parameter and no strict filtering, expect it to be ignored.</p>
12385
12760
 
12386
12761
  </div>
12387
12762
 
@@ -12398,7 +12773,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12398
12773
 
12399
12774
  <div class="doc doc-contents ">
12400
12775
 
12401
- <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12776
+ <p>GET a list of objects with an unknown filter parameter and strict filtering, expect a 400 response.</p>
12402
12777
 
12403
12778
  </div>
12404
12779
 
@@ -12415,7 +12790,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12415
12790
 
12416
12791
  <div class="doc doc-contents ">
12417
12792
 
12418
- <p>GET a list of objects as an authenticated user without the required permission.</p>
12793
+ <p>GET a list of objects as an authenticated user without the required permission.</p>
12419
12794
 
12420
12795
  </div>
12421
12796
 
@@ -12432,7 +12807,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12432
12807
 
12433
12808
  <div class="doc doc-contents ">
12434
12809
 
12435
- <p>Make an OPTIONS request for a list endpoint.</p>
12810
+ <p>Make an OPTIONS request for a list endpoint.</p>
12436
12811
 
12437
12812
  </div>
12438
12813
 
@@ -12459,10 +12834,15 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12459
12834
 
12460
12835
  <div class="doc doc-contents ">
12461
12836
  <p class="doc doc-class-bases">
12462
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12837
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12838
+
12839
+
12840
+ <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12841
+
12842
+
12843
+
12463
12844
 
12464
12845
 
12465
- <p>Validate Notes URL on objects that have the Note model Mixin.</p>
12466
12846
 
12467
12847
 
12468
12848
 
@@ -12499,7 +12879,12 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12499
12879
  <div class="doc doc-contents ">
12500
12880
 
12501
12881
 
12502
- <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12882
+ <p>Test <code>?depth=2</code> query parameter for TreeModel</p>
12883
+
12884
+
12885
+
12886
+
12887
+
12503
12888
 
12504
12889
 
12505
12890
 
@@ -12525,7 +12910,7 @@ its test case should overload self.VERBOTEN_STRINGS appropriately.</p>
12525
12910
 
12526
12911
  <div class="doc doc-contents ">
12527
12912
 
12528
- <p>GET a list of objects using the "?depth=2" parameter.
12913
+ <p>GET a list of objects using the "?depth=2" parameter.
12529
12914
  TreeModel Only</p>
12530
12915
 
12531
12916
  </div>
@@ -12553,7 +12938,12 @@ TreeModel Only</p>
12553
12938
 
12554
12939
  <div class="doc doc-contents ">
12555
12940
  <p class="doc doc-class-bases">
12556
- Bases: <code><autoref identifier="nautobot.core.testing.api.APITestCase" optional hover>APITestCase</autoref></code></p>
12941
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.api.APITestCase" href="#nautobot.apps.testing.APITestCase">APITestCase</a></code></p>
12942
+
12943
+
12944
+
12945
+
12946
+
12557
12947
 
12558
12948
 
12559
12949
 
@@ -12580,7 +12970,7 @@ TreeModel Only</p>
12580
12970
 
12581
12971
  <div class="doc doc-contents ">
12582
12972
 
12583
- <p>PATCH a set of objects in a single request.</p>
12973
+ <p>PATCH a set of objects in a single request.</p>
12584
12974
 
12585
12975
  </div>
12586
12976
 
@@ -12597,7 +12987,7 @@ TreeModel Only</p>
12597
12987
 
12598
12988
  <div class="doc doc-contents ">
12599
12989
 
12600
- <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
12990
+ <p>GET and then PUT an object and verify that it's accepted and unchanged.</p>
12601
12991
 
12602
12992
  </div>
12603
12993
 
@@ -12614,7 +13004,7 @@ TreeModel Only</p>
12614
13004
 
12615
13005
  <div class="doc doc-contents ">
12616
13006
 
12617
- <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
13007
+ <p>Make an OPTIONS request for a list endpoint and validate choices match expected choices for serializer.</p>
12618
13008
 
12619
13009
  </div>
12620
13010
 
@@ -12631,7 +13021,7 @@ TreeModel Only</p>
12631
13021
 
12632
13022
  <div class="doc doc-contents ">
12633
13023
 
12634
- <p>PATCH a single object identified by its ID.</p>
13024
+ <p>PATCH a single object identified by its ID.</p>
12635
13025
 
12636
13026
  </div>
12637
13027
 
@@ -12648,7 +13038,7 @@ TreeModel Only</p>
12648
13038
 
12649
13039
  <div class="doc doc-contents ">
12650
13040
 
12651
- <p>PATCH a single object without permission.</p>
13041
+ <p>PATCH a single object without permission.</p>
12652
13042
 
12653
13043
  </div>
12654
13044
 
@@ -12688,6 +13078,11 @@ TreeModel Only</p>
12688
13078
 
12689
13079
 
12690
13080
 
13081
+
13082
+
13083
+
13084
+
13085
+
12691
13086
  <div class="doc doc-children">
12692
13087
 
12693
13088
 
@@ -12710,10 +13105,15 @@ TreeModel Only</p>
12710
13105
 
12711
13106
  <div class="doc doc-contents ">
12712
13107
  <p class="doc doc-class-bases">
12713
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13108
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13109
+
13110
+
13111
+ <p>Base class for testing of FilterSets.</p>
13112
+
13113
+
13114
+
12714
13115
 
12715
13116
 
12716
- <p>Base class for testing of FilterSets.</p>
12717
13117
 
12718
13118
 
12719
13119
 
@@ -12739,7 +13139,7 @@ TreeModel Only</p>
12739
13139
 
12740
13140
  <div class="doc doc-contents ">
12741
13141
 
12742
- <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
13142
+ <p>Returns a list of distinct values from the requested queryset field to use in filterset tests.</p>
12743
13143
  <p>Returns a list for use in testing multiple choice filters. The size of the returned list is random
12744
13144
  but will contain at minimum 2 unique values. The list of values will match at least 2 instances when
12745
13145
  passed to the queryset's filter(field_name__in=[]) method but will fail to match at least one instance.</p>
@@ -12757,9 +13157,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12757
13157
  </thead>
12758
13158
  <tbody>
12759
13159
  <tr class="doc-section-item">
12760
- <td><code>field_name</code></td>
12761
13160
  <td>
12762
- <code><autoref identifier="str" optional>str</autoref></code>
13161
+ <code>field_name</code>
13162
+ </td>
13163
+ <td>
13164
+ <code>str</code>
12763
13165
  </td>
12764
13166
  <td>
12765
13167
  <div class="doc-md-description">
@@ -12771,9 +13173,11 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12771
13173
  </td>
12772
13174
  </tr>
12773
13175
  <tr class="doc-section-item">
12774
- <td><code>queryset</code></td>
12775
13176
  <td>
12776
- <code><autoref identifier="django.db.models.QuerySet" optional hover>QuerySet</autoref></code>
13177
+ <code>queryset</code>
13178
+ </td>
13179
+ <td>
13180
+ <code><span title="django.db.models.QuerySet">QuerySet</span></code>
12777
13181
  </td>
12778
13182
  <td>
12779
13183
  <div class="doc-md-description">
@@ -12799,7 +13203,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12799
13203
  <tbody>
12800
13204
  <tr class="doc-section-item">
12801
13205
  <td>
12802
- <code><autoref identifier="list" optional>list</autoref></code>
13206
+ <code>list</code>
12803
13207
  </td>
12804
13208
  <td>
12805
13209
  <div class="doc-md-description">
@@ -12822,7 +13226,7 @@ passed to the queryset's filter(field_name__in=[]) method but will fail to match
12822
13226
  <tbody>
12823
13227
  <tr class="doc-section-item">
12824
13228
  <td>
12825
- <code><autoref identifier="ValueError" optional>ValueError</autoref></code>
13229
+ <code>ValueError</code>
12826
13230
  </td>
12827
13231
  <td>
12828
13232
  <div class="doc-md-description">
@@ -12859,10 +13263,15 @@ to filter the queryset to a subset of the total instances.</p>
12859
13263
 
12860
13264
  <div class="doc doc-contents ">
12861
13265
  <p class="doc doc-class-bases">
12862
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" optional hover>BaseFilterTestCase</autoref></code></p>
13266
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.BaseFilterTestCase" href="#nautobot.apps.testing.FilterTestCases.BaseFilterTestCase">BaseFilterTestCase</a></code></p>
13267
+
13268
+
13269
+ <p>Add common tests for all FilterSets.</p>
13270
+
13271
+
13272
+
12863
13273
 
12864
13274
 
12865
- <p>Add common tests for all FilterSets.</p>
12866
13275
 
12867
13276
 
12868
13277
 
@@ -12888,7 +13297,7 @@ to filter the queryset to a subset of the total instances.</p>
12888
13297
 
12889
13298
  <div class="doc doc-contents ">
12890
13299
 
12891
- <p>Helper method to return q filter.</p>
13300
+ <p>Helper method to return q filter.</p>
12892
13301
 
12893
13302
  </div>
12894
13303
 
@@ -12905,7 +13314,7 @@ to filter the queryset to a subset of the total instances.</p>
12905
13314
 
12906
13315
  <div class="doc doc-contents ">
12907
13316
 
12908
- <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
13317
+ <p>Test all <code>RelatedMembershipBooleanFilter</code> filters found in <code>self.filterset.get_filters()</code>
12909
13318
  except for the ones with custom filter logic defined in its <code>method</code> attribute.</p>
12910
13319
  <p>This test asserts that <code>filter=True</code> matches <code>self.queryset.filter(field__isnull=False)</code> and
12911
13320
  that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=True)</code>.</p>
@@ -12925,7 +13334,7 @@ that <code>filter=False</code> matches <code>self.queryset.filter(field__isnull=
12925
13334
 
12926
13335
  <div class="doc doc-contents ">
12927
13336
 
12928
- <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
13337
+ <p>Test all multiple choice filters declared in <code>self.generic_filter_tests</code>.</p>
12929
13338
  <p>This test uses <code>get_filterset_test_values()</code> to retrieve a valid set of test data and asserts
12930
13339
  that the filterset filter output matches the corresponding queryset filter.
12931
13340
  The majority of Nautobot filters use conjoined=False, so the extra logic to support conjoined=True has not
@@ -12961,7 +13370,7 @@ This expects a field named <code>devices</code> on the model and a filter named
12961
13370
 
12962
13371
  <div class="doc doc-contents ">
12963
13372
 
12964
- <p>Verify that the filterset supports filtering by id with only lookup <code>__n</code>.</p>
13373
+ <p>Verify that the filterset supports filtering by id with only lookup <code>__n</code>.</p>
12965
13374
 
12966
13375
  </div>
12967
13376
 
@@ -12978,24 +13387,7 @@ This expects a field named <code>devices</code> on the model and a filter named
12978
13387
 
12979
13388
  <div class="doc doc-contents ">
12980
13389
 
12981
- <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
12982
-
12983
- </div>
12984
-
12985
- </div>
12986
-
12987
- <div class="doc doc-object doc-function">
12988
-
12989
-
12990
- <h4 id="nautobot.apps.testing.FilterTestCases.FilterTestCase.test_q_filter_exists" class="doc doc-heading">
12991
- <code class="highlight language-python"><span class="n">test_q_filter_exists</span><span class="p">()</span></code>
12992
-
12993
- <a href="#nautobot.apps.testing.FilterTestCases.FilterTestCase.test_q_filter_exists" class="headerlink" title="Permanent link">&para;</a></h4>
12994
-
12995
-
12996
- <div class="doc doc-contents ">
12997
-
12998
- <p>Test the <code>q</code> filter exists on a filterset, does not validate the filter works as expected.</p>
13390
+ <p>Verify that the filterset reports as invalid when initialized with an unsupported filter parameter.</p>
12999
13391
 
13000
13392
  </div>
13001
13393
 
@@ -13012,7 +13404,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13012
13404
 
13013
13405
  <div class="doc doc-contents ">
13014
13406
 
13015
- <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13407
+ <p>Test the <code>q</code> filter based on attributes in <code>filter_predicates</code>.</p>
13016
13408
 
13017
13409
  </div>
13018
13410
 
@@ -13029,7 +13421,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13029
13421
 
13030
13422
  <div class="doc doc-contents ">
13031
13423
 
13032
- <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13424
+ <p>Test the <code>tags</code> filter which should be present on all PrimaryModel filtersets.</p>
13033
13425
 
13034
13426
  </div>
13035
13427
 
@@ -13056,15 +13448,10 @@ This expects a field named <code>devices</code> on the model and a filter named
13056
13448
 
13057
13449
  <div class="doc doc-contents ">
13058
13450
  <p class="doc doc-class-bases">
13059
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" optional hover>FilterTestCase</autoref></code></p>
13060
-
13061
-
13062
- <p>Add simple tests for filtering by name.</p>
13451
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13063
13452
 
13064
13453
 
13065
-
13066
-
13067
- <div class="doc doc-children">
13454
+ <p>Add simple tests for filtering by name.</p>
13068
13455
 
13069
13456
 
13070
13457
 
@@ -13074,22 +13461,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13074
13461
 
13075
13462
 
13076
13463
 
13077
- <div class="doc doc-object doc-function">
13464
+ <div class="doc doc-children">
13078
13465
 
13079
13466
 
13080
- <h4 id="nautobot.apps.testing.FilterTestCases.NameOnlyFilterTestCase.test_name" class="doc doc-heading">
13081
- <code class="highlight language-python"><span class="n">test_name</span><span class="p">()</span></code>
13082
13467
 
13083
- <a href="#nautobot.apps.testing.FilterTestCases.NameOnlyFilterTestCase.test_name" class="headerlink" title="Permanent link">&para;</a></h4>
13084
13468
 
13085
13469
 
13086
- <div class="doc doc-contents ">
13087
13470
 
13088
- <p>Verify that the filterset supports filtering by name.</p>
13089
13471
 
13090
- </div>
13091
13472
 
13092
- </div>
13093
13473
 
13094
13474
 
13095
13475
 
@@ -13112,40 +13492,28 @@ This expects a field named <code>devices</code> on the model and a filter named
13112
13492
 
13113
13493
  <div class="doc doc-contents ">
13114
13494
  <p class="doc doc-class-bases">
13115
- Bases: <code><autoref identifier="nautobot.core.testing.filters.FilterTestCases.NameOnlyFilterTestCase" optional hover>NameOnlyFilterTestCase</autoref></code></p>
13495
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.filters.FilterTestCases.FilterTestCase" href="#nautobot.apps.testing.FilterTestCases.FilterTestCase">FilterTestCase</a></code></p>
13116
13496
 
13117
13497
 
13118
- <p>Add simple tests for filtering by name and by slug.</p>
13498
+ <p>Add simple tests for filtering by name and by slug.</p>
13119
13499
 
13120
13500
 
13121
13501
 
13122
13502
 
13123
- <div class="doc doc-children">
13124
-
13125
-
13126
13503
 
13127
13504
 
13128
13505
 
13129
13506
 
13130
13507
 
13508
+ <div class="doc doc-children">
13131
13509
 
13132
13510
 
13133
- <div class="doc doc-object doc-function">
13134
-
13135
-
13136
- <h4 id="nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase.test_slug" class="doc doc-heading">
13137
- <code class="highlight language-python"><span class="n">test_slug</span><span class="p">()</span></code>
13138
13511
 
13139
- <a href="#nautobot.apps.testing.FilterTestCases.NameSlugFilterTestCase.test_slug" class="headerlink" title="Permanent link">&para;</a></h4>
13140
13512
 
13141
13513
 
13142
- <div class="doc doc-contents ">
13143
13514
 
13144
- <p>Verify that the filterset supports filtering by slug.</p>
13145
13515
 
13146
- </div>
13147
13516
 
13148
- </div>
13149
13517
 
13150
13518
 
13151
13519
 
@@ -13168,10 +13536,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13168
13536
 
13169
13537
  <div class="doc doc-contents ">
13170
13538
  <p class="doc doc-class-bases">
13171
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13539
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13540
+
13541
+
13542
+ <p>Add test cases for tenant and tenant-group filters.</p>
13543
+
13544
+
13545
+
13172
13546
 
13173
13547
 
13174
- <p>Add test cases for tenant and tenant-group filters.</p>
13175
13548
 
13176
13549
 
13177
13550
 
@@ -13220,6 +13593,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13220
13593
 
13221
13594
 
13222
13595
 
13596
+
13597
+
13598
+
13599
+
13600
+
13223
13601
  <div class="doc doc-children">
13224
13602
 
13225
13603
 
@@ -13242,10 +13620,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13242
13620
 
13243
13621
  <div class="doc doc-contents ">
13244
13622
  <p class="doc doc-class-bases">
13245
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13623
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
13624
+
13625
+
13626
+ <p>Base class for generic form tests.</p>
13627
+
13628
+
13629
+
13246
13630
 
13247
13631
 
13248
- <p>Base class for generic form tests.</p>
13249
13632
 
13250
13633
 
13251
13634
 
@@ -13290,10 +13673,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13290
13673
 
13291
13674
  <div class="doc doc-contents ">
13292
13675
  <p class="doc doc-class-bases">
13293
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
13676
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
13677
+
13678
+
13679
+ <p>Parent class for TestCases which deal with models.</p>
13680
+
13681
+
13682
+
13294
13683
 
13295
13684
 
13296
- <p>Parent class for TestCases which deal with models.</p>
13297
13685
 
13298
13686
 
13299
13687
 
@@ -13333,6 +13721,11 @@ This expects a field named <code>devices</code> on the model and a filter named
13333
13721
 
13334
13722
 
13335
13723
 
13724
+
13725
+
13726
+
13727
+
13728
+
13336
13729
  <div class="doc doc-children">
13337
13730
 
13338
13731
 
@@ -13355,10 +13748,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13355
13748
 
13356
13749
  <div class="doc doc-contents ">
13357
13750
  <p class="doc doc-class-bases">
13358
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13751
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TestCase">TestCase</span></code></p>
13752
+
13753
+
13754
+ <p>Base class for generic model tests.</p>
13755
+
13756
+
13757
+
13359
13758
 
13360
13759
 
13361
- <p>Base class for generic model tests.</p>
13362
13760
 
13363
13761
 
13364
13762
 
@@ -13384,7 +13782,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13384
13782
 
13385
13783
  <div class="doc doc-contents ">
13386
13784
 
13387
- <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13785
+ <p>Check that <code>composite_key</code> and filtering by <code>composite_key</code> both work.</p>
13388
13786
 
13389
13787
  </div>
13390
13788
 
@@ -13401,7 +13799,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13401
13799
 
13402
13800
  <div class="doc doc-contents ">
13403
13801
 
13404
- <p>For dynamic-group capable models, check that they work as intended.</p>
13802
+ <p>For dynamic-group capable models, check that they work as intended.</p>
13405
13803
 
13406
13804
  </div>
13407
13805
 
@@ -13418,7 +13816,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13418
13816
 
13419
13817
  <div class="doc doc-contents ">
13420
13818
 
13421
- <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13819
+ <p>Check that <code>get_docs_url()</code> returns a valid static file path for this model.</p>
13422
13820
 
13423
13821
  </div>
13424
13822
 
@@ -13435,7 +13833,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13435
13833
 
13436
13834
  <div class="doc doc-contents ">
13437
13835
 
13438
- <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13836
+ <p>Check that <code>natural_key()</code> and <code>get_by_natural_key()</code> work reciprocally.</p>
13439
13837
 
13440
13838
  </div>
13441
13839
 
@@ -13471,10 +13869,15 @@ This expects a field named <code>devices</code> on the model and a filter named
13471
13869
 
13472
13870
  <div class="doc doc-contents ">
13473
13871
  <p class="doc doc-class-bases">
13474
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelTestCase" optional hover>ModelTestCase</autoref></code></p>
13872
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelTestCase" href="#nautobot.apps.testing.ModelTestCase">ModelTestCase</a></code></p>
13873
+
13874
+
13875
+ <p>Base TestCase for model views. Subclass to test individual views.</p>
13876
+
13877
+
13878
+
13475
13879
 
13476
13880
 
13477
- <p>Base TestCase for model views. Subclass to test individual views.</p>
13478
13881
 
13479
13882
 
13480
13883
 
@@ -13504,7 +13907,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13504
13907
 
13505
13908
  <div class="doc doc-contents ">
13506
13909
 
13507
- <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
13910
+ <p>Name of instance field to pass as a kwarg when looking up URLs for creating/editing/deleting a model instance.</p>
13508
13911
  <p>If unspecified, "pk" and "slug" will be tried, in that order.</p>
13509
13912
  </div>
13510
13913
 
@@ -13533,7 +13936,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13533
13936
 
13534
13937
  <div class="doc doc-contents ">
13535
13938
  <p class="doc doc-class-bases">
13536
- Bases: <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
13939
+ Bases: <code><span title="django.test.TestCase">TestCase</span></code></p>
13940
+
13941
+
13942
+
13943
+
13944
+
13537
13945
 
13538
13946
 
13539
13947
 
@@ -13560,7 +13968,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13560
13968
 
13561
13969
  <div class="doc doc-contents ">
13562
13970
 
13563
- <p>Populate your Nautobot data before migrating from the first migration to the second</p>
13971
+ <p>Populate your Nautobot data before migrating from the first migration to the second</p>
13564
13972
 
13565
13973
  </div>
13566
13974
 
@@ -13588,7 +13996,12 @@ This expects a field named <code>devices</code> on the model and a filter named
13588
13996
  <div class="doc doc-contents ">
13589
13997
 
13590
13998
 
13591
- <p>Base class for all Nautobot-specific unit tests.</p>
13999
+ <p>Base class for all Nautobot-specific unit tests.</p>
14000
+
14001
+
14002
+
14003
+
14004
+
13592
14005
 
13593
14006
 
13594
14007
 
@@ -13614,7 +14027,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13614
14027
 
13615
14028
  <div class="doc doc-contents ">
13616
14029
 
13617
- <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
14030
+ <p>Get the absolute API URL ("http://nautobot.example.com/api/...") for a given object.</p>
13618
14031
 
13619
14032
  </div>
13620
14033
 
@@ -13631,7 +14044,7 @@ This expects a field named <code>devices</code> on the model and a filter named
13631
14044
 
13632
14045
  <div class="doc doc-contents ">
13633
14046
 
13634
- <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.
14047
+ <p>Assign a set of permissions to the test user. Accepts permission names in the form <app>.<action>_<model>.
13635
14048
  Additional keyword arguments will be passed to the ObjectPermission constructor to allow creating more detailed permissions.</p>
13636
14049
 
13637
14050
 
@@ -13655,7 +14068,7 @@ Additional keyword arguments will be passed to the ObjectPermission constructor
13655
14068
 
13656
14069
  <div class="doc doc-contents ">
13657
14070
 
13658
- <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
14071
+ <p>Like assertNumQueries, but fuzzier. Assert that the number of queries falls within an acceptable range.</p>
13659
14072
 
13660
14073
  </div>
13661
14074
 
@@ -13672,7 +14085,7 @@ Additional keyword arguments will be passed to the ObjectPermission constructor
13672
14085
 
13673
14086
  <div class="doc doc-contents ">
13674
14087
 
13675
- <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
14088
+ <p>Like Django's <code>assertContains</code>, but uses <code>extract_page_body</code> utility function to scope the check more narrowly.</p>
13676
14089
 
13677
14090
 
13678
14091
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -13687,9 +14100,11 @@ Additional keyword arguments will be passed to the ObjectPermission constructor
13687
14100
  </thead>
13688
14101
  <tbody>
13689
14102
  <tr class="doc-section-item">
13690
- <td><code>response</code></td>
13691
14103
  <td>
13692
- <code><autoref identifier="HttpResponse" optional>HttpResponse</autoref></code>
14104
+ <code>response</code>
14105
+ </td>
14106
+ <td>
14107
+ <code>HttpResponse</code>
13693
14108
  </td>
13694
14109
  <td>
13695
14110
  <div class="doc-md-description">
@@ -13701,9 +14116,11 @@ Additional keyword arguments will be passed to the ObjectPermission constructor
13701
14116
  </td>
13702
14117
  </tr>
13703
14118
  <tr class="doc-section-item">
13704
- <td><code>text</code></td>
13705
14119
  <td>
13706
- <code><autoref identifier="str" optional>str</autoref></code>
14120
+ <code>text</code>
14121
+ </td>
14122
+ <td>
14123
+ <code>str</code>
13707
14124
  </td>
13708
14125
  <td>
13709
14126
  <div class="doc-md-description">
@@ -13715,9 +14132,11 @@ Additional keyword arguments will be passed to the ObjectPermission constructor
13715
14132
  </td>
13716
14133
  </tr>
13717
14134
  <tr class="doc-section-item">
13718
- <td><code>count</code></td>
13719
14135
  <td>
13720
- <code><autoref identifier="int" optional>int</autoref></code>
14136
+ <code>count</code>
14137
+ </td>
14138
+ <td>
14139
+ <code>int</code>
13721
14140
  </td>
13722
14141
  <td>
13723
14142
  <div class="doc-md-description">
@@ -13730,9 +14149,11 @@ it's present at all.</p>
13730
14149
  </td>
13731
14150
  </tr>
13732
14151
  <tr class="doc-section-item">
13733
- <td><code>status_code</code></td>
13734
14152
  <td>
13735
- <code><autoref identifier="int" optional>int</autoref></code>
14153
+ <code>status_code</code>
14154
+ </td>
14155
+ <td>
14156
+ <code>int</code>
13736
14157
  </td>
13737
14158
  <td>
13738
14159
  <div class="doc-md-description">
@@ -13744,9 +14165,11 @@ it's present at all.</p>
13744
14165
  </td>
13745
14166
  </tr>
13746
14167
  <tr class="doc-section-item">
13747
- <td><code>html</code></td>
13748
14168
  <td>
13749
- <code><autoref identifier="bool" optional>bool</autoref></code>
14169
+ <code>html</code>
14170
+ </td>
14171
+ <td>
14172
+ <code>bool</code>
13750
14173
  </td>
13751
14174
  <td>
13752
14175
  <div class="doc-md-description">
@@ -13775,7 +14198,7 @@ it's present at all.</p>
13775
14198
 
13776
14199
  <div class="doc doc-contents ">
13777
14200
 
13778
- <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
14201
+ <p>TestCase method. Provide more detail in the event of an unexpected HTTP response.</p>
13779
14202
 
13780
14203
  </div>
13781
14204
 
@@ -13792,7 +14215,7 @@ it's present at all.</p>
13792
14215
 
13793
14216
  <div class="doc doc-contents ">
13794
14217
 
13795
- <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
14218
+ <p>Compare a model instance to a dictionary, checking that its attribute values match those specified
13796
14219
  in the dictionary.</p>
13797
14220
  <p>:param instance: Python object instance
13798
14221
  :param data: Dictionary of test data used to define the instance
@@ -13814,7 +14237,7 @@ in the dictionary.</p>
13814
14237
 
13815
14238
  <div class="doc doc-contents ">
13816
14239
 
13817
- <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
14240
+ <p>Wrapper for assertQuerysetEqual with additional logic to assert input queryset and values are not empty</p>
13818
14241
 
13819
14242
  </div>
13820
14243
 
@@ -13835,7 +14258,7 @@ in the dictionary.</p>
13835
14258
 
13836
14259
  <div class="doc doc-contents ">
13837
14260
 
13838
- <p>Create and return a Tag instance for each name given.</p>
14261
+ <p>Create and return a Tag instance for each name given.</p>
13839
14262
  <p>DEPRECATED: use TagFactory instead.</p>
13840
14263
 
13841
14264
  </div>
@@ -13853,7 +14276,7 @@ in the dictionary.</p>
13853
14276
 
13854
14277
  <div class="doc doc-contents ">
13855
14278
 
13856
- <p>Return a dictionary representation of an instance.</p>
14279
+ <p>Return a dictionary representation of an instance.</p>
13857
14280
 
13858
14281
  </div>
13859
14282
 
@@ -13870,7 +14293,7 @@ in the dictionary.</p>
13870
14293
 
13871
14294
  <div class="doc doc-contents ">
13872
14295
 
13873
- <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
14296
+ <p>Test cases can override this method to perform any necessary manipulation of an instance prior to its evaluation
13874
14297
  against test data. For example, it can be used to decrypt a Secret's plaintext attribute.</p>
13875
14298
 
13876
14299
  </div>
@@ -13888,7 +14311,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
13888
14311
 
13889
14312
  <div class="doc doc-contents ">
13890
14313
 
13891
- <p>Setup shared testuser, statuses and client.</p>
14314
+ <p>Setup shared testuser, statuses and client.</p>
13892
14315
 
13893
14316
  </div>
13894
14317
 
@@ -13905,7 +14328,7 @@ against test data. For example, it can be used to decrypt a Secret's plaintext a
13905
14328
 
13906
14329
  <div class="doc doc-contents ">
13907
14330
 
13908
- <p>Clear cache after each test case.</p>
14331
+ <p>Clear cache after each test case.</p>
13909
14332
  <p>In theory this shouldn't be necessary as our cache <strong>should</strong> appropriately update and clear itself when
13910
14333
  data changes occur, but in practice we've seen issues here. Best guess at present is that it's due to
13911
14334
  <code>TransactionTestCase</code> truncating the database, which presumably doesn't trigger the relevant Django signals
@@ -13937,15 +14360,20 @@ that would otherwise refresh the cache appropriately.</p>
13937
14360
 
13938
14361
  <div class="doc doc-contents ">
13939
14362
  <p class="doc doc-class-bases">
13940
- Bases: <code><autoref identifier="rest_framework.test.APIClient" optional hover>APIClient</autoref></code></p>
14363
+ Bases: <code><span title="rest_framework.test.APIClient">APIClient</span></code></p>
13941
14364
 
13942
14365
 
13943
- <p>Base client class for Nautobot testing.</p>
14366
+ <p>Base client class for Nautobot testing.</p>
13944
14367
  <p>DO NOT USE THIS IN PRODUCTION NAUTOBOT CODE.</p>
13945
14368
 
13946
14369
 
13947
14370
 
13948
14371
 
14372
+
14373
+
14374
+
14375
+
14376
+
13949
14377
  <div class="doc doc-children">
13950
14378
 
13951
14379
 
@@ -13967,7 +14395,7 @@ that would otherwise refresh the cache appropriately.</p>
13967
14395
 
13968
14396
  <div class="doc doc-contents ">
13969
14397
 
13970
- <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
14398
+ <p>Default the SERVER_NAME to "nautobot.example.com" rather than Django's default "testserver".</p>
13971
14399
  <p>This matches the ALLOWED_HOSTS set in nautobot/core/tests/nautobot_config.py and
13972
14400
  helps to protect us against issues like https://github.com/nautobot/nautobot/issues/3065.</p>
13973
14401
 
@@ -14000,6 +14428,11 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14000
14428
 
14001
14429
 
14002
14430
 
14431
+
14432
+
14433
+
14434
+
14435
+
14003
14436
  <div class="doc doc-children">
14004
14437
 
14005
14438
 
@@ -14022,10 +14455,15 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14022
14455
 
14023
14456
  <div class="doc doc-contents ">
14024
14457
  <p class="doc doc-class-bases">
14025
- Bases: <code><autoref identifier="nautobot.core.testing.views.TestCase" optional hover>TestCase</autoref></code></p>
14458
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.TestCase" href="#nautobot.apps.testing.TestCase">TestCase</a></code></p>
14459
+
14460
+
14461
+ <p>Base class for testing of the OpenAPI schema.</p>
14462
+
14463
+
14464
+
14026
14465
 
14027
14466
 
14028
- <p>Base class for testing of the OpenAPI schema.</p>
14029
14467
 
14030
14468
 
14031
14469
 
@@ -14051,7 +14489,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14051
14489
 
14052
14490
  <div class="doc doc-contents ">
14053
14491
 
14054
- <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14492
+ <p>Test method to assert that this polymorphic component has the expected permitted types.</p>
14055
14493
 
14056
14494
  </div>
14057
14495
 
@@ -14068,7 +14506,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14068
14506
 
14069
14507
  <div class="doc doc-contents ">
14070
14508
 
14071
- <p>Test method to assert that the given component property is marked as non-nullable.</p>
14509
+ <p>Test method to assert that the given component property is marked as non-nullable.</p>
14072
14510
 
14073
14511
  </div>
14074
14512
 
@@ -14085,7 +14523,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14085
14523
 
14086
14524
  <div class="doc doc-contents ">
14087
14525
 
14088
- <p>Test method to assert that the given component property is not marked as read-only.</p>
14526
+ <p>Test method to assert that the given component property is not marked as read-only.</p>
14089
14527
 
14090
14528
  </div>
14091
14529
 
@@ -14102,7 +14540,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14102
14540
 
14103
14541
  <div class="doc doc-contents ">
14104
14542
 
14105
- <p>Test method to assert that the given component property is marked as nullable.</p>
14543
+ <p>Test method to assert that the given component property is marked as nullable.</p>
14106
14544
 
14107
14545
  </div>
14108
14546
 
@@ -14119,7 +14557,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14119
14557
 
14120
14558
  <div class="doc doc-contents ">
14121
14559
 
14122
- <p>Test method to assert that the given component property is marked as read-only.</p>
14560
+ <p>Test method to assert that the given component property is marked as read-only.</p>
14123
14561
 
14124
14562
  </div>
14125
14563
 
@@ -14136,7 +14574,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14136
14574
 
14137
14575
  <div class="doc doc-contents ">
14138
14576
 
14139
- <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14577
+ <p>Helper method to pull a specific component schema from the larger OpenAPI schema already loaded.</p>
14140
14578
 
14141
14579
  </div>
14142
14580
 
@@ -14153,7 +14591,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14153
14591
 
14154
14592
  <div class="doc doc-contents ">
14155
14593
 
14156
- <p>Helper method to identify a component referenced by the given property of the current component.</p>
14594
+ <p>Helper method to identify a component referenced by the given property of the current component.</p>
14157
14595
 
14158
14596
  </div>
14159
14597
 
@@ -14170,7 +14608,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14170
14608
 
14171
14609
  <div class="doc doc-contents ">
14172
14610
 
14173
- <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14611
+ <p>Helper method to pull a specific property schema from a larger component schema already extracted.</p>
14174
14612
 
14175
14613
  </div>
14176
14614
 
@@ -14187,7 +14625,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14187
14625
 
14188
14626
  <div class="doc doc-contents ">
14189
14627
 
14190
- <p>Bringing it all together.</p>
14628
+ <p>Bringing it all together.</p>
14191
14629
  <p>This validates the schema to show that:
14192
14630
  - The component exists and has such a property
14193
14631
  - The property has the correct <code>nullable</code> and <code>readOnly</code> values
@@ -14207,7 +14645,7 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14207
14645
  <tbody>
14208
14646
  <tr class="doc-section-item">
14209
14647
  <td>
14210
- <code><autoref identifier="Tuple" optional>Tuple</autoref>[<autoref identifier="ref_component_name" optional>ref_component_name</autoref>, <autoref identifier="ref_component_schema" optional>ref_component_schema</autoref>]</code>
14648
+ <code>Tuple[ref_component_name, ref_component_schema]</code>
14211
14649
  </td>
14212
14650
  <td>
14213
14651
  <div class="doc-md-description">
@@ -14252,16 +14690,21 @@ helps to protect us against issues like https://github.com/nautobot/nautobot/iss
14252
14690
 
14253
14691
  <div class="doc doc-contents ">
14254
14692
  <p class="doc doc-class-bases">
14255
- Bases: <code><autoref identifier="django.contrib.staticfiles.testing.StaticLiveServerTestCase" optional hover>StaticLiveServerTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code></p>
14693
+ Bases: <code><span title="django.contrib.staticfiles.testing.StaticLiveServerTestCase">StaticLiveServerTestCase</span></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code></p>
14256
14694
 
14257
14695
 
14258
- <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14696
+ <p>Base test case for Splinter Selenium integration testing with custom helper methods.</p>
14259
14697
  <p>This extends <code>django.contrib.staticfiles.testing.StaticLiveServerTestCase</code>
14260
14698
  so there is no need to run <code>collectstatic</code> prior to running tests.</p>
14261
14699
 
14262
14700
 
14263
14701
 
14264
14702
 
14703
+
14704
+
14705
+
14706
+
14707
+
14265
14708
  <div class="doc doc-children">
14266
14709
 
14267
14710
 
@@ -14283,7 +14726,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14283
14726
 
14284
14727
  <div class="doc doc-contents ">
14285
14728
 
14286
- <p>Helper function to click the "Create" button on a form.</p>
14729
+ <p>Helper function to click the "Create" button on a form.</p>
14287
14730
 
14288
14731
  </div>
14289
14732
 
@@ -14300,7 +14743,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14300
14743
 
14301
14744
  <div class="doc doc-contents ">
14302
14745
 
14303
- <p>Helper function to click the "Add" button on a list view.</p>
14746
+ <p>Helper function to click the "Add" button on a list view.</p>
14304
14747
 
14305
14748
  </div>
14306
14749
 
@@ -14317,7 +14760,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14317
14760
 
14318
14761
  <div class="doc doc-contents ">
14319
14762
 
14320
- <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14763
+ <p>Helper function to click on a parent menu and child menu in the navigation bar.</p>
14321
14764
 
14322
14765
  </div>
14323
14766
 
@@ -14334,7 +14777,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14334
14777
 
14335
14778
  <div class="doc doc-contents ">
14336
14779
 
14337
- <p>Helper function to fill a Select2 single selection field.</p>
14780
+ <p>Helper function to fill a Select2 single selection field.</p>
14338
14781
 
14339
14782
  </div>
14340
14783
 
@@ -14351,7 +14794,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14351
14794
 
14352
14795
  <div class="doc doc-contents ">
14353
14796
 
14354
- <p>Helper function to fill a Select2 multi-selection field.</p>
14797
+ <p>Helper function to fill a Select2 multi-selection field.</p>
14355
14798
 
14356
14799
  </div>
14357
14800
 
@@ -14368,7 +14811,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14368
14811
 
14369
14812
  <div class="doc doc-contents ">
14370
14813
 
14371
- <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14814
+ <p>Navigate to <code>login_url</code> and perform a login w/ the provided <code>username</code> and <code>password</code>.</p>
14372
14815
 
14373
14816
  </div>
14374
14817
 
@@ -14389,7 +14832,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14389
14832
 
14390
14833
  <div class="doc doc-contents ">
14391
14834
 
14392
- <p>Close down the browser after tests are ran.</p>
14835
+ <p>Close down the browser after tests are ran.</p>
14393
14836
 
14394
14837
  </div>
14395
14838
 
@@ -14416,10 +14859,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14416
14859
 
14417
14860
  <div class="doc doc-contents ">
14418
14861
  <p class="doc doc-class-bases">
14419
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TestCase" optional hover>TestCase</autoref></code></p>
14862
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TestCase">TestCase</span></code></p>
14863
+
14864
+
14865
+ <p>Base class for all Nautobot-specific unit tests.</p>
14866
+
14867
+
14868
+
14420
14869
 
14421
14870
 
14422
- <p>Base class for all Nautobot-specific unit tests.</p>
14423
14871
 
14424
14872
 
14425
14873
 
@@ -14445,7 +14893,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14445
14893
 
14446
14894
  <div class="doc doc-contents ">
14447
14895
 
14448
- <p>Initialize user and client.</p>
14896
+ <p>Initialize user and client.</p>
14449
14897
 
14450
14898
  </div>
14451
14899
 
@@ -14472,10 +14920,15 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14472
14920
 
14473
14921
  <div class="doc doc-contents ">
14474
14922
  <p class="doc doc-class-bases">
14475
- Bases: <code><autoref identifier="nautobot.core.testing.mixins.NautobotTestCaseMixin" optional hover>NautobotTestCaseMixin</autoref></code>, <code><autoref identifier="django.test.TransactionTestCase" optional hover>TransactionTestCase</autoref></code></p>
14923
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.mixins.NautobotTestCaseMixin" href="#nautobot.apps.testing.NautobotTestCaseMixin">NautobotTestCaseMixin</a></code>, <code><span title="django.test.TransactionTestCase">TransactionTestCase</span></code></p>
14924
+
14925
+
14926
+ <p>Base test case class using the TransactionTestCase for unit testing</p>
14927
+
14928
+
14929
+
14476
14930
 
14477
14931
 
14478
- <p>Base test case class using the TransactionTestCase for unit testing</p>
14479
14932
 
14480
14933
 
14481
14934
 
@@ -14501,7 +14954,7 @@ so there is no need to run <code>collectstatic</code> prior to running tests.</p
14501
14954
 
14502
14955
  <div class="doc doc-contents ">
14503
14956
 
14504
- <p>Provide a clean, post-migration state before each test case.</p>
14957
+ <p>Provide a clean, post-migration state before each test case.</p>
14505
14958
  <p>django.test.TransactionTestCase truncates the database after each test runs. We need at least the default
14506
14959
  statuses present in the database in order to run tests.</p>
14507
14960
 
@@ -14531,7 +14984,12 @@ statuses present in the database in order to run tests.</p>
14531
14984
  <div class="doc doc-contents ">
14532
14985
 
14533
14986
 
14534
- <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
14987
+ <p>We keep any TestCases with test_* methods inside a class to prevent unittest from trying to run them.</p>
14988
+
14989
+
14990
+
14991
+
14992
+
14535
14993
 
14536
14994
 
14537
14995
 
@@ -14558,10 +15016,15 @@ statuses present in the database in order to run tests.</p>
14558
15016
 
14559
15017
  <div class="doc doc-contents ">
14560
15018
  <p class="doc doc-class-bases">
14561
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15019
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15020
+
15021
+
15022
+ <p>Delete multiple instances.</p>
15023
+
15024
+
15025
+
14562
15026
 
14563
15027
 
14564
- <p>Delete multiple instances.</p>
14565
15028
 
14566
15029
 
14567
15030
 
@@ -14587,7 +15050,7 @@ statuses present in the database in order to run tests.</p>
14587
15050
 
14588
15051
  <div class="doc doc-contents ">
14589
15052
 
14590
- <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
15053
+ <p>Get a list of PKs corresponding to objects that can be safely bulk-deleted.</p>
14591
15054
  <p>For some models this may just be any random objects, but when we have FKs with <code>on_delete=models.PROTECT</code>
14592
15055
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14593
15056
 
@@ -14616,57 +15079,19 @@ statuses present in the database in order to run tests.</p>
14616
15079
 
14617
15080
  <div class="doc doc-contents ">
14618
15081
  <p class="doc doc-class-bases">
14619
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15082
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14620
15083
 
14621
15084
 
14622
- <p>Edit multiple instances.</p>
15085
+ <p>Edit multiple instances.</p>
14623
15086
  <p>:bulk_edit_data: A dictionary of data to be used when bulk editing a set of objects. This data should differ
14624
15087
  from that used for initial object creation within setUpTestData().</p>
14625
15088
 
14626
15089
 
14627
15090
 
14628
15091
 
14629
- <div class="doc doc-children">
14630
-
14631
-
14632
-
14633
-
14634
-
14635
-
14636
-
14637
-
14638
-
14639
-
14640
-
14641
- </div>
14642
-
14643
- </div>
14644
-
14645
- </div>
14646
-
14647
- <div class="doc doc-object doc-class">
14648
15092
 
14649
15093
 
14650
15094
 
14651
- <h3 id="nautobot.apps.testing.ViewTestCases.BulkImportObjectsViewTestCase" class="doc doc-heading">
14652
- <code>BulkImportObjectsViewTestCase</code>
14653
-
14654
-
14655
- <a href="#nautobot.apps.testing.ViewTestCases.BulkImportObjectsViewTestCase" class="headerlink" title="Permanent link">&para;</a></h3>
14656
-
14657
-
14658
- <div class="doc doc-contents ">
14659
- <p class="doc doc-class-bases">
14660
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
14661
-
14662
-
14663
- <p>Vestigial test case, to be removed in 3.0.</p>
14664
- <p>This is vestigial since the introduction of the ImportObjects system Job to handle bulk-import of all
14665
- content-types via REST API serializers. The parsing of CSV data by the serializer is exercised by
14666
- APIViewTestCases.CreateObjectViewTestCase.test_recreate_object_csv(), and the basic operation of the Job is
14667
- exercised by nautobot.core.tests.test_jobs.</p>
14668
-
14669
-
14670
15095
 
14671
15096
 
14672
15097
  <div class="doc doc-children">
@@ -14700,10 +15125,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
14700
15125
 
14701
15126
  <div class="doc doc-contents ">
14702
15127
  <p class="doc doc-class-bases">
14703
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15128
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15129
+
15130
+
15131
+ <p>Rename multiple instances.</p>
15132
+
15133
+
15134
+
14704
15135
 
14705
15136
 
14706
- <p>Rename multiple instances.</p>
14707
15137
 
14708
15138
 
14709
15139
 
@@ -14739,16 +15169,21 @@ exercised by nautobot.core.tests.test_jobs.</p>
14739
15169
 
14740
15170
  <div class="doc doc-contents ">
14741
15171
  <p class="doc doc-class-bases">
14742
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15172
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14743
15173
 
14744
15174
 
14745
- <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
15175
+ <p>Create multiple instances using a single form. Expects the creation of three new instances by default.</p>
14746
15176
  <p>:bulk_create_count: The number of objects expected to be created (default: 3).
14747
15177
  :bulk_create_data: A dictionary of data to be used for bulk object creation.</p>
14748
15178
 
14749
15179
 
14750
15180
 
14751
15181
 
15182
+
15183
+
15184
+
15185
+
15186
+
14752
15187
  <div class="doc doc-children">
14753
15188
 
14754
15189
 
@@ -14780,58 +15215,29 @@ exercised by nautobot.core.tests.test_jobs.</p>
14780
15215
 
14781
15216
  <div class="doc doc-contents ">
14782
15217
  <p class="doc doc-class-bases">
14783
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15218
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
14784
15219
 
14785
15220
 
14786
- <p>Create a single new instance.</p>
15221
+ <p>Create a single new instance.</p>
14787
15222
  <p>:form_data: Data to be used when creating a new object.</p>
14788
15223
 
14789
15224
 
14790
15225
 
14791
15226
 
14792
- <div class="doc doc-children">
14793
-
14794
-
14795
-
14796
-
14797
-
14798
15227
 
14799
15228
 
14800
15229
 
14801
15230
 
14802
- <div class="doc doc-object doc-function">
14803
-
14804
-
14805
- <h4 id="nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_autocreation" class="doc doc-heading">
14806
- <code class="highlight language-python"><span class="n">test_slug_autocreation</span><span class="p">()</span></code>
14807
-
14808
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_autocreation" class="headerlink" title="Permanent link">&para;</a></h4>
14809
-
14810
-
14811
- <div class="doc doc-contents ">
14812
-
14813
- <p>Test that slug is autocreated through ORM.</p>
14814
-
14815
- </div>
14816
-
14817
- </div>
14818
15231
 
14819
- <div class="doc doc-object doc-function">
15232
+ <div class="doc doc-children">
14820
15233
 
14821
15234
 
14822
- <h4 id="nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_not_modified" class="doc doc-heading">
14823
- <code class="highlight language-python"><span class="n">test_slug_not_modified</span><span class="p">()</span></code>
14824
15235
 
14825
- <a href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase.test_slug_not_modified" class="headerlink" title="Permanent link">&para;</a></h4>
14826
15236
 
14827
15237
 
14828
- <div class="doc doc-contents ">
14829
15238
 
14830
- <p>Ensure save method does not modify slug that is passed in.</p>
14831
15239
 
14832
- </div>
14833
15240
 
14834
- </div>
14835
15241
 
14836
15242
 
14837
15243
 
@@ -14854,10 +15260,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
14854
15260
 
14855
15261
  <div class="doc doc-contents ">
14856
15262
  <p class="doc doc-class-bases">
14857
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15263
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15264
+
15265
+
15266
+ <p>Delete a single instance.</p>
15267
+
15268
+
15269
+
14858
15270
 
14859
15271
 
14860
- <p>Delete a single instance.</p>
14861
15272
 
14862
15273
 
14863
15274
 
@@ -14883,7 +15294,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
14883
15294
 
14884
15295
  <div class="doc doc-contents ">
14885
15296
 
14886
- <p>Get an instance that can be deleted.</p>
15297
+ <p>Get an instance that can be deleted.</p>
14887
15298
  <p>For some models this may just be any random object, but when we have FKs with <code>on_delete=models.PROTECT</code>
14888
15299
  (as is often the case) we need to find or create an instance that doesn't have such entanglements.</p>
14889
15300
 
@@ -14912,10 +15323,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
14912
15323
 
14913
15324
  <div class="doc doc-contents ">
14914
15325
  <p class="doc doc-class-bases">
14915
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" optional hover>CreateMultipleObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" optional hover>BulkRenameObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15326
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase">CreateMultipleObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase">BulkRenameObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15327
+
15328
+
15329
+ <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
15330
+
15331
+
15332
+
14916
15333
 
14917
15334
 
14918
- <p>TestCase suitable for testing device component template models (ConsolePortTemplates, InterfaceTemplates, etc.)</p>
14919
15335
 
14920
15336
 
14921
15337
 
@@ -14951,10 +15367,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
14951
15367
 
14952
15368
  <div class="doc doc-contents ">
14953
15369
  <p class="doc doc-class-bases">
14954
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" optional hover>CreateMultipleObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" optional hover>BulkRenameObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15370
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateMultipleObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateMultipleObjectsViewTestCase">CreateMultipleObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkRenameObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkRenameObjectsViewTestCase">BulkRenameObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15371
+
15372
+
15373
+ <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
15374
+
15375
+
15376
+
14955
15377
 
14956
15378
 
14957
- <p>TestCase suitable for testing device component models (ConsolePorts, Interfaces, etc.)</p>
14958
15379
 
14959
15380
 
14960
15381
 
@@ -14984,7 +15405,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
14984
15405
 
14985
15406
  <div class="doc doc-contents ">
14986
15407
 
14987
- <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
15408
+ <p>Used for bulk-add (distinct from bulk-create) view testing; self.bulk_create_data will be used if unset.</p>
14988
15409
  </div>
14989
15410
 
14990
15411
  </div>
@@ -15002,7 +15423,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15002
15423
 
15003
15424
  <div class="doc doc-contents ">
15004
15425
 
15005
- <p>Test bulk-adding this component to devices/virtual-machines.</p>
15426
+ <p>Test bulk-adding this component to devices/virtual-machines.</p>
15006
15427
 
15007
15428
  </div>
15008
15429
 
@@ -15029,16 +15450,21 @@ exercised by nautobot.core.tests.test_jobs.</p>
15029
15450
 
15030
15451
  <div class="doc doc-contents ">
15031
15452
  <p class="doc doc-class-bases">
15032
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15453
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15033
15454
 
15034
15455
 
15035
- <p>Edit a single existing instance.</p>
15456
+ <p>Edit a single existing instance.</p>
15036
15457
  <p>:update_data: Data to be used when updating the first existing object, fall back to form_data if not provided.
15037
15458
  :form_data: Fall back to this data if update_data is not provided, for backward compatibility.</p>
15038
15459
 
15039
15460
 
15040
15461
 
15041
15462
 
15463
+
15464
+
15465
+
15466
+
15467
+
15042
15468
  <div class="doc doc-children">
15043
15469
 
15044
15470
 
@@ -15070,10 +15496,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15070
15496
 
15071
15497
  <div class="doc doc-contents ">
15072
15498
  <p class="doc doc-class-bases">
15073
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15499
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15500
+
15501
+
15502
+ <p>View the changelog for an instance.</p>
15503
+
15504
+
15505
+
15074
15506
 
15075
15507
 
15076
- <p>View the changelog for an instance.</p>
15077
15508
 
15078
15509
 
15079
15510
 
@@ -15109,10 +15540,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15109
15540
 
15110
15541
  <div class="doc doc-contents ">
15111
15542
  <p class="doc doc-class-bases">
15112
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15543
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15544
+
15545
+
15546
+ <p>View the notes for an instance.</p>
15547
+
15548
+
15549
+
15113
15550
 
15114
15551
 
15115
- <p>View the notes for an instance.</p>
15116
15552
 
15117
15553
 
15118
15554
 
@@ -15148,10 +15584,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15148
15584
 
15149
15585
  <div class="doc doc-contents ">
15150
15586
  <p class="doc doc-class-bases">
15151
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15587
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15588
+
15589
+
15590
+ <p>Retrieve a single instance.</p>
15591
+
15592
+
15593
+
15152
15594
 
15153
15595
 
15154
- <p>Retrieve a single instance.</p>
15155
15596
 
15156
15597
 
15157
15598
 
@@ -15187,10 +15628,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15187
15628
 
15188
15629
  <div class="doc doc-contents ">
15189
15630
  <p class="doc doc-class-bases">
15190
- Bases: <code><autoref identifier="nautobot.core.testing.views.ModelViewTestCase" optional hover>ModelViewTestCase</autoref></code></p>
15631
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ModelViewTestCase" href="#nautobot.apps.testing.ModelViewTestCase">ModelViewTestCase</a></code></p>
15632
+
15633
+
15634
+ <p>Retrieve multiple instances.</p>
15635
+
15636
+
15637
+
15191
15638
 
15192
15639
 
15193
- <p>Retrieve multiple instances.</p>
15194
15640
 
15195
15641
 
15196
15642
 
@@ -15216,7 +15662,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15216
15662
 
15217
15663
  <div class="doc doc-contents ">
15218
15664
 
15219
- <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15665
+ <p>Verify that without STRICT_FILTERING, an unknown filter is ignored.</p>
15220
15666
 
15221
15667
  </div>
15222
15668
 
@@ -15233,7 +15679,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15233
15679
 
15234
15680
  <div class="doc doc-contents ">
15235
15681
 
15236
- <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15682
+ <p>Verify that with STRICT_FILTERING, an unknown filter results in an error message and no matches.</p>
15237
15683
 
15238
15684
  </div>
15239
15685
 
@@ -15250,7 +15696,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15250
15696
 
15251
15697
  <div class="doc doc-contents ">
15252
15698
 
15253
- <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15699
+ <p>If example app is installed, check if the app banner is rendered correctly in ObjectListView.</p>
15254
15700
 
15255
15701
  </div>
15256
15702
 
@@ -15277,10 +15723,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15277
15723
 
15278
15724
  <div class="doc doc-contents ">
15279
15725
  <p class="doc doc-class-bases">
15280
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" optional hover>CreateObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15726
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase">CreateObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15727
+
15728
+
15729
+ <p>TestCase suitable for all organizational objects</p>
15730
+
15731
+
15732
+
15281
15733
 
15282
15734
 
15283
- <p>TestCase suitable for all organizational objects</p>
15284
15735
 
15285
15736
 
15286
15737
 
@@ -15316,10 +15767,15 @@ exercised by nautobot.core.tests.test_jobs.</p>
15316
15767
 
15317
15768
  <div class="doc doc-contents ">
15318
15769
  <p class="doc doc-class-bases">
15319
- Bases: <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" optional hover>GetObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" optional hover>GetObjectChangelogViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" optional hover>GetObjectNotesViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" optional hover>CreateObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" optional hover>EditObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" optional hover>DeleteObjectViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" optional hover>ListObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" optional hover>BulkEditObjectsViewTestCase</autoref></code>, <code><autoref identifier="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" optional hover>BulkDeleteObjectsViewTestCase</autoref></code></p>
15770
+ Bases: <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectViewTestCase">GetObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectChangelogViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectChangelogViewTestCase">GetObjectChangelogViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.GetObjectNotesViewTestCase" href="#nautobot.apps.testing.ViewTestCases.GetObjectNotesViewTestCase">GetObjectNotesViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.CreateObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.CreateObjectViewTestCase">CreateObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.EditObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.EditObjectViewTestCase">EditObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.DeleteObjectViewTestCase" href="#nautobot.apps.testing.ViewTestCases.DeleteObjectViewTestCase">DeleteObjectViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.ListObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.ListObjectsViewTestCase">ListObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkEditObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkEditObjectsViewTestCase">BulkEditObjectsViewTestCase</a></code>, <code><a class="autorefs autorefs-internal" title="nautobot.core.testing.views.ViewTestCases.BulkDeleteObjectsViewTestCase" href="#nautobot.apps.testing.ViewTestCases.BulkDeleteObjectsViewTestCase">BulkDeleteObjectsViewTestCase</a></code></p>
15771
+
15772
+
15773
+ <p>TestCase suitable for testing all standard View functions for primary objects</p>
15774
+
15775
+
15776
+
15320
15777
 
15321
15778
 
15322
- <p>TestCase suitable for testing all standard View functions for primary objects</p>
15323
15779
 
15324
15780
 
15325
15781
 
@@ -15363,7 +15819,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15363
15819
 
15364
15820
  <div class="doc doc-contents ">
15365
15821
 
15366
- <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15822
+ <p>Test helper function to call get_job_class_and_model() then call run_job_for_testing().</p>
15367
15823
 
15368
15824
  </div>
15369
15825
 
@@ -15380,7 +15836,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15380
15836
 
15381
15837
  <div class="doc doc-contents ">
15382
15838
 
15383
- <p>Create a User with the given permissions.</p>
15839
+ <p>Create a User with the given permissions.</p>
15384
15840
 
15385
15841
  </div>
15386
15842
 
@@ -15397,7 +15853,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15397
15853
 
15398
15854
  <div class="doc doc-contents ">
15399
15855
 
15400
- <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15856
+ <p>Temporarily suppress expected warning messages to keep the test output clean.</p>
15401
15857
 
15402
15858
  </div>
15403
15859
 
@@ -15414,7 +15870,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15414
15870
 
15415
15871
  <div class="doc doc-contents ">
15416
15872
 
15417
- <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15873
+ <p>Given decoded HTML content from an HTTP response, return a list of form errors.</p>
15418
15874
 
15419
15875
  </div>
15420
15876
 
@@ -15431,7 +15887,7 @@ exercised by nautobot.core.tests.test_jobs.</p>
15431
15887
 
15432
15888
  <div class="doc doc-contents ">
15433
15889
 
15434
- <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
15890
+ <p>Given raw HTML content from an HTTP response, extract the main div only.</p>
15435
15891
  <html>
15436
15892
  <head>... <link href="../../../assets/stylesheets/glightbox.min.css" rel="stylesheet"/><style>
15437
15893
  html.glightbox-open { overflow: initial; height: 100%; }
@@ -15470,7 +15926,7 @@ document$.subscribe(() => { lightbox.reload() });
15470
15926
 
15471
15927
  <div class="doc doc-contents ">
15472
15928
 
15473
- <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
15929
+ <p>For testing purposes only; it returns a random string of size 100 consisting of letters and numbers.</p>
15474
15930
 
15475
15931
  </div>
15476
15932
 
@@ -15487,7 +15943,7 @@ document$.subscribe(() => { lightbox.reload() });
15487
15943
 
15488
15944
  <div class="doc doc-contents ">
15489
15945
 
15490
- <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
15946
+ <p>Returns a subset of objects in the given queryset that have no protected relationships that would prevent deletion.</p>
15491
15947
 
15492
15948
  </div>
15493
15949
 
@@ -15504,7 +15960,7 @@ document$.subscribe(() => { lightbox.reload() });
15504
15960
 
15505
15961
  <div class="doc doc-contents ">
15506
15962
 
15507
- <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
15963
+ <p>Test helper function to look up a job class and job model and ensure the latter is enabled.</p>
15508
15964
 
15509
15965
 
15510
15966
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15519,9 +15975,11 @@ document$.subscribe(() => { lightbox.reload() });
15519
15975
  </thead>
15520
15976
  <tbody>
15521
15977
  <tr class="doc-section-item">
15522
- <td><code>module</code></td>
15523
15978
  <td>
15524
- <code><autoref identifier="str" optional>str</autoref></code>
15979
+ <code>module</code>
15980
+ </td>
15981
+ <td>
15982
+ <code>str</code>
15525
15983
  </td>
15526
15984
  <td>
15527
15985
  <div class="doc-md-description">
@@ -15533,9 +15991,11 @@ document$.subscribe(() => { lightbox.reload() });
15533
15991
  </td>
15534
15992
  </tr>
15535
15993
  <tr class="doc-section-item">
15536
- <td><code>name</code></td>
15537
15994
  <td>
15538
- <code><autoref identifier="str" optional>str</autoref></code>
15995
+ <code>name</code>
15996
+ </td>
15997
+ <td>
15998
+ <code>str</code>
15539
15999
  </td>
15540
16000
  <td>
15541
16001
  <div class="doc-md-description">
@@ -15547,9 +16007,11 @@ document$.subscribe(() => { lightbox.reload() });
15547
16007
  </td>
15548
16008
  </tr>
15549
16009
  <tr class="doc-section-item">
15550
- <td><code>source</code></td>
15551
16010
  <td>
15552
- <code><autoref identifier="str" optional>str</autoref></code>
16011
+ <code>source</code>
16012
+ </td>
16013
+ <td>
16014
+ <code>str</code>
15553
16015
  </td>
15554
16016
  <td>
15555
16017
  <div class="doc-md-description">
@@ -15575,7 +16037,7 @@ document$.subscribe(() => { lightbox.reload() });
15575
16037
  <tbody>
15576
16038
  <tr class="doc-section-item">
15577
16039
  <td>
15578
- <code><autoref identifier="nautobot.core.testing.JobClassInfo" optional hover>JobClassInfo</autoref></code>
16040
+ <code><span title="nautobot.core.testing.JobClassInfo">JobClassInfo</span></code>
15579
16041
  </td>
15580
16042
  <td>
15581
16043
  <div class="doc-md-description">
@@ -15601,7 +16063,7 @@ document$.subscribe(() => { lightbox.reload() });
15601
16063
 
15602
16064
  <div class="doc doc-contents ">
15603
16065
 
15604
- <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
16066
+ <p>Take a dictionary of test data (suitable for comparison to an instance) and return a dict suitable for POSTing.</p>
15605
16067
 
15606
16068
  </div>
15607
16069
 
@@ -15618,7 +16080,7 @@ document$.subscribe(() => { lightbox.reload() });
15618
16080
 
15619
16081
  <div class="doc doc-contents ">
15620
16082
 
15621
- <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
16083
+ <p>Provide a common interface to run Nautobot jobs as part of unit tests.</p>
15622
16084
 
15623
16085
 
15624
16086
  <p><span class="doc-section-title">Parameters:</span></p>
@@ -15633,9 +16095,11 @@ document$.subscribe(() => { lightbox.reload() });
15633
16095
  </thead>
15634
16096
  <tbody>
15635
16097
  <tr class="doc-section-item">
15636
- <td><code>job</code></td>
15637
16098
  <td>
15638
- <code><autoref identifier="nautobot.extras.models.Job" optional hover>Job</autoref></code>
16099
+ <code>job</code>
16100
+ </td>
16101
+ <td>
16102
+ <code><span title="nautobot.extras.models.Job">Job</span></code>
15639
16103
  </td>
15640
16104
  <td>
15641
16105
  <div class="doc-md-description">
@@ -15647,9 +16111,11 @@ document$.subscribe(() => { lightbox.reload() });
15647
16111
  </td>
15648
16112
  </tr>
15649
16113
  <tr class="doc-section-item">
15650
- <td><code>username</code></td>
15651
16114
  <td>
15652
- <code><autoref identifier="str" optional>str</autoref></code>
16115
+ <code>username</code>
16116
+ </td>
16117
+ <td>
16118
+ <code>str</code>
15653
16119
  </td>
15654
16120
  <td>
15655
16121
  <div class="doc-md-description">
@@ -15661,9 +16127,11 @@ document$.subscribe(() => { lightbox.reload() });
15661
16127
  </td>
15662
16128
  </tr>
15663
16129
  <tr class="doc-section-item">
15664
- <td><code>profile</code></td>
15665
16130
  <td>
15666
- <code><autoref identifier="bool" optional>bool</autoref></code>
16131
+ <code>profile</code>
16132
+ </td>
16133
+ <td>
16134
+ <code>bool</code>
15667
16135
  </td>
15668
16136
  <td>
15669
16137
  <div class="doc-md-description">
@@ -15691,7 +16159,7 @@ document$.subscribe(() => { lightbox.reload() });
15691
16159
  <tr class="doc-section-item">
15692
16160
  <td><code>**kwargs</code></td>
15693
16161
  <td>
15694
- <code><autoref identifier="any" optional>any</autoref></code>
16162
+ <code>any</code>
15695
16163
  </td>
15696
16164
  <td>
15697
16165
  <div class="doc-md-description">
@@ -15714,7 +16182,7 @@ document$.subscribe(() => { lightbox.reload() });
15714
16182
  <tbody>
15715
16183
  <tr class="doc-section-item">
15716
16184
  <td>
15717
- <code><autoref identifier="nautobot.extras.models.JobResult" optional hover>JobResult</autoref></code>
16185
+ <code><span title="nautobot.extras.models.JobResult">JobResult</span></code>
15718
16186
  </td>
15719
16187
  <td>
15720
16188
  <div class="doc-md-description">
@@ -15879,7 +16347,7 @@ document$.subscribe(() => { lightbox.reload() });
15879
16347
  </div>
15880
16348
 
15881
16349
 
15882
- <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>
16350
+ <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>
15883
16351
 
15884
16352
 
15885
16353
  <script src="../../../assets/javascripts/bundle.88dd0f4e.min.js"></script>