nautobot 2.1.0__py3-none-any.whl → 2.1.1__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.
Files changed (815) hide show
  1. nautobot/__init__.py +1 -3
  2. nautobot/apps/__init__.py +1 -2
  3. nautobot/apps/admin.py +0 -1
  4. nautobot/apps/api.py +0 -1
  5. nautobot/apps/change_logging.py +0 -1
  6. nautobot/apps/choices.py +0 -1
  7. nautobot/apps/datasources.py +0 -1
  8. nautobot/apps/exceptions.py +0 -1
  9. nautobot/apps/factory.py +0 -1
  10. nautobot/apps/filters.py +6 -9
  11. nautobot/apps/forms.py +1 -2
  12. nautobot/apps/graphql.py +0 -1
  13. nautobot/apps/jobs.py +0 -1
  14. nautobot/apps/models.py +1 -2
  15. nautobot/apps/querysets.py +0 -1
  16. nautobot/apps/secrets.py +0 -1
  17. nautobot/apps/tables.py +0 -1
  18. nautobot/apps/testing.py +0 -1
  19. nautobot/apps/ui.py +1 -3
  20. nautobot/apps/urls.py +0 -1
  21. nautobot/apps/utils.py +0 -1
  22. nautobot/apps/views.py +0 -1
  23. nautobot/circuits/api/serializers.py +1 -1
  24. nautobot/circuits/api/urls.py +1 -1
  25. nautobot/circuits/api/views.py +2 -1
  26. nautobot/circuits/apps.py +1 -1
  27. nautobot/circuits/choices.py +0 -1
  28. nautobot/circuits/factory.py +1 -1
  29. nautobot/circuits/filters.py +2 -1
  30. nautobot/circuits/forms.py +2 -2
  31. nautobot/circuits/homepage.py +0 -1
  32. nautobot/circuits/migrations/0001_initial_part_1.py +3 -1
  33. nautobot/circuits/migrations/0002_initial_part_2.py +2 -1
  34. nautobot/circuits/migrations/0003_auto_slug.py +1 -0
  35. nautobot/circuits/migrations/0005_providernetwork.py +4 -2
  36. nautobot/circuits/migrations/0013_alter_circuittermination__path.py +1 -0
  37. nautobot/circuits/migrations/0014_related_name_changes.py +1 -0
  38. nautobot/circuits/migrations/0016_tagsfield.py +1 -0
  39. nautobot/circuits/migrations/0018_status_nonnullable.py +1 -0
  40. nautobot/circuits/models.py +2 -2
  41. nautobot/circuits/navigation.py +0 -1
  42. nautobot/circuits/signals.py +3 -2
  43. nautobot/circuits/tables.py +1 -0
  44. nautobot/circuits/tests/integration/test_relationships.py +1 -1
  45. nautobot/circuits/tests/test_api.py +1 -1
  46. nautobot/circuits/tests/test_urls.py +1 -1
  47. nautobot/circuits/tests/test_views.py +1 -0
  48. nautobot/circuits/urls.py +1 -1
  49. nautobot/circuits/views.py +0 -2
  50. nautobot/core/__init__.py +0 -1
  51. nautobot/core/admin.py +3 -5
  52. nautobot/core/api/__init__.py +0 -1
  53. nautobot/core/api/metadata.py +4 -6
  54. nautobot/core/api/pagination.py +2 -2
  55. nautobot/core/api/parsers.py +1 -3
  56. nautobot/core/api/renderers.py +0 -1
  57. nautobot/core/api/schema.py +2 -3
  58. nautobot/core/api/serializers.py +9 -7
  59. nautobot/core/api/urls.py +1 -5
  60. nautobot/core/api/utils.py +4 -6
  61. nautobot/core/api/versioning.py +1 -1
  62. nautobot/core/api/views.py +22 -91
  63. nautobot/core/apps/__init__.py +5 -7
  64. nautobot/core/authentication.py +1 -1
  65. nautobot/core/celery/__init__.py +1 -2
  66. nautobot/core/celery/control.py +0 -2
  67. nautobot/core/celery/encoders.py +0 -1
  68. nautobot/core/celery/schedulers.py +1 -2
  69. nautobot/core/celery/task.py +1 -1
  70. nautobot/core/checks.py +1 -2
  71. nautobot/core/choices.py +2 -2
  72. nautobot/core/cli/__init__.py +2 -3
  73. nautobot/core/context_processors.py +1 -5
  74. nautobot/core/factory.py +2 -2
  75. nautobot/core/filters.py +1 -1
  76. nautobot/core/forms/fields.py +2 -4
  77. nautobot/core/forms/forms.py +1 -1
  78. nautobot/core/forms/search.py +1 -1
  79. nautobot/core/forms/utils.py +1 -1
  80. nautobot/core/graphql/__init__.py +2 -3
  81. nautobot/core/graphql/generators.py +1 -1
  82. nautobot/core/graphql/schema.py +6 -7
  83. nautobot/core/graphql/schema_init.py +0 -1
  84. nautobot/core/graphql/utils.py +1 -2
  85. nautobot/core/management/commands/generate_test_data.py +4 -6
  86. nautobot/core/management/commands/makemigrations.py +1 -1
  87. nautobot/core/management/commands/migrate.py +1 -1
  88. nautobot/core/management/commands/post_upgrade.py +0 -15
  89. nautobot/core/management/commands/refresh_content_type_cache.py +1 -2
  90. nautobot/core/management/commands/send_installation_metrics.py +2 -3
  91. nautobot/core/management/commands/validate_models.py +1 -1
  92. nautobot/core/middleware.py +2 -2
  93. nautobot/core/models/__init__.py +12 -12
  94. nautobot/core/models/fields.py +1 -1
  95. nautobot/core/models/generics.py +2 -3
  96. nautobot/core/models/managers.py +0 -1
  97. nautobot/core/models/name_color_content_types.py +2 -2
  98. nautobot/core/models/tree_queries.py +2 -4
  99. nautobot/core/models/validators.py +1 -1
  100. nautobot/core/releases.py +1 -1
  101. nautobot/core/runner/importer.py +2 -25
  102. nautobot/core/runner/runner.py +2 -2
  103. nautobot/core/runner/settings.py +1 -1
  104. nautobot/core/settings.py +9 -22
  105. nautobot/core/settings_funcs.py +1 -2
  106. nautobot/core/signals.py +0 -1
  107. nautobot/core/tables.py +1 -1
  108. nautobot/core/templates/graphene/graphiql.html +7 -1
  109. nautobot/core/templates/inc/footer.html +0 -7
  110. nautobot/core/templates/nautobot_config.py.j2 +0 -4
  111. nautobot/core/templatetags/bootstrapped_goodies_tags.py +6 -3
  112. nautobot/core/templatetags/buttons.py +1 -1
  113. nautobot/core/templatetags/helpers.py +5 -16
  114. nautobot/core/testing/__init__.py +1 -2
  115. nautobot/core/testing/api.py +2 -4
  116. nautobot/core/testing/filters.py +1 -1
  117. nautobot/core/testing/integration.py +2 -2
  118. nautobot/core/testing/migrations.py +1 -0
  119. nautobot/core/testing/mixins.py +1 -2
  120. nautobot/core/testing/schema.py +1 -1
  121. nautobot/core/testing/utils.py +3 -3
  122. nautobot/core/testing/views.py +4 -7
  123. nautobot/core/tests/integration/test_plugin_home.py +2 -1
  124. nautobot/core/tests/integration/test_plugin_navbar.py +1 -1
  125. nautobot/core/tests/nautobot_config.py +3 -3
  126. nautobot/core/tests/runner.py +3 -4
  127. nautobot/core/tests/test_api.py +6 -51
  128. nautobot/core/tests/test_authentication.py +2 -3
  129. nautobot/core/tests/test_checks.py +1 -2
  130. nautobot/core/tests/test_config.py +1 -1
  131. nautobot/core/tests/test_csv.py +3 -3
  132. nautobot/core/tests/test_factory.py +1 -3
  133. nautobot/core/tests/test_filters.py +3 -7
  134. nautobot/core/tests/test_forms.py +3 -6
  135. nautobot/core/tests/test_graphql.py +13 -14
  136. nautobot/core/tests/test_jinja_filters.py +4 -4
  137. nautobot/core/tests/test_jobs.py +1 -1
  138. nautobot/core/tests/test_models.py +1 -2
  139. nautobot/core/tests/test_navigations.py +2 -1
  140. nautobot/core/tests/test_openapi.py +0 -1
  141. nautobot/core/tests/test_paginator.py +2 -2
  142. nautobot/core/tests/test_releases.py +2 -2
  143. nautobot/core/tests/test_tables.py +1 -1
  144. nautobot/core/tests/test_templatetags_helpers.py +3 -2
  145. nautobot/core/tests/test_templatetags_netutils.py +1 -2
  146. nautobot/core/tests/test_utils.py +4 -8
  147. nautobot/core/tests/test_views.py +5 -2
  148. nautobot/core/tests/test_views_utils.py +0 -1
  149. nautobot/core/urls.py +4 -4
  150. nautobot/core/utils/color.py +1 -1
  151. nautobot/core/utils/data.py +1 -2
  152. nautobot/core/utils/filtering.py +4 -5
  153. nautobot/core/utils/git.py +3 -2
  154. nautobot/core/utils/logging.py +2 -1
  155. nautobot/core/utils/migrations.py +1 -0
  156. nautobot/core/utils/permissions.py +2 -4
  157. nautobot/core/views/__init__.py +5 -5
  158. nautobot/core/views/generic.py +4 -4
  159. nautobot/core/views/mixins.py +11 -12
  160. nautobot/core/views/renderers.py +1 -1
  161. nautobot/core/views/utils.py +2 -1
  162. nautobot/dcim/api/urls.py +1 -1
  163. nautobot/dcim/api/views.py +6 -5
  164. nautobot/dcim/apps.py +1 -1
  165. nautobot/dcim/choices.py +0 -1
  166. nautobot/dcim/constants.py +0 -1
  167. nautobot/dcim/elevations.py +1 -2
  168. nautobot/dcim/factory.py +10 -13
  169. nautobot/dcim/fields.py +1 -0
  170. nautobot/dcim/filters/__init__.py +2 -3
  171. nautobot/dcim/filters/mixins.py +1 -1
  172. nautobot/dcim/forms.py +10 -12
  173. nautobot/dcim/graphql/types.py +16 -17
  174. nautobot/dcim/migrations/0001_initial_part_1.py +4 -2
  175. nautobot/dcim/migrations/0002_initial_part_2.py +2 -1
  176. nautobot/dcim/migrations/0003_initial_part_3.py +2 -1
  177. nautobot/dcim/migrations/0004_initial_part_4.py +2 -1
  178. nautobot/dcim/migrations/0006_auto_slug.py +1 -0
  179. nautobot/dcim/migrations/0009_add_natural_indexing.py +1 -0
  180. nautobot/dcim/migrations/0010_interface_status.py +1 -0
  181. nautobot/dcim/migrations/0011_interface_status_data_migration.py +1 -0
  182. nautobot/dcim/migrations/0013_location_location_type.py +4 -2
  183. nautobot/dcim/migrations/0014_location_status_data_migration.py +1 -0
  184. nautobot/dcim/migrations/0016_device_components__timestamp_data_migration.py +0 -1
  185. nautobot/dcim/migrations/0018_device_redundancy_group.py +4 -2
  186. nautobot/dcim/migrations/0019_device_redundancy_group_data_migration.py +1 -0
  187. nautobot/dcim/migrations/0022_interface_redundancy_group.py +3 -1
  188. nautobot/dcim/migrations/0023_interface_redundancy_group_data_migration.py +1 -0
  189. nautobot/dcim/migrations/0024_move_site_fields_to_location_model.py +2 -1
  190. nautobot/dcim/migrations/0027_alter_interface_mac_address.py +1 -0
  191. nautobot/dcim/migrations/0028_alter_device_and_rack_role_add_new_role.py +1 -0
  192. nautobot/dcim/migrations/0029_device_and_rack_roles_data_migrations.py +1 -0
  193. nautobot/dcim/migrations/0033_add_tree_managers_and_foreign_keys_pre_data_migration.py +1 -0
  194. nautobot/dcim/migrations/0034_migrate_region_and_site_data_to_locations.py +1 -2
  195. nautobot/dcim/migrations/0038_fixup_fks_and_related_names.py +1 -0
  196. nautobot/dcim/migrations/0039_related_name_changes.py +1 -0
  197. nautobot/dcim/migrations/0042_alter_location_managers.py +1 -0
  198. nautobot/dcim/migrations/0044_tagsfield.py +1 -0
  199. nautobot/dcim/migrations/0047_status_nonnullable.py +1 -0
  200. nautobot/dcim/migrations/0051_interface_redundancy_group_nullable_status.py +1 -0
  201. nautobot/dcim/models/cables.py +3 -3
  202. nautobot/dcim/models/device_component_templates.py +6 -6
  203. nautobot/dcim/models/devices.py +9 -4
  204. nautobot/dcim/models/locations.py +6 -1
  205. nautobot/dcim/models/power.py +1 -1
  206. nautobot/dcim/models/racks.py +5 -4
  207. nautobot/dcim/navigation.py +0 -1
  208. nautobot/dcim/signals.py +3 -2
  209. nautobot/dcim/tables/__init__.py +5 -4
  210. nautobot/dcim/tables/cables.py +1 -0
  211. nautobot/dcim/tables/devices.py +1 -0
  212. nautobot/dcim/tables/power.py +1 -0
  213. nautobot/dcim/tables/racks.py +2 -1
  214. nautobot/dcim/tests/test_api.py +5 -7
  215. nautobot/dcim/tests/test_cablepaths.py +0 -1
  216. nautobot/dcim/tests/test_filters.py +14 -12
  217. nautobot/dcim/tests/test_forms.py +2 -3
  218. nautobot/dcim/tests/test_migrations.py +2 -2
  219. nautobot/dcim/tests/test_models.py +2 -2
  220. nautobot/dcim/tests/test_views.py +7 -8
  221. nautobot/dcim/urls.py +3 -2
  222. nautobot/dcim/utils.py +1 -1
  223. nautobot/dcim/views.py +4 -3
  224. nautobot/extras/admin.py +2 -1
  225. nautobot/extras/api/customfields.py +0 -2
  226. nautobot/extras/api/mixins.py +0 -1
  227. nautobot/extras/api/serializers.py +4 -4
  228. nautobot/extras/api/urls.py +1 -1
  229. nautobot/extras/api/views.py +1 -1
  230. nautobot/extras/apps.py +3 -4
  231. nautobot/extras/choices.py +3 -4
  232. nautobot/extras/context_managers.py +1 -1
  233. nautobot/extras/datasources/__init__.py +1 -1
  234. nautobot/extras/datasources/git.py +6 -6
  235. nautobot/extras/datasources/utils.py +0 -1
  236. nautobot/extras/factory.py +1 -1
  237. nautobot/extras/filters/__init__.py +2 -3
  238. nautobot/extras/filters/customfields.py +0 -1
  239. nautobot/extras/filters/mixins.py +1 -1
  240. nautobot/extras/forms/__init__.py +3 -4
  241. nautobot/extras/forms/base.py +1 -1
  242. nautobot/extras/forms/forms.py +3 -3
  243. nautobot/extras/forms/mixins.py +1 -1
  244. nautobot/extras/graphql/types.py +2 -2
  245. nautobot/extras/health_checks.py +1 -1
  246. nautobot/extras/jobs.py +1 -2
  247. nautobot/extras/management/__init__.py +0 -1
  248. nautobot/extras/management/commands/refresh_dynamic_group_member_caches.py +1 -1
  249. nautobot/extras/management/commands/runjob.py +3 -3
  250. nautobot/extras/management/commands/webhook_receiver.py +1 -2
  251. nautobot/extras/migrations/0001_initial_part_1.py +2 -1
  252. nautobot/extras/migrations/0002_initial_part_2.py +2 -1
  253. nautobot/extras/migrations/0003_initial_part_3.py +1 -0
  254. nautobot/extras/migrations/0006_graphqlquery.py +2 -1
  255. nautobot/extras/migrations/0007_configcontextschema.py +3 -1
  256. nautobot/extras/migrations/0009_computedfield.py +3 -1
  257. nautobot/extras/migrations/0011_fileattachment_fileproxy.py +3 -1
  258. nautobot/extras/migrations/0012_healthchecktestmodel.py +2 -1
  259. nautobot/extras/migrations/0014_auto_slug.py +1 -0
  260. nautobot/extras/migrations/0015_scheduled_job.py +3 -1
  261. nautobot/extras/migrations/0016_secret.py +4 -2
  262. nautobot/extras/migrations/0017_joblogentry.py +2 -1
  263. nautobot/extras/migrations/0018_joblog_data_migration.py +2 -1
  264. nautobot/extras/migrations/0021_customfield_changelog_data.py +3 -2
  265. nautobot/extras/migrations/0022_objectchange_object_datav2.py +1 -0
  266. nautobot/extras/migrations/0023_job_model.py +4 -2
  267. nautobot/extras/migrations/0026_job_add_gitrepository_fk.py +1 -0
  268. nautobot/extras/migrations/0029_dynamicgroup.py +3 -1
  269. nautobot/extras/migrations/0031_tag_content_types.py +1 -0
  270. nautobot/extras/migrations/0032_tag_content_types_data_migration.py +1 -0
  271. nautobot/extras/migrations/0040_dynamicgroup__dynamicgroupmembership.py +2 -1
  272. nautobot/extras/migrations/0041_jobresult_job_kwargs.py +1 -0
  273. nautobot/extras/migrations/0043_note.py +3 -1
  274. nautobot/extras/migrations/0044_add_job_hook.py +3 -1
  275. nautobot/extras/migrations/0046_populate_custom_field_slug_label.py +1 -0
  276. nautobot/extras/migrations/0047_enforce_custom_field_slug.py +1 -0
  277. nautobot/extras/migrations/0051_add_job_task_queues.py +1 -0
  278. nautobot/extras/migrations/0055_configcontext_dynamic_groups.py +1 -0
  279. nautobot/extras/migrations/0057_jobbutton.py +3 -1
  280. nautobot/extras/migrations/0065_configcontext_data_migrations.py +1 -0
  281. nautobot/extras/migrations/0067_migrate_job_result_status.py +0 -1
  282. nautobot/extras/migrations/0068_jobresult__add_celery_fields.py +1 -0
  283. nautobot/extras/migrations/0071_replace_related_names.py +1 -0
  284. nautobot/extras/migrations/0077_migrate_custom_field_data.py +1 -0
  285. nautobot/extras/migrations/0078_remove_name_field_and_make_label_field_non_nullable.py +1 -0
  286. nautobot/extras/migrations/0080_tagsfield.py +1 -0
  287. nautobot/extras/migrations/0082_rename_relationship_name_to_label.py +1 -0
  288. nautobot/extras/migrations/0083_ensure_relationship_keys_are_unique.py +1 -0
  289. nautobot/extras/migrations/0090_joblogentry__log_level_data_migration.py +0 -1
  290. nautobot/extras/migrations/0095_ensure_note_timestamps_are_unique.py +4 -5
  291. nautobot/extras/migrations/0097_alter_job_result_remove_result.py +1 -0
  292. nautobot/extras/migrations/0100_fileproxy_job_result.py +1 -0
  293. nautobot/extras/migrations/0101_externalintegration.py +3 -1
  294. nautobot/extras/models/__init__.py +2 -3
  295. nautobot/extras/models/change_logging.py +0 -1
  296. nautobot/extras/models/customfields.py +4 -4
  297. nautobot/extras/models/datasources.py +2 -2
  298. nautobot/extras/models/groups.py +3 -4
  299. nautobot/extras/models/jobs.py +12 -6
  300. nautobot/extras/models/models.py +2 -2
  301. nautobot/extras/models/relationships.py +3 -4
  302. nautobot/extras/models/roles.py +1 -1
  303. nautobot/extras/models/secrets.py +1 -3
  304. nautobot/extras/models/tags.py +0 -1
  305. nautobot/extras/navigation.py +0 -1
  306. nautobot/extras/plugins/__init__.py +6 -7
  307. nautobot/extras/plugins/tables.py +0 -1
  308. nautobot/extras/plugins/utils.py +1 -1
  309. nautobot/extras/plugins/views.py +1 -2
  310. nautobot/extras/querysets.py +3 -3
  311. nautobot/extras/signals.py +6 -7
  312. nautobot/extras/tables.py +4 -4
  313. nautobot/extras/tasks.py +1 -2
  314. nautobot/extras/templates/extras/configcontext_edit.html +1 -1
  315. nautobot/extras/templates/extras/graphqlquery.html +4 -2
  316. nautobot/extras/templates/extras/secretsgroup_edit.html +40 -45
  317. nautobot/extras/templatetags/custom_links.py +2 -3
  318. nautobot/extras/templatetags/job_buttons.py +2 -3
  319. nautobot/extras/templatetags/log_levels.py +0 -1
  320. nautobot/extras/templatetags/plugins.py +1 -1
  321. nautobot/extras/test_jobs/api_test_job.py +1 -2
  322. nautobot/extras/test_jobs/atomic_transaction.py +1 -2
  323. nautobot/extras/test_jobs/dry_run.py +1 -2
  324. nautobot/extras/test_jobs/fail.py +1 -2
  325. nautobot/extras/test_jobs/field_order.py +1 -1
  326. nautobot/extras/test_jobs/file_upload_fail.py +1 -2
  327. nautobot/extras/test_jobs/file_upload_pass.py +1 -2
  328. nautobot/extras/test_jobs/has_sensitive_variables.py +1 -2
  329. nautobot/extras/test_jobs/ipaddress_vars.py +1 -4
  330. nautobot/extras/test_jobs/job_button_receiver.py +1 -2
  331. nautobot/extras/test_jobs/job_hook_receiver.py +1 -2
  332. nautobot/extras/test_jobs/job_variables.py +1 -2
  333. nautobot/extras/test_jobs/location_with_custom_field.py +1 -2
  334. nautobot/extras/test_jobs/log_redaction.py +1 -2
  335. nautobot/extras/test_jobs/log_skip_db_logging.py +1 -2
  336. nautobot/extras/test_jobs/modify_db.py +1 -2
  337. nautobot/extras/test_jobs/object_var_optional.py +1 -2
  338. nautobot/extras/test_jobs/object_var_required.py +1 -2
  339. nautobot/extras/test_jobs/object_vars.py +1 -2
  340. nautobot/extras/test_jobs/pass.py +1 -2
  341. nautobot/extras/test_jobs/profiling.py +1 -2
  342. nautobot/extras/tests/integration/__init__.py +1 -1
  343. nautobot/extras/tests/integration/test_plugins.py +5 -4
  344. nautobot/extras/tests/integration/test_tagfilter.py +1 -1
  345. nautobot/extras/tests/test_api.py +7 -9
  346. nautobot/extras/tests/test_changelog.py +3 -2
  347. nautobot/extras/tests/test_context_managers.py +6 -3
  348. nautobot/extras/tests/test_customfields.py +2 -2
  349. nautobot/extras/tests/test_datasources.py +1 -1
  350. nautobot/extras/tests/test_dynamicgroups.py +2 -3
  351. nautobot/extras/tests/test_filters.py +2 -2
  352. nautobot/extras/tests/test_forms.py +5 -6
  353. nautobot/extras/tests/test_git.py +1 -1
  354. nautobot/extras/tests/test_job_variables.py +0 -1
  355. nautobot/extras/tests/test_jobs.py +5 -5
  356. nautobot/extras/tests/test_models.py +2 -2
  357. nautobot/extras/tests/test_notes.py +0 -1
  358. nautobot/extras/tests/test_plugins.py +8 -9
  359. nautobot/extras/tests/test_relationships.py +3 -3
  360. nautobot/extras/tests/test_tags.py +1 -1
  361. nautobot/extras/tests/test_views.py +8 -9
  362. nautobot/extras/tests/test_webhooks.py +4 -5
  363. nautobot/extras/utils.py +11 -9
  364. nautobot/extras/views.py +3 -3
  365. nautobot/generate_secret_key.py +1 -1
  366. nautobot/ipam/api/serializers.py +1 -2
  367. nautobot/ipam/api/urls.py +1 -1
  368. nautobot/ipam/api/views.py +1 -0
  369. nautobot/ipam/apps.py +2 -1
  370. nautobot/ipam/factory.py +6 -9
  371. nautobot/ipam/fields.py +1 -1
  372. nautobot/ipam/filters.py +4 -3
  373. nautobot/ipam/formfields.py +1 -2
  374. nautobot/ipam/forms.py +4 -3
  375. nautobot/ipam/graphql/types.py +1 -1
  376. nautobot/ipam/homepage.py +0 -1
  377. nautobot/ipam/lookups.py +2 -3
  378. nautobot/ipam/migrations/0002_initial_part_2.py +2 -1
  379. nautobot/ipam/migrations/0003_remove_max_length.py +1 -0
  380. nautobot/ipam/migrations/0004_fixup_p2p_broadcast.py +0 -1
  381. nautobot/ipam/migrations/0005_auto_slug.py +1 -0
  382. nautobot/ipam/migrations/0010_alter_ipam_role_add_new_role.py +1 -0
  383. nautobot/ipam/migrations/0011_migrate_ipam_role_data.py +1 -0
  384. nautobot/ipam/migrations/0020_related_name_changes.py +1 -0
  385. nautobot/ipam/migrations/0022_aggregate_to_prefix_data_migration.py +1 -2
  386. nautobot/ipam/migrations/0024_interface_to_ipaddress_m2m.py +2 -1
  387. nautobot/ipam/migrations/0025_interface_ipaddress_m2m_data_migration.py +1 -0
  388. nautobot/ipam/migrations/0028_tagsfield.py +1 -0
  389. nautobot/ipam/migrations/0030_ipam__namespaces.py +3 -1
  390. nautobot/ipam/migrations/0034_status_nonnullable.py +1 -0
  391. nautobot/ipam/migrations/0037_data_migration_vlan_group_name_uniqueness.py +0 -1
  392. nautobot/ipam/models.py +7 -7
  393. nautobot/ipam/navigation.py +0 -1
  394. nautobot/ipam/querysets.py +2 -2
  395. nautobot/ipam/tables.py +4 -3
  396. nautobot/ipam/tests/test_api.py +2 -2
  397. nautobot/ipam/tests/test_filters.py +7 -7
  398. nautobot/ipam/tests/test_migrations.py +1 -2
  399. nautobot/ipam/tests/test_models.py +2 -2
  400. nautobot/ipam/tests/test_ordering.py +1 -1
  401. nautobot/ipam/tests/test_querysets.py +2 -2
  402. nautobot/ipam/tests/test_views.py +6 -6
  403. nautobot/ipam/urls.py +1 -0
  404. nautobot/ipam/utils/migrations.py +0 -1
  405. nautobot/ipam/views.py +6 -6
  406. nautobot/project-static/docs/404.html +1 -43
  407. nautobot/project-static/docs/apps/index.html +1 -43
  408. nautobot/project-static/docs/apps/nautobot-apps.html +1 -43
  409. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +389 -431
  410. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +12 -54
  411. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +2452 -2486
  412. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +1 -43
  413. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +90 -132
  414. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +1 -43
  415. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +1 -43
  416. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +1 -43
  417. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +1 -43
  418. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +26 -68
  419. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +993 -1035
  420. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +170 -212
  421. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +1789 -1831
  422. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +961 -1003
  423. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +1 -43
  424. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +1 -43
  425. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +2 -44
  426. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +6904 -6946
  427. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +974 -1016
  428. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +1 -43
  429. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +1159 -1197
  430. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1796 -1832
  431. nautobot/project-static/docs/development/apps/api/configuration-view.html +1 -43
  432. nautobot/project-static/docs/development/apps/api/database-backend-config.html +1 -43
  433. nautobot/project-static/docs/development/apps/api/models/django-admin.html +1 -43
  434. nautobot/project-static/docs/development/apps/api/models/global-search.html +1 -43
  435. nautobot/project-static/docs/development/apps/api/models/graphql.html +1 -43
  436. nautobot/project-static/docs/development/apps/api/models/index.html +1 -43
  437. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +1 -43
  438. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +1 -43
  439. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +1 -43
  440. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +1 -43
  441. nautobot/project-static/docs/development/apps/api/platform-features/index.html +3 -45
  442. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +1 -43
  443. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +1 -43
  444. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +5 -43
  445. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +1 -43
  446. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +1 -43
  447. nautobot/project-static/docs/development/apps/api/prometheus.html +1 -43
  448. nautobot/project-static/docs/development/apps/api/setup.html +1 -43
  449. nautobot/project-static/docs/development/apps/api/testing.html +1 -43
  450. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +1 -43
  451. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +1 -43
  452. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +1 -43
  453. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +1 -43
  454. nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +1 -43
  455. nautobot/project-static/docs/development/apps/api/views/base-template.html +1 -43
  456. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +6 -48
  457. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +1 -43
  458. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +1 -43
  459. nautobot/project-static/docs/development/apps/api/views/index.html +1 -43
  460. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +1 -43
  461. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +1 -43
  462. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +1 -43
  463. nautobot/project-static/docs/development/apps/api/views/notes.html +3 -45
  464. nautobot/project-static/docs/development/apps/api/views/rest-api.html +1 -43
  465. nautobot/project-static/docs/development/apps/api/views/urls.html +1 -43
  466. nautobot/project-static/docs/development/apps/api/views/view-overrides.html +13 -5357
  467. nautobot/project-static/docs/development/apps/index.html +1 -43
  468. nautobot/project-static/docs/development/apps/migration/code-updates.html +1 -43
  469. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +1 -43
  470. nautobot/project-static/docs/development/apps/migration/from-v1.html +1 -44
  471. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +1 -43
  472. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +1 -43
  473. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +1 -43
  474. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +1 -43
  475. nautobot/project-static/docs/development/apps/porting-from-netbox.html +1 -43
  476. nautobot/project-static/docs/development/core/application-registry.html +1 -43
  477. nautobot/project-static/docs/development/core/best-practices.html +1 -43
  478. nautobot/project-static/docs/development/core/bootstrap-ui.html +1 -43
  479. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +1 -43
  480. nautobot/project-static/docs/development/core/extending-models.html +1 -43
  481. nautobot/project-static/docs/development/core/generic-views.html +1 -43
  482. nautobot/project-static/docs/development/core/getting-started.html +108 -257
  483. nautobot/project-static/docs/development/core/homepage.html +1 -43
  484. nautobot/project-static/docs/development/core/index.html +1 -43
  485. nautobot/project-static/docs/development/core/model-features.html +1 -43
  486. nautobot/project-static/docs/development/core/natural-keys.html +1 -43
  487. nautobot/project-static/docs/development/core/navigation-menu.html +1 -43
  488. nautobot/project-static/docs/development/core/react-ui.html +13 -5640
  489. nautobot/project-static/docs/development/core/release-checklist.html +4 -52
  490. nautobot/project-static/docs/development/core/role-internals.html +4 -46
  491. nautobot/project-static/docs/development/core/style-guide.html +61 -102
  492. nautobot/project-static/docs/development/core/templates.html +4 -46
  493. nautobot/project-static/docs/development/core/testing.html +1 -43
  494. nautobot/project-static/docs/development/core/user-preferences.html +1 -43
  495. nautobot/project-static/docs/development/index.html +1 -43
  496. nautobot/project-static/docs/development/jobs/index.html +1 -43
  497. nautobot/project-static/docs/development/jobs/migration/from-v1.html +1 -43
  498. nautobot/project-static/docs/development/react-ui.html +3 -3
  499. nautobot/project-static/docs/index.html +2 -47
  500. nautobot/project-static/docs/release-notes/index.html +1 -43
  501. nautobot/project-static/docs/release-notes/version-1.0.html +1 -43
  502. nautobot/project-static/docs/release-notes/version-1.1.html +1 -43
  503. nautobot/project-static/docs/release-notes/version-1.2.html +1 -43
  504. nautobot/project-static/docs/release-notes/version-1.3.html +1 -43
  505. nautobot/project-static/docs/release-notes/version-1.4.html +1 -43
  506. nautobot/project-static/docs/release-notes/version-1.5.html +1 -43
  507. nautobot/project-static/docs/release-notes/version-1.6.html +1 -43
  508. nautobot/project-static/docs/release-notes/version-2.0.html +1 -43
  509. nautobot/project-static/docs/release-notes/version-2.1.html +189 -77
  510. nautobot/project-static/docs/search/search_index.json +1 -1
  511. nautobot/project-static/docs/sitemap.xml +236 -251
  512. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  513. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +1 -43
  514. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +4 -46
  515. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +1 -43
  516. nautobot/project-static/docs/user-guide/administration/configuration/index.html +1 -43
  517. nautobot/project-static/docs/user-guide/administration/configuration/node-configuration.html +13 -5389
  518. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +1 -65
  519. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +1 -43
  520. nautobot/project-static/docs/user-guide/administration/guides/caching.html +1 -43
  521. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +1 -43
  522. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +1 -43
  523. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +1 -43
  524. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +1 -43
  525. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +1 -43
  526. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +1 -43
  527. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +1 -43
  528. nautobot/project-static/docs/user-guide/administration/installation/docker.html +1 -43
  529. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +1 -43
  530. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +1 -43
  531. nautobot/project-static/docs/user-guide/administration/installation/index.html +1 -64
  532. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +2 -57
  533. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +5 -94
  534. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +1 -43
  535. nautobot/project-static/docs/user-guide/administration/installation/services.html +1 -43
  536. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +1 -43
  537. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +1 -43
  538. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +76 -137
  539. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +1 -43
  540. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +1 -43
  541. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +1 -43
  542. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +1 -43
  543. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +1 -43
  544. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +1 -43
  545. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +1 -43
  546. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +1 -43
  547. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +1 -43
  548. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +1 -43
  549. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +1 -43
  550. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +1 -43
  551. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +1 -43
  552. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +1 -43
  553. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +1 -43
  554. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +1 -43
  555. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +1 -43
  556. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +1 -43
  557. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +1 -43
  558. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +1 -43
  559. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +1 -43
  560. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +1 -43
  561. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +1 -43
  562. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +2 -44
  563. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +1 -43
  564. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +1 -43
  565. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +1 -43
  566. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +1 -43
  567. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +1 -43
  568. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +1 -43
  569. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +1 -43
  570. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +1 -43
  571. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +1 -43
  572. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +1 -43
  573. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +1 -43
  574. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +1 -43
  575. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +1 -43
  576. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +1 -43
  577. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +1 -43
  578. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +1 -43
  579. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +1 -43
  580. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +1 -43
  581. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +1 -43
  582. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +1 -43
  583. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +1 -43
  584. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +1 -43
  585. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +1 -43
  586. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +1 -43
  587. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +1 -43
  588. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +1 -43
  589. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +1 -43
  590. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +1 -43
  591. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +1 -43
  592. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +1 -43
  593. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +1 -43
  594. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +1 -43
  595. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +1 -43
  596. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +1 -43
  597. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +1 -43
  598. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +1 -43
  599. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +1 -43
  600. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +1 -43
  601. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +1 -43
  602. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +1 -43
  603. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +1 -43
  604. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +1 -43
  605. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +1 -43
  606. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +1 -43
  607. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +1 -43
  608. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +1 -43
  609. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +1 -43
  610. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +1 -43
  611. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +1 -43
  612. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +1 -43
  613. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +1 -43
  614. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +1 -43
  615. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +23 -79
  616. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +1 -43
  617. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +1 -43
  618. nautobot/project-static/docs/user-guide/index.html +1 -43
  619. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +1 -43
  620. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +1 -43
  621. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +1 -43
  622. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +1 -43
  623. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +1 -43
  624. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +1 -43
  625. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +1 -43
  626. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +1 -43
  627. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +1 -43
  628. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +1 -43
  629. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +1 -43
  630. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +1 -43
  631. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +1 -43
  632. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +1 -43
  633. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +1 -43
  634. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +1 -43
  635. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +1 -43
  636. nautobot/project-static/docs/user-guide/platform-functionality/note.html +1 -43
  637. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +1 -43
  638. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +1 -43
  639. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +1 -43
  640. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +1 -43
  641. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +1 -43
  642. nautobot/project-static/docs/user-guide/platform-functionality/role.html +1 -43
  643. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +1 -43
  644. nautobot/project-static/docs/user-guide/platform-functionality/status.html +1 -43
  645. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +1 -43
  646. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +1 -43
  647. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +5 -43
  648. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +1 -43
  649. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +1 -43
  650. nautobot/project-static/js/theme.js +0 -5
  651. nautobot/tenancy/api/urls.py +1 -1
  652. nautobot/tenancy/api/views.py +1 -0
  653. nautobot/tenancy/factory.py +2 -2
  654. nautobot/tenancy/filters/__init__.py +1 -2
  655. nautobot/tenancy/forms.py +2 -2
  656. nautobot/tenancy/homepage.py +0 -1
  657. nautobot/tenancy/migrations/0001_initial.py +2 -1
  658. nautobot/tenancy/migrations/0002_auto_slug.py +1 -0
  659. nautobot/tenancy/migrations/0004_change_tree_manager_on_tree_models.py +1 -0
  660. nautobot/tenancy/migrations/0008_tagsfield.py +1 -0
  661. nautobot/tenancy/models.py +0 -1
  662. nautobot/tenancy/navigation.py +0 -1
  663. nautobot/tenancy/tables.py +1 -0
  664. nautobot/tenancy/tests/test_filters.py +5 -5
  665. nautobot/tenancy/urls.py +1 -0
  666. nautobot/tenancy/views.py +2 -2
  667. nautobot/users/admin.py +1 -2
  668. nautobot/users/api/urls.py +1 -1
  669. nautobot/users/api/views.py +6 -4
  670. nautobot/users/factory.py +1 -3
  671. nautobot/users/filters.py +4 -4
  672. nautobot/users/forms.py +1 -0
  673. nautobot/users/migrations/0004_alter_user_managers.py +1 -0
  674. nautobot/users/migrations/0008_make_object_permission_a_changelogged_model.py +22 -0
  675. nautobot/users/models.py +2 -2
  676. nautobot/users/tests/test_api.py +7 -6
  677. nautobot/users/tests/test_filters.py +0 -1
  678. nautobot/users/tests/test_models.py +0 -1
  679. nautobot/users/tests/test_password_ui.py +1 -1
  680. nautobot/users/views.py +2 -2
  681. nautobot/virtualization/api/urls.py +1 -1
  682. nautobot/virtualization/api/views.py +2 -1
  683. nautobot/virtualization/apps.py +1 -1
  684. nautobot/virtualization/choices.py +0 -1
  685. nautobot/virtualization/factory.py +1 -1
  686. nautobot/virtualization/filters.py +1 -1
  687. nautobot/virtualization/forms.py +6 -6
  688. nautobot/virtualization/homepage.py +0 -1
  689. nautobot/virtualization/migrations/0003_vminterface_verbose_name.py +1 -0
  690. nautobot/virtualization/migrations/0004_auto_slug.py +1 -0
  691. nautobot/virtualization/migrations/0005_add_natural_indexing.py +1 -0
  692. nautobot/virtualization/migrations/0006_vminterface_status.py +1 -0
  693. nautobot/virtualization/migrations/0007_vminterface_status_data_migration.py +1 -0
  694. nautobot/virtualization/migrations/0011_alter_vminterface_mac_address.py +1 -0
  695. nautobot/virtualization/migrations/0012_alter_virtualmachine_role_add_new_role.py +1 -0
  696. nautobot/virtualization/migrations/0013_migrate_virtualmachine_role_data.py +1 -0
  697. nautobot/virtualization/migrations/0018_related_name_changes.py +1 -0
  698. nautobot/virtualization/migrations/0021_tagsfield_and_vminterface_to_primarymodel.py +1 -0
  699. nautobot/virtualization/migrations/0025_status_nonnullable.py +1 -0
  700. nautobot/virtualization/models.py +1 -2
  701. nautobot/virtualization/navigation.py +0 -1
  702. nautobot/virtualization/signals.py +0 -1
  703. nautobot/virtualization/tables.py +1 -0
  704. nautobot/virtualization/tests/test_filters.py +3 -3
  705. nautobot/virtualization/tests/test_models.py +1 -1
  706. nautobot/virtualization/tests/test_views.py +2 -2
  707. nautobot/virtualization/urls.py +1 -0
  708. nautobot/virtualization/views.py +1 -1
  709. {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/METADATA +1 -1
  710. {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/RECORD +713 -814
  711. nautobot/core/management/commands/build_ui.py +0 -281
  712. nautobot/core/templates/base_react.html +0 -55
  713. nautobot/core/tests/test_cli.py +0 -25
  714. nautobot/ui/.eslintignore +0 -3
  715. nautobot/ui/.gitignore +0 -7
  716. nautobot/ui/.prettierignore +0 -6
  717. nautobot/ui/.prettierrc +0 -4
  718. nautobot/ui/README.md +0 -27
  719. nautobot/ui/config/env.js +0 -102
  720. nautobot/ui/config/getHttpsConfig.js +0 -68
  721. nautobot/ui/config/jest/babelTransform.js +0 -14
  722. nautobot/ui/config/jest/cssTransform.js +0 -12
  723. nautobot/ui/config/jest/fileTransform.js +0 -38
  724. nautobot/ui/config/modules.js +0 -151
  725. nautobot/ui/config/paths.js +0 -67
  726. nautobot/ui/config/webpack/persistentCache/createEnvironmentHash.js +0 -8
  727. nautobot/ui/config/webpack.config.js +0 -674
  728. nautobot/ui/config/webpackDevServer.config.js +0 -127
  729. nautobot/ui/jest.config.js +0 -35
  730. nautobot/ui/jsconfig.json +0 -4
  731. nautobot/ui/package-lock.json +0 -22947
  732. nautobot/ui/package.json +0 -119
  733. nautobot/ui/public/index.html +0 -47
  734. nautobot/ui/public/logo192.png +0 -0
  735. nautobot/ui/public/logo512.png +0 -0
  736. nautobot/ui/public/manifest.json +0 -25
  737. nautobot/ui/public/nautobot_logo.svg +0 -131
  738. nautobot/ui/public/robots.txt +0 -3
  739. nautobot/ui/scripts/build.js +0 -224
  740. nautobot/ui/scripts/start.js +0 -140
  741. nautobot/ui/scripts/test.js +0 -40
  742. nautobot/ui/src/App.js +0 -79
  743. nautobot/ui/src/components/AppFullWidthComponents.js +0 -8
  744. nautobot/ui/src/components/AppTab.js +0 -40
  745. nautobot/ui/src/components/Apps.js +0 -60
  746. nautobot/ui/src/components/FeedbackModal.js +0 -123
  747. nautobot/ui/src/components/FiltersPanel.js +0 -693
  748. nautobot/ui/src/components/HomeChangelogPanel.js +0 -98
  749. nautobot/ui/src/components/HomePanel.js +0 -58
  750. nautobot/ui/src/components/JobHistoryTable.js +0 -78
  751. nautobot/ui/src/components/Layout.js +0 -76
  752. nautobot/ui/src/components/LoadingWidget.js +0 -14
  753. nautobot/ui/src/components/Navbar.js +0 -204
  754. nautobot/ui/src/components/NotificationPopover.js +0 -27
  755. nautobot/ui/src/components/ObjectTable/ObjectListTable.js +0 -300
  756. nautobot/ui/src/components/ObjectTable/ObjectTable.js +0 -96
  757. nautobot/ui/src/components/ObjectTable/ObjectTableItem.js +0 -70
  758. nautobot/ui/src/components/ObjectTable/index.js +0 -3
  759. nautobot/ui/src/components/Pagination/PageNumberForm.js +0 -228
  760. nautobot/ui/src/components/Pagination/PageSizeForm.js +0 -65
  761. nautobot/ui/src/components/Pagination/Pagination.js +0 -67
  762. nautobot/ui/src/components/Pagination/index.js +0 -3
  763. nautobot/ui/src/components/ReferenceDataTag.js +0 -35
  764. nautobot/ui/src/components/Retrieve/RenderChangeLogsTab.js +0 -58
  765. nautobot/ui/src/components/Retrieve/RenderColumn.js +0 -30
  766. nautobot/ui/src/components/Retrieve/RenderGroup.js +0 -24
  767. nautobot/ui/src/components/Retrieve/RenderHeader.js +0 -125
  768. nautobot/ui/src/components/Retrieve/RenderNotesTab.js +0 -60
  769. nautobot/ui/src/components/Retrieve/RenderTable.js +0 -33
  770. nautobot/ui/src/components/Retrieve/RenderTabs.js +0 -56
  771. nautobot/ui/src/components/Retrieve/index.js +0 -7
  772. nautobot/ui/src/components/RouterButton.js +0 -10
  773. nautobot/ui/src/components/RouterLink.js +0 -10
  774. nautobot/ui/src/components/SidebarNav.js +0 -156
  775. nautobot/ui/src/components/__tests__/AppFullWidthComponents.test.js +0 -16
  776. nautobot/ui/src/components/__tests__/AppTab.test.js +0 -21
  777. nautobot/ui/src/components/__tests__/Apps.test.js +0 -14
  778. nautobot/ui/src/components/__tests__/Layout.test.js +0 -33
  779. nautobot/ui/src/components/__tests__/PageSizeForm.test.js +0 -13
  780. nautobot/ui/src/components/__tests__/Pagination.test.js +0 -43
  781. nautobot/ui/src/components/__tests__/Table.test.js +0 -39
  782. nautobot/ui/src/components/__tests__/TableItem.test.js +0 -39
  783. nautobot/ui/src/components/index.js +0 -4
  784. nautobot/ui/src/constants/apiPath.js +0 -13
  785. nautobot/ui/src/constants/icons.js +0 -15
  786. nautobot/ui/src/constants/size.js +0 -15
  787. nautobot/ui/src/file_templates/app_imports.js.j2 +0 -7
  788. nautobot/ui/src/file_templates/jsconfig-base.json +0 -12
  789. nautobot/ui/src/index.js +0 -65
  790. nautobot/ui/src/reportWebVitals.js +0 -15
  791. nautobot/ui/src/router.js +0 -77
  792. nautobot/ui/src/utils/api.js +0 -160
  793. nautobot/ui/src/utils/app-import.js +0 -15
  794. nautobot/ui/src/utils/color.js +0 -15
  795. nautobot/ui/src/utils/date.js +0 -14
  796. nautobot/ui/src/utils/index.js +0 -15
  797. nautobot/ui/src/utils/navigation.js +0 -48
  798. nautobot/ui/src/utils/session.js +0 -64
  799. nautobot/ui/src/utils/store.js +0 -242
  800. nautobot/ui/src/utils/string.js +0 -6
  801. nautobot/ui/src/utils/url.js +0 -4
  802. nautobot/ui/src/views/Home.js +0 -142
  803. nautobot/ui/src/views/InstalledApps.js +0 -80
  804. nautobot/ui/src/views/Login.js +0 -48
  805. nautobot/ui/src/views/Logout.js +0 -20
  806. nautobot/ui/src/views/__tests__/BSCreateViewTemplate.test.js +0 -11
  807. nautobot/ui/src/views/__tests__/BSListViewTemplate.test.js +0 -107
  808. nautobot/ui/src/views/__tests__/Login.test.js +0 -15
  809. nautobot/ui/src/views/generic/GenericView.js +0 -191
  810. nautobot/ui/src/views/generic/ObjectCreate.js +0 -96
  811. nautobot/ui/src/views/generic/ObjectList.js +0 -137
  812. nautobot/ui/src/views/generic/ObjectRetrieve.js +0 -87
  813. {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/LICENSE.txt +0 -0
  814. {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/WHEEL +0 -0
  815. {nautobot-2.1.0.dist-info → nautobot-2.1.1.dist-info}/entry_points.txt +0 -0
@@ -977,20 +977,6 @@
977
977
 
978
978
 
979
979
 
980
-
981
-
982
-
983
-
984
-
985
- <li class="md-nav__item">
986
- <a href="../../../user-guide/administration/configuration/node-configuration.html" class="md-nav__link">
987
- Node.js Configuration
988
- </a>
989
- </li>
990
-
991
-
992
-
993
-
994
980
  </ul>
995
981
  </nav>
996
982
  </li>
@@ -3528,23 +3514,9 @@
3528
3514
 
3529
3515
 
3530
3516
 
3531
- <li class="md-nav__item">
3532
- <a href="../../../development/apps/api/views/view-overrides.html" class="md-nav__link">
3533
- View Overrides
3534
- </a>
3535
- </li>
3536
-
3537
-
3538
-
3539
-
3540
-
3541
-
3542
-
3543
-
3544
-
3545
3517
  <li class="md-nav__item">
3546
3518
  <a href="../../../development/apps/api/views/core-view-overrides.html" class="md-nav__link">
3547
- Legacy View Overrides
3519
+ View Overrides
3548
3520
  </a>
3549
3521
  </li>
3550
3522
 
@@ -5121,20 +5093,6 @@
5121
5093
 
5122
5094
 
5123
5095
 
5124
- <li class="md-nav__item">
5125
- <a href="../../../development/core/react-ui.html" class="md-nav__link">
5126
- React UI
5127
- </a>
5128
- </li>
5129
-
5130
-
5131
-
5132
-
5133
-
5134
-
5135
-
5136
-
5137
-
5138
5096
  <li class="md-nav__item">
5139
5097
  <a href="../../../development/core/role-internals.html" class="md-nav__link">
5140
5098
  Role Internals
@@ -6144,21 +6102,21 @@
6144
6102
 
6145
6103
  <details class="quote">
6146
6104
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
6147
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-378">378</a></span>
6105
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-377">377</a></span>
6106
+ <span class="normal"><a href="#__codelineno-0-378">378</a></span>
6148
6107
  <span class="normal"><a href="#__codelineno-0-379">379</a></span>
6149
6108
  <span class="normal"><a href="#__codelineno-0-380">380</a></span>
6150
6109
  <span class="normal"><a href="#__codelineno-0-381">381</a></span>
6151
6110
  <span class="normal"><a href="#__codelineno-0-382">382</a></span>
6152
6111
  <span class="normal"><a href="#__codelineno-0-383">383</a></span>
6153
- <span class="normal"><a href="#__codelineno-0-384">384</a></span>
6154
- <span class="normal"><a href="#__codelineno-0-385">385</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="k">class</span> <span class="nc">Banner</span><span class="p">:</span>
6155
- <a id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Class that may be returned by a registered plugin_banners function.&quot;&quot;&quot;</span>
6156
- <a id="__codelineno-0-380" name="__codelineno-0-380"></a>
6157
- <a id="__codelineno-0-381" name="__codelineno-0-381"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">content</span><span class="p">,</span> <span class="n">banner_class</span><span class="o">=</span><span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">CLASS_INFO</span><span class="p">):</span>
6158
- <a id="__codelineno-0-382" name="__codelineno-0-382"></a> <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">content</span>
6159
- <a id="__codelineno-0-383" name="__codelineno-0-383"></a> <span class="k">if</span> <span class="n">banner_class</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
6160
- <a id="__codelineno-0-384" name="__codelineno-0-384"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Banner class must be a choice within BannerClassChoices.&quot;</span><span class="p">)</span>
6161
- <a id="__codelineno-0-385" name="__codelineno-0-385"></a> <span class="bp">self</span><span class="o">.</span><span class="n">banner_class</span> <span class="o">=</span> <span class="n">banner_class</span>
6112
+ <span class="normal"><a href="#__codelineno-0-384">384</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-377" name="__codelineno-0-377"></a><span class="k">class</span> <span class="nc">Banner</span><span class="p">:</span>
6113
+ <a id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Class that may be returned by a registered plugin_banners function.&quot;&quot;&quot;</span>
6114
+ <a id="__codelineno-0-379" name="__codelineno-0-379"></a>
6115
+ <a id="__codelineno-0-380" name="__codelineno-0-380"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">content</span><span class="p">,</span> <span class="n">banner_class</span><span class="o">=</span><span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">CLASS_INFO</span><span class="p">):</span>
6116
+ <a id="__codelineno-0-381" name="__codelineno-0-381"></a> <span class="bp">self</span><span class="o">.</span><span class="n">content</span> <span class="o">=</span> <span class="n">content</span>
6117
+ <a id="__codelineno-0-382" name="__codelineno-0-382"></a> <span class="k">if</span> <span class="n">banner_class</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">BannerClassChoices</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
6118
+ <a id="__codelineno-0-383" name="__codelineno-0-383"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Banner class must be a choice within BannerClassChoices.&quot;</span><span class="p">)</span>
6119
+ <a id="__codelineno-0-384" name="__codelineno-0-384"></a> <span class="bp">self</span><span class="o">.</span><span class="n">banner_class</span> <span class="o">=</span> <span class="n">banner_class</span>
6162
6120
  </code></pre></div></td></tr></table></div>
6163
6121
  </details>
6164
6122
 
@@ -6202,7 +6160,8 @@
6202
6160
 
6203
6161
  <details class="quote">
6204
6162
  <summary>Source code in <code>nautobot/extras/choices.py</code></summary>
6205
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-12">12</a></span>
6163
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-11">11</a></span>
6164
+ <span class="normal"><a href="#__codelineno-0-12">12</a></span>
6206
6165
  <span class="normal"><a href="#__codelineno-0-13">13</a></span>
6207
6166
  <span class="normal"><a href="#__codelineno-0-14">14</a></span>
6208
6167
  <span class="normal"><a href="#__codelineno-0-15">15</a></span>
@@ -6214,21 +6173,20 @@
6214
6173
  <span class="normal"><a href="#__codelineno-0-21">21</a></span>
6215
6174
  <span class="normal"><a href="#__codelineno-0-22">22</a></span>
6216
6175
  <span class="normal"><a href="#__codelineno-0-23">23</a></span>
6217
- <span class="normal"><a href="#__codelineno-0-24">24</a></span>
6218
- <span class="normal"><a href="#__codelineno-0-25">25</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="k">class</span> <span class="nc">BannerClassChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
6219
- <a id="__codelineno-0-13" name="__codelineno-0-13"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Styling choices for custom banners.&quot;&quot;&quot;</span>
6220
- <a id="__codelineno-0-14" name="__codelineno-0-14"></a>
6221
- <a id="__codelineno-0-15" name="__codelineno-0-15"></a> <span class="n">CLASS_SUCCESS</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
6222
- <a id="__codelineno-0-16" name="__codelineno-0-16"></a> <span class="n">CLASS_INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
6223
- <a id="__codelineno-0-17" name="__codelineno-0-17"></a> <span class="n">CLASS_WARNING</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
6224
- <a id="__codelineno-0-18" name="__codelineno-0-18"></a> <span class="n">CLASS_DANGER</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
6225
- <a id="__codelineno-0-19" name="__codelineno-0-19"></a>
6226
- <a id="__codelineno-0-20" name="__codelineno-0-20"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
6227
- <a id="__codelineno-0-21" name="__codelineno-0-21"></a> <span class="p">(</span><span class="n">CLASS_SUCCESS</span><span class="p">,</span> <span class="s2">&quot;Success&quot;</span><span class="p">),</span>
6228
- <a id="__codelineno-0-22" name="__codelineno-0-22"></a> <span class="p">(</span><span class="n">CLASS_INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
6229
- <a id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="p">(</span><span class="n">CLASS_WARNING</span><span class="p">,</span> <span class="s2">&quot;Warning&quot;</span><span class="p">),</span>
6230
- <a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="p">(</span><span class="n">CLASS_DANGER</span><span class="p">,</span> <span class="s2">&quot;Danger&quot;</span><span class="p">),</span>
6231
- <a id="__codelineno-0-25" name="__codelineno-0-25"></a> <span class="p">)</span>
6176
+ <span class="normal"><a href="#__codelineno-0-24">24</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-11" name="__codelineno-0-11"></a><span class="k">class</span> <span class="nc">BannerClassChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
6177
+ <a id="__codelineno-0-12" name="__codelineno-0-12"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Styling choices for custom banners.&quot;&quot;&quot;</span>
6178
+ <a id="__codelineno-0-13" name="__codelineno-0-13"></a>
6179
+ <a id="__codelineno-0-14" name="__codelineno-0-14"></a> <span class="n">CLASS_SUCCESS</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
6180
+ <a id="__codelineno-0-15" name="__codelineno-0-15"></a> <span class="n">CLASS_INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
6181
+ <a id="__codelineno-0-16" name="__codelineno-0-16"></a> <span class="n">CLASS_WARNING</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
6182
+ <a id="__codelineno-0-17" name="__codelineno-0-17"></a> <span class="n">CLASS_DANGER</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
6183
+ <a id="__codelineno-0-18" name="__codelineno-0-18"></a>
6184
+ <a id="__codelineno-0-19" name="__codelineno-0-19"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
6185
+ <a id="__codelineno-0-20" name="__codelineno-0-20"></a> <span class="p">(</span><span class="n">CLASS_SUCCESS</span><span class="p">,</span> <span class="s2">&quot;Success&quot;</span><span class="p">),</span>
6186
+ <a id="__codelineno-0-21" name="__codelineno-0-21"></a> <span class="p">(</span><span class="n">CLASS_INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
6187
+ <a id="__codelineno-0-22" name="__codelineno-0-22"></a> <span class="p">(</span><span class="n">CLASS_WARNING</span><span class="p">,</span> <span class="s2">&quot;Warning&quot;</span><span class="p">),</span>
6188
+ <a id="__codelineno-0-23" name="__codelineno-0-23"></a> <span class="p">(</span><span class="n">CLASS_DANGER</span><span class="p">,</span> <span class="s2">&quot;Danger&quot;</span><span class="p">),</span>
6189
+ <a id="__codelineno-0-24" name="__codelineno-0-24"></a> <span class="p">)</span>
6232
6190
  </code></pre></div></td></tr></table></div>
6233
6191
  </details>
6234
6192
 
@@ -6358,7 +6316,10 @@
6358
6316
 
6359
6317
  <details class="quote">
6360
6318
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
6361
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-248">248</a></span>
6319
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-245">245</a></span>
6320
+ <span class="normal"><a href="#__codelineno-0-246">246</a></span>
6321
+ <span class="normal"><a href="#__codelineno-0-247">247</a></span>
6322
+ <span class="normal"><a href="#__codelineno-0-248">248</a></span>
6362
6323
  <span class="normal"><a href="#__codelineno-0-249">249</a></span>
6363
6324
  <span class="normal"><a href="#__codelineno-0-250">250</a></span>
6364
6325
  <span class="normal"><a href="#__codelineno-0-251">251</a></span>
@@ -6366,21 +6327,18 @@
6366
6327
  <span class="normal"><a href="#__codelineno-0-253">253</a></span>
6367
6328
  <span class="normal"><a href="#__codelineno-0-254">254</a></span>
6368
6329
  <span class="normal"><a href="#__codelineno-0-255">255</a></span>
6369
- <span class="normal"><a href="#__codelineno-0-256">256</a></span>
6370
- <span class="normal"><a href="#__codelineno-0-257">257</a></span>
6371
- <span class="normal"><a href="#__codelineno-0-258">258</a></span>
6372
- <span class="normal"><a href="#__codelineno-0-259">259</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-248" name="__codelineno-0-248"></a><span class="k">class</span> <span class="nc">HomePageBase</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span>
6373
- <a id="__codelineno-0-249" name="__codelineno-0-249"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for homepage layout classes.&quot;&quot;&quot;</span>
6374
- <a id="__codelineno-0-250" name="__codelineno-0-250"></a>
6375
- <a id="__codelineno-0-251" name="__codelineno-0-251"></a> <span class="nd">@property</span>
6376
- <a id="__codelineno-0-252" name="__codelineno-0-252"></a> <span class="nd">@abstractmethod</span>
6377
- <a id="__codelineno-0-253" name="__codelineno-0-253"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># to be implemented by each subclass</span>
6378
- <a id="__codelineno-0-254" name="__codelineno-0-254"></a> <span class="k">return</span> <span class="p">{}</span>
6379
- <a id="__codelineno-0-255" name="__codelineno-0-255"></a>
6380
- <a id="__codelineno-0-256" name="__codelineno-0-256"></a> <span class="nd">@property</span>
6381
- <a id="__codelineno-0-257" name="__codelineno-0-257"></a> <span class="nd">@abstractmethod</span>
6382
- <a id="__codelineno-0-258" name="__codelineno-0-258"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># to be implemented by subclass</span>
6383
- <a id="__codelineno-0-259" name="__codelineno-0-259"></a> <span class="k">return</span> <span class="p">()</span>
6330
+ <span class="normal"><a href="#__codelineno-0-256">256</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-245" name="__codelineno-0-245"></a><span class="k">class</span> <span class="nc">HomePageBase</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span>
6331
+ <a id="__codelineno-0-246" name="__codelineno-0-246"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for homepage layout classes.&quot;&quot;&quot;</span>
6332
+ <a id="__codelineno-0-247" name="__codelineno-0-247"></a>
6333
+ <a id="__codelineno-0-248" name="__codelineno-0-248"></a> <span class="nd">@property</span>
6334
+ <a id="__codelineno-0-249" name="__codelineno-0-249"></a> <span class="nd">@abstractmethod</span>
6335
+ <a id="__codelineno-0-250" name="__codelineno-0-250"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># to be implemented by each subclass</span>
6336
+ <a id="__codelineno-0-251" name="__codelineno-0-251"></a> <span class="k">return</span> <span class="p">{}</span>
6337
+ <a id="__codelineno-0-252" name="__codelineno-0-252"></a>
6338
+ <a id="__codelineno-0-253" name="__codelineno-0-253"></a> <span class="nd">@property</span>
6339
+ <a id="__codelineno-0-254" name="__codelineno-0-254"></a> <span class="nd">@abstractmethod</span>
6340
+ <a id="__codelineno-0-255" name="__codelineno-0-255"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># to be implemented by subclass</span>
6341
+ <a id="__codelineno-0-256" name="__codelineno-0-256"></a> <span class="k">return</span> <span class="p">()</span>
6384
6342
  </code></pre></div></td></tr></table></div>
6385
6343
  </details>
6386
6344
 
@@ -6424,7 +6382,10 @@
6424
6382
 
6425
6383
  <details class="quote">
6426
6384
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
6427
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-339">339</a></span>
6385
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-336">336</a></span>
6386
+ <span class="normal"><a href="#__codelineno-0-337">337</a></span>
6387
+ <span class="normal"><a href="#__codelineno-0-338">338</a></span>
6388
+ <span class="normal"><a href="#__codelineno-0-339">339</a></span>
6428
6389
  <span class="normal"><a href="#__codelineno-0-340">340</a></span>
6429
6390
  <span class="normal"><a href="#__codelineno-0-341">341</a></span>
6430
6391
  <span class="normal"><a href="#__codelineno-0-342">342</a></span>
@@ -6457,46 +6418,43 @@
6457
6418
  <span class="normal"><a href="#__codelineno-0-369">369</a></span>
6458
6419
  <span class="normal"><a href="#__codelineno-0-370">370</a></span>
6459
6420
  <span class="normal"><a href="#__codelineno-0-371">371</a></span>
6460
- <span class="normal"><a href="#__codelineno-0-372">372</a></span>
6461
- <span class="normal"><a href="#__codelineno-0-373">373</a></span>
6462
- <span class="normal"><a href="#__codelineno-0-374">374</a></span>
6463
- <span class="normal"><a href="#__codelineno-0-375">375</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="k">class</span> <span class="nc">HomePageGroup</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
6464
- <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel group.&quot;&quot;&quot;</span>
6465
- <a id="__codelineno-0-341" name="__codelineno-0-341"></a>
6466
- <a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
6467
- <a id="__codelineno-0-343" name="__codelineno-0-343"></a>
6468
- <a id="__codelineno-0-344" name="__codelineno-0-344"></a> <span class="nd">@property</span>
6469
- <a id="__codelineno-0-345" name="__codelineno-0-345"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6470
- <a id="__codelineno-0-346" name="__codelineno-0-346"></a> <span class="k">return</span> <span class="p">{</span>
6471
- <a id="__codelineno-0-347" name="__codelineno-0-347"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
6472
- <a id="__codelineno-0-348" name="__codelineno-0-348"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
6473
- <a id="__codelineno-0-349" name="__codelineno-0-349"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
6474
- <a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="p">}</span>
6475
- <a id="__codelineno-0-351" name="__codelineno-0-351"></a>
6476
- <a id="__codelineno-0-352" name="__codelineno-0-352"></a> <span class="nd">@property</span>
6477
- <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6478
- <a id="__codelineno-0-354" name="__codelineno-0-354"></a> <span class="k">return</span> <span class="p">()</span>
6479
- <a id="__codelineno-0-355" name="__codelineno-0-355"></a>
6480
- <a id="__codelineno-0-356" name="__codelineno-0-356"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
6481
- <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6482
- <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> Ensure group properties.</span>
6483
- <a id="__codelineno-0-359" name="__codelineno-0-359"></a>
6484
- <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> Args:</span>
6485
- <a id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="sd"> name (str): The name of the group.</span>
6486
- <a id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="sd"> permissions (list): The permissions required to view this group.</span>
6487
- <a id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
6488
- <a id="__codelineno-0-364" name="__codelineno-0-364"></a><span class="sd"> weight (int): The weight of this group.</span>
6489
- <a id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="sd"> &quot;&quot;&quot;</span>
6490
- <a id="__codelineno-0-366" name="__codelineno-0-366"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6491
- <a id="__codelineno-0-367" name="__codelineno-0-367"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6492
- <a id="__codelineno-0-368" name="__codelineno-0-368"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6493
- <a id="__codelineno-0-369" name="__codelineno-0-369"></a>
6494
- <a id="__codelineno-0-370" name="__codelineno-0-370"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6495
- <a id="__codelineno-0-371" name="__codelineno-0-371"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
6496
- <a id="__codelineno-0-372" name="__codelineno-0-372"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
6497
- <a id="__codelineno-0-373" name="__codelineno-0-373"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
6498
- <a id="__codelineno-0-374" name="__codelineno-0-374"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of HomePageItem&quot;</span><span class="p">)</span>
6499
- <a id="__codelineno-0-375" name="__codelineno-0-375"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
6421
+ <span class="normal"><a href="#__codelineno-0-372">372</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="k">class</span> <span class="nc">HomePageGroup</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
6422
+ <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel group.&quot;&quot;&quot;</span>
6423
+ <a id="__codelineno-0-338" name="__codelineno-0-338"></a>
6424
+ <a id="__codelineno-0-339" name="__codelineno-0-339"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
6425
+ <a id="__codelineno-0-340" name="__codelineno-0-340"></a>
6426
+ <a id="__codelineno-0-341" name="__codelineno-0-341"></a> <span class="nd">@property</span>
6427
+ <a id="__codelineno-0-342" name="__codelineno-0-342"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6428
+ <a id="__codelineno-0-343" name="__codelineno-0-343"></a> <span class="k">return</span> <span class="p">{</span>
6429
+ <a id="__codelineno-0-344" name="__codelineno-0-344"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
6430
+ <a id="__codelineno-0-345" name="__codelineno-0-345"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
6431
+ <a id="__codelineno-0-346" name="__codelineno-0-346"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
6432
+ <a id="__codelineno-0-347" name="__codelineno-0-347"></a> <span class="p">}</span>
6433
+ <a id="__codelineno-0-348" name="__codelineno-0-348"></a>
6434
+ <a id="__codelineno-0-349" name="__codelineno-0-349"></a> <span class="nd">@property</span>
6435
+ <a id="__codelineno-0-350" name="__codelineno-0-350"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6436
+ <a id="__codelineno-0-351" name="__codelineno-0-351"></a> <span class="k">return</span> <span class="p">()</span>
6437
+ <a id="__codelineno-0-352" name="__codelineno-0-352"></a>
6438
+ <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
6439
+ <a id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6440
+ <a id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="sd"> Ensure group properties.</span>
6441
+ <a id="__codelineno-0-356" name="__codelineno-0-356"></a>
6442
+ <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="sd"> Args:</span>
6443
+ <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> name (str): The name of the group.</span>
6444
+ <a id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="sd"> permissions (list): The permissions required to view this group.</span>
6445
+ <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
6446
+ <a id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="sd"> weight (int): The weight of this group.</span>
6447
+ <a id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="sd"> &quot;&quot;&quot;</span>
6448
+ <a id="__codelineno-0-363" name="__codelineno-0-363"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6449
+ <a id="__codelineno-0-364" name="__codelineno-0-364"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6450
+ <a id="__codelineno-0-365" name="__codelineno-0-365"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6451
+ <a id="__codelineno-0-366" name="__codelineno-0-366"></a>
6452
+ <a id="__codelineno-0-367" name="__codelineno-0-367"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6453
+ <a id="__codelineno-0-368" name="__codelineno-0-368"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
6454
+ <a id="__codelineno-0-369" name="__codelineno-0-369"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
6455
+ <a id="__codelineno-0-370" name="__codelineno-0-370"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
6456
+ <a id="__codelineno-0-371" name="__codelineno-0-371"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of HomePageItem&quot;</span><span class="p">)</span>
6457
+ <a id="__codelineno-0-372" name="__codelineno-0-372"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
6500
6458
  </code></pre></div></td></tr></table></div>
6501
6459
  </details>
6502
6460
 
@@ -6601,7 +6559,10 @@
6601
6559
 
6602
6560
  <details class="quote">
6603
6561
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
6604
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-356">356</a></span>
6562
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-353">353</a></span>
6563
+ <span class="normal"><a href="#__codelineno-0-354">354</a></span>
6564
+ <span class="normal"><a href="#__codelineno-0-355">355</a></span>
6565
+ <span class="normal"><a href="#__codelineno-0-356">356</a></span>
6605
6566
  <span class="normal"><a href="#__codelineno-0-357">357</a></span>
6606
6567
  <span class="normal"><a href="#__codelineno-0-358">358</a></span>
6607
6568
  <span class="normal"><a href="#__codelineno-0-359">359</a></span>
@@ -6617,29 +6578,26 @@
6617
6578
  <span class="normal"><a href="#__codelineno-0-369">369</a></span>
6618
6579
  <span class="normal"><a href="#__codelineno-0-370">370</a></span>
6619
6580
  <span class="normal"><a href="#__codelineno-0-371">371</a></span>
6620
- <span class="normal"><a href="#__codelineno-0-372">372</a></span>
6621
- <span class="normal"><a href="#__codelineno-0-373">373</a></span>
6622
- <span class="normal"><a href="#__codelineno-0-374">374</a></span>
6623
- <span class="normal"><a href="#__codelineno-0-375">375</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-356" name="__codelineno-0-356"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
6624
- <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6625
- <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> Ensure group properties.</span>
6626
- <a id="__codelineno-0-359" name="__codelineno-0-359"></a>
6627
- <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> Args:</span>
6628
- <a id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="sd"> name (str): The name of the group.</span>
6629
- <a id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="sd"> permissions (list): The permissions required to view this group.</span>
6630
- <a id="__codelineno-0-363" name="__codelineno-0-363"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
6631
- <a id="__codelineno-0-364" name="__codelineno-0-364"></a><span class="sd"> weight (int): The weight of this group.</span>
6632
- <a id="__codelineno-0-365" name="__codelineno-0-365"></a><span class="sd"> &quot;&quot;&quot;</span>
6633
- <a id="__codelineno-0-366" name="__codelineno-0-366"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6634
- <a id="__codelineno-0-367" name="__codelineno-0-367"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6635
- <a id="__codelineno-0-368" name="__codelineno-0-368"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6636
- <a id="__codelineno-0-369" name="__codelineno-0-369"></a>
6637
- <a id="__codelineno-0-370" name="__codelineno-0-370"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6638
- <a id="__codelineno-0-371" name="__codelineno-0-371"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
6639
- <a id="__codelineno-0-372" name="__codelineno-0-372"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
6640
- <a id="__codelineno-0-373" name="__codelineno-0-373"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
6641
- <a id="__codelineno-0-374" name="__codelineno-0-374"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of HomePageItem&quot;</span><span class="p">)</span>
6642
- <a id="__codelineno-0-375" name="__codelineno-0-375"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
6581
+ <span class="normal"><a href="#__codelineno-0-372">372</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
6582
+ <a id="__codelineno-0-354" name="__codelineno-0-354"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6583
+ <a id="__codelineno-0-355" name="__codelineno-0-355"></a><span class="sd"> Ensure group properties.</span>
6584
+ <a id="__codelineno-0-356" name="__codelineno-0-356"></a>
6585
+ <a id="__codelineno-0-357" name="__codelineno-0-357"></a><span class="sd"> Args:</span>
6586
+ <a id="__codelineno-0-358" name="__codelineno-0-358"></a><span class="sd"> name (str): The name of the group.</span>
6587
+ <a id="__codelineno-0-359" name="__codelineno-0-359"></a><span class="sd"> permissions (list): The permissions required to view this group.</span>
6588
+ <a id="__codelineno-0-360" name="__codelineno-0-360"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
6589
+ <a id="__codelineno-0-361" name="__codelineno-0-361"></a><span class="sd"> weight (int): The weight of this group.</span>
6590
+ <a id="__codelineno-0-362" name="__codelineno-0-362"></a><span class="sd"> &quot;&quot;&quot;</span>
6591
+ <a id="__codelineno-0-363" name="__codelineno-0-363"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6592
+ <a id="__codelineno-0-364" name="__codelineno-0-364"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6593
+ <a id="__codelineno-0-365" name="__codelineno-0-365"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6594
+ <a id="__codelineno-0-366" name="__codelineno-0-366"></a>
6595
+ <a id="__codelineno-0-367" name="__codelineno-0-367"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6596
+ <a id="__codelineno-0-368" name="__codelineno-0-368"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
6597
+ <a id="__codelineno-0-369" name="__codelineno-0-369"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
6598
+ <a id="__codelineno-0-370" name="__codelineno-0-370"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
6599
+ <a id="__codelineno-0-371" name="__codelineno-0-371"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of HomePageItem&quot;</span><span class="p">)</span>
6600
+ <a id="__codelineno-0-372" name="__codelineno-0-372"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
6643
6601
  </code></pre></div></td></tr></table></div>
6644
6602
  </details>
6645
6603
  </div>
@@ -6674,7 +6632,10 @@
6674
6632
 
6675
6633
  <details class="quote">
6676
6634
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
6677
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-378">378</a></span>
6635
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-375">375</a></span>
6636
+ <span class="normal"><a href="#__codelineno-0-376">376</a></span>
6637
+ <span class="normal"><a href="#__codelineno-0-377">377</a></span>
6638
+ <span class="normal"><a href="#__codelineno-0-378">378</a></span>
6678
6639
  <span class="normal"><a href="#__codelineno-0-379">379</a></span>
6679
6640
  <span class="normal"><a href="#__codelineno-0-380">380</a></span>
6680
6641
  <span class="normal"><a href="#__codelineno-0-381">381</a></span>
@@ -6726,65 +6687,62 @@
6726
6687
  <span class="normal"><a href="#__codelineno-0-427">427</a></span>
6727
6688
  <span class="normal"><a href="#__codelineno-0-428">428</a></span>
6728
6689
  <span class="normal"><a href="#__codelineno-0-429">429</a></span>
6729
- <span class="normal"><a href="#__codelineno-0-430">430</a></span>
6730
- <span class="normal"><a href="#__codelineno-0-431">431</a></span>
6731
- <span class="normal"><a href="#__codelineno-0-432">432</a></span>
6732
- <span class="normal"><a href="#__codelineno-0-433">433</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-378" name="__codelineno-0-378"></a><span class="k">class</span> <span class="nc">HomePageItem</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
6733
- <a id="__codelineno-0-379" name="__codelineno-0-379"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel item.&quot;&quot;&quot;</span>
6690
+ <span class="normal"><a href="#__codelineno-0-430">430</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-375" name="__codelineno-0-375"></a><span class="k">class</span> <span class="nc">HomePageItem</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
6691
+ <a id="__codelineno-0-376" name="__codelineno-0-376"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel item.&quot;&quot;&quot;</span>
6692
+ <a id="__codelineno-0-377" name="__codelineno-0-377"></a>
6693
+ <a id="__codelineno-0-378" name="__codelineno-0-378"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
6694
+ <a id="__codelineno-0-379" name="__codelineno-0-379"></a> <span class="n">template_path</span> <span class="o">=</span> <span class="kc">None</span>
6734
6695
  <a id="__codelineno-0-380" name="__codelineno-0-380"></a>
6735
- <a id="__codelineno-0-381" name="__codelineno-0-381"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
6736
- <a id="__codelineno-0-382" name="__codelineno-0-382"></a> <span class="n">template_path</span> <span class="o">=</span> <span class="kc">None</span>
6737
- <a id="__codelineno-0-383" name="__codelineno-0-383"></a>
6738
- <a id="__codelineno-0-384" name="__codelineno-0-384"></a> <span class="nd">@property</span>
6739
- <a id="__codelineno-0-385" name="__codelineno-0-385"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6740
- <a id="__codelineno-0-386" name="__codelineno-0-386"></a> <span class="k">return</span> <span class="p">{</span>
6741
- <a id="__codelineno-0-387" name="__codelineno-0-387"></a> <span class="s2">&quot;custom_template&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
6742
- <a id="__codelineno-0-388" name="__codelineno-0-388"></a> <span class="s2">&quot;custom_data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span><span class="p">,</span>
6743
- <a id="__codelineno-0-389" name="__codelineno-0-389"></a> <span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">description</span><span class="p">,</span>
6744
- <a id="__codelineno-0-390" name="__codelineno-0-390"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span>
6745
- <a id="__codelineno-0-391" name="__codelineno-0-391"></a> <span class="s2">&quot;model&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span>
6746
- <a id="__codelineno-0-392" name="__codelineno-0-392"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
6747
- <a id="__codelineno-0-393" name="__codelineno-0-393"></a> <span class="s2">&quot;template_path&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">template_path</span><span class="p">,</span>
6748
- <a id="__codelineno-0-394" name="__codelineno-0-394"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
6749
- <a id="__codelineno-0-395" name="__codelineno-0-395"></a> <span class="p">}</span>
6750
- <a id="__codelineno-0-396" name="__codelineno-0-396"></a>
6751
- <a id="__codelineno-0-397" name="__codelineno-0-397"></a> <span class="nd">@property</span>
6752
- <a id="__codelineno-0-398" name="__codelineno-0-398"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6753
- <a id="__codelineno-0-399" name="__codelineno-0-399"></a> <span class="k">return</span> <span class="p">()</span>
6754
- <a id="__codelineno-0-400" name="__codelineno-0-400"></a>
6755
- <a id="__codelineno-0-401" name="__codelineno-0-401"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
6756
- <a id="__codelineno-0-402" name="__codelineno-0-402"></a> <span class="bp">self</span><span class="p">,</span>
6757
- <a id="__codelineno-0-403" name="__codelineno-0-403"></a> <span class="n">name</span><span class="p">,</span>
6758
- <a id="__codelineno-0-404" name="__codelineno-0-404"></a> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6759
- <a id="__codelineno-0-405" name="__codelineno-0-405"></a> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6760
- <a id="__codelineno-0-406" name="__codelineno-0-406"></a> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6761
- <a id="__codelineno-0-407" name="__codelineno-0-407"></a> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6762
- <a id="__codelineno-0-408" name="__codelineno-0-408"></a> <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6763
- <a id="__codelineno-0-409" name="__codelineno-0-409"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6764
- <a id="__codelineno-0-410" name="__codelineno-0-410"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
6765
- <a id="__codelineno-0-411" name="__codelineno-0-411"></a> <span class="p">):</span>
6766
- <a id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6767
- <a id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="sd"> Ensure item properties.</span>
6768
- <a id="__codelineno-0-414" name="__codelineno-0-414"></a>
6769
- <a id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="sd"> Args:</span>
6770
- <a id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="sd"> name (str): The name of the item.</span>
6771
- <a id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="sd"> link (str): The link to be used for this item.</span>
6772
- <a id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="sd"> model (str): The model to being used for this item to calculate the total count of objects.</span>
6773
- <a id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="sd"> custom_template (str): Name of custom template.</span>
6774
- <a id="__codelineno-0-420" name="__codelineno-0-420"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
6775
- <a id="__codelineno-0-421" name="__codelineno-0-421"></a><span class="sd"> &quot;&quot;&quot;</span>
6776
- <a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6777
- <a id="__codelineno-0-423" name="__codelineno-0-423"></a>
6778
- <a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6779
- <a id="__codelineno-0-425" name="__codelineno-0-425"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
6780
- <a id="__codelineno-0-426" name="__codelineno-0-426"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
6781
- <a id="__codelineno-0-427" name="__codelineno-0-427"></a> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span>
6782
- <a id="__codelineno-0-428" name="__codelineno-0-428"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
6783
- <a id="__codelineno-0-429" name="__codelineno-0-429"></a> <span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">model</span>
6784
- <a id="__codelineno-0-430" name="__codelineno-0-430"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6785
- <a id="__codelineno-0-431" name="__codelineno-0-431"></a>
6786
- <a id="__codelineno-0-432" name="__codelineno-0-432"></a> <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6787
- <a id="__codelineno-0-433" name="__codelineno-0-433"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify model and custom_template at the same time.&quot;</span><span class="p">)</span>
6696
+ <a id="__codelineno-0-381" name="__codelineno-0-381"></a> <span class="nd">@property</span>
6697
+ <a id="__codelineno-0-382" name="__codelineno-0-382"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6698
+ <a id="__codelineno-0-383" name="__codelineno-0-383"></a> <span class="k">return</span> <span class="p">{</span>
6699
+ <a id="__codelineno-0-384" name="__codelineno-0-384"></a> <span class="s2">&quot;custom_template&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
6700
+ <a id="__codelineno-0-385" name="__codelineno-0-385"></a> <span class="s2">&quot;custom_data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span><span class="p">,</span>
6701
+ <a id="__codelineno-0-386" name="__codelineno-0-386"></a> <span class="s2">&quot;description&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">description</span><span class="p">,</span>
6702
+ <a id="__codelineno-0-387" name="__codelineno-0-387"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span>
6703
+ <a id="__codelineno-0-388" name="__codelineno-0-388"></a> <span class="s2">&quot;model&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">model</span><span class="p">,</span>
6704
+ <a id="__codelineno-0-389" name="__codelineno-0-389"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
6705
+ <a id="__codelineno-0-390" name="__codelineno-0-390"></a> <span class="s2">&quot;template_path&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">template_path</span><span class="p">,</span>
6706
+ <a id="__codelineno-0-391" name="__codelineno-0-391"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
6707
+ <a id="__codelineno-0-392" name="__codelineno-0-392"></a> <span class="p">}</span>
6708
+ <a id="__codelineno-0-393" name="__codelineno-0-393"></a>
6709
+ <a id="__codelineno-0-394" name="__codelineno-0-394"></a> <span class="nd">@property</span>
6710
+ <a id="__codelineno-0-395" name="__codelineno-0-395"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
6711
+ <a id="__codelineno-0-396" name="__codelineno-0-396"></a> <span class="k">return</span> <span class="p">()</span>
6712
+ <a id="__codelineno-0-397" name="__codelineno-0-397"></a>
6713
+ <a id="__codelineno-0-398" name="__codelineno-0-398"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
6714
+ <a id="__codelineno-0-399" name="__codelineno-0-399"></a> <span class="bp">self</span><span class="p">,</span>
6715
+ <a id="__codelineno-0-400" name="__codelineno-0-400"></a> <span class="n">name</span><span class="p">,</span>
6716
+ <a id="__codelineno-0-401" name="__codelineno-0-401"></a> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6717
+ <a id="__codelineno-0-402" name="__codelineno-0-402"></a> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6718
+ <a id="__codelineno-0-403" name="__codelineno-0-403"></a> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6719
+ <a id="__codelineno-0-404" name="__codelineno-0-404"></a> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6720
+ <a id="__codelineno-0-405" name="__codelineno-0-405"></a> <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6721
+ <a id="__codelineno-0-406" name="__codelineno-0-406"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6722
+ <a id="__codelineno-0-407" name="__codelineno-0-407"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
6723
+ <a id="__codelineno-0-408" name="__codelineno-0-408"></a> <span class="p">):</span>
6724
+ <a id="__codelineno-0-409" name="__codelineno-0-409"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6725
+ <a id="__codelineno-0-410" name="__codelineno-0-410"></a><span class="sd"> Ensure item properties.</span>
6726
+ <a id="__codelineno-0-411" name="__codelineno-0-411"></a>
6727
+ <a id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="sd"> Args:</span>
6728
+ <a id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="sd"> name (str): The name of the item.</span>
6729
+ <a id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="sd"> link (str): The link to be used for this item.</span>
6730
+ <a id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="sd"> model (str): The model to being used for this item to calculate the total count of objects.</span>
6731
+ <a id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="sd"> custom_template (str): Name of custom template.</span>
6732
+ <a id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
6733
+ <a id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="sd"> &quot;&quot;&quot;</span>
6734
+ <a id="__codelineno-0-419" name="__codelineno-0-419"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6735
+ <a id="__codelineno-0-420" name="__codelineno-0-420"></a>
6736
+ <a id="__codelineno-0-421" name="__codelineno-0-421"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6737
+ <a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
6738
+ <a id="__codelineno-0-423" name="__codelineno-0-423"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
6739
+ <a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span>
6740
+ <a id="__codelineno-0-425" name="__codelineno-0-425"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
6741
+ <a id="__codelineno-0-426" name="__codelineno-0-426"></a> <span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">model</span>
6742
+ <a id="__codelineno-0-427" name="__codelineno-0-427"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6743
+ <a id="__codelineno-0-428" name="__codelineno-0-428"></a>
6744
+ <a id="__codelineno-0-429" name="__codelineno-0-429"></a> <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6745
+ <a id="__codelineno-0-430" name="__codelineno-0-430"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify model and custom_template at the same time.&quot;</span><span class="p">)</span>
6788
6746
  </code></pre></div></td></tr></table></div>
6789
6747
  </details>
6790
6748
 
@@ -6903,7 +6861,10 @@
6903
6861
 
6904
6862
  <details class="quote">
6905
6863
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
6906
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-401">401</a></span>
6864
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-398">398</a></span>
6865
+ <span class="normal"><a href="#__codelineno-0-399">399</a></span>
6866
+ <span class="normal"><a href="#__codelineno-0-400">400</a></span>
6867
+ <span class="normal"><a href="#__codelineno-0-401">401</a></span>
6907
6868
  <span class="normal"><a href="#__codelineno-0-402">402</a></span>
6908
6869
  <span class="normal"><a href="#__codelineno-0-403">403</a></span>
6909
6870
  <span class="normal"><a href="#__codelineno-0-404">404</a></span>
@@ -6932,42 +6893,39 @@
6932
6893
  <span class="normal"><a href="#__codelineno-0-427">427</a></span>
6933
6894
  <span class="normal"><a href="#__codelineno-0-428">428</a></span>
6934
6895
  <span class="normal"><a href="#__codelineno-0-429">429</a></span>
6935
- <span class="normal"><a href="#__codelineno-0-430">430</a></span>
6936
- <span class="normal"><a href="#__codelineno-0-431">431</a></span>
6937
- <span class="normal"><a href="#__codelineno-0-432">432</a></span>
6938
- <span class="normal"><a href="#__codelineno-0-433">433</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-401" name="__codelineno-0-401"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
6939
- <a id="__codelineno-0-402" name="__codelineno-0-402"></a> <span class="bp">self</span><span class="p">,</span>
6940
- <a id="__codelineno-0-403" name="__codelineno-0-403"></a> <span class="n">name</span><span class="p">,</span>
6941
- <a id="__codelineno-0-404" name="__codelineno-0-404"></a> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6942
- <a id="__codelineno-0-405" name="__codelineno-0-405"></a> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6943
- <a id="__codelineno-0-406" name="__codelineno-0-406"></a> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6944
- <a id="__codelineno-0-407" name="__codelineno-0-407"></a> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6945
- <a id="__codelineno-0-408" name="__codelineno-0-408"></a> <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6946
- <a id="__codelineno-0-409" name="__codelineno-0-409"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6947
- <a id="__codelineno-0-410" name="__codelineno-0-410"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
6948
- <a id="__codelineno-0-411" name="__codelineno-0-411"></a><span class="p">):</span>
6949
- <a id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6950
- <a id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="sd"> Ensure item properties.</span>
6951
- <a id="__codelineno-0-414" name="__codelineno-0-414"></a>
6952
- <a id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="sd"> Args:</span>
6953
- <a id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="sd"> name (str): The name of the item.</span>
6954
- <a id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="sd"> link (str): The link to be used for this item.</span>
6955
- <a id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="sd"> model (str): The model to being used for this item to calculate the total count of objects.</span>
6956
- <a id="__codelineno-0-419" name="__codelineno-0-419"></a><span class="sd"> custom_template (str): Name of custom template.</span>
6957
- <a id="__codelineno-0-420" name="__codelineno-0-420"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
6958
- <a id="__codelineno-0-421" name="__codelineno-0-421"></a><span class="sd"> &quot;&quot;&quot;</span>
6959
- <a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6960
- <a id="__codelineno-0-423" name="__codelineno-0-423"></a>
6961
- <a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6962
- <a id="__codelineno-0-425" name="__codelineno-0-425"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
6963
- <a id="__codelineno-0-426" name="__codelineno-0-426"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
6964
- <a id="__codelineno-0-427" name="__codelineno-0-427"></a> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span>
6965
- <a id="__codelineno-0-428" name="__codelineno-0-428"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
6966
- <a id="__codelineno-0-429" name="__codelineno-0-429"></a> <span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">model</span>
6967
- <a id="__codelineno-0-430" name="__codelineno-0-430"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6968
- <a id="__codelineno-0-431" name="__codelineno-0-431"></a>
6969
- <a id="__codelineno-0-432" name="__codelineno-0-432"></a> <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6970
- <a id="__codelineno-0-433" name="__codelineno-0-433"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify model and custom_template at the same time.&quot;</span><span class="p">)</span>
6896
+ <span class="normal"><a href="#__codelineno-0-430">430</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-398" name="__codelineno-0-398"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
6897
+ <a id="__codelineno-0-399" name="__codelineno-0-399"></a> <span class="bp">self</span><span class="p">,</span>
6898
+ <a id="__codelineno-0-400" name="__codelineno-0-400"></a> <span class="n">name</span><span class="p">,</span>
6899
+ <a id="__codelineno-0-401" name="__codelineno-0-401"></a> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6900
+ <a id="__codelineno-0-402" name="__codelineno-0-402"></a> <span class="n">model</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6901
+ <a id="__codelineno-0-403" name="__codelineno-0-403"></a> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6902
+ <a id="__codelineno-0-404" name="__codelineno-0-404"></a> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6903
+ <a id="__codelineno-0-405" name="__codelineno-0-405"></a> <span class="n">description</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6904
+ <a id="__codelineno-0-406" name="__codelineno-0-406"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
6905
+ <a id="__codelineno-0-407" name="__codelineno-0-407"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
6906
+ <a id="__codelineno-0-408" name="__codelineno-0-408"></a><span class="p">):</span>
6907
+ <a id="__codelineno-0-409" name="__codelineno-0-409"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6908
+ <a id="__codelineno-0-410" name="__codelineno-0-410"></a><span class="sd"> Ensure item properties.</span>
6909
+ <a id="__codelineno-0-411" name="__codelineno-0-411"></a>
6910
+ <a id="__codelineno-0-412" name="__codelineno-0-412"></a><span class="sd"> Args:</span>
6911
+ <a id="__codelineno-0-413" name="__codelineno-0-413"></a><span class="sd"> name (str): The name of the item.</span>
6912
+ <a id="__codelineno-0-414" name="__codelineno-0-414"></a><span class="sd"> link (str): The link to be used for this item.</span>
6913
+ <a id="__codelineno-0-415" name="__codelineno-0-415"></a><span class="sd"> model (str): The model to being used for this item to calculate the total count of objects.</span>
6914
+ <a id="__codelineno-0-416" name="__codelineno-0-416"></a><span class="sd"> custom_template (str): Name of custom template.</span>
6915
+ <a id="__codelineno-0-417" name="__codelineno-0-417"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
6916
+ <a id="__codelineno-0-418" name="__codelineno-0-418"></a><span class="sd"> &quot;&quot;&quot;</span>
6917
+ <a id="__codelineno-0-419" name="__codelineno-0-419"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
6918
+ <a id="__codelineno-0-420" name="__codelineno-0-420"></a>
6919
+ <a id="__codelineno-0-421" name="__codelineno-0-421"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
6920
+ <a id="__codelineno-0-422" name="__codelineno-0-422"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
6921
+ <a id="__codelineno-0-423" name="__codelineno-0-423"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
6922
+ <a id="__codelineno-0-424" name="__codelineno-0-424"></a> <span class="bp">self</span><span class="o">.</span><span class="n">description</span> <span class="o">=</span> <span class="n">description</span>
6923
+ <a id="__codelineno-0-425" name="__codelineno-0-425"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
6924
+ <a id="__codelineno-0-426" name="__codelineno-0-426"></a> <span class="bp">self</span><span class="o">.</span><span class="n">model</span> <span class="o">=</span> <span class="n">model</span>
6925
+ <a id="__codelineno-0-427" name="__codelineno-0-427"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
6926
+ <a id="__codelineno-0-428" name="__codelineno-0-428"></a>
6927
+ <a id="__codelineno-0-429" name="__codelineno-0-429"></a> <span class="k">if</span> <span class="n">model</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
6928
+ <a id="__codelineno-0-430" name="__codelineno-0-430"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify model and custom_template at the same time.&quot;</span><span class="p">)</span>
6971
6929
  </code></pre></div></td></tr></table></div>
6972
6930
  </details>
6973
6931
  </div>
@@ -7002,7 +6960,10 @@
7002
6960
 
7003
6961
  <details class="quote">
7004
6962
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7005
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-288">288</a></span>
6963
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-285">285</a></span>
6964
+ <span class="normal"><a href="#__codelineno-0-286">286</a></span>
6965
+ <span class="normal"><a href="#__codelineno-0-287">287</a></span>
6966
+ <span class="normal"><a href="#__codelineno-0-288">288</a></span>
7006
6967
  <span class="normal"><a href="#__codelineno-0-289">289</a></span>
7007
6968
  <span class="normal"><a href="#__codelineno-0-290">290</a></span>
7008
6969
  <span class="normal"><a href="#__codelineno-0-291">291</a></span>
@@ -7047,58 +7008,55 @@
7047
7008
  <span class="normal"><a href="#__codelineno-0-330">330</a></span>
7048
7009
  <span class="normal"><a href="#__codelineno-0-331">331</a></span>
7049
7010
  <span class="normal"><a href="#__codelineno-0-332">332</a></span>
7050
- <span class="normal"><a href="#__codelineno-0-333">333</a></span>
7051
- <span class="normal"><a href="#__codelineno-0-334">334</a></span>
7052
- <span class="normal"><a href="#__codelineno-0-335">335</a></span>
7053
- <span class="normal"><a href="#__codelineno-0-336">336</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-288" name="__codelineno-0-288"></a><span class="k">class</span> <span class="nc">HomePagePanel</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7054
- <a id="__codelineno-0-289" name="__codelineno-0-289"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel.&quot;&quot;&quot;</span>
7011
+ <span class="normal"><a href="#__codelineno-0-333">333</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="k">class</span> <span class="nc">HomePagePanel</span><span class="p">(</span><span class="n">HomePageBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7012
+ <a id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Defines properties that can be used for a panel.&quot;&quot;&quot;</span>
7013
+ <a id="__codelineno-0-287" name="__codelineno-0-287"></a>
7014
+ <a id="__codelineno-0-288" name="__codelineno-0-288"></a> <span class="n">items</span> <span class="o">=</span> <span class="kc">None</span>
7015
+ <a id="__codelineno-0-289" name="__codelineno-0-289"></a> <span class="n">template_path</span> <span class="o">=</span> <span class="kc">None</span>
7055
7016
  <a id="__codelineno-0-290" name="__codelineno-0-290"></a>
7056
- <a id="__codelineno-0-291" name="__codelineno-0-291"></a> <span class="n">items</span> <span class="o">=</span> <span class="kc">None</span>
7057
- <a id="__codelineno-0-292" name="__codelineno-0-292"></a> <span class="n">template_path</span> <span class="o">=</span> <span class="kc">None</span>
7058
- <a id="__codelineno-0-293" name="__codelineno-0-293"></a>
7059
- <a id="__codelineno-0-294" name="__codelineno-0-294"></a> <span class="nd">@property</span>
7060
- <a id="__codelineno-0-295" name="__codelineno-0-295"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7061
- <a id="__codelineno-0-296" name="__codelineno-0-296"></a> <span class="k">return</span> <span class="p">{</span>
7062
- <a id="__codelineno-0-297" name="__codelineno-0-297"></a> <span class="s2">&quot;custom_template&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
7063
- <a id="__codelineno-0-298" name="__codelineno-0-298"></a> <span class="s2">&quot;custom_data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span><span class="p">,</span>
7064
- <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7065
- <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
7066
- <a id="__codelineno-0-301" name="__codelineno-0-301"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
7067
- <a id="__codelineno-0-302" name="__codelineno-0-302"></a> <span class="s2">&quot;template_path&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">template_path</span><span class="p">,</span>
7068
- <a id="__codelineno-0-303" name="__codelineno-0-303"></a> <span class="p">}</span>
7069
- <a id="__codelineno-0-304" name="__codelineno-0-304"></a>
7070
- <a id="__codelineno-0-305" name="__codelineno-0-305"></a> <span class="nd">@property</span>
7071
- <a id="__codelineno-0-306" name="__codelineno-0-306"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7072
- <a id="__codelineno-0-307" name="__codelineno-0-307"></a> <span class="k">return</span> <span class="p">()</span>
7073
- <a id="__codelineno-0-308" name="__codelineno-0-308"></a>
7074
- <a id="__codelineno-0-309" name="__codelineno-0-309"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7075
- <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7076
- <a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="sd"> Ensure panel properties.</span>
7077
- <a id="__codelineno-0-312" name="__codelineno-0-312"></a>
7078
- <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="sd"> Args:</span>
7079
- <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> name (str): The name of the panel.</span>
7080
- <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> permissions (list): The permissions required to view this panel.</span>
7081
- <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
7082
- <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> custom_template (str): Name of custom template.</span>
7083
- <a id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="sd"> items (list): List of items to be rendered in this panel.</span>
7084
- <a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="sd"> weight (int): The weight of this panel.</span>
7085
- <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="sd"> &quot;&quot;&quot;</span>
7086
- <a id="__codelineno-0-321" name="__codelineno-0-321"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
7087
- <a id="__codelineno-0-322" name="__codelineno-0-322"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
7088
- <a id="__codelineno-0-323" name="__codelineno-0-323"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
7089
- <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7090
- <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7091
- <a id="__codelineno-0-326" name="__codelineno-0-326"></a>
7092
- <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7093
- <a id="__codelineno-0-328" name="__codelineno-0-328"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify items and custom_template at the same time.&quot;</span><span class="p">)</span>
7094
- <a id="__codelineno-0-329" name="__codelineno-0-329"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7095
- <a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7096
- <a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7097
- <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">HomePageGroup</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7098
- <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a panel must be an instance of HomePageGroup or HomePageItem&quot;</span><span class="p">)</span>
7099
- <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7100
- <a id="__codelineno-0-335" name="__codelineno-0-335"></a> <span class="k">else</span><span class="p">:</span>
7101
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
7017
+ <a id="__codelineno-0-291" name="__codelineno-0-291"></a> <span class="nd">@property</span>
7018
+ <a id="__codelineno-0-292" name="__codelineno-0-292"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7019
+ <a id="__codelineno-0-293" name="__codelineno-0-293"></a> <span class="k">return</span> <span class="p">{</span>
7020
+ <a id="__codelineno-0-294" name="__codelineno-0-294"></a> <span class="s2">&quot;custom_template&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span><span class="p">,</span>
7021
+ <a id="__codelineno-0-295" name="__codelineno-0-295"></a> <span class="s2">&quot;custom_data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span><span class="p">,</span>
7022
+ <a id="__codelineno-0-296" name="__codelineno-0-296"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7023
+ <a id="__codelineno-0-297" name="__codelineno-0-297"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
7024
+ <a id="__codelineno-0-298" name="__codelineno-0-298"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
7025
+ <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="s2">&quot;template_path&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">template_path</span><span class="p">,</span>
7026
+ <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="p">}</span>
7027
+ <a id="__codelineno-0-301" name="__codelineno-0-301"></a>
7028
+ <a id="__codelineno-0-302" name="__codelineno-0-302"></a> <span class="nd">@property</span>
7029
+ <a id="__codelineno-0-303" name="__codelineno-0-303"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7030
+ <a id="__codelineno-0-304" name="__codelineno-0-304"></a> <span class="k">return</span> <span class="p">()</span>
7031
+ <a id="__codelineno-0-305" name="__codelineno-0-305"></a>
7032
+ <a id="__codelineno-0-306" name="__codelineno-0-306"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7033
+ <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7034
+ <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> Ensure panel properties.</span>
7035
+ <a id="__codelineno-0-309" name="__codelineno-0-309"></a>
7036
+ <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="sd"> Args:</span>
7037
+ <a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="sd"> name (str): The name of the panel.</span>
7038
+ <a id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="sd"> permissions (list): The permissions required to view this panel.</span>
7039
+ <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
7040
+ <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> custom_template (str): Name of custom template.</span>
7041
+ <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> items (list): List of items to be rendered in this panel.</span>
7042
+ <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> weight (int): The weight of this panel.</span>
7043
+ <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> &quot;&quot;&quot;</span>
7044
+ <a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
7045
+ <a id="__codelineno-0-319" name="__codelineno-0-319"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
7046
+ <a id="__codelineno-0-320" name="__codelineno-0-320"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
7047
+ <a id="__codelineno-0-321" name="__codelineno-0-321"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7048
+ <a id="__codelineno-0-322" name="__codelineno-0-322"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7049
+ <a id="__codelineno-0-323" name="__codelineno-0-323"></a>
7050
+ <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7051
+ <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify items and custom_template at the same time.&quot;</span><span class="p">)</span>
7052
+ <a id="__codelineno-0-326" name="__codelineno-0-326"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7053
+ <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7054
+ <a id="__codelineno-0-328" name="__codelineno-0-328"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7055
+ <a id="__codelineno-0-329" name="__codelineno-0-329"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">HomePageGroup</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7056
+ <a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a panel must be an instance of HomePageGroup or HomePageItem&quot;</span><span class="p">)</span>
7057
+ <a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7058
+ <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">else</span><span class="p">:</span>
7059
+ <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
7102
7060
  </code></pre></div></td></tr></table></div>
7103
7061
  </details>
7104
7062
 
@@ -7231,7 +7189,10 @@
7231
7189
 
7232
7190
  <details class="quote">
7233
7191
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7234
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-309">309</a></span>
7192
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-306">306</a></span>
7193
+ <span class="normal"><a href="#__codelineno-0-307">307</a></span>
7194
+ <span class="normal"><a href="#__codelineno-0-308">308</a></span>
7195
+ <span class="normal"><a href="#__codelineno-0-309">309</a></span>
7235
7196
  <span class="normal"><a href="#__codelineno-0-310">310</a></span>
7236
7197
  <span class="normal"><a href="#__codelineno-0-311">311</a></span>
7237
7198
  <span class="normal"><a href="#__codelineno-0-312">312</a></span>
@@ -7255,37 +7216,34 @@
7255
7216
  <span class="normal"><a href="#__codelineno-0-330">330</a></span>
7256
7217
  <span class="normal"><a href="#__codelineno-0-331">331</a></span>
7257
7218
  <span class="normal"><a href="#__codelineno-0-332">332</a></span>
7258
- <span class="normal"><a href="#__codelineno-0-333">333</a></span>
7259
- <span class="normal"><a href="#__codelineno-0-334">334</a></span>
7260
- <span class="normal"><a href="#__codelineno-0-335">335</a></span>
7261
- <span class="normal"><a href="#__codelineno-0-336">336</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7262
- <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7263
- <a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="sd"> Ensure panel properties.</span>
7264
- <a id="__codelineno-0-312" name="__codelineno-0-312"></a>
7265
- <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="sd"> Args:</span>
7266
- <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> name (str): The name of the panel.</span>
7267
- <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> permissions (list): The permissions required to view this panel.</span>
7268
- <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
7269
- <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> custom_template (str): Name of custom template.</span>
7270
- <a id="__codelineno-0-318" name="__codelineno-0-318"></a><span class="sd"> items (list): List of items to be rendered in this panel.</span>
7271
- <a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="sd"> weight (int): The weight of this panel.</span>
7272
- <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="sd"> &quot;&quot;&quot;</span>
7273
- <a id="__codelineno-0-321" name="__codelineno-0-321"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
7274
- <a id="__codelineno-0-322" name="__codelineno-0-322"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
7275
- <a id="__codelineno-0-323" name="__codelineno-0-323"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
7276
- <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7277
- <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7278
- <a id="__codelineno-0-326" name="__codelineno-0-326"></a>
7279
- <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7280
- <a id="__codelineno-0-328" name="__codelineno-0-328"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify items and custom_template at the same time.&quot;</span><span class="p">)</span>
7281
- <a id="__codelineno-0-329" name="__codelineno-0-329"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7282
- <a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7283
- <a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7284
- <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">HomePageGroup</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7285
- <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a panel must be an instance of HomePageGroup or HomePageItem&quot;</span><span class="p">)</span>
7286
- <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7287
- <a id="__codelineno-0-335" name="__codelineno-0-335"></a> <span class="k">else</span><span class="p">:</span>
7288
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
7219
+ <span class="normal"><a href="#__codelineno-0-333">333</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">custom_template</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7220
+ <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7221
+ <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> Ensure panel properties.</span>
7222
+ <a id="__codelineno-0-309" name="__codelineno-0-309"></a>
7223
+ <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="sd"> Args:</span>
7224
+ <a id="__codelineno-0-311" name="__codelineno-0-311"></a><span class="sd"> name (str): The name of the panel.</span>
7225
+ <a id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="sd"> permissions (list): The permissions required to view this panel.</span>
7226
+ <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="sd"> custom_data (dict): Custom data to be passed to the custom template.</span>
7227
+ <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> custom_template (str): Name of custom template.</span>
7228
+ <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> items (list): List of items to be rendered in this panel.</span>
7229
+ <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> weight (int): The weight of this panel.</span>
7230
+ <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> &quot;&quot;&quot;</span>
7231
+ <a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
7232
+ <a id="__codelineno-0-319" name="__codelineno-0-319"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_data</span> <span class="o">=</span> <span class="n">custom_data</span>
7233
+ <a id="__codelineno-0-320" name="__codelineno-0-320"></a> <span class="bp">self</span><span class="o">.</span><span class="n">custom_template</span> <span class="o">=</span> <span class="n">custom_template</span>
7234
+ <a id="__codelineno-0-321" name="__codelineno-0-321"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7235
+ <a id="__codelineno-0-322" name="__codelineno-0-322"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7236
+ <a id="__codelineno-0-323" name="__codelineno-0-323"></a>
7237
+ <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">custom_template</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7238
+ <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot specify items and custom_template at the same time.&quot;</span><span class="p">)</span>
7239
+ <a id="__codelineno-0-326" name="__codelineno-0-326"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
7240
+ <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7241
+ <a id="__codelineno-0-328" name="__codelineno-0-328"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7242
+ <a id="__codelineno-0-329" name="__codelineno-0-329"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">HomePageGroup</span><span class="p">,</span> <span class="n">HomePageItem</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7243
+ <a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a panel must be an instance of HomePageGroup or HomePageItem&quot;</span><span class="p">)</span>
7244
+ <a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7245
+ <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">else</span><span class="p">:</span>
7246
+ <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
7289
7247
  </code></pre></div></td></tr></table></div>
7290
7248
  </details>
7291
7249
  </div>
@@ -7321,7 +7279,10 @@
7321
7279
 
7322
7280
  <details class="quote">
7323
7281
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7324
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-674">674</a></span>
7282
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-671">671</a></span>
7283
+ <span class="normal"><a href="#__codelineno-0-672">672</a></span>
7284
+ <span class="normal"><a href="#__codelineno-0-673">673</a></span>
7285
+ <span class="normal"><a href="#__codelineno-0-674">674</a></span>
7325
7286
  <span class="normal"><a href="#__codelineno-0-675">675</a></span>
7326
7287
  <span class="normal"><a href="#__codelineno-0-676">676</a></span>
7327
7288
  <span class="normal"><a href="#__codelineno-0-677">677</a></span>
@@ -7353,45 +7314,42 @@
7353
7314
  <span class="normal"><a href="#__codelineno-0-703">703</a></span>
7354
7315
  <span class="normal"><a href="#__codelineno-0-704">704</a></span>
7355
7316
  <span class="normal"><a href="#__codelineno-0-705">705</a></span>
7356
- <span class="normal"><a href="#__codelineno-0-706">706</a></span>
7357
- <span class="normal"><a href="#__codelineno-0-707">707</a></span>
7358
- <span class="normal"><a href="#__codelineno-0-708">708</a></span>
7359
- <span class="normal"><a href="#__codelineno-0-709">709</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-674" name="__codelineno-0-674"></a><span class="k">class</span> <span class="nc">NavContext</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">):</span>
7360
- <a id="__codelineno-0-675" name="__codelineno-0-675"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ths class represents a navigation menu tab for new ui.</span>
7317
+ <span class="normal"><a href="#__codelineno-0-706">706</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-671" name="__codelineno-0-671"></a><span class="k">class</span> <span class="nc">NavContext</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">):</span>
7318
+ <a id="__codelineno-0-672" name="__codelineno-0-672"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ths class represents a navigation menu tab for new ui.</span>
7319
+ <a id="__codelineno-0-673" name="__codelineno-0-673"></a>
7320
+ <a id="__codelineno-0-674" name="__codelineno-0-674"></a><span class="sd"> Groups are each specified as a list of NavGrouping instances.</span>
7321
+ <a id="__codelineno-0-675" name="__codelineno-0-675"></a><span class="sd"> &quot;&quot;&quot;</span>
7361
7322
  <a id="__codelineno-0-676" name="__codelineno-0-676"></a>
7362
- <a id="__codelineno-0-677" name="__codelineno-0-677"></a><span class="sd"> Groups are each specified as a list of NavGrouping instances.</span>
7363
- <a id="__codelineno-0-678" name="__codelineno-0-678"></a><span class="sd"> &quot;&quot;&quot;</span>
7364
- <a id="__codelineno-0-679" name="__codelineno-0-679"></a>
7365
- <a id="__codelineno-0-680" name="__codelineno-0-680"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">groups</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7366
- <a id="__codelineno-0-681" name="__codelineno-0-681"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7367
- <a id="__codelineno-0-682" name="__codelineno-0-682"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
7368
- <a id="__codelineno-0-683" name="__codelineno-0-683"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7369
- <a id="__codelineno-0-684" name="__codelineno-0-684"></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate</span><span class="p">()</span>
7370
- <a id="__codelineno-0-685" name="__codelineno-0-685"></a>
7371
- <a id="__codelineno-0-686" name="__codelineno-0-686"></a> <span class="k">def</span> <span class="nf">validate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7372
- <a id="__codelineno-0-687" name="__codelineno-0-687"></a> <span class="c1"># NavContext name must belong in this group (&quot;Inventory&quot;, &quot;Networks&quot;, &quot;Security&quot;, &quot;Automation&quot;, &quot;Platform&quot;)</span>
7373
- <a id="__codelineno-0-688" name="__codelineno-0-688"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">NAV_CONTEXT_NAMES</span><span class="p">:</span>
7374
- <a id="__codelineno-0-689" name="__codelineno-0-689"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;`</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">` is an invalid context name, valid choices are: </span><span class="si">{</span><span class="n">NAV_CONTEXT_NAMES</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
7375
- <a id="__codelineno-0-690" name="__codelineno-0-690"></a>
7376
- <a id="__codelineno-0-691" name="__codelineno-0-691"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
7377
- <a id="__codelineno-0-692" name="__codelineno-0-692"></a> <span class="n">groups</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span>
7378
- <a id="__codelineno-0-693" name="__codelineno-0-693"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7379
- <a id="__codelineno-0-694" name="__codelineno-0-694"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7380
- <a id="__codelineno-0-695" name="__codelineno-0-695"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavGrouping</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
7381
- <a id="__codelineno-0-696" name="__codelineno-0-696"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a NavContext must be an instance of NavGrouping&quot;</span><span class="p">)</span>
7382
- <a id="__codelineno-0-697" name="__codelineno-0-697"></a>
7383
- <a id="__codelineno-0-698" name="__codelineno-0-698"></a> <span class="nd">@property</span>
7384
- <a id="__codelineno-0-699" name="__codelineno-0-699"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7385
- <a id="__codelineno-0-700" name="__codelineno-0-700"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7386
- <a id="__codelineno-0-701" name="__codelineno-0-701"></a> <span class="k">return</span> <span class="p">{</span>
7387
- <a id="__codelineno-0-702" name="__codelineno-0-702"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7388
- <a id="__codelineno-0-703" name="__codelineno-0-703"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="p">{},</span>
7389
- <a id="__codelineno-0-704" name="__codelineno-0-704"></a> <span class="p">}</span>
7390
- <a id="__codelineno-0-705" name="__codelineno-0-705"></a>
7391
- <a id="__codelineno-0-706" name="__codelineno-0-706"></a> <span class="nd">@property</span>
7392
- <a id="__codelineno-0-707" name="__codelineno-0-707"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
7393
- <a id="__codelineno-0-708" name="__codelineno-0-708"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7394
- <a id="__codelineno-0-709" name="__codelineno-0-709"></a> <span class="k">return</span> <span class="p">()</span>
7323
+ <a id="__codelineno-0-677" name="__codelineno-0-677"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">groups</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7324
+ <a id="__codelineno-0-678" name="__codelineno-0-678"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7325
+ <a id="__codelineno-0-679" name="__codelineno-0-679"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
7326
+ <a id="__codelineno-0-680" name="__codelineno-0-680"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7327
+ <a id="__codelineno-0-681" name="__codelineno-0-681"></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate</span><span class="p">()</span>
7328
+ <a id="__codelineno-0-682" name="__codelineno-0-682"></a>
7329
+ <a id="__codelineno-0-683" name="__codelineno-0-683"></a> <span class="k">def</span> <span class="nf">validate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7330
+ <a id="__codelineno-0-684" name="__codelineno-0-684"></a> <span class="c1"># NavContext name must belong in this group (&quot;Inventory&quot;, &quot;Networks&quot;, &quot;Security&quot;, &quot;Automation&quot;, &quot;Platform&quot;)</span>
7331
+ <a id="__codelineno-0-685" name="__codelineno-0-685"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">NAV_CONTEXT_NAMES</span><span class="p">:</span>
7332
+ <a id="__codelineno-0-686" name="__codelineno-0-686"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;`</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">` is an invalid context name, valid choices are: </span><span class="si">{</span><span class="n">NAV_CONTEXT_NAMES</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
7333
+ <a id="__codelineno-0-687" name="__codelineno-0-687"></a>
7334
+ <a id="__codelineno-0-688" name="__codelineno-0-688"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
7335
+ <a id="__codelineno-0-689" name="__codelineno-0-689"></a> <span class="n">groups</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span>
7336
+ <a id="__codelineno-0-690" name="__codelineno-0-690"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7337
+ <a id="__codelineno-0-691" name="__codelineno-0-691"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7338
+ <a id="__codelineno-0-692" name="__codelineno-0-692"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavGrouping</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
7339
+ <a id="__codelineno-0-693" name="__codelineno-0-693"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a NavContext must be an instance of NavGrouping&quot;</span><span class="p">)</span>
7340
+ <a id="__codelineno-0-694" name="__codelineno-0-694"></a>
7341
+ <a id="__codelineno-0-695" name="__codelineno-0-695"></a> <span class="nd">@property</span>
7342
+ <a id="__codelineno-0-696" name="__codelineno-0-696"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7343
+ <a id="__codelineno-0-697" name="__codelineno-0-697"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7344
+ <a id="__codelineno-0-698" name="__codelineno-0-698"></a> <span class="k">return</span> <span class="p">{</span>
7345
+ <a id="__codelineno-0-699" name="__codelineno-0-699"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7346
+ <a id="__codelineno-0-700" name="__codelineno-0-700"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="p">{},</span>
7347
+ <a id="__codelineno-0-701" name="__codelineno-0-701"></a> <span class="p">}</span>
7348
+ <a id="__codelineno-0-702" name="__codelineno-0-702"></a>
7349
+ <a id="__codelineno-0-703" name="__codelineno-0-703"></a> <span class="nd">@property</span>
7350
+ <a id="__codelineno-0-704" name="__codelineno-0-704"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
7351
+ <a id="__codelineno-0-705" name="__codelineno-0-705"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7352
+ <a id="__codelineno-0-706" name="__codelineno-0-706"></a> <span class="k">return</span> <span class="p">()</span>
7395
7353
  </code></pre></div></td></tr></table></div>
7396
7354
  </details>
7397
7355
 
@@ -7479,7 +7437,10 @@ the display text and the weight defines its position in the navigation sidebar.<
7479
7437
 
7480
7438
  <details class="quote">
7481
7439
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7482
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-712">712</a></span>
7440
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-709">709</a></span>
7441
+ <span class="normal"><a href="#__codelineno-0-710">710</a></span>
7442
+ <span class="normal"><a href="#__codelineno-0-711">711</a></span>
7443
+ <span class="normal"><a href="#__codelineno-0-712">712</a></span>
7483
7444
  <span class="normal"><a href="#__codelineno-0-713">713</a></span>
7484
7445
  <span class="normal"><a href="#__codelineno-0-714">714</a></span>
7485
7446
  <span class="normal"><a href="#__codelineno-0-715">715</a></span>
@@ -7510,44 +7471,41 @@ the display text and the weight defines its position in the navigation sidebar.<
7510
7471
  <span class="normal"><a href="#__codelineno-0-740">740</a></span>
7511
7472
  <span class="normal"><a href="#__codelineno-0-741">741</a></span>
7512
7473
  <span class="normal"><a href="#__codelineno-0-742">742</a></span>
7513
- <span class="normal"><a href="#__codelineno-0-743">743</a></span>
7514
- <span class="normal"><a href="#__codelineno-0-744">744</a></span>
7515
- <span class="normal"><a href="#__codelineno-0-745">745</a></span>
7516
- <span class="normal"><a href="#__codelineno-0-746">746</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-712" name="__codelineno-0-712"></a><span class="k">class</span> <span class="nc">NavGrouping</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7517
- <a id="__codelineno-0-713" name="__codelineno-0-713"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7518
- <a id="__codelineno-0-714" name="__codelineno-0-714"></a><span class="sd"> Ths class represents a navigation menu group for the new ui. This is built up from a name and a weight value. The name is</span>
7519
- <a id="__codelineno-0-715" name="__codelineno-0-715"></a><span class="sd"> the display text and the weight defines its position in the navigation sidebar.</span>
7474
+ <span class="normal"><a href="#__codelineno-0-743">743</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-709" name="__codelineno-0-709"></a><span class="k">class</span> <span class="nc">NavGrouping</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7475
+ <a id="__codelineno-0-710" name="__codelineno-0-710"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7476
+ <a id="__codelineno-0-711" name="__codelineno-0-711"></a><span class="sd"> Ths class represents a navigation menu group for the new ui. This is built up from a name and a weight value. The name is</span>
7477
+ <a id="__codelineno-0-712" name="__codelineno-0-712"></a><span class="sd"> the display text and the weight defines its position in the navigation sidebar.</span>
7478
+ <a id="__codelineno-0-713" name="__codelineno-0-713"></a>
7479
+ <a id="__codelineno-0-714" name="__codelineno-0-714"></a><span class="sd"> Items are each specified as a list of NavItem or NavGrouping instances.</span>
7480
+ <a id="__codelineno-0-715" name="__codelineno-0-715"></a><span class="sd"> &quot;&quot;&quot;</span>
7520
7481
  <a id="__codelineno-0-716" name="__codelineno-0-716"></a>
7521
- <a id="__codelineno-0-717" name="__codelineno-0-717"></a><span class="sd"> Items are each specified as a list of NavItem or NavGrouping instances.</span>
7522
- <a id="__codelineno-0-718" name="__codelineno-0-718"></a><span class="sd"> &quot;&quot;&quot;</span>
7523
- <a id="__codelineno-0-719" name="__codelineno-0-719"></a>
7524
- <a id="__codelineno-0-720" name="__codelineno-0-720"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7525
- <a id="__codelineno-0-721" name="__codelineno-0-721"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7526
- <a id="__codelineno-0-722" name="__codelineno-0-722"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7527
- <a id="__codelineno-0-723" name="__codelineno-0-723"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7528
- <a id="__codelineno-0-724" name="__codelineno-0-724"></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate</span><span class="p">()</span>
7529
- <a id="__codelineno-0-725" name="__codelineno-0-725"></a>
7530
- <a id="__codelineno-0-726" name="__codelineno-0-726"></a> <span class="k">def</span> <span class="nf">validate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7531
- <a id="__codelineno-0-727" name="__codelineno-0-727"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">items</span><span class="p">:</span>
7532
- <a id="__codelineno-0-728" name="__codelineno-0-728"></a> <span class="n">items</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">items</span>
7533
- <a id="__codelineno-0-729" name="__codelineno-0-729"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7534
- <a id="__codelineno-0-730" name="__codelineno-0-730"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7482
+ <a id="__codelineno-0-717" name="__codelineno-0-717"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
7483
+ <a id="__codelineno-0-718" name="__codelineno-0-718"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7484
+ <a id="__codelineno-0-719" name="__codelineno-0-719"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
7485
+ <a id="__codelineno-0-720" name="__codelineno-0-720"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7486
+ <a id="__codelineno-0-721" name="__codelineno-0-721"></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate</span><span class="p">()</span>
7487
+ <a id="__codelineno-0-722" name="__codelineno-0-722"></a>
7488
+ <a id="__codelineno-0-723" name="__codelineno-0-723"></a> <span class="k">def</span> <span class="nf">validate</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7489
+ <a id="__codelineno-0-724" name="__codelineno-0-724"></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">items</span><span class="p">:</span>
7490
+ <a id="__codelineno-0-725" name="__codelineno-0-725"></a> <span class="n">items</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">items</span>
7491
+ <a id="__codelineno-0-726" name="__codelineno-0-726"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
7492
+ <a id="__codelineno-0-727" name="__codelineno-0-727"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
7493
+ <a id="__codelineno-0-728" name="__codelineno-0-728"></a>
7494
+ <a id="__codelineno-0-729" name="__codelineno-0-729"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">NavItem</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7495
+ <a id="__codelineno-0-730" name="__codelineno-0-730"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a NavGrouping must be an instance of NavItem or NavGrouping&quot;</span><span class="p">)</span>
7535
7496
  <a id="__codelineno-0-731" name="__codelineno-0-731"></a>
7536
- <a id="__codelineno-0-732" name="__codelineno-0-732"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="p">(</span><span class="n">NavItem</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">))</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
7537
- <a id="__codelineno-0-733" name="__codelineno-0-733"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a NavGrouping must be an instance of NavItem or NavGrouping&quot;</span><span class="p">)</span>
7538
- <a id="__codelineno-0-734" name="__codelineno-0-734"></a>
7539
- <a id="__codelineno-0-735" name="__codelineno-0-735"></a> <span class="nd">@property</span>
7540
- <a id="__codelineno-0-736" name="__codelineno-0-736"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7541
- <a id="__codelineno-0-737" name="__codelineno-0-737"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7542
- <a id="__codelineno-0-738" name="__codelineno-0-738"></a> <span class="k">return</span> <span class="p">{</span>
7543
- <a id="__codelineno-0-739" name="__codelineno-0-739"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7544
- <a id="__codelineno-0-740" name="__codelineno-0-740"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="p">{},</span>
7545
- <a id="__codelineno-0-741" name="__codelineno-0-741"></a> <span class="p">}</span>
7546
- <a id="__codelineno-0-742" name="__codelineno-0-742"></a>
7547
- <a id="__codelineno-0-743" name="__codelineno-0-743"></a> <span class="nd">@property</span>
7548
- <a id="__codelineno-0-744" name="__codelineno-0-744"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
7549
- <a id="__codelineno-0-745" name="__codelineno-0-745"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7550
- <a id="__codelineno-0-746" name="__codelineno-0-746"></a> <span class="k">return</span> <span class="p">()</span>
7497
+ <a id="__codelineno-0-732" name="__codelineno-0-732"></a> <span class="nd">@property</span>
7498
+ <a id="__codelineno-0-733" name="__codelineno-0-733"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7499
+ <a id="__codelineno-0-734" name="__codelineno-0-734"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7500
+ <a id="__codelineno-0-735" name="__codelineno-0-735"></a> <span class="k">return</span> <span class="p">{</span>
7501
+ <a id="__codelineno-0-736" name="__codelineno-0-736"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7502
+ <a id="__codelineno-0-737" name="__codelineno-0-737"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="p">{},</span>
7503
+ <a id="__codelineno-0-738" name="__codelineno-0-738"></a> <span class="p">}</span>
7504
+ <a id="__codelineno-0-739" name="__codelineno-0-739"></a>
7505
+ <a id="__codelineno-0-740" name="__codelineno-0-740"></a> <span class="nd">@property</span>
7506
+ <a id="__codelineno-0-741" name="__codelineno-0-741"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
7507
+ <a id="__codelineno-0-742" name="__codelineno-0-742"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7508
+ <a id="__codelineno-0-743" name="__codelineno-0-743"></a> <span class="k">return</span> <span class="p">()</span>
7551
7509
  </code></pre></div></td></tr></table></div>
7552
7510
  </details>
7553
7511
 
@@ -7634,7 +7592,10 @@ the display text and the weight defines its position in the navigation sidebar.<
7634
7592
 
7635
7593
  <details class="quote">
7636
7594
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7637
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-749">749</a></span>
7595
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-746">746</a></span>
7596
+ <span class="normal"><a href="#__codelineno-0-747">747</a></span>
7597
+ <span class="normal"><a href="#__codelineno-0-748">748</a></span>
7598
+ <span class="normal"><a href="#__codelineno-0-749">749</a></span>
7638
7599
  <span class="normal"><a href="#__codelineno-0-750">750</a></span>
7639
7600
  <span class="normal"><a href="#__codelineno-0-751">751</a></span>
7640
7601
  <span class="normal"><a href="#__codelineno-0-752">752</a></span>
@@ -7669,48 +7630,45 @@ the display text and the weight defines its position in the navigation sidebar.<
7669
7630
  <span class="normal"><a href="#__codelineno-0-781">781</a></span>
7670
7631
  <span class="normal"><a href="#__codelineno-0-782">782</a></span>
7671
7632
  <span class="normal"><a href="#__codelineno-0-783">783</a></span>
7672
- <span class="normal"><a href="#__codelineno-0-784">784</a></span>
7673
- <span class="normal"><a href="#__codelineno-0-785">785</a></span>
7674
- <span class="normal"><a href="#__codelineno-0-786">786</a></span>
7675
- <span class="normal"><a href="#__codelineno-0-787">787</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-749" name="__codelineno-0-749"></a><span class="k">class</span> <span class="nc">NavItem</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7676
- <a id="__codelineno-0-750" name="__codelineno-0-750"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7677
- <a id="__codelineno-0-751" name="__codelineno-0-751"></a><span class="sd"> This class represents a navigation menu item for the new ui. This constitutes link and its text.</span>
7633
+ <span class="normal"><a href="#__codelineno-0-784">784</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-746" name="__codelineno-0-746"></a><span class="k">class</span> <span class="nc">NavItem</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
7634
+ <a id="__codelineno-0-747" name="__codelineno-0-747"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
7635
+ <a id="__codelineno-0-748" name="__codelineno-0-748"></a><span class="sd"> This class represents a navigation menu item for the new ui. This constitutes link and its text.</span>
7636
+ <a id="__codelineno-0-749" name="__codelineno-0-749"></a>
7637
+ <a id="__codelineno-0-750" name="__codelineno-0-750"></a><span class="sd"> Links are specified as Django reverse URL strings.</span>
7638
+ <a id="__codelineno-0-751" name="__codelineno-0-751"></a><span class="sd"> &quot;&quot;&quot;</span>
7678
7639
  <a id="__codelineno-0-752" name="__codelineno-0-752"></a>
7679
- <a id="__codelineno-0-753" name="__codelineno-0-753"></a><span class="sd"> Links are specified as Django reverse URL strings.</span>
7680
- <a id="__codelineno-0-754" name="__codelineno-0-754"></a><span class="sd"> &quot;&quot;&quot;</span>
7681
- <a id="__codelineno-0-755" name="__codelineno-0-755"></a>
7682
- <a id="__codelineno-0-756" name="__codelineno-0-756"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7683
- <a id="__codelineno-0-757" name="__codelineno-0-757"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7684
- <a id="__codelineno-0-758" name="__codelineno-0-758"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
7685
- <a id="__codelineno-0-759" name="__codelineno-0-759"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="n">permissions</span> <span class="ow">or</span> <span class="p">[]</span>
7686
- <a id="__codelineno-0-760" name="__codelineno-0-760"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7687
- <a id="__codelineno-0-761" name="__codelineno-0-761"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
7688
- <a id="__codelineno-0-762" name="__codelineno-0-762"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
7689
- <a id="__codelineno-0-763" name="__codelineno-0-763"></a>
7690
- <a id="__codelineno-0-764" name="__codelineno-0-764"></a> <span class="nd">@property</span>
7691
- <a id="__codelineno-0-765" name="__codelineno-0-765"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7692
- <a id="__codelineno-0-766" name="__codelineno-0-766"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7693
- <a id="__codelineno-0-767" name="__codelineno-0-767"></a> <span class="k">return</span> <span class="p">{</span>
7694
- <a id="__codelineno-0-768" name="__codelineno-0-768"></a> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
7695
- <a id="__codelineno-0-769" name="__codelineno-0-769"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7696
- <a id="__codelineno-0-770" name="__codelineno-0-770"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
7697
- <a id="__codelineno-0-771" name="__codelineno-0-771"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">url</span><span class="p">(),</span>
7698
- <a id="__codelineno-0-772" name="__codelineno-0-772"></a> <span class="p">}</span>
7699
- <a id="__codelineno-0-773" name="__codelineno-0-773"></a>
7700
- <a id="__codelineno-0-774" name="__codelineno-0-774"></a> <span class="nd">@property</span>
7701
- <a id="__codelineno-0-775" name="__codelineno-0-775"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7702
- <a id="__codelineno-0-776" name="__codelineno-0-776"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7703
- <a id="__codelineno-0-777" name="__codelineno-0-777"></a> <span class="k">return</span> <span class="p">(</span>
7704
- <a id="__codelineno-0-778" name="__codelineno-0-778"></a> <span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
7705
- <a id="__codelineno-0-779" name="__codelineno-0-779"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
7706
- <a id="__codelineno-0-780" name="__codelineno-0-780"></a> <span class="p">)</span>
7707
- <a id="__codelineno-0-781" name="__codelineno-0-781"></a>
7708
- <a id="__codelineno-0-782" name="__codelineno-0-782"></a> <span class="k">def</span> <span class="nf">url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7709
- <a id="__codelineno-0-783" name="__codelineno-0-783"></a> <span class="k">try</span><span class="p">:</span>
7710
- <a id="__codelineno-0-784" name="__codelineno-0-784"></a> <span class="k">return</span> <span class="n">reverse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span>
7711
- <a id="__codelineno-0-785" name="__codelineno-0-785"></a> <span class="k">except</span> <span class="n">NoReverseMatch</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
7712
- <a id="__codelineno-0-786" name="__codelineno-0-786"></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Error in link construction for </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
7713
- <a id="__codelineno-0-787" name="__codelineno-0-787"></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
7640
+ <a id="__codelineno-0-753" name="__codelineno-0-753"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7641
+ <a id="__codelineno-0-754" name="__codelineno-0-754"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
7642
+ <a id="__codelineno-0-755" name="__codelineno-0-755"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
7643
+ <a id="__codelineno-0-756" name="__codelineno-0-756"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="n">permissions</span> <span class="ow">or</span> <span class="p">[]</span>
7644
+ <a id="__codelineno-0-757" name="__codelineno-0-757"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
7645
+ <a id="__codelineno-0-758" name="__codelineno-0-758"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
7646
+ <a id="__codelineno-0-759" name="__codelineno-0-759"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
7647
+ <a id="__codelineno-0-760" name="__codelineno-0-760"></a>
7648
+ <a id="__codelineno-0-761" name="__codelineno-0-761"></a> <span class="nd">@property</span>
7649
+ <a id="__codelineno-0-762" name="__codelineno-0-762"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
7650
+ <a id="__codelineno-0-763" name="__codelineno-0-763"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7651
+ <a id="__codelineno-0-764" name="__codelineno-0-764"></a> <span class="k">return</span> <span class="p">{</span>
7652
+ <a id="__codelineno-0-765" name="__codelineno-0-765"></a> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
7653
+ <a id="__codelineno-0-766" name="__codelineno-0-766"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
7654
+ <a id="__codelineno-0-767" name="__codelineno-0-767"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
7655
+ <a id="__codelineno-0-768" name="__codelineno-0-768"></a> <span class="s2">&quot;data&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">url</span><span class="p">(),</span>
7656
+ <a id="__codelineno-0-769" name="__codelineno-0-769"></a> <span class="p">}</span>
7657
+ <a id="__codelineno-0-770" name="__codelineno-0-770"></a>
7658
+ <a id="__codelineno-0-771" name="__codelineno-0-771"></a> <span class="nd">@property</span>
7659
+ <a id="__codelineno-0-772" name="__codelineno-0-772"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7660
+ <a id="__codelineno-0-773" name="__codelineno-0-773"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7661
+ <a id="__codelineno-0-774" name="__codelineno-0-774"></a> <span class="k">return</span> <span class="p">(</span>
7662
+ <a id="__codelineno-0-775" name="__codelineno-0-775"></a> <span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
7663
+ <a id="__codelineno-0-776" name="__codelineno-0-776"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
7664
+ <a id="__codelineno-0-777" name="__codelineno-0-777"></a> <span class="p">)</span>
7665
+ <a id="__codelineno-0-778" name="__codelineno-0-778"></a>
7666
+ <a id="__codelineno-0-779" name="__codelineno-0-779"></a> <span class="k">def</span> <span class="nf">url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
7667
+ <a id="__codelineno-0-780" name="__codelineno-0-780"></a> <span class="k">try</span><span class="p">:</span>
7668
+ <a id="__codelineno-0-781" name="__codelineno-0-781"></a> <span class="k">return</span> <span class="n">reverse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span>
7669
+ <a id="__codelineno-0-782" name="__codelineno-0-782"></a> <span class="k">except</span> <span class="n">NoReverseMatch</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
7670
+ <a id="__codelineno-0-783" name="__codelineno-0-783"></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">&quot;Error in link construction for </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span>
7671
+ <a id="__codelineno-0-784" name="__codelineno-0-784"></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
7714
7672
  </code></pre></div></td></tr></table></div>
7715
7673
  </details>
7716
7674
 
@@ -7796,7 +7754,10 @@ the display text and the weight defines its position in the navigation sidebar.<
7796
7754
 
7797
7755
  <details class="quote">
7798
7756
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7799
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-642">642</a></span>
7757
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-639">639</a></span>
7758
+ <span class="normal"><a href="#__codelineno-0-640">640</a></span>
7759
+ <span class="normal"><a href="#__codelineno-0-641">641</a></span>
7760
+ <span class="normal"><a href="#__codelineno-0-642">642</a></span>
7800
7761
  <span class="normal"><a href="#__codelineno-0-643">643</a></span>
7801
7762
  <span class="normal"><a href="#__codelineno-0-644">644</a></span>
7802
7763
  <span class="normal"><a href="#__codelineno-0-645">645</a></span>
@@ -7806,23 +7767,20 @@ the display text and the weight defines its position in the navigation sidebar.<
7806
7767
  <span class="normal"><a href="#__codelineno-0-649">649</a></span>
7807
7768
  <span class="normal"><a href="#__codelineno-0-650">650</a></span>
7808
7769
  <span class="normal"><a href="#__codelineno-0-651">651</a></span>
7809
- <span class="normal"><a href="#__codelineno-0-652">652</a></span>
7810
- <span class="normal"><a href="#__codelineno-0-653">653</a></span>
7811
- <span class="normal"><a href="#__codelineno-0-654">654</a></span>
7812
- <span class="normal"><a href="#__codelineno-0-655">655</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-642" name="__codelineno-0-642"></a><span class="k">class</span> <span class="nc">NavMenuAddButton</span><span class="p">(</span><span class="n">NavMenuButton</span><span class="p">):</span>
7813
- <a id="__codelineno-0-643" name="__codelineno-0-643"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Add button subclass.&quot;&quot;&quot;</span>
7814
- <a id="__codelineno-0-644" name="__codelineno-0-644"></a>
7815
- <a id="__codelineno-0-645" name="__codelineno-0-645"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7816
- <a id="__codelineno-0-646" name="__codelineno-0-646"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
7817
- <a id="__codelineno-0-647" name="__codelineno-0-647"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7818
- <a id="__codelineno-0-648" name="__codelineno-0-648"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Add&quot;</span>
7819
- <a id="__codelineno-0-649" name="__codelineno-0-649"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7820
- <a id="__codelineno-0-650" name="__codelineno-0-650"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">ADD</span>
7821
- <a id="__codelineno-0-651" name="__codelineno-0-651"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7822
- <a id="__codelineno-0-652" name="__codelineno-0-652"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">ADD</span>
7823
- <a id="__codelineno-0-653" name="__codelineno-0-653"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7824
- <a id="__codelineno-0-654" name="__codelineno-0-654"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">100</span>
7825
- <a id="__codelineno-0-655" name="__codelineno-0-655"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
7770
+ <span class="normal"><a href="#__codelineno-0-652">652</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-639" name="__codelineno-0-639"></a><span class="k">class</span> <span class="nc">NavMenuAddButton</span><span class="p">(</span><span class="n">NavMenuButton</span><span class="p">):</span>
7771
+ <a id="__codelineno-0-640" name="__codelineno-0-640"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Add button subclass.&quot;&quot;&quot;</span>
7772
+ <a id="__codelineno-0-641" name="__codelineno-0-641"></a>
7773
+ <a id="__codelineno-0-642" name="__codelineno-0-642"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7774
+ <a id="__codelineno-0-643" name="__codelineno-0-643"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
7775
+ <a id="__codelineno-0-644" name="__codelineno-0-644"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7776
+ <a id="__codelineno-0-645" name="__codelineno-0-645"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Add&quot;</span>
7777
+ <a id="__codelineno-0-646" name="__codelineno-0-646"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7778
+ <a id="__codelineno-0-647" name="__codelineno-0-647"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">ADD</span>
7779
+ <a id="__codelineno-0-648" name="__codelineno-0-648"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7780
+ <a id="__codelineno-0-649" name="__codelineno-0-649"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">ADD</span>
7781
+ <a id="__codelineno-0-650" name="__codelineno-0-650"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7782
+ <a id="__codelineno-0-651" name="__codelineno-0-651"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">100</span>
7783
+ <a id="__codelineno-0-652" name="__codelineno-0-652"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
7826
7784
  </code></pre></div></td></tr></table></div>
7827
7785
  </details>
7828
7786
 
@@ -7855,27 +7813,27 @@ the display text and the weight defines its position in the navigation sidebar.<
7855
7813
 
7856
7814
  <details class="quote">
7857
7815
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7858
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-645">645</a></span>
7816
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-642">642</a></span>
7817
+ <span class="normal"><a href="#__codelineno-0-643">643</a></span>
7818
+ <span class="normal"><a href="#__codelineno-0-644">644</a></span>
7819
+ <span class="normal"><a href="#__codelineno-0-645">645</a></span>
7859
7820
  <span class="normal"><a href="#__codelineno-0-646">646</a></span>
7860
7821
  <span class="normal"><a href="#__codelineno-0-647">647</a></span>
7861
7822
  <span class="normal"><a href="#__codelineno-0-648">648</a></span>
7862
7823
  <span class="normal"><a href="#__codelineno-0-649">649</a></span>
7863
7824
  <span class="normal"><a href="#__codelineno-0-650">650</a></span>
7864
7825
  <span class="normal"><a href="#__codelineno-0-651">651</a></span>
7865
- <span class="normal"><a href="#__codelineno-0-652">652</a></span>
7866
- <span class="normal"><a href="#__codelineno-0-653">653</a></span>
7867
- <span class="normal"><a href="#__codelineno-0-654">654</a></span>
7868
- <span class="normal"><a href="#__codelineno-0-655">655</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-645" name="__codelineno-0-645"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7869
- <a id="__codelineno-0-646" name="__codelineno-0-646"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
7870
- <a id="__codelineno-0-647" name="__codelineno-0-647"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7871
- <a id="__codelineno-0-648" name="__codelineno-0-648"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Add&quot;</span>
7872
- <a id="__codelineno-0-649" name="__codelineno-0-649"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7873
- <a id="__codelineno-0-650" name="__codelineno-0-650"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">ADD</span>
7874
- <a id="__codelineno-0-651" name="__codelineno-0-651"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7875
- <a id="__codelineno-0-652" name="__codelineno-0-652"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">ADD</span>
7876
- <a id="__codelineno-0-653" name="__codelineno-0-653"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7877
- <a id="__codelineno-0-654" name="__codelineno-0-654"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">100</span>
7878
- <a id="__codelineno-0-655" name="__codelineno-0-655"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
7826
+ <span class="normal"><a href="#__codelineno-0-652">652</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-642" name="__codelineno-0-642"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
7827
+ <a id="__codelineno-0-643" name="__codelineno-0-643"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
7828
+ <a id="__codelineno-0-644" name="__codelineno-0-644"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7829
+ <a id="__codelineno-0-645" name="__codelineno-0-645"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Add&quot;</span>
7830
+ <a id="__codelineno-0-646" name="__codelineno-0-646"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7831
+ <a id="__codelineno-0-647" name="__codelineno-0-647"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">ADD</span>
7832
+ <a id="__codelineno-0-648" name="__codelineno-0-648"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7833
+ <a id="__codelineno-0-649" name="__codelineno-0-649"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">ADD</span>
7834
+ <a id="__codelineno-0-650" name="__codelineno-0-650"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
7835
+ <a id="__codelineno-0-651" name="__codelineno-0-651"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">100</span>
7836
+ <a id="__codelineno-0-652" name="__codelineno-0-652"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
7879
7837
  </code></pre></div></td></tr></table></div>
7880
7838
  </details>
7881
7839
  </div>
@@ -7910,7 +7868,10 @@ the display text and the weight defines its position in the navigation sidebar.<
7910
7868
 
7911
7869
  <details class="quote">
7912
7870
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
7913
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-262">262</a></span>
7871
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-259">259</a></span>
7872
+ <span class="normal"><a href="#__codelineno-0-260">260</a></span>
7873
+ <span class="normal"><a href="#__codelineno-0-261">261</a></span>
7874
+ <span class="normal"><a href="#__codelineno-0-262">262</a></span>
7914
7875
  <span class="normal"><a href="#__codelineno-0-263">263</a></span>
7915
7876
  <span class="normal"><a href="#__codelineno-0-264">264</a></span>
7916
7877
  <span class="normal"><a href="#__codelineno-0-265">265</a></span>
@@ -7920,23 +7881,20 @@ the display text and the weight defines its position in the navigation sidebar.<
7920
7881
  <span class="normal"><a href="#__codelineno-0-269">269</a></span>
7921
7882
  <span class="normal"><a href="#__codelineno-0-270">270</a></span>
7922
7883
  <span class="normal"><a href="#__codelineno-0-271">271</a></span>
7923
- <span class="normal"><a href="#__codelineno-0-272">272</a></span>
7924
- <span class="normal"><a href="#__codelineno-0-273">273</a></span>
7925
- <span class="normal"><a href="#__codelineno-0-274">274</a></span>
7926
- <span class="normal"><a href="#__codelineno-0-275">275</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-262" name="__codelineno-0-262"></a><span class="k">class</span> <span class="nc">NavMenuBase</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span> <span class="c1"># replaces PermissionsMixin</span>
7927
- <a id="__codelineno-0-263" name="__codelineno-0-263"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for navigation classes.&quot;&quot;&quot;</span>
7928
- <a id="__codelineno-0-264" name="__codelineno-0-264"></a>
7929
- <a id="__codelineno-0-265" name="__codelineno-0-265"></a> <span class="nd">@property</span>
7930
- <a id="__codelineno-0-266" name="__codelineno-0-266"></a> <span class="nd">@abstractmethod</span>
7931
- <a id="__codelineno-0-267" name="__codelineno-0-267"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span> <span class="c1"># to be implemented by each subclass</span>
7932
- <a id="__codelineno-0-268" name="__codelineno-0-268"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7933
- <a id="__codelineno-0-269" name="__codelineno-0-269"></a> <span class="k">return</span> <span class="p">{}</span>
7934
- <a id="__codelineno-0-270" name="__codelineno-0-270"></a>
7935
- <a id="__codelineno-0-271" name="__codelineno-0-271"></a> <span class="nd">@property</span>
7936
- <a id="__codelineno-0-272" name="__codelineno-0-272"></a> <span class="nd">@abstractmethod</span>
7937
- <a id="__codelineno-0-273" name="__codelineno-0-273"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span> <span class="c1"># to be implemented by subclass</span>
7938
- <a id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7939
- <a id="__codelineno-0-275" name="__codelineno-0-275"></a> <span class="k">return</span> <span class="p">()</span>
7884
+ <span class="normal"><a href="#__codelineno-0-272">272</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-259" name="__codelineno-0-259"></a><span class="k">class</span> <span class="nc">NavMenuBase</span><span class="p">(</span><span class="n">ABC</span><span class="p">):</span> <span class="c1"># replaces PermissionsMixin</span>
7885
+ <a id="__codelineno-0-260" name="__codelineno-0-260"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Base class for navigation classes.&quot;&quot;&quot;</span>
7886
+ <a id="__codelineno-0-261" name="__codelineno-0-261"></a>
7887
+ <a id="__codelineno-0-262" name="__codelineno-0-262"></a> <span class="nd">@property</span>
7888
+ <a id="__codelineno-0-263" name="__codelineno-0-263"></a> <span class="nd">@abstractmethod</span>
7889
+ <a id="__codelineno-0-264" name="__codelineno-0-264"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span> <span class="c1"># to be implemented by each subclass</span>
7890
+ <a id="__codelineno-0-265" name="__codelineno-0-265"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
7891
+ <a id="__codelineno-0-266" name="__codelineno-0-266"></a> <span class="k">return</span> <span class="p">{}</span>
7892
+ <a id="__codelineno-0-267" name="__codelineno-0-267"></a>
7893
+ <a id="__codelineno-0-268" name="__codelineno-0-268"></a> <span class="nd">@property</span>
7894
+ <a id="__codelineno-0-269" name="__codelineno-0-269"></a> <span class="nd">@abstractmethod</span>
7895
+ <a id="__codelineno-0-270" name="__codelineno-0-270"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span> <span class="c1"># to be implemented by subclass</span>
7896
+ <a id="__codelineno-0-271" name="__codelineno-0-271"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
7897
+ <a id="__codelineno-0-272" name="__codelineno-0-272"></a> <span class="k">return</span> <span class="p">()</span>
7940
7898
  </code></pre></div></td></tr></table></div>
7941
7899
  </details>
7942
7900
 
@@ -8025,7 +7983,10 @@ ButtonColorChoices.</p>
8025
7983
 
8026
7984
  <details class="quote">
8027
7985
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8028
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-586">586</a></span>
7986
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-583">583</a></span>
7987
+ <span class="normal"><a href="#__codelineno-0-584">584</a></span>
7988
+ <span class="normal"><a href="#__codelineno-0-585">585</a></span>
7989
+ <span class="normal"><a href="#__codelineno-0-586">586</a></span>
8029
7990
  <span class="normal"><a href="#__codelineno-0-587">587</a></span>
8030
7991
  <span class="normal"><a href="#__codelineno-0-588">588</a></span>
8031
7992
  <span class="normal"><a href="#__codelineno-0-589">589</a></span>
@@ -8075,63 +8036,60 @@ ButtonColorChoices.</p>
8075
8036
  <span class="normal"><a href="#__codelineno-0-633">633</a></span>
8076
8037
  <span class="normal"><a href="#__codelineno-0-634">634</a></span>
8077
8038
  <span class="normal"><a href="#__codelineno-0-635">635</a></span>
8078
- <span class="normal"><a href="#__codelineno-0-636">636</a></span>
8079
- <span class="normal"><a href="#__codelineno-0-637">637</a></span>
8080
- <span class="normal"><a href="#__codelineno-0-638">638</a></span>
8081
- <span class="normal"><a href="#__codelineno-0-639">639</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-586" name="__codelineno-0-586"></a><span class="k">class</span> <span class="nc">NavMenuButton</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8082
- <a id="__codelineno-0-587" name="__codelineno-0-587"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8083
- <a id="__codelineno-0-588" name="__codelineno-0-588"></a><span class="sd"> This class represents a button within a PluginMenuItem. Note that button colors should come from</span>
8084
- <a id="__codelineno-0-589" name="__codelineno-0-589"></a><span class="sd"> ButtonColorChoices.</span>
8085
- <a id="__codelineno-0-590" name="__codelineno-0-590"></a><span class="sd"> &quot;&quot;&quot;</span>
8086
- <a id="__codelineno-0-591" name="__codelineno-0-591"></a>
8087
- <a id="__codelineno-0-592" name="__codelineno-0-592"></a> <span class="nd">@property</span>
8088
- <a id="__codelineno-0-593" name="__codelineno-0-593"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8089
- <a id="__codelineno-0-594" name="__codelineno-0-594"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8090
- <a id="__codelineno-0-595" name="__codelineno-0-595"></a> <span class="k">return</span> <span class="p">{</span>
8091
- <a id="__codelineno-0-596" name="__codelineno-0-596"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span>
8092
- <a id="__codelineno-0-597" name="__codelineno-0-597"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span><span class="p">,</span>
8093
- <a id="__codelineno-0-598" name="__codelineno-0-598"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span><span class="p">,</span>
8094
- <a id="__codelineno-0-599" name="__codelineno-0-599"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8095
- <a id="__codelineno-0-600" name="__codelineno-0-600"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{},</span>
8096
- <a id="__codelineno-0-601" name="__codelineno-0-601"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
8097
- <a id="__codelineno-0-602" name="__codelineno-0-602"></a> <span class="p">}</span>
8098
- <a id="__codelineno-0-603" name="__codelineno-0-603"></a>
8099
- <a id="__codelineno-0-604" name="__codelineno-0-604"></a> <span class="nd">@property</span>
8100
- <a id="__codelineno-0-605" name="__codelineno-0-605"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8101
- <a id="__codelineno-0-606" name="__codelineno-0-606"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8102
- <a id="__codelineno-0-607" name="__codelineno-0-607"></a> <span class="k">return</span> <span class="p">(</span>
8103
- <a id="__codelineno-0-608" name="__codelineno-0-608"></a> <span class="p">(</span><span class="s2">&quot;button_class&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span><span class="p">),</span>
8104
- <a id="__codelineno-0-609" name="__codelineno-0-609"></a> <span class="p">(</span><span class="s2">&quot;icon_class&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span><span class="p">),</span>
8105
- <a id="__codelineno-0-610" name="__codelineno-0-610"></a> <span class="p">(</span><span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">),</span>
8106
- <a id="__codelineno-0-611" name="__codelineno-0-611"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
8107
- <a id="__codelineno-0-612" name="__codelineno-0-612"></a> <span class="p">)</span>
8108
- <a id="__codelineno-0-613" name="__codelineno-0-613"></a>
8109
- <a id="__codelineno-0-614" name="__codelineno-0-614"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
8110
- <a id="__codelineno-0-615" name="__codelineno-0-615"></a> <span class="bp">self</span><span class="p">,</span>
8111
- <a id="__codelineno-0-616" name="__codelineno-0-616"></a> <span class="n">link</span><span class="p">,</span>
8112
- <a id="__codelineno-0-617" name="__codelineno-0-617"></a> <span class="n">title</span><span class="p">,</span>
8113
- <a id="__codelineno-0-618" name="__codelineno-0-618"></a> <span class="n">icon_class</span><span class="p">,</span>
8114
- <a id="__codelineno-0-619" name="__codelineno-0-619"></a> <span class="n">button_class</span><span class="o">=</span><span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span>
8115
- <a id="__codelineno-0-620" name="__codelineno-0-620"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
8116
- <a id="__codelineno-0-621" name="__codelineno-0-621"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
8117
- <a id="__codelineno-0-622" name="__codelineno-0-622"></a> <span class="p">):</span>
8118
- <a id="__codelineno-0-623" name="__codelineno-0-623"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8119
- <a id="__codelineno-0-624" name="__codelineno-0-624"></a><span class="sd"> Ensure button properties.</span>
8120
- <a id="__codelineno-0-625" name="__codelineno-0-625"></a>
8121
- <a id="__codelineno-0-626" name="__codelineno-0-626"></a><span class="sd"> Args:</span>
8122
- <a id="__codelineno-0-627" name="__codelineno-0-627"></a><span class="sd"> link (str): The link to be used for this button.</span>
8123
- <a id="__codelineno-0-628" name="__codelineno-0-628"></a><span class="sd"> title (str): The title of the button.</span>
8124
- <a id="__codelineno-0-629" name="__codelineno-0-629"></a><span class="sd"> icon_class (str): The icon class to be used as the icon for the start of the button.</span>
8125
- <a id="__codelineno-0-630" name="__codelineno-0-630"></a><span class="sd"> button_class (str): The button class defines to be used to define the style of the button.</span>
8126
- <a id="__codelineno-0-631" name="__codelineno-0-631"></a><span class="sd"> permissions (list): The permissions required to view this button.</span>
8127
- <a id="__codelineno-0-632" name="__codelineno-0-632"></a><span class="sd"> weight (int): The weight of this button.</span>
8128
- <a id="__codelineno-0-633" name="__codelineno-0-633"></a><span class="sd"> &quot;&quot;&quot;</span>
8129
- <a id="__codelineno-0-634" name="__codelineno-0-634"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8130
- <a id="__codelineno-0-635" name="__codelineno-0-635"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8131
- <a id="__codelineno-0-636" name="__codelineno-0-636"></a> <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
8132
- <a id="__codelineno-0-637" name="__codelineno-0-637"></a> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span> <span class="o">=</span> <span class="n">icon_class</span>
8133
- <a id="__codelineno-0-638" name="__codelineno-0-638"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8134
- <a id="__codelineno-0-639" name="__codelineno-0-639"></a> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span> <span class="o">=</span> <span class="n">button_class</span>
8039
+ <span class="normal"><a href="#__codelineno-0-636">636</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-583" name="__codelineno-0-583"></a><span class="k">class</span> <span class="nc">NavMenuButton</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8040
+ <a id="__codelineno-0-584" name="__codelineno-0-584"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8041
+ <a id="__codelineno-0-585" name="__codelineno-0-585"></a><span class="sd"> This class represents a button within a PluginMenuItem. Note that button colors should come from</span>
8042
+ <a id="__codelineno-0-586" name="__codelineno-0-586"></a><span class="sd"> ButtonColorChoices.</span>
8043
+ <a id="__codelineno-0-587" name="__codelineno-0-587"></a><span class="sd"> &quot;&quot;&quot;</span>
8044
+ <a id="__codelineno-0-588" name="__codelineno-0-588"></a>
8045
+ <a id="__codelineno-0-589" name="__codelineno-0-589"></a> <span class="nd">@property</span>
8046
+ <a id="__codelineno-0-590" name="__codelineno-0-590"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8047
+ <a id="__codelineno-0-591" name="__codelineno-0-591"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8048
+ <a id="__codelineno-0-592" name="__codelineno-0-592"></a> <span class="k">return</span> <span class="p">{</span>
8049
+ <a id="__codelineno-0-593" name="__codelineno-0-593"></a> <span class="s2">&quot;link&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">,</span>
8050
+ <a id="__codelineno-0-594" name="__codelineno-0-594"></a> <span class="s2">&quot;icon_class&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span><span class="p">,</span>
8051
+ <a id="__codelineno-0-595" name="__codelineno-0-595"></a> <span class="s2">&quot;button_class&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span><span class="p">,</span>
8052
+ <a id="__codelineno-0-596" name="__codelineno-0-596"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8053
+ <a id="__codelineno-0-597" name="__codelineno-0-597"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{},</span>
8054
+ <a id="__codelineno-0-598" name="__codelineno-0-598"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
8055
+ <a id="__codelineno-0-599" name="__codelineno-0-599"></a> <span class="p">}</span>
8056
+ <a id="__codelineno-0-600" name="__codelineno-0-600"></a>
8057
+ <a id="__codelineno-0-601" name="__codelineno-0-601"></a> <span class="nd">@property</span>
8058
+ <a id="__codelineno-0-602" name="__codelineno-0-602"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8059
+ <a id="__codelineno-0-603" name="__codelineno-0-603"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8060
+ <a id="__codelineno-0-604" name="__codelineno-0-604"></a> <span class="k">return</span> <span class="p">(</span>
8061
+ <a id="__codelineno-0-605" name="__codelineno-0-605"></a> <span class="p">(</span><span class="s2">&quot;button_class&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span><span class="p">),</span>
8062
+ <a id="__codelineno-0-606" name="__codelineno-0-606"></a> <span class="p">(</span><span class="s2">&quot;icon_class&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span><span class="p">),</span>
8063
+ <a id="__codelineno-0-607" name="__codelineno-0-607"></a> <span class="p">(</span><span class="s2">&quot;link&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">link</span><span class="p">),</span>
8064
+ <a id="__codelineno-0-608" name="__codelineno-0-608"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
8065
+ <a id="__codelineno-0-609" name="__codelineno-0-609"></a> <span class="p">)</span>
8066
+ <a id="__codelineno-0-610" name="__codelineno-0-610"></a>
8067
+ <a id="__codelineno-0-611" name="__codelineno-0-611"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
8068
+ <a id="__codelineno-0-612" name="__codelineno-0-612"></a> <span class="bp">self</span><span class="p">,</span>
8069
+ <a id="__codelineno-0-613" name="__codelineno-0-613"></a> <span class="n">link</span><span class="p">,</span>
8070
+ <a id="__codelineno-0-614" name="__codelineno-0-614"></a> <span class="n">title</span><span class="p">,</span>
8071
+ <a id="__codelineno-0-615" name="__codelineno-0-615"></a> <span class="n">icon_class</span><span class="p">,</span>
8072
+ <a id="__codelineno-0-616" name="__codelineno-0-616"></a> <span class="n">button_class</span><span class="o">=</span><span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span>
8073
+ <a id="__codelineno-0-617" name="__codelineno-0-617"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
8074
+ <a id="__codelineno-0-618" name="__codelineno-0-618"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
8075
+ <a id="__codelineno-0-619" name="__codelineno-0-619"></a> <span class="p">):</span>
8076
+ <a id="__codelineno-0-620" name="__codelineno-0-620"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8077
+ <a id="__codelineno-0-621" name="__codelineno-0-621"></a><span class="sd"> Ensure button properties.</span>
8078
+ <a id="__codelineno-0-622" name="__codelineno-0-622"></a>
8079
+ <a id="__codelineno-0-623" name="__codelineno-0-623"></a><span class="sd"> Args:</span>
8080
+ <a id="__codelineno-0-624" name="__codelineno-0-624"></a><span class="sd"> link (str): The link to be used for this button.</span>
8081
+ <a id="__codelineno-0-625" name="__codelineno-0-625"></a><span class="sd"> title (str): The title of the button.</span>
8082
+ <a id="__codelineno-0-626" name="__codelineno-0-626"></a><span class="sd"> icon_class (str): The icon class to be used as the icon for the start of the button.</span>
8083
+ <a id="__codelineno-0-627" name="__codelineno-0-627"></a><span class="sd"> button_class (str): The button class defines to be used to define the style of the button.</span>
8084
+ <a id="__codelineno-0-628" name="__codelineno-0-628"></a><span class="sd"> permissions (list): The permissions required to view this button.</span>
8085
+ <a id="__codelineno-0-629" name="__codelineno-0-629"></a><span class="sd"> weight (int): The weight of this button.</span>
8086
+ <a id="__codelineno-0-630" name="__codelineno-0-630"></a><span class="sd"> &quot;&quot;&quot;</span>
8087
+ <a id="__codelineno-0-631" name="__codelineno-0-631"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8088
+ <a id="__codelineno-0-632" name="__codelineno-0-632"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8089
+ <a id="__codelineno-0-633" name="__codelineno-0-633"></a> <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
8090
+ <a id="__codelineno-0-634" name="__codelineno-0-634"></a> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span> <span class="o">=</span> <span class="n">icon_class</span>
8091
+ <a id="__codelineno-0-635" name="__codelineno-0-635"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8092
+ <a id="__codelineno-0-636" name="__codelineno-0-636"></a> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span> <span class="o">=</span> <span class="n">button_class</span>
8135
8093
  </code></pre></div></td></tr></table></div>
8136
8094
  </details>
8137
8095
 
@@ -8306,7 +8264,10 @@ ButtonColorChoices.</p>
8306
8264
 
8307
8265
  <details class="quote">
8308
8266
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8309
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-614">614</a></span>
8267
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-611">611</a></span>
8268
+ <span class="normal"><a href="#__codelineno-0-612">612</a></span>
8269
+ <span class="normal"><a href="#__codelineno-0-613">613</a></span>
8270
+ <span class="normal"><a href="#__codelineno-0-614">614</a></span>
8310
8271
  <span class="normal"><a href="#__codelineno-0-615">615</a></span>
8311
8272
  <span class="normal"><a href="#__codelineno-0-616">616</a></span>
8312
8273
  <span class="normal"><a href="#__codelineno-0-617">617</a></span>
@@ -8328,35 +8289,32 @@ ButtonColorChoices.</p>
8328
8289
  <span class="normal"><a href="#__codelineno-0-633">633</a></span>
8329
8290
  <span class="normal"><a href="#__codelineno-0-634">634</a></span>
8330
8291
  <span class="normal"><a href="#__codelineno-0-635">635</a></span>
8331
- <span class="normal"><a href="#__codelineno-0-636">636</a></span>
8332
- <span class="normal"><a href="#__codelineno-0-637">637</a></span>
8333
- <span class="normal"><a href="#__codelineno-0-638">638</a></span>
8334
- <span class="normal"><a href="#__codelineno-0-639">639</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-614" name="__codelineno-0-614"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
8335
- <a id="__codelineno-0-615" name="__codelineno-0-615"></a> <span class="bp">self</span><span class="p">,</span>
8336
- <a id="__codelineno-0-616" name="__codelineno-0-616"></a> <span class="n">link</span><span class="p">,</span>
8337
- <a id="__codelineno-0-617" name="__codelineno-0-617"></a> <span class="n">title</span><span class="p">,</span>
8338
- <a id="__codelineno-0-618" name="__codelineno-0-618"></a> <span class="n">icon_class</span><span class="p">,</span>
8339
- <a id="__codelineno-0-619" name="__codelineno-0-619"></a> <span class="n">button_class</span><span class="o">=</span><span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span>
8340
- <a id="__codelineno-0-620" name="__codelineno-0-620"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
8341
- <a id="__codelineno-0-621" name="__codelineno-0-621"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
8342
- <a id="__codelineno-0-622" name="__codelineno-0-622"></a><span class="p">):</span>
8343
- <a id="__codelineno-0-623" name="__codelineno-0-623"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8344
- <a id="__codelineno-0-624" name="__codelineno-0-624"></a><span class="sd"> Ensure button properties.</span>
8345
- <a id="__codelineno-0-625" name="__codelineno-0-625"></a>
8346
- <a id="__codelineno-0-626" name="__codelineno-0-626"></a><span class="sd"> Args:</span>
8347
- <a id="__codelineno-0-627" name="__codelineno-0-627"></a><span class="sd"> link (str): The link to be used for this button.</span>
8348
- <a id="__codelineno-0-628" name="__codelineno-0-628"></a><span class="sd"> title (str): The title of the button.</span>
8349
- <a id="__codelineno-0-629" name="__codelineno-0-629"></a><span class="sd"> icon_class (str): The icon class to be used as the icon for the start of the button.</span>
8350
- <a id="__codelineno-0-630" name="__codelineno-0-630"></a><span class="sd"> button_class (str): The button class defines to be used to define the style of the button.</span>
8351
- <a id="__codelineno-0-631" name="__codelineno-0-631"></a><span class="sd"> permissions (list): The permissions required to view this button.</span>
8352
- <a id="__codelineno-0-632" name="__codelineno-0-632"></a><span class="sd"> weight (int): The weight of this button.</span>
8353
- <a id="__codelineno-0-633" name="__codelineno-0-633"></a><span class="sd"> &quot;&quot;&quot;</span>
8354
- <a id="__codelineno-0-634" name="__codelineno-0-634"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8355
- <a id="__codelineno-0-635" name="__codelineno-0-635"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8356
- <a id="__codelineno-0-636" name="__codelineno-0-636"></a> <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
8357
- <a id="__codelineno-0-637" name="__codelineno-0-637"></a> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span> <span class="o">=</span> <span class="n">icon_class</span>
8358
- <a id="__codelineno-0-638" name="__codelineno-0-638"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8359
- <a id="__codelineno-0-639" name="__codelineno-0-639"></a> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span> <span class="o">=</span> <span class="n">button_class</span>
8292
+ <span class="normal"><a href="#__codelineno-0-636">636</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-611" name="__codelineno-0-611"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
8293
+ <a id="__codelineno-0-612" name="__codelineno-0-612"></a> <span class="bp">self</span><span class="p">,</span>
8294
+ <a id="__codelineno-0-613" name="__codelineno-0-613"></a> <span class="n">link</span><span class="p">,</span>
8295
+ <a id="__codelineno-0-614" name="__codelineno-0-614"></a> <span class="n">title</span><span class="p">,</span>
8296
+ <a id="__codelineno-0-615" name="__codelineno-0-615"></a> <span class="n">icon_class</span><span class="p">,</span>
8297
+ <a id="__codelineno-0-616" name="__codelineno-0-616"></a> <span class="n">button_class</span><span class="o">=</span><span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span>
8298
+ <a id="__codelineno-0-617" name="__codelineno-0-617"></a> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
8299
+ <a id="__codelineno-0-618" name="__codelineno-0-618"></a> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">,</span>
8300
+ <a id="__codelineno-0-619" name="__codelineno-0-619"></a><span class="p">):</span>
8301
+ <a id="__codelineno-0-620" name="__codelineno-0-620"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8302
+ <a id="__codelineno-0-621" name="__codelineno-0-621"></a><span class="sd"> Ensure button properties.</span>
8303
+ <a id="__codelineno-0-622" name="__codelineno-0-622"></a>
8304
+ <a id="__codelineno-0-623" name="__codelineno-0-623"></a><span class="sd"> Args:</span>
8305
+ <a id="__codelineno-0-624" name="__codelineno-0-624"></a><span class="sd"> link (str): The link to be used for this button.</span>
8306
+ <a id="__codelineno-0-625" name="__codelineno-0-625"></a><span class="sd"> title (str): The title of the button.</span>
8307
+ <a id="__codelineno-0-626" name="__codelineno-0-626"></a><span class="sd"> icon_class (str): The icon class to be used as the icon for the start of the button.</span>
8308
+ <a id="__codelineno-0-627" name="__codelineno-0-627"></a><span class="sd"> button_class (str): The button class defines to be used to define the style of the button.</span>
8309
+ <a id="__codelineno-0-628" name="__codelineno-0-628"></a><span class="sd"> permissions (list): The permissions required to view this button.</span>
8310
+ <a id="__codelineno-0-629" name="__codelineno-0-629"></a><span class="sd"> weight (int): The weight of this button.</span>
8311
+ <a id="__codelineno-0-630" name="__codelineno-0-630"></a><span class="sd"> &quot;&quot;&quot;</span>
8312
+ <a id="__codelineno-0-631" name="__codelineno-0-631"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8313
+ <a id="__codelineno-0-632" name="__codelineno-0-632"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8314
+ <a id="__codelineno-0-633" name="__codelineno-0-633"></a> <span class="bp">self</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">title</span>
8315
+ <a id="__codelineno-0-634" name="__codelineno-0-634"></a> <span class="bp">self</span><span class="o">.</span><span class="n">icon_class</span> <span class="o">=</span> <span class="n">icon_class</span>
8316
+ <a id="__codelineno-0-635" name="__codelineno-0-635"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8317
+ <a id="__codelineno-0-636" name="__codelineno-0-636"></a> <span class="bp">self</span><span class="o">.</span><span class="n">button_class</span> <span class="o">=</span> <span class="n">button_class</span>
8360
8318
  </code></pre></div></td></tr></table></div>
8361
8319
  </details>
8362
8320
  </div>
@@ -8393,7 +8351,10 @@ the display text and the weight defines its position in the navbar.</p>
8393
8351
 
8394
8352
  <details class="quote">
8395
8353
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8396
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-482">482</a></span>
8354
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-479">479</a></span>
8355
+ <span class="normal"><a href="#__codelineno-0-480">480</a></span>
8356
+ <span class="normal"><a href="#__codelineno-0-481">481</a></span>
8357
+ <span class="normal"><a href="#__codelineno-0-482">482</a></span>
8397
8358
  <span class="normal"><a href="#__codelineno-0-483">483</a></span>
8398
8359
  <span class="normal"><a href="#__codelineno-0-484">484</a></span>
8399
8360
  <span class="normal"><a href="#__codelineno-0-485">485</a></span>
@@ -8430,50 +8391,47 @@ the display text and the weight defines its position in the navbar.</p>
8430
8391
  <span class="normal"><a href="#__codelineno-0-516">516</a></span>
8431
8392
  <span class="normal"><a href="#__codelineno-0-517">517</a></span>
8432
8393
  <span class="normal"><a href="#__codelineno-0-518">518</a></span>
8433
- <span class="normal"><a href="#__codelineno-0-519">519</a></span>
8434
- <span class="normal"><a href="#__codelineno-0-520">520</a></span>
8435
- <span class="normal"><a href="#__codelineno-0-521">521</a></span>
8436
- <span class="normal"><a href="#__codelineno-0-522">522</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-482" name="__codelineno-0-482"></a><span class="k">class</span> <span class="nc">NavMenuGroup</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8437
- <a id="__codelineno-0-483" name="__codelineno-0-483"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8438
- <a id="__codelineno-0-484" name="__codelineno-0-484"></a><span class="sd"> Ths class represents a navigation menu group. This is built up from a name and a weight value. The name is</span>
8439
- <a id="__codelineno-0-485" name="__codelineno-0-485"></a><span class="sd"> the display text and the weight defines its position in the navbar.</span>
8394
+ <span class="normal"><a href="#__codelineno-0-519">519</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-479" name="__codelineno-0-479"></a><span class="k">class</span> <span class="nc">NavMenuGroup</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8395
+ <a id="__codelineno-0-480" name="__codelineno-0-480"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8396
+ <a id="__codelineno-0-481" name="__codelineno-0-481"></a><span class="sd"> Ths class represents a navigation menu group. This is built up from a name and a weight value. The name is</span>
8397
+ <a id="__codelineno-0-482" name="__codelineno-0-482"></a><span class="sd"> the display text and the weight defines its position in the navbar.</span>
8398
+ <a id="__codelineno-0-483" name="__codelineno-0-483"></a>
8399
+ <a id="__codelineno-0-484" name="__codelineno-0-484"></a><span class="sd"> Items are each specified as a list of NavMenuItem instances.</span>
8400
+ <a id="__codelineno-0-485" name="__codelineno-0-485"></a><span class="sd"> &quot;&quot;&quot;</span>
8440
8401
  <a id="__codelineno-0-486" name="__codelineno-0-486"></a>
8441
- <a id="__codelineno-0-487" name="__codelineno-0-487"></a><span class="sd"> Items are each specified as a list of NavMenuItem instances.</span>
8442
- <a id="__codelineno-0-488" name="__codelineno-0-488"></a><span class="sd"> &quot;&quot;&quot;</span>
8402
+ <a id="__codelineno-0-487" name="__codelineno-0-487"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
8403
+ <a id="__codelineno-0-488" name="__codelineno-0-488"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
8443
8404
  <a id="__codelineno-0-489" name="__codelineno-0-489"></a>
8444
- <a id="__codelineno-0-490" name="__codelineno-0-490"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
8445
- <a id="__codelineno-0-491" name="__codelineno-0-491"></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[]</span>
8446
- <a id="__codelineno-0-492" name="__codelineno-0-492"></a>
8447
- <a id="__codelineno-0-493" name="__codelineno-0-493"></a> <span class="nd">@property</span>
8448
- <a id="__codelineno-0-494" name="__codelineno-0-494"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8449
- <a id="__codelineno-0-495" name="__codelineno-0-495"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8450
- <a id="__codelineno-0-496" name="__codelineno-0-496"></a> <span class="k">return</span> <span class="p">{</span>
8451
- <a id="__codelineno-0-497" name="__codelineno-0-497"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8452
- <a id="__codelineno-0-498" name="__codelineno-0-498"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
8453
- <a id="__codelineno-0-499" name="__codelineno-0-499"></a> <span class="p">}</span>
8454
- <a id="__codelineno-0-500" name="__codelineno-0-500"></a>
8455
- <a id="__codelineno-0-501" name="__codelineno-0-501"></a> <span class="nd">@property</span>
8456
- <a id="__codelineno-0-502" name="__codelineno-0-502"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8457
- <a id="__codelineno-0-503" name="__codelineno-0-503"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8458
- <a id="__codelineno-0-504" name="__codelineno-0-504"></a> <span class="k">return</span> <span class="p">()</span>
8459
- <a id="__codelineno-0-505" name="__codelineno-0-505"></a>
8460
- <a id="__codelineno-0-506" name="__codelineno-0-506"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8461
- <a id="__codelineno-0-507" name="__codelineno-0-507"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8462
- <a id="__codelineno-0-508" name="__codelineno-0-508"></a><span class="sd"> Ensure group properties.</span>
8463
- <a id="__codelineno-0-509" name="__codelineno-0-509"></a>
8464
- <a id="__codelineno-0-510" name="__codelineno-0-510"></a><span class="sd"> Args:</span>
8465
- <a id="__codelineno-0-511" name="__codelineno-0-511"></a><span class="sd"> name (str): The name of the group.</span>
8466
- <a id="__codelineno-0-512" name="__codelineno-0-512"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
8467
- <a id="__codelineno-0-513" name="__codelineno-0-513"></a><span class="sd"> weight (int): The weight of this group.</span>
8468
- <a id="__codelineno-0-514" name="__codelineno-0-514"></a><span class="sd"> &quot;&quot;&quot;</span>
8469
- <a id="__codelineno-0-515" name="__codelineno-0-515"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8470
- <a id="__codelineno-0-516" name="__codelineno-0-516"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8471
- <a id="__codelineno-0-517" name="__codelineno-0-517"></a>
8472
- <a id="__codelineno-0-518" name="__codelineno-0-518"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8473
- <a id="__codelineno-0-519" name="__codelineno-0-519"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8474
- <a id="__codelineno-0-520" name="__codelineno-0-520"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">NavMenuItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
8475
- <a id="__codelineno-0-521" name="__codelineno-0-521"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of NavMenuItem&quot;</span><span class="p">)</span>
8476
- <a id="__codelineno-0-522" name="__codelineno-0-522"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
8405
+ <a id="__codelineno-0-490" name="__codelineno-0-490"></a> <span class="nd">@property</span>
8406
+ <a id="__codelineno-0-491" name="__codelineno-0-491"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8407
+ <a id="__codelineno-0-492" name="__codelineno-0-492"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8408
+ <a id="__codelineno-0-493" name="__codelineno-0-493"></a> <span class="k">return</span> <span class="p">{</span>
8409
+ <a id="__codelineno-0-494" name="__codelineno-0-494"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8410
+ <a id="__codelineno-0-495" name="__codelineno-0-495"></a> <span class="s2">&quot;items&quot;</span><span class="p">:</span> <span class="p">{},</span>
8411
+ <a id="__codelineno-0-496" name="__codelineno-0-496"></a> <span class="p">}</span>
8412
+ <a id="__codelineno-0-497" name="__codelineno-0-497"></a>
8413
+ <a id="__codelineno-0-498" name="__codelineno-0-498"></a> <span class="nd">@property</span>
8414
+ <a id="__codelineno-0-499" name="__codelineno-0-499"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8415
+ <a id="__codelineno-0-500" name="__codelineno-0-500"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8416
+ <a id="__codelineno-0-501" name="__codelineno-0-501"></a> <span class="k">return</span> <span class="p">()</span>
8417
+ <a id="__codelineno-0-502" name="__codelineno-0-502"></a>
8418
+ <a id="__codelineno-0-503" name="__codelineno-0-503"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8419
+ <a id="__codelineno-0-504" name="__codelineno-0-504"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8420
+ <a id="__codelineno-0-505" name="__codelineno-0-505"></a><span class="sd"> Ensure group properties.</span>
8421
+ <a id="__codelineno-0-506" name="__codelineno-0-506"></a>
8422
+ <a id="__codelineno-0-507" name="__codelineno-0-507"></a><span class="sd"> Args:</span>
8423
+ <a id="__codelineno-0-508" name="__codelineno-0-508"></a><span class="sd"> name (str): The name of the group.</span>
8424
+ <a id="__codelineno-0-509" name="__codelineno-0-509"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
8425
+ <a id="__codelineno-0-510" name="__codelineno-0-510"></a><span class="sd"> weight (int): The weight of this group.</span>
8426
+ <a id="__codelineno-0-511" name="__codelineno-0-511"></a><span class="sd"> &quot;&quot;&quot;</span>
8427
+ <a id="__codelineno-0-512" name="__codelineno-0-512"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8428
+ <a id="__codelineno-0-513" name="__codelineno-0-513"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8429
+ <a id="__codelineno-0-514" name="__codelineno-0-514"></a>
8430
+ <a id="__codelineno-0-515" name="__codelineno-0-515"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8431
+ <a id="__codelineno-0-516" name="__codelineno-0-516"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8432
+ <a id="__codelineno-0-517" name="__codelineno-0-517"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">NavMenuItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
8433
+ <a id="__codelineno-0-518" name="__codelineno-0-518"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of NavMenuItem&quot;</span><span class="p">)</span>
8434
+ <a id="__codelineno-0-519" name="__codelineno-0-519"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
8477
8435
  </code></pre></div></td></tr></table></div>
8478
8436
  </details>
8479
8437
 
@@ -8606,7 +8564,10 @@ the display text and the weight defines its position in the navbar.</p>
8606
8564
 
8607
8565
  <details class="quote">
8608
8566
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8609
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-506">506</a></span>
8567
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-503">503</a></span>
8568
+ <span class="normal"><a href="#__codelineno-0-504">504</a></span>
8569
+ <span class="normal"><a href="#__codelineno-0-505">505</a></span>
8570
+ <span class="normal"><a href="#__codelineno-0-506">506</a></span>
8610
8571
  <span class="normal"><a href="#__codelineno-0-507">507</a></span>
8611
8572
  <span class="normal"><a href="#__codelineno-0-508">508</a></span>
8612
8573
  <span class="normal"><a href="#__codelineno-0-509">509</a></span>
@@ -8619,26 +8580,23 @@ the display text and the weight defines its position in the navbar.</p>
8619
8580
  <span class="normal"><a href="#__codelineno-0-516">516</a></span>
8620
8581
  <span class="normal"><a href="#__codelineno-0-517">517</a></span>
8621
8582
  <span class="normal"><a href="#__codelineno-0-518">518</a></span>
8622
- <span class="normal"><a href="#__codelineno-0-519">519</a></span>
8623
- <span class="normal"><a href="#__codelineno-0-520">520</a></span>
8624
- <span class="normal"><a href="#__codelineno-0-521">521</a></span>
8625
- <span class="normal"><a href="#__codelineno-0-522">522</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-506" name="__codelineno-0-506"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8626
- <a id="__codelineno-0-507" name="__codelineno-0-507"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8627
- <a id="__codelineno-0-508" name="__codelineno-0-508"></a><span class="sd"> Ensure group properties.</span>
8628
- <a id="__codelineno-0-509" name="__codelineno-0-509"></a>
8629
- <a id="__codelineno-0-510" name="__codelineno-0-510"></a><span class="sd"> Args:</span>
8630
- <a id="__codelineno-0-511" name="__codelineno-0-511"></a><span class="sd"> name (str): The name of the group.</span>
8631
- <a id="__codelineno-0-512" name="__codelineno-0-512"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
8632
- <a id="__codelineno-0-513" name="__codelineno-0-513"></a><span class="sd"> weight (int): The weight of this group.</span>
8633
- <a id="__codelineno-0-514" name="__codelineno-0-514"></a><span class="sd"> &quot;&quot;&quot;</span>
8634
- <a id="__codelineno-0-515" name="__codelineno-0-515"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8635
- <a id="__codelineno-0-516" name="__codelineno-0-516"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8636
- <a id="__codelineno-0-517" name="__codelineno-0-517"></a>
8637
- <a id="__codelineno-0-518" name="__codelineno-0-518"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8638
- <a id="__codelineno-0-519" name="__codelineno-0-519"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8639
- <a id="__codelineno-0-520" name="__codelineno-0-520"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">NavMenuItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
8640
- <a id="__codelineno-0-521" name="__codelineno-0-521"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of NavMenuItem&quot;</span><span class="p">)</span>
8641
- <a id="__codelineno-0-522" name="__codelineno-0-522"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
8583
+ <span class="normal"><a href="#__codelineno-0-519">519</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-503" name="__codelineno-0-503"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">items</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8584
+ <a id="__codelineno-0-504" name="__codelineno-0-504"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8585
+ <a id="__codelineno-0-505" name="__codelineno-0-505"></a><span class="sd"> Ensure group properties.</span>
8586
+ <a id="__codelineno-0-506" name="__codelineno-0-506"></a>
8587
+ <a id="__codelineno-0-507" name="__codelineno-0-507"></a><span class="sd"> Args:</span>
8588
+ <a id="__codelineno-0-508" name="__codelineno-0-508"></a><span class="sd"> name (str): The name of the group.</span>
8589
+ <a id="__codelineno-0-509" name="__codelineno-0-509"></a><span class="sd"> items (list): List of items to be rendered in this group.</span>
8590
+ <a id="__codelineno-0-510" name="__codelineno-0-510"></a><span class="sd"> weight (int): The weight of this group.</span>
8591
+ <a id="__codelineno-0-511" name="__codelineno-0-511"></a><span class="sd"> &quot;&quot;&quot;</span>
8592
+ <a id="__codelineno-0-512" name="__codelineno-0-512"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8593
+ <a id="__codelineno-0-513" name="__codelineno-0-513"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8594
+ <a id="__codelineno-0-514" name="__codelineno-0-514"></a>
8595
+ <a id="__codelineno-0-515" name="__codelineno-0-515"></a> <span class="k">if</span> <span class="n">items</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">items</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8596
+ <a id="__codelineno-0-516" name="__codelineno-0-516"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Items must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8597
+ <a id="__codelineno-0-517" name="__codelineno-0-517"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">NavMenuItem</span><span class="p">)</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">items</span><span class="p">):</span>
8598
+ <a id="__codelineno-0-518" name="__codelineno-0-518"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All items defined in a group must be an instance of NavMenuItem&quot;</span><span class="p">)</span>
8599
+ <a id="__codelineno-0-519" name="__codelineno-0-519"></a> <span class="bp">self</span><span class="o">.</span><span class="n">items</span> <span class="o">=</span> <span class="n">items</span>
8642
8600
  </code></pre></div></td></tr></table></div>
8643
8601
  </details>
8644
8602
  </div>
@@ -8673,7 +8631,10 @@ the display text and the weight defines its position in the navbar.</p>
8673
8631
 
8674
8632
  <details class="quote">
8675
8633
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8676
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-658">658</a></span>
8634
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-655">655</a></span>
8635
+ <span class="normal"><a href="#__codelineno-0-656">656</a></span>
8636
+ <span class="normal"><a href="#__codelineno-0-657">657</a></span>
8637
+ <span class="normal"><a href="#__codelineno-0-658">658</a></span>
8677
8638
  <span class="normal"><a href="#__codelineno-0-659">659</a></span>
8678
8639
  <span class="normal"><a href="#__codelineno-0-660">660</a></span>
8679
8640
  <span class="normal"><a href="#__codelineno-0-661">661</a></span>
@@ -8683,23 +8644,20 @@ the display text and the weight defines its position in the navbar.</p>
8683
8644
  <span class="normal"><a href="#__codelineno-0-665">665</a></span>
8684
8645
  <span class="normal"><a href="#__codelineno-0-666">666</a></span>
8685
8646
  <span class="normal"><a href="#__codelineno-0-667">667</a></span>
8686
- <span class="normal"><a href="#__codelineno-0-668">668</a></span>
8687
- <span class="normal"><a href="#__codelineno-0-669">669</a></span>
8688
- <span class="normal"><a href="#__codelineno-0-670">670</a></span>
8689
- <span class="normal"><a href="#__codelineno-0-671">671</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-658" name="__codelineno-0-658"></a><span class="k">class</span> <span class="nc">NavMenuImportButton</span><span class="p">(</span><span class="n">NavMenuButton</span><span class="p">):</span>
8690
- <a id="__codelineno-0-659" name="__codelineno-0-659"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import button subclass.&quot;&quot;&quot;</span>
8691
- <a id="__codelineno-0-660" name="__codelineno-0-660"></a>
8692
- <a id="__codelineno-0-661" name="__codelineno-0-661"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
8693
- <a id="__codelineno-0-662" name="__codelineno-0-662"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
8694
- <a id="__codelineno-0-663" name="__codelineno-0-663"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8695
- <a id="__codelineno-0-664" name="__codelineno-0-664"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Import&quot;</span>
8696
- <a id="__codelineno-0-665" name="__codelineno-0-665"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8697
- <a id="__codelineno-0-666" name="__codelineno-0-666"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8698
- <a id="__codelineno-0-667" name="__codelineno-0-667"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8699
- <a id="__codelineno-0-668" name="__codelineno-0-668"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8700
- <a id="__codelineno-0-669" name="__codelineno-0-669"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8701
- <a id="__codelineno-0-670" name="__codelineno-0-670"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">200</span>
8702
- <a id="__codelineno-0-671" name="__codelineno-0-671"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
8647
+ <span class="normal"><a href="#__codelineno-0-668">668</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-655" name="__codelineno-0-655"></a><span class="k">class</span> <span class="nc">NavMenuImportButton</span><span class="p">(</span><span class="n">NavMenuButton</span><span class="p">):</span>
8648
+ <a id="__codelineno-0-656" name="__codelineno-0-656"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Import button subclass.&quot;&quot;&quot;</span>
8649
+ <a id="__codelineno-0-657" name="__codelineno-0-657"></a>
8650
+ <a id="__codelineno-0-658" name="__codelineno-0-658"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
8651
+ <a id="__codelineno-0-659" name="__codelineno-0-659"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
8652
+ <a id="__codelineno-0-660" name="__codelineno-0-660"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8653
+ <a id="__codelineno-0-661" name="__codelineno-0-661"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Import&quot;</span>
8654
+ <a id="__codelineno-0-662" name="__codelineno-0-662"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8655
+ <a id="__codelineno-0-663" name="__codelineno-0-663"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8656
+ <a id="__codelineno-0-664" name="__codelineno-0-664"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8657
+ <a id="__codelineno-0-665" name="__codelineno-0-665"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8658
+ <a id="__codelineno-0-666" name="__codelineno-0-666"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8659
+ <a id="__codelineno-0-667" name="__codelineno-0-667"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">200</span>
8660
+ <a id="__codelineno-0-668" name="__codelineno-0-668"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
8703
8661
  </code></pre></div></td></tr></table></div>
8704
8662
  </details>
8705
8663
 
@@ -8732,27 +8690,27 @@ the display text and the weight defines its position in the navbar.</p>
8732
8690
 
8733
8691
  <details class="quote">
8734
8692
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8735
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-661">661</a></span>
8693
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-658">658</a></span>
8694
+ <span class="normal"><a href="#__codelineno-0-659">659</a></span>
8695
+ <span class="normal"><a href="#__codelineno-0-660">660</a></span>
8696
+ <span class="normal"><a href="#__codelineno-0-661">661</a></span>
8736
8697
  <span class="normal"><a href="#__codelineno-0-662">662</a></span>
8737
8698
  <span class="normal"><a href="#__codelineno-0-663">663</a></span>
8738
8699
  <span class="normal"><a href="#__codelineno-0-664">664</a></span>
8739
8700
  <span class="normal"><a href="#__codelineno-0-665">665</a></span>
8740
8701
  <span class="normal"><a href="#__codelineno-0-666">666</a></span>
8741
8702
  <span class="normal"><a href="#__codelineno-0-667">667</a></span>
8742
- <span class="normal"><a href="#__codelineno-0-668">668</a></span>
8743
- <span class="normal"><a href="#__codelineno-0-669">669</a></span>
8744
- <span class="normal"><a href="#__codelineno-0-670">670</a></span>
8745
- <span class="normal"><a href="#__codelineno-0-671">671</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-661" name="__codelineno-0-661"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
8746
- <a id="__codelineno-0-662" name="__codelineno-0-662"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
8747
- <a id="__codelineno-0-663" name="__codelineno-0-663"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8748
- <a id="__codelineno-0-664" name="__codelineno-0-664"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Import&quot;</span>
8749
- <a id="__codelineno-0-665" name="__codelineno-0-665"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8750
- <a id="__codelineno-0-666" name="__codelineno-0-666"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8751
- <a id="__codelineno-0-667" name="__codelineno-0-667"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8752
- <a id="__codelineno-0-668" name="__codelineno-0-668"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8753
- <a id="__codelineno-0-669" name="__codelineno-0-669"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8754
- <a id="__codelineno-0-670" name="__codelineno-0-670"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">200</span>
8755
- <a id="__codelineno-0-671" name="__codelineno-0-671"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
8703
+ <span class="normal"><a href="#__codelineno-0-668">668</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-658" name="__codelineno-0-658"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
8704
+ <a id="__codelineno-0-659" name="__codelineno-0-659"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure button properties.&quot;&quot;&quot;</span>
8705
+ <a id="__codelineno-0-660" name="__codelineno-0-660"></a> <span class="k">if</span> <span class="s2">&quot;title&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8706
+ <a id="__codelineno-0-661" name="__codelineno-0-661"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;title&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;Import&quot;</span>
8707
+ <a id="__codelineno-0-662" name="__codelineno-0-662"></a> <span class="k">if</span> <span class="s2">&quot;icon_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8708
+ <a id="__codelineno-0-663" name="__codelineno-0-663"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;icon_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionIconChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8709
+ <a id="__codelineno-0-664" name="__codelineno-0-664"></a> <span class="k">if</span> <span class="s2">&quot;button_class&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8710
+ <a id="__codelineno-0-665" name="__codelineno-0-665"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;button_class&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ButtonActionColorChoices</span><span class="o">.</span><span class="n">IMPORT</span>
8711
+ <a id="__codelineno-0-666" name="__codelineno-0-666"></a> <span class="k">if</span> <span class="s2">&quot;weight&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
8712
+ <a id="__codelineno-0-667" name="__codelineno-0-667"></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;weight&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">200</span>
8713
+ <a id="__codelineno-0-668" name="__codelineno-0-668"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
8756
8714
  </code></pre></div></td></tr></table></div>
8757
8715
  </details>
8758
8716
  </div>
@@ -8790,7 +8748,10 @@ Buttons are each specified as a list of NavMenuButton instances.</p>
8790
8748
 
8791
8749
  <details class="quote">
8792
8750
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
8793
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-525">525</a></span>
8751
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-522">522</a></span>
8752
+ <span class="normal"><a href="#__codelineno-0-523">523</a></span>
8753
+ <span class="normal"><a href="#__codelineno-0-524">524</a></span>
8754
+ <span class="normal"><a href="#__codelineno-0-525">525</a></span>
8794
8755
  <span class="normal"><a href="#__codelineno-0-526">526</a></span>
8795
8756
  <span class="normal"><a href="#__codelineno-0-527">527</a></span>
8796
8757
  <span class="normal"><a href="#__codelineno-0-528">528</a></span>
@@ -8845,68 +8806,65 @@ Buttons are each specified as a list of NavMenuButton instances.</p>
8845
8806
  <span class="normal"><a href="#__codelineno-0-577">577</a></span>
8846
8807
  <span class="normal"><a href="#__codelineno-0-578">578</a></span>
8847
8808
  <span class="normal"><a href="#__codelineno-0-579">579</a></span>
8848
- <span class="normal"><a href="#__codelineno-0-580">580</a></span>
8849
- <span class="normal"><a href="#__codelineno-0-581">581</a></span>
8850
- <span class="normal"><a href="#__codelineno-0-582">582</a></span>
8851
- <span class="normal"><a href="#__codelineno-0-583">583</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-525" name="__codelineno-0-525"></a><span class="k">class</span> <span class="nc">NavMenuItem</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8852
- <a id="__codelineno-0-526" name="__codelineno-0-526"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8853
- <a id="__codelineno-0-527" name="__codelineno-0-527"></a><span class="sd"> This class represents a navigation menu item. This constitutes primary link and its text, but also allows for</span>
8854
- <a id="__codelineno-0-528" name="__codelineno-0-528"></a><span class="sd"> specifying additional link buttons that appear to the right of the item in the nav menu.</span>
8855
- <a id="__codelineno-0-529" name="__codelineno-0-529"></a>
8856
- <a id="__codelineno-0-530" name="__codelineno-0-530"></a><span class="sd"> Links are specified as Django reverse URL strings.</span>
8857
- <a id="__codelineno-0-531" name="__codelineno-0-531"></a><span class="sd"> Buttons are each specified as a list of NavMenuButton instances.</span>
8858
- <a id="__codelineno-0-532" name="__codelineno-0-532"></a><span class="sd"> &quot;&quot;&quot;</span>
8859
- <a id="__codelineno-0-533" name="__codelineno-0-533"></a>
8860
- <a id="__codelineno-0-534" name="__codelineno-0-534"></a> <span class="nd">@property</span>
8861
- <a id="__codelineno-0-535" name="__codelineno-0-535"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8862
- <a id="__codelineno-0-536" name="__codelineno-0-536"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8863
- <a id="__codelineno-0-537" name="__codelineno-0-537"></a> <span class="k">return</span> <span class="p">{</span>
8864
- <a id="__codelineno-0-538" name="__codelineno-0-538"></a> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
8865
- <a id="__codelineno-0-539" name="__codelineno-0-539"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8866
- <a id="__codelineno-0-540" name="__codelineno-0-540"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{},</span>
8867
- <a id="__codelineno-0-541" name="__codelineno-0-541"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
8868
- <a id="__codelineno-0-542" name="__codelineno-0-542"></a> <span class="s2">&quot;args&quot;</span><span class="p">:</span> <span class="p">[],</span>
8869
- <a id="__codelineno-0-543" name="__codelineno-0-543"></a> <span class="s2">&quot;kwargs&quot;</span><span class="p">:</span> <span class="p">{},</span>
8870
- <a id="__codelineno-0-544" name="__codelineno-0-544"></a> <span class="p">}</span>
8871
- <a id="__codelineno-0-545" name="__codelineno-0-545"></a>
8872
- <a id="__codelineno-0-546" name="__codelineno-0-546"></a> <span class="nd">@property</span>
8873
- <a id="__codelineno-0-547" name="__codelineno-0-547"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8874
- <a id="__codelineno-0-548" name="__codelineno-0-548"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8875
- <a id="__codelineno-0-549" name="__codelineno-0-549"></a> <span class="k">return</span> <span class="p">(</span>
8876
- <a id="__codelineno-0-550" name="__codelineno-0-550"></a> <span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
8877
- <a id="__codelineno-0-551" name="__codelineno-0-551"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
8878
- <a id="__codelineno-0-552" name="__codelineno-0-552"></a> <span class="p">)</span>
8879
- <a id="__codelineno-0-553" name="__codelineno-0-553"></a>
8880
- <a id="__codelineno-0-554" name="__codelineno-0-554"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
8881
- <a id="__codelineno-0-555" name="__codelineno-0-555"></a> <span class="n">buttons</span> <span class="o">=</span> <span class="p">[]</span>
8882
- <a id="__codelineno-0-556" name="__codelineno-0-556"></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span>
8883
- <a id="__codelineno-0-557" name="__codelineno-0-557"></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span>
8884
- <a id="__codelineno-0-558" name="__codelineno-0-558"></a>
8885
- <a id="__codelineno-0-559" name="__codelineno-0-559"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">buttons</span><span class="o">=</span><span class="p">(),</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8886
- <a id="__codelineno-0-560" name="__codelineno-0-560"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8887
- <a id="__codelineno-0-561" name="__codelineno-0-561"></a><span class="sd"> Ensure item properties.</span>
8888
- <a id="__codelineno-0-562" name="__codelineno-0-562"></a>
8889
- <a id="__codelineno-0-563" name="__codelineno-0-563"></a><span class="sd"> Args:</span>
8890
- <a id="__codelineno-0-564" name="__codelineno-0-564"></a><span class="sd"> link (str): The link to be used for this item.</span>
8891
- <a id="__codelineno-0-565" name="__codelineno-0-565"></a><span class="sd"> name (str): The name of the item.</span>
8892
- <a id="__codelineno-0-566" name="__codelineno-0-566"></a><span class="sd"> args (list): Arguments that are being passed to the url with reverse() method</span>
8893
- <a id="__codelineno-0-567" name="__codelineno-0-567"></a><span class="sd"> kwargs (dict): Keyword arguments are are being passed to the url with reverse() method</span>
8894
- <a id="__codelineno-0-568" name="__codelineno-0-568"></a><span class="sd"> permissions (list): The permissions required to view this item.</span>
8895
- <a id="__codelineno-0-569" name="__codelineno-0-569"></a><span class="sd"> buttons (list): List of buttons to be rendered in this item.</span>
8896
- <a id="__codelineno-0-570" name="__codelineno-0-570"></a><span class="sd"> weight (int): The weight of this item.</span>
8897
- <a id="__codelineno-0-571" name="__codelineno-0-571"></a><span class="sd"> &quot;&quot;&quot;</span>
8898
- <a id="__codelineno-0-572" name="__codelineno-0-572"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8899
- <a id="__codelineno-0-573" name="__codelineno-0-573"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8900
- <a id="__codelineno-0-574" name="__codelineno-0-574"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8901
- <a id="__codelineno-0-575" name="__codelineno-0-575"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8902
- <a id="__codelineno-0-576" name="__codelineno-0-576"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
8903
- <a id="__codelineno-0-577" name="__codelineno-0-577"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
8904
- <a id="__codelineno-0-578" name="__codelineno-0-578"></a>
8905
- <a id="__codelineno-0-579" name="__codelineno-0-579"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">buttons</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8906
- <a id="__codelineno-0-580" name="__codelineno-0-580"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Buttons must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8907
- <a id="__codelineno-0-581" name="__codelineno-0-581"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">button</span><span class="p">,</span> <span class="n">NavMenuButton</span><span class="p">)</span> <span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="n">buttons</span><span class="p">):</span>
8908
- <a id="__codelineno-0-582" name="__codelineno-0-582"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All buttons defined in an item must be an instance or subclass of NavMenuButton&quot;</span><span class="p">)</span>
8909
- <a id="__codelineno-0-583" name="__codelineno-0-583"></a> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="n">buttons</span>
8809
+ <span class="normal"><a href="#__codelineno-0-580">580</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-522" name="__codelineno-0-522"></a><span class="k">class</span> <span class="nc">NavMenuItem</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
8810
+ <a id="__codelineno-0-523" name="__codelineno-0-523"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8811
+ <a id="__codelineno-0-524" name="__codelineno-0-524"></a><span class="sd"> This class represents a navigation menu item. This constitutes primary link and its text, but also allows for</span>
8812
+ <a id="__codelineno-0-525" name="__codelineno-0-525"></a><span class="sd"> specifying additional link buttons that appear to the right of the item in the nav menu.</span>
8813
+ <a id="__codelineno-0-526" name="__codelineno-0-526"></a>
8814
+ <a id="__codelineno-0-527" name="__codelineno-0-527"></a><span class="sd"> Links are specified as Django reverse URL strings.</span>
8815
+ <a id="__codelineno-0-528" name="__codelineno-0-528"></a><span class="sd"> Buttons are each specified as a list of NavMenuButton instances.</span>
8816
+ <a id="__codelineno-0-529" name="__codelineno-0-529"></a><span class="sd"> &quot;&quot;&quot;</span>
8817
+ <a id="__codelineno-0-530" name="__codelineno-0-530"></a>
8818
+ <a id="__codelineno-0-531" name="__codelineno-0-531"></a> <span class="nd">@property</span>
8819
+ <a id="__codelineno-0-532" name="__codelineno-0-532"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
8820
+ <a id="__codelineno-0-533" name="__codelineno-0-533"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
8821
+ <a id="__codelineno-0-534" name="__codelineno-0-534"></a> <span class="k">return</span> <span class="p">{</span>
8822
+ <a id="__codelineno-0-535" name="__codelineno-0-535"></a> <span class="s2">&quot;name&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
8823
+ <a id="__codelineno-0-536" name="__codelineno-0-536"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
8824
+ <a id="__codelineno-0-537" name="__codelineno-0-537"></a> <span class="s2">&quot;buttons&quot;</span><span class="p">:</span> <span class="p">{},</span>
8825
+ <a id="__codelineno-0-538" name="__codelineno-0-538"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">,</span>
8826
+ <a id="__codelineno-0-539" name="__codelineno-0-539"></a> <span class="s2">&quot;args&quot;</span><span class="p">:</span> <span class="p">[],</span>
8827
+ <a id="__codelineno-0-540" name="__codelineno-0-540"></a> <span class="s2">&quot;kwargs&quot;</span><span class="p">:</span> <span class="p">{},</span>
8828
+ <a id="__codelineno-0-541" name="__codelineno-0-541"></a> <span class="p">}</span>
8829
+ <a id="__codelineno-0-542" name="__codelineno-0-542"></a>
8830
+ <a id="__codelineno-0-543" name="__codelineno-0-543"></a> <span class="nd">@property</span>
8831
+ <a id="__codelineno-0-544" name="__codelineno-0-544"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
8832
+ <a id="__codelineno-0-545" name="__codelineno-0-545"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
8833
+ <a id="__codelineno-0-546" name="__codelineno-0-546"></a> <span class="k">return</span> <span class="p">(</span>
8834
+ <a id="__codelineno-0-547" name="__codelineno-0-547"></a> <span class="p">(</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">),</span>
8835
+ <a id="__codelineno-0-548" name="__codelineno-0-548"></a> <span class="p">(</span><span class="s2">&quot;permissions&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span><span class="p">),</span>
8836
+ <a id="__codelineno-0-549" name="__codelineno-0-549"></a> <span class="p">)</span>
8837
+ <a id="__codelineno-0-550" name="__codelineno-0-550"></a>
8838
+ <a id="__codelineno-0-551" name="__codelineno-0-551"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
8839
+ <a id="__codelineno-0-552" name="__codelineno-0-552"></a> <span class="n">buttons</span> <span class="o">=</span> <span class="p">[]</span>
8840
+ <a id="__codelineno-0-553" name="__codelineno-0-553"></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span>
8841
+ <a id="__codelineno-0-554" name="__codelineno-0-554"></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span>
8842
+ <a id="__codelineno-0-555" name="__codelineno-0-555"></a>
8843
+ <a id="__codelineno-0-556" name="__codelineno-0-556"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">buttons</span><span class="o">=</span><span class="p">(),</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
8844
+ <a id="__codelineno-0-557" name="__codelineno-0-557"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
8845
+ <a id="__codelineno-0-558" name="__codelineno-0-558"></a><span class="sd"> Ensure item properties.</span>
8846
+ <a id="__codelineno-0-559" name="__codelineno-0-559"></a>
8847
+ <a id="__codelineno-0-560" name="__codelineno-0-560"></a><span class="sd"> Args:</span>
8848
+ <a id="__codelineno-0-561" name="__codelineno-0-561"></a><span class="sd"> link (str): The link to be used for this item.</span>
8849
+ <a id="__codelineno-0-562" name="__codelineno-0-562"></a><span class="sd"> name (str): The name of the item.</span>
8850
+ <a id="__codelineno-0-563" name="__codelineno-0-563"></a><span class="sd"> args (list): Arguments that are being passed to the url with reverse() method</span>
8851
+ <a id="__codelineno-0-564" name="__codelineno-0-564"></a><span class="sd"> kwargs (dict): Keyword arguments are are being passed to the url with reverse() method</span>
8852
+ <a id="__codelineno-0-565" name="__codelineno-0-565"></a><span class="sd"> permissions (list): The permissions required to view this item.</span>
8853
+ <a id="__codelineno-0-566" name="__codelineno-0-566"></a><span class="sd"> buttons (list): List of buttons to be rendered in this item.</span>
8854
+ <a id="__codelineno-0-567" name="__codelineno-0-567"></a><span class="sd"> weight (int): The weight of this item.</span>
8855
+ <a id="__codelineno-0-568" name="__codelineno-0-568"></a><span class="sd"> &quot;&quot;&quot;</span>
8856
+ <a id="__codelineno-0-569" name="__codelineno-0-569"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
8857
+ <a id="__codelineno-0-570" name="__codelineno-0-570"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
8858
+ <a id="__codelineno-0-571" name="__codelineno-0-571"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
8859
+ <a id="__codelineno-0-572" name="__codelineno-0-572"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
8860
+ <a id="__codelineno-0-573" name="__codelineno-0-573"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
8861
+ <a id="__codelineno-0-574" name="__codelineno-0-574"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
8862
+ <a id="__codelineno-0-575" name="__codelineno-0-575"></a>
8863
+ <a id="__codelineno-0-576" name="__codelineno-0-576"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">buttons</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
8864
+ <a id="__codelineno-0-577" name="__codelineno-0-577"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Buttons must be passed as a tuple or list.&quot;</span><span class="p">)</span>
8865
+ <a id="__codelineno-0-578" name="__codelineno-0-578"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">button</span><span class="p">,</span> <span class="n">NavMenuButton</span><span class="p">)</span> <span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="n">buttons</span><span class="p">):</span>
8866
+ <a id="__codelineno-0-579" name="__codelineno-0-579"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All buttons defined in an item must be an instance or subclass of NavMenuButton&quot;</span><span class="p">)</span>
8867
+ <a id="__codelineno-0-580" name="__codelineno-0-580"></a> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="n">buttons</span>
8910
8868
  </code></pre></div></td></tr></table></div>
8911
8869
  </details>
8912
8870
 
@@ -9095,7 +9053,10 @@ Buttons are each specified as a list of NavMenuButton instances.</p>
9095
9053
 
9096
9054
  <details class="quote">
9097
9055
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
9098
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-559">559</a></span>
9056
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-556">556</a></span>
9057
+ <span class="normal"><a href="#__codelineno-0-557">557</a></span>
9058
+ <span class="normal"><a href="#__codelineno-0-558">558</a></span>
9059
+ <span class="normal"><a href="#__codelineno-0-559">559</a></span>
9099
9060
  <span class="normal"><a href="#__codelineno-0-560">560</a></span>
9100
9061
  <span class="normal"><a href="#__codelineno-0-561">561</a></span>
9101
9062
  <span class="normal"><a href="#__codelineno-0-562">562</a></span>
@@ -9116,34 +9077,31 @@ Buttons are each specified as a list of NavMenuButton instances.</p>
9116
9077
  <span class="normal"><a href="#__codelineno-0-577">577</a></span>
9117
9078
  <span class="normal"><a href="#__codelineno-0-578">578</a></span>
9118
9079
  <span class="normal"><a href="#__codelineno-0-579">579</a></span>
9119
- <span class="normal"><a href="#__codelineno-0-580">580</a></span>
9120
- <span class="normal"><a href="#__codelineno-0-581">581</a></span>
9121
- <span class="normal"><a href="#__codelineno-0-582">582</a></span>
9122
- <span class="normal"><a href="#__codelineno-0-583">583</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-559" name="__codelineno-0-559"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">buttons</span><span class="o">=</span><span class="p">(),</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9123
- <a id="__codelineno-0-560" name="__codelineno-0-560"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9124
- <a id="__codelineno-0-561" name="__codelineno-0-561"></a><span class="sd"> Ensure item properties.</span>
9125
- <a id="__codelineno-0-562" name="__codelineno-0-562"></a>
9126
- <a id="__codelineno-0-563" name="__codelineno-0-563"></a><span class="sd"> Args:</span>
9127
- <a id="__codelineno-0-564" name="__codelineno-0-564"></a><span class="sd"> link (str): The link to be used for this item.</span>
9128
- <a id="__codelineno-0-565" name="__codelineno-0-565"></a><span class="sd"> name (str): The name of the item.</span>
9129
- <a id="__codelineno-0-566" name="__codelineno-0-566"></a><span class="sd"> args (list): Arguments that are being passed to the url with reverse() method</span>
9130
- <a id="__codelineno-0-567" name="__codelineno-0-567"></a><span class="sd"> kwargs (dict): Keyword arguments are are being passed to the url with reverse() method</span>
9131
- <a id="__codelineno-0-568" name="__codelineno-0-568"></a><span class="sd"> permissions (list): The permissions required to view this item.</span>
9132
- <a id="__codelineno-0-569" name="__codelineno-0-569"></a><span class="sd"> buttons (list): List of buttons to be rendered in this item.</span>
9133
- <a id="__codelineno-0-570" name="__codelineno-0-570"></a><span class="sd"> weight (int): The weight of this item.</span>
9134
- <a id="__codelineno-0-571" name="__codelineno-0-571"></a><span class="sd"> &quot;&quot;&quot;</span>
9135
- <a id="__codelineno-0-572" name="__codelineno-0-572"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9136
- <a id="__codelineno-0-573" name="__codelineno-0-573"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
9137
- <a id="__codelineno-0-574" name="__codelineno-0-574"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9138
- <a id="__codelineno-0-575" name="__codelineno-0-575"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9139
- <a id="__codelineno-0-576" name="__codelineno-0-576"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
9140
- <a id="__codelineno-0-577" name="__codelineno-0-577"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
9141
- <a id="__codelineno-0-578" name="__codelineno-0-578"></a>
9142
- <a id="__codelineno-0-579" name="__codelineno-0-579"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">buttons</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9143
- <a id="__codelineno-0-580" name="__codelineno-0-580"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Buttons must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9144
- <a id="__codelineno-0-581" name="__codelineno-0-581"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">button</span><span class="p">,</span> <span class="n">NavMenuButton</span><span class="p">)</span> <span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="n">buttons</span><span class="p">):</span>
9145
- <a id="__codelineno-0-582" name="__codelineno-0-582"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All buttons defined in an item must be an instance or subclass of NavMenuButton&quot;</span><span class="p">)</span>
9146
- <a id="__codelineno-0-583" name="__codelineno-0-583"></a> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="n">buttons</span>
9080
+ <span class="normal"><a href="#__codelineno-0-580">580</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-556" name="__codelineno-0-556"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">link</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">buttons</span><span class="o">=</span><span class="p">(),</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9081
+ <a id="__codelineno-0-557" name="__codelineno-0-557"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9082
+ <a id="__codelineno-0-558" name="__codelineno-0-558"></a><span class="sd"> Ensure item properties.</span>
9083
+ <a id="__codelineno-0-559" name="__codelineno-0-559"></a>
9084
+ <a id="__codelineno-0-560" name="__codelineno-0-560"></a><span class="sd"> Args:</span>
9085
+ <a id="__codelineno-0-561" name="__codelineno-0-561"></a><span class="sd"> link (str): The link to be used for this item.</span>
9086
+ <a id="__codelineno-0-562" name="__codelineno-0-562"></a><span class="sd"> name (str): The name of the item.</span>
9087
+ <a id="__codelineno-0-563" name="__codelineno-0-563"></a><span class="sd"> args (list): Arguments that are being passed to the url with reverse() method</span>
9088
+ <a id="__codelineno-0-564" name="__codelineno-0-564"></a><span class="sd"> kwargs (dict): Keyword arguments are are being passed to the url with reverse() method</span>
9089
+ <a id="__codelineno-0-565" name="__codelineno-0-565"></a><span class="sd"> permissions (list): The permissions required to view this item.</span>
9090
+ <a id="__codelineno-0-566" name="__codelineno-0-566"></a><span class="sd"> buttons (list): List of buttons to be rendered in this item.</span>
9091
+ <a id="__codelineno-0-567" name="__codelineno-0-567"></a><span class="sd"> weight (int): The weight of this item.</span>
9092
+ <a id="__codelineno-0-568" name="__codelineno-0-568"></a><span class="sd"> &quot;&quot;&quot;</span>
9093
+ <a id="__codelineno-0-569" name="__codelineno-0-569"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9094
+ <a id="__codelineno-0-570" name="__codelineno-0-570"></a> <span class="bp">self</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span>
9095
+ <a id="__codelineno-0-571" name="__codelineno-0-571"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9096
+ <a id="__codelineno-0-572" name="__codelineno-0-572"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9097
+ <a id="__codelineno-0-573" name="__codelineno-0-573"></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
9098
+ <a id="__codelineno-0-574" name="__codelineno-0-574"></a> <span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
9099
+ <a id="__codelineno-0-575" name="__codelineno-0-575"></a>
9100
+ <a id="__codelineno-0-576" name="__codelineno-0-576"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">buttons</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9101
+ <a id="__codelineno-0-577" name="__codelineno-0-577"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Buttons must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9102
+ <a id="__codelineno-0-578" name="__codelineno-0-578"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">button</span><span class="p">,</span> <span class="n">NavMenuButton</span><span class="p">)</span> <span class="k">for</span> <span class="n">button</span> <span class="ow">in</span> <span class="n">buttons</span><span class="p">):</span>
9103
+ <a id="__codelineno-0-579" name="__codelineno-0-579"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All buttons defined in an item must be an instance or subclass of NavMenuButton&quot;</span><span class="p">)</span>
9104
+ <a id="__codelineno-0-580" name="__codelineno-0-580"></a> <span class="bp">self</span><span class="o">.</span><span class="n">buttons</span> <span class="o">=</span> <span class="n">buttons</span>
9147
9105
  </code></pre></div></td></tr></table></div>
9148
9106
  </details>
9149
9107
  </div>
@@ -9180,7 +9138,10 @@ the display text and the weight defines its position in the navbar.</p>
9180
9138
 
9181
9139
  <details class="quote">
9182
9140
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
9183
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-436">436</a></span>
9141
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-433">433</a></span>
9142
+ <span class="normal"><a href="#__codelineno-0-434">434</a></span>
9143
+ <span class="normal"><a href="#__codelineno-0-435">435</a></span>
9144
+ <span class="normal"><a href="#__codelineno-0-436">436</a></span>
9184
9145
  <span class="normal"><a href="#__codelineno-0-437">437</a></span>
9185
9146
  <span class="normal"><a href="#__codelineno-0-438">438</a></span>
9186
9147
  <span class="normal"><a href="#__codelineno-0-439">439</a></span>
@@ -9220,53 +9181,50 @@ the display text and the weight defines its position in the navbar.</p>
9220
9181
  <span class="normal"><a href="#__codelineno-0-473">473</a></span>
9221
9182
  <span class="normal"><a href="#__codelineno-0-474">474</a></span>
9222
9183
  <span class="normal"><a href="#__codelineno-0-475">475</a></span>
9223
- <span class="normal"><a href="#__codelineno-0-476">476</a></span>
9224
- <span class="normal"><a href="#__codelineno-0-477">477</a></span>
9225
- <span class="normal"><a href="#__codelineno-0-478">478</a></span>
9226
- <span class="normal"><a href="#__codelineno-0-479">479</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="k">class</span> <span class="nc">NavMenuTab</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
9227
- <a id="__codelineno-0-437" name="__codelineno-0-437"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9228
- <a id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="sd"> Ths class represents a navigation menu tab. This is built up from a name and a weight value. The name is</span>
9229
- <a id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="sd"> the display text and the weight defines its position in the navbar.</span>
9184
+ <span class="normal"><a href="#__codelineno-0-476">476</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-433" name="__codelineno-0-433"></a><span class="k">class</span> <span class="nc">NavMenuTab</span><span class="p">(</span><span class="n">NavMenuBase</span><span class="p">,</span> <span class="n">PermissionsMixin</span><span class="p">):</span>
9185
+ <a id="__codelineno-0-434" name="__codelineno-0-434"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9186
+ <a id="__codelineno-0-435" name="__codelineno-0-435"></a><span class="sd"> Ths class represents a navigation menu tab. This is built up from a name and a weight value. The name is</span>
9187
+ <a id="__codelineno-0-436" name="__codelineno-0-436"></a><span class="sd"> the display text and the weight defines its position in the navbar.</span>
9188
+ <a id="__codelineno-0-437" name="__codelineno-0-437"></a>
9189
+ <a id="__codelineno-0-438" name="__codelineno-0-438"></a><span class="sd"> Groups are each specified as a list of NavMenuGroup instances.</span>
9190
+ <a id="__codelineno-0-439" name="__codelineno-0-439"></a><span class="sd"> &quot;&quot;&quot;</span>
9230
9191
  <a id="__codelineno-0-440" name="__codelineno-0-440"></a>
9231
- <a id="__codelineno-0-441" name="__codelineno-0-441"></a><span class="sd"> Groups are each specified as a list of NavMenuGroup instances.</span>
9232
- <a id="__codelineno-0-442" name="__codelineno-0-442"></a><span class="sd"> &quot;&quot;&quot;</span>
9192
+ <a id="__codelineno-0-441" name="__codelineno-0-441"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
9193
+ <a id="__codelineno-0-442" name="__codelineno-0-442"></a> <span class="n">groups</span> <span class="o">=</span> <span class="p">[]</span>
9233
9194
  <a id="__codelineno-0-443" name="__codelineno-0-443"></a>
9234
- <a id="__codelineno-0-444" name="__codelineno-0-444"></a> <span class="n">permissions</span> <span class="o">=</span> <span class="p">[]</span>
9235
- <a id="__codelineno-0-445" name="__codelineno-0-445"></a> <span class="n">groups</span> <span class="o">=</span> <span class="p">[]</span>
9236
- <a id="__codelineno-0-446" name="__codelineno-0-446"></a>
9237
- <a id="__codelineno-0-447" name="__codelineno-0-447"></a> <span class="nd">@property</span>
9238
- <a id="__codelineno-0-448" name="__codelineno-0-448"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
9239
- <a id="__codelineno-0-449" name="__codelineno-0-449"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
9240
- <a id="__codelineno-0-450" name="__codelineno-0-450"></a> <span class="k">return</span> <span class="p">{</span>
9241
- <a id="__codelineno-0-451" name="__codelineno-0-451"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
9242
- <a id="__codelineno-0-452" name="__codelineno-0-452"></a> <span class="s2">&quot;groups&quot;</span><span class="p">:</span> <span class="p">{},</span>
9243
- <a id="__codelineno-0-453" name="__codelineno-0-453"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="nb">set</span><span class="p">(),</span>
9244
- <a id="__codelineno-0-454" name="__codelineno-0-454"></a> <span class="p">}</span>
9245
- <a id="__codelineno-0-455" name="__codelineno-0-455"></a>
9246
- <a id="__codelineno-0-456" name="__codelineno-0-456"></a> <span class="nd">@property</span>
9247
- <a id="__codelineno-0-457" name="__codelineno-0-457"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
9248
- <a id="__codelineno-0-458" name="__codelineno-0-458"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
9249
- <a id="__codelineno-0-459" name="__codelineno-0-459"></a> <span class="k">return</span> <span class="p">()</span>
9250
- <a id="__codelineno-0-460" name="__codelineno-0-460"></a>
9251
- <a id="__codelineno-0-461" name="__codelineno-0-461"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9252
- <a id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9253
- <a id="__codelineno-0-463" name="__codelineno-0-463"></a><span class="sd"> Ensure tab properties.</span>
9254
- <a id="__codelineno-0-464" name="__codelineno-0-464"></a>
9255
- <a id="__codelineno-0-465" name="__codelineno-0-465"></a><span class="sd"> Args:</span>
9256
- <a id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="sd"> name (str): The name of the tab.</span>
9257
- <a id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="sd"> permissions (list): The permissions required to view this tab.</span>
9258
- <a id="__codelineno-0-468" name="__codelineno-0-468"></a><span class="sd"> groups (list): List of groups to be rendered in this tab.</span>
9259
- <a id="__codelineno-0-469" name="__codelineno-0-469"></a><span class="sd"> weight (int): The weight of this tab.</span>
9260
- <a id="__codelineno-0-470" name="__codelineno-0-470"></a><span class="sd"> &quot;&quot;&quot;</span>
9261
- <a id="__codelineno-0-471" name="__codelineno-0-471"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9262
- <a id="__codelineno-0-472" name="__codelineno-0-472"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9263
- <a id="__codelineno-0-473" name="__codelineno-0-473"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9264
- <a id="__codelineno-0-474" name="__codelineno-0-474"></a> <span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
9265
- <a id="__codelineno-0-475" name="__codelineno-0-475"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9266
- <a id="__codelineno-0-476" name="__codelineno-0-476"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9267
- <a id="__codelineno-0-477" name="__codelineno-0-477"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavMenuGroup</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
9268
- <a id="__codelineno-0-478" name="__codelineno-0-478"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a tab must be an instance of NavMenuGroup&quot;</span><span class="p">)</span>
9269
- <a id="__codelineno-0-479" name="__codelineno-0-479"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
9195
+ <a id="__codelineno-0-444" name="__codelineno-0-444"></a> <span class="nd">@property</span>
9196
+ <a id="__codelineno-0-445" name="__codelineno-0-445"></a> <span class="k">def</span> <span class="nf">initial_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">dict</span><span class="p">:</span>
9197
+ <a id="__codelineno-0-446" name="__codelineno-0-446"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Attributes to be stored when adding this item to the nav menu data for the first time.&quot;&quot;&quot;</span>
9198
+ <a id="__codelineno-0-447" name="__codelineno-0-447"></a> <span class="k">return</span> <span class="p">{</span>
9199
+ <a id="__codelineno-0-448" name="__codelineno-0-448"></a> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span><span class="p">,</span>
9200
+ <a id="__codelineno-0-449" name="__codelineno-0-449"></a> <span class="s2">&quot;groups&quot;</span><span class="p">:</span> <span class="p">{},</span>
9201
+ <a id="__codelineno-0-450" name="__codelineno-0-450"></a> <span class="s2">&quot;permissions&quot;</span><span class="p">:</span> <span class="nb">set</span><span class="p">(),</span>
9202
+ <a id="__codelineno-0-451" name="__codelineno-0-451"></a> <span class="p">}</span>
9203
+ <a id="__codelineno-0-452" name="__codelineno-0-452"></a>
9204
+ <a id="__codelineno-0-453" name="__codelineno-0-453"></a> <span class="nd">@property</span>
9205
+ <a id="__codelineno-0-454" name="__codelineno-0-454"></a> <span class="k">def</span> <span class="nf">fixed_fields</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">tuple</span><span class="p">:</span>
9206
+ <a id="__codelineno-0-455" name="__codelineno-0-455"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tuple of (name, attribute) entries describing fields that may not be altered after declaration.&quot;&quot;&quot;</span>
9207
+ <a id="__codelineno-0-456" name="__codelineno-0-456"></a> <span class="k">return</span> <span class="p">()</span>
9208
+ <a id="__codelineno-0-457" name="__codelineno-0-457"></a>
9209
+ <a id="__codelineno-0-458" name="__codelineno-0-458"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9210
+ <a id="__codelineno-0-459" name="__codelineno-0-459"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9211
+ <a id="__codelineno-0-460" name="__codelineno-0-460"></a><span class="sd"> Ensure tab properties.</span>
9212
+ <a id="__codelineno-0-461" name="__codelineno-0-461"></a>
9213
+ <a id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="sd"> Args:</span>
9214
+ <a id="__codelineno-0-463" name="__codelineno-0-463"></a><span class="sd"> name (str): The name of the tab.</span>
9215
+ <a id="__codelineno-0-464" name="__codelineno-0-464"></a><span class="sd"> permissions (list): The permissions required to view this tab.</span>
9216
+ <a id="__codelineno-0-465" name="__codelineno-0-465"></a><span class="sd"> groups (list): List of groups to be rendered in this tab.</span>
9217
+ <a id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="sd"> weight (int): The weight of this tab.</span>
9218
+ <a id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="sd"> &quot;&quot;&quot;</span>
9219
+ <a id="__codelineno-0-468" name="__codelineno-0-468"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9220
+ <a id="__codelineno-0-469" name="__codelineno-0-469"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9221
+ <a id="__codelineno-0-470" name="__codelineno-0-470"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9222
+ <a id="__codelineno-0-471" name="__codelineno-0-471"></a> <span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
9223
+ <a id="__codelineno-0-472" name="__codelineno-0-472"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9224
+ <a id="__codelineno-0-473" name="__codelineno-0-473"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9225
+ <a id="__codelineno-0-474" name="__codelineno-0-474"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavMenuGroup</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
9226
+ <a id="__codelineno-0-475" name="__codelineno-0-475"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a tab must be an instance of NavMenuGroup&quot;</span><span class="p">)</span>
9227
+ <a id="__codelineno-0-476" name="__codelineno-0-476"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
9270
9228
  </code></pre></div></td></tr></table></div>
9271
9229
  </details>
9272
9230
 
@@ -9413,7 +9371,10 @@ the display text and the weight defines its position in the navbar.</p>
9413
9371
 
9414
9372
  <details class="quote">
9415
9373
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
9416
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-461">461</a></span>
9374
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-458">458</a></span>
9375
+ <span class="normal"><a href="#__codelineno-0-459">459</a></span>
9376
+ <span class="normal"><a href="#__codelineno-0-460">460</a></span>
9377
+ <span class="normal"><a href="#__codelineno-0-461">461</a></span>
9417
9378
  <span class="normal"><a href="#__codelineno-0-462">462</a></span>
9418
9379
  <span class="normal"><a href="#__codelineno-0-463">463</a></span>
9419
9380
  <span class="normal"><a href="#__codelineno-0-464">464</a></span>
@@ -9428,28 +9389,25 @@ the display text and the weight defines its position in the navbar.</p>
9428
9389
  <span class="normal"><a href="#__codelineno-0-473">473</a></span>
9429
9390
  <span class="normal"><a href="#__codelineno-0-474">474</a></span>
9430
9391
  <span class="normal"><a href="#__codelineno-0-475">475</a></span>
9431
- <span class="normal"><a href="#__codelineno-0-476">476</a></span>
9432
- <span class="normal"><a href="#__codelineno-0-477">477</a></span>
9433
- <span class="normal"><a href="#__codelineno-0-478">478</a></span>
9434
- <span class="normal"><a href="#__codelineno-0-479">479</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-461" name="__codelineno-0-461"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9435
- <a id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9436
- <a id="__codelineno-0-463" name="__codelineno-0-463"></a><span class="sd"> Ensure tab properties.</span>
9437
- <a id="__codelineno-0-464" name="__codelineno-0-464"></a>
9438
- <a id="__codelineno-0-465" name="__codelineno-0-465"></a><span class="sd"> Args:</span>
9439
- <a id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="sd"> name (str): The name of the tab.</span>
9440
- <a id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="sd"> permissions (list): The permissions required to view this tab.</span>
9441
- <a id="__codelineno-0-468" name="__codelineno-0-468"></a><span class="sd"> groups (list): List of groups to be rendered in this tab.</span>
9442
- <a id="__codelineno-0-469" name="__codelineno-0-469"></a><span class="sd"> weight (int): The weight of this tab.</span>
9443
- <a id="__codelineno-0-470" name="__codelineno-0-470"></a><span class="sd"> &quot;&quot;&quot;</span>
9444
- <a id="__codelineno-0-471" name="__codelineno-0-471"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9445
- <a id="__codelineno-0-472" name="__codelineno-0-472"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9446
- <a id="__codelineno-0-473" name="__codelineno-0-473"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9447
- <a id="__codelineno-0-474" name="__codelineno-0-474"></a> <span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
9448
- <a id="__codelineno-0-475" name="__codelineno-0-475"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9449
- <a id="__codelineno-0-476" name="__codelineno-0-476"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9450
- <a id="__codelineno-0-477" name="__codelineno-0-477"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavMenuGroup</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
9451
- <a id="__codelineno-0-478" name="__codelineno-0-478"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a tab must be an instance of NavMenuGroup&quot;</span><span class="p">)</span>
9452
- <a id="__codelineno-0-479" name="__codelineno-0-479"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
9392
+ <span class="normal"><a href="#__codelineno-0-476">476</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-458" name="__codelineno-0-458"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">groups</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weight</span><span class="o">=</span><span class="mi">1000</span><span class="p">):</span>
9393
+ <a id="__codelineno-0-459" name="__codelineno-0-459"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9394
+ <a id="__codelineno-0-460" name="__codelineno-0-460"></a><span class="sd"> Ensure tab properties.</span>
9395
+ <a id="__codelineno-0-461" name="__codelineno-0-461"></a>
9396
+ <a id="__codelineno-0-462" name="__codelineno-0-462"></a><span class="sd"> Args:</span>
9397
+ <a id="__codelineno-0-463" name="__codelineno-0-463"></a><span class="sd"> name (str): The name of the tab.</span>
9398
+ <a id="__codelineno-0-464" name="__codelineno-0-464"></a><span class="sd"> permissions (list): The permissions required to view this tab.</span>
9399
+ <a id="__codelineno-0-465" name="__codelineno-0-465"></a><span class="sd"> groups (list): List of groups to be rendered in this tab.</span>
9400
+ <a id="__codelineno-0-466" name="__codelineno-0-466"></a><span class="sd"> weight (int): The weight of this tab.</span>
9401
+ <a id="__codelineno-0-467" name="__codelineno-0-467"></a><span class="sd"> &quot;&quot;&quot;</span>
9402
+ <a id="__codelineno-0-468" name="__codelineno-0-468"></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span>
9403
+ <a id="__codelineno-0-469" name="__codelineno-0-469"></a> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
9404
+ <a id="__codelineno-0-470" name="__codelineno-0-470"></a> <span class="bp">self</span><span class="o">.</span><span class="n">weight</span> <span class="o">=</span> <span class="n">weight</span>
9405
+ <a id="__codelineno-0-471" name="__codelineno-0-471"></a> <span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
9406
+ <a id="__codelineno-0-472" name="__codelineno-0-472"></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">groups</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9407
+ <a id="__codelineno-0-473" name="__codelineno-0-473"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Groups must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9408
+ <a id="__codelineno-0-474" name="__codelineno-0-474"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">all</span><span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">group</span><span class="p">,</span> <span class="n">NavMenuGroup</span><span class="p">)</span> <span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">):</span>
9409
+ <a id="__codelineno-0-475" name="__codelineno-0-475"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;All groups defined in a tab must be an instance of NavMenuGroup&quot;</span><span class="p">)</span>
9410
+ <a id="__codelineno-0-476" name="__codelineno-0-476"></a> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groups</span>
9453
9411
  </code></pre></div></td></tr></table></div>
9454
9412
  </details>
9455
9413
  </div>
@@ -9482,21 +9440,21 @@ the display text and the weight defines its position in the navbar.</p>
9482
9440
 
9483
9441
  <details class="quote">
9484
9442
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
9485
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-278">278</a></span>
9443
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-275">275</a></span>
9444
+ <span class="normal"><a href="#__codelineno-0-276">276</a></span>
9445
+ <span class="normal"><a href="#__codelineno-0-277">277</a></span>
9446
+ <span class="normal"><a href="#__codelineno-0-278">278</a></span>
9486
9447
  <span class="normal"><a href="#__codelineno-0-279">279</a></span>
9487
9448
  <span class="normal"><a href="#__codelineno-0-280">280</a></span>
9488
9449
  <span class="normal"><a href="#__codelineno-0-281">281</a></span>
9489
- <span class="normal"><a href="#__codelineno-0-282">282</a></span>
9490
- <span class="normal"><a href="#__codelineno-0-283">283</a></span>
9491
- <span class="normal"><a href="#__codelineno-0-284">284</a></span>
9492
- <span class="normal"><a href="#__codelineno-0-285">285</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="k">class</span> <span class="nc">PermissionsMixin</span><span class="p">:</span>
9493
- <a id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions through init.&quot;&quot;&quot;</span>
9494
- <a id="__codelineno-0-280" name="__codelineno-0-280"></a>
9495
- <a id="__codelineno-0-281" name="__codelineno-0-281"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9496
- <a id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions.&quot;&quot;&quot;</span>
9497
- <a id="__codelineno-0-283" name="__codelineno-0-283"></a> <span class="k">if</span> <span class="n">permissions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9498
- <a id="__codelineno-0-284" name="__codelineno-0-284"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Permissions must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9499
- <a id="__codelineno-0-285" name="__codelineno-0-285"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span> <span class="k">if</span> <span class="n">permissions</span> <span class="k">else</span> <span class="nb">set</span><span class="p">()</span>
9450
+ <span class="normal"><a href="#__codelineno-0-282">282</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="k">class</span> <span class="nc">PermissionsMixin</span><span class="p">:</span>
9451
+ <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions through init.&quot;&quot;&quot;</span>
9452
+ <a id="__codelineno-0-277" name="__codelineno-0-277"></a>
9453
+ <a id="__codelineno-0-278" name="__codelineno-0-278"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9454
+ <a id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions.&quot;&quot;&quot;</span>
9455
+ <a id="__codelineno-0-280" name="__codelineno-0-280"></a> <span class="k">if</span> <span class="n">permissions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9456
+ <a id="__codelineno-0-281" name="__codelineno-0-281"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Permissions must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9457
+ <a id="__codelineno-0-282" name="__codelineno-0-282"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span> <span class="k">if</span> <span class="n">permissions</span> <span class="k">else</span> <span class="nb">set</span><span class="p">()</span>
9500
9458
  </code></pre></div></td></tr></table></div>
9501
9459
  </details>
9502
9460
 
@@ -9529,15 +9487,15 @@ the display text and the weight defines its position in the navbar.</p>
9529
9487
 
9530
9488
  <details class="quote">
9531
9489
  <summary>Source code in <code>nautobot/core/apps/__init__.py</code></summary>
9532
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-281">281</a></span>
9533
- <span class="normal"><a href="#__codelineno-0-282">282</a></span>
9534
- <span class="normal"><a href="#__codelineno-0-283">283</a></span>
9535
- <span class="normal"><a href="#__codelineno-0-284">284</a></span>
9536
- <span class="normal"><a href="#__codelineno-0-285">285</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9537
- <a id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions.&quot;&quot;&quot;</span>
9538
- <a id="__codelineno-0-283" name="__codelineno-0-283"></a> <span class="k">if</span> <span class="n">permissions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9539
- <a id="__codelineno-0-284" name="__codelineno-0-284"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Permissions must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9540
- <a id="__codelineno-0-285" name="__codelineno-0-285"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span> <span class="k">if</span> <span class="n">permissions</span> <span class="k">else</span> <span class="nb">set</span><span class="p">()</span>
9490
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-278">278</a></span>
9491
+ <span class="normal"><a href="#__codelineno-0-279">279</a></span>
9492
+ <span class="normal"><a href="#__codelineno-0-280">280</a></span>
9493
+ <span class="normal"><a href="#__codelineno-0-281">281</a></span>
9494
+ <span class="normal"><a href="#__codelineno-0-282">282</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">permissions</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9495
+ <a id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Ensure permissions.&quot;&quot;&quot;</span>
9496
+ <a id="__codelineno-0-280" name="__codelineno-0-280"></a> <span class="k">if</span> <span class="n">permissions</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">permissions</span><span class="p">,</span> <span class="p">(</span><span class="nb">list</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">)):</span>
9497
+ <a id="__codelineno-0-281" name="__codelineno-0-281"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;Permissions must be passed as a tuple or list.&quot;</span><span class="p">)</span>
9498
+ <a id="__codelineno-0-282" name="__codelineno-0-282"></a> <span class="bp">self</span><span class="o">.</span><span class="n">permissions</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">permissions</span><span class="p">)</span> <span class="k">if</span> <span class="n">permissions</span> <span class="k">else</span> <span class="nb">set</span><span class="p">()</span>
9541
9499
  </code></pre></div></td></tr></table></div>
9542
9500
  </details>
9543
9501
  </div>
@@ -9579,7 +9537,8 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
9579
9537
 
9580
9538
  <details class="quote">
9581
9539
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9582
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-275">275</a></span>
9540
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-274">274</a></span>
9541
+ <span class="normal"><a href="#__codelineno-0-275">275</a></span>
9583
9542
  <span class="normal"><a href="#__codelineno-0-276">276</a></span>
9584
9543
  <span class="normal"><a href="#__codelineno-0-277">277</a></span>
9585
9544
  <span class="normal"><a href="#__codelineno-0-278">278</a></span>
@@ -9657,87 +9616,86 @@ should be set as a string in the form <code>&lt;app_label&gt;.&lt;model_name&gt;
9657
9616
  <span class="normal"><a href="#__codelineno-0-350">350</a></span>
9658
9617
  <span class="normal"><a href="#__codelineno-0-351">351</a></span>
9659
9618
  <span class="normal"><a href="#__codelineno-0-352">352</a></span>
9660
- <span class="normal"><a href="#__codelineno-0-353">353</a></span>
9661
- <span class="normal"><a href="#__codelineno-0-354">354</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="k">class</span> <span class="nc">TemplateExtension</span><span class="p">:</span>
9662
- <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9663
- <a id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="sd"> This class is used to register plugin content to be injected into core Nautobot templates. It contains methods</span>
9664
- <a id="__codelineno-0-278" name="__codelineno-0-278"></a><span class="sd"> that are overridden by plugin authors to return template content.</span>
9665
- <a id="__codelineno-0-279" name="__codelineno-0-279"></a>
9666
- <a id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="sd"> The `model` attribute on the class defines the which model detail page this class renders content for. It</span>
9667
- <a id="__codelineno-0-281" name="__codelineno-0-281"></a><span class="sd"> should be set as a string in the form `&lt;app_label&gt;.&lt;model_name&gt;`. `render()` provides the following context data:</span>
9668
- <a id="__codelineno-0-282" name="__codelineno-0-282"></a>
9669
- <a id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="sd"> * object - The object being viewed</span>
9670
- <a id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="sd"> * request - The current request</span>
9671
- <a id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="sd"> * settings - Global Nautobot settings</span>
9672
- <a id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="sd"> * config - Plugin-specific configuration parameters</span>
9673
- <a id="__codelineno-0-287" name="__codelineno-0-287"></a><span class="sd"> &quot;&quot;&quot;</span>
9674
- <a id="__codelineno-0-288" name="__codelineno-0-288"></a>
9675
- <a id="__codelineno-0-289" name="__codelineno-0-289"></a> <span class="n">model</span> <span class="o">=</span> <span class="kc">None</span>
9676
- <a id="__codelineno-0-290" name="__codelineno-0-290"></a>
9677
- <a id="__codelineno-0-291" name="__codelineno-0-291"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
9678
- <a id="__codelineno-0-292" name="__codelineno-0-292"></a> <span class="bp">self</span><span class="o">.</span><span class="n">context</span> <span class="o">=</span> <span class="n">context</span>
9679
- <a id="__codelineno-0-293" name="__codelineno-0-293"></a>
9680
- <a id="__codelineno-0-294" name="__codelineno-0-294"></a> <span class="k">def</span> <span class="nf">render</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">extra_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9681
- <a id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9682
- <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="sd"> Convenience method for rendering the specified Django template using the default context data. An additional</span>
9683
- <a id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="sd"> context dictionary may be passed as `extra_context`.</span>
9684
- <a id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="sd"> &quot;&quot;&quot;</span>
9685
- <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="k">if</span> <span class="n">extra_context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
9686
- <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="n">extra_context</span> <span class="o">=</span> <span class="p">{}</span>
9687
- <a id="__codelineno-0-301" name="__codelineno-0-301"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">extra_context</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
9688
- <a id="__codelineno-0-302" name="__codelineno-0-302"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;extra_context must be a dictionary&quot;</span><span class="p">)</span>
9689
- <a id="__codelineno-0-303" name="__codelineno-0-303"></a>
9690
- <a id="__codelineno-0-304" name="__codelineno-0-304"></a> <span class="k">return</span> <span class="n">get_template</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span><span class="o">.</span><span class="n">render</span><span class="p">({</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">context</span><span class="p">,</span> <span class="o">**</span><span class="n">extra_context</span><span class="p">})</span>
9691
- <a id="__codelineno-0-305" name="__codelineno-0-305"></a>
9692
- <a id="__codelineno-0-306" name="__codelineno-0-306"></a> <span class="k">def</span> <span class="nf">left_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9693
- <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9694
- <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> Content that will be rendered on the left of the detail page view. Content should be returned as an</span>
9695
- <a id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9696
- <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="sd"> &quot;&quot;&quot;</span>
9697
- <a id="__codelineno-0-311" name="__codelineno-0-311"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9698
- <a id="__codelineno-0-312" name="__codelineno-0-312"></a>
9699
- <a id="__codelineno-0-313" name="__codelineno-0-313"></a> <span class="k">def</span> <span class="nf">right_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9700
- <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9701
- <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> Content that will be rendered on the right of the detail page view. Content should be returned as an</span>
9702
- <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9703
- <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> &quot;&quot;&quot;</span>
9704
- <a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9705
- <a id="__codelineno-0-319" name="__codelineno-0-319"></a>
9706
- <a id="__codelineno-0-320" name="__codelineno-0-320"></a> <span class="k">def</span> <span class="nf">full_width_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9707
- <a id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9708
- <a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> Content that will be rendered within the full width of the detail page view. Content should be returned as an</span>
9709
- <a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9710
- <a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="sd"> &quot;&quot;&quot;</span>
9711
- <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9712
- <a id="__codelineno-0-326" name="__codelineno-0-326"></a>
9713
- <a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="k">def</span> <span class="nf">buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9714
- <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9715
- <a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the detail page view. Content</span>
9716
- <a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
9717
- <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> automatically handled.</span>
9718
- <a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="sd"> &quot;&quot;&quot;</span>
9719
- <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9720
- <a id="__codelineno-0-334" name="__codelineno-0-334"></a>
9721
- <a id="__codelineno-0-335" name="__codelineno-0-335"></a> <span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9722
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9723
- <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9724
- <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9725
- <a id="__codelineno-0-339" name="__codelineno-0-339"></a>
9726
- <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9727
- <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> ```</span>
9728
- <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> [</span>
9729
- <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> {</span>
9730
- <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9731
- <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9732
- <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> },</span>
9733
- <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> {</span>
9734
- <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9735
- <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9736
- <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> },</span>
9737
- <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ]</span>
9738
- <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> ```</span>
9739
- <a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="sd"> &quot;&quot;&quot;</span>
9740
- <a id="__codelineno-0-354" name="__codelineno-0-354"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9619
+ <span class="normal"><a href="#__codelineno-0-353">353</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-274" name="__codelineno-0-274"></a><span class="k">class</span> <span class="nc">TemplateExtension</span><span class="p">:</span>
9620
+ <a id="__codelineno-0-275" name="__codelineno-0-275"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9621
+ <a id="__codelineno-0-276" name="__codelineno-0-276"></a><span class="sd"> This class is used to register plugin content to be injected into core Nautobot templates. It contains methods</span>
9622
+ <a id="__codelineno-0-277" name="__codelineno-0-277"></a><span class="sd"> that are overridden by plugin authors to return template content.</span>
9623
+ <a id="__codelineno-0-278" name="__codelineno-0-278"></a>
9624
+ <a id="__codelineno-0-279" name="__codelineno-0-279"></a><span class="sd"> The `model` attribute on the class defines the which model detail page this class renders content for. It</span>
9625
+ <a id="__codelineno-0-280" name="__codelineno-0-280"></a><span class="sd"> should be set as a string in the form `&lt;app_label&gt;.&lt;model_name&gt;`. `render()` provides the following context data:</span>
9626
+ <a id="__codelineno-0-281" name="__codelineno-0-281"></a>
9627
+ <a id="__codelineno-0-282" name="__codelineno-0-282"></a><span class="sd"> * object - The object being viewed</span>
9628
+ <a id="__codelineno-0-283" name="__codelineno-0-283"></a><span class="sd"> * request - The current request</span>
9629
+ <a id="__codelineno-0-284" name="__codelineno-0-284"></a><span class="sd"> * settings - Global Nautobot settings</span>
9630
+ <a id="__codelineno-0-285" name="__codelineno-0-285"></a><span class="sd"> * config - Plugin-specific configuration parameters</span>
9631
+ <a id="__codelineno-0-286" name="__codelineno-0-286"></a><span class="sd"> &quot;&quot;&quot;</span>
9632
+ <a id="__codelineno-0-287" name="__codelineno-0-287"></a>
9633
+ <a id="__codelineno-0-288" name="__codelineno-0-288"></a> <span class="n">model</span> <span class="o">=</span> <span class="kc">None</span>
9634
+ <a id="__codelineno-0-289" name="__codelineno-0-289"></a>
9635
+ <a id="__codelineno-0-290" name="__codelineno-0-290"></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">context</span><span class="p">):</span>
9636
+ <a id="__codelineno-0-291" name="__codelineno-0-291"></a> <span class="bp">self</span><span class="o">.</span><span class="n">context</span> <span class="o">=</span> <span class="n">context</span>
9637
+ <a id="__codelineno-0-292" name="__codelineno-0-292"></a>
9638
+ <a id="__codelineno-0-293" name="__codelineno-0-293"></a> <span class="k">def</span> <span class="nf">render</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">extra_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9639
+ <a id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9640
+ <a id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="sd"> Convenience method for rendering the specified Django template using the default context data. An additional</span>
9641
+ <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="sd"> context dictionary may be passed as `extra_context`.</span>
9642
+ <a id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="sd"> &quot;&quot;&quot;</span>
9643
+ <a id="__codelineno-0-298" name="__codelineno-0-298"></a> <span class="k">if</span> <span class="n">extra_context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
9644
+ <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="n">extra_context</span> <span class="o">=</span> <span class="p">{}</span>
9645
+ <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">extra_context</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
9646
+ <a id="__codelineno-0-301" name="__codelineno-0-301"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;extra_context must be a dictionary&quot;</span><span class="p">)</span>
9647
+ <a id="__codelineno-0-302" name="__codelineno-0-302"></a>
9648
+ <a id="__codelineno-0-303" name="__codelineno-0-303"></a> <span class="k">return</span> <span class="n">get_template</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span><span class="o">.</span><span class="n">render</span><span class="p">({</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">context</span><span class="p">,</span> <span class="o">**</span><span class="n">extra_context</span><span class="p">})</span>
9649
+ <a id="__codelineno-0-304" name="__codelineno-0-304"></a>
9650
+ <a id="__codelineno-0-305" name="__codelineno-0-305"></a> <span class="k">def</span> <span class="nf">left_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9651
+ <a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9652
+ <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="sd"> Content that will be rendered on the left of the detail page view. Content should be returned as an</span>
9653
+ <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9654
+ <a id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="sd"> &quot;&quot;&quot;</span>
9655
+ <a id="__codelineno-0-310" name="__codelineno-0-310"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9656
+ <a id="__codelineno-0-311" name="__codelineno-0-311"></a>
9657
+ <a id="__codelineno-0-312" name="__codelineno-0-312"></a> <span class="k">def</span> <span class="nf">right_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9658
+ <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9659
+ <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> Content that will be rendered on the right of the detail page view. Content should be returned as an</span>
9660
+ <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9661
+ <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> &quot;&quot;&quot;</span>
9662
+ <a id="__codelineno-0-317" name="__codelineno-0-317"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9663
+ <a id="__codelineno-0-318" name="__codelineno-0-318"></a>
9664
+ <a id="__codelineno-0-319" name="__codelineno-0-319"></a> <span class="k">def</span> <span class="nf">full_width_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9665
+ <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9666
+ <a id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="sd"> Content that will be rendered within the full width of the detail page view. Content should be returned as an</span>
9667
+ <a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9668
+ <a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> &quot;&quot;&quot;</span>
9669
+ <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9670
+ <a id="__codelineno-0-325" name="__codelineno-0-325"></a>
9671
+ <a id="__codelineno-0-326" name="__codelineno-0-326"></a> <span class="k">def</span> <span class="nf">buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9672
+ <a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9673
+ <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the detail page view. Content</span>
9674
+ <a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
9675
+ <a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> automatically handled.</span>
9676
+ <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> &quot;&quot;&quot;</span>
9677
+ <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9678
+ <a id="__codelineno-0-333" name="__codelineno-0-333"></a>
9679
+ <a id="__codelineno-0-334" name="__codelineno-0-334"></a> <span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9680
+ <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9681
+ <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9682
+ <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9683
+ <a id="__codelineno-0-338" name="__codelineno-0-338"></a>
9684
+ <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9685
+ <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> ```</span>
9686
+ <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> [</span>
9687
+ <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> {</span>
9688
+ <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9689
+ <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9690
+ <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> },</span>
9691
+ <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> {</span>
9692
+ <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9693
+ <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9694
+ <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> },</span>
9695
+ <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> ]</span>
9696
+ <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ```</span>
9697
+ <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;&quot;&quot;</span>
9698
+ <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9741
9699
  </code></pre></div></td></tr></table></div>
9742
9700
  </details>
9743
9701
 
@@ -9772,19 +9730,19 @@ automatically handled.</p>
9772
9730
 
9773
9731
  <details class="quote">
9774
9732
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9775
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-327">327</a></span>
9733
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-326">326</a></span>
9734
+ <span class="normal"><a href="#__codelineno-0-327">327</a></span>
9776
9735
  <span class="normal"><a href="#__codelineno-0-328">328</a></span>
9777
9736
  <span class="normal"><a href="#__codelineno-0-329">329</a></span>
9778
9737
  <span class="normal"><a href="#__codelineno-0-330">330</a></span>
9779
9738
  <span class="normal"><a href="#__codelineno-0-331">331</a></span>
9780
- <span class="normal"><a href="#__codelineno-0-332">332</a></span>
9781
- <span class="normal"><a href="#__codelineno-0-333">333</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="k">def</span> <span class="nf">buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9782
- <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9783
- <a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the detail page view. Content</span>
9784
- <a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
9785
- <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> automatically handled.</span>
9786
- <a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="sd"> &quot;&quot;&quot;</span>
9787
- <a id="__codelineno-0-333" name="__codelineno-0-333"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9739
+ <span class="normal"><a href="#__codelineno-0-332">332</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-326" name="__codelineno-0-326"></a><span class="k">def</span> <span class="nf">buttons</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9740
+ <a id="__codelineno-0-327" name="__codelineno-0-327"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9741
+ <a id="__codelineno-0-328" name="__codelineno-0-328"></a><span class="sd"> Buttons that will be rendered and added to the existing list of buttons on the detail page view. Content</span>
9742
+ <a id="__codelineno-0-329" name="__codelineno-0-329"></a><span class="sd"> should be returned as an HTML string. Note that content does not need to be marked as safe because this is</span>
9743
+ <a id="__codelineno-0-330" name="__codelineno-0-330"></a><span class="sd"> automatically handled.</span>
9744
+ <a id="__codelineno-0-331" name="__codelineno-0-331"></a><span class="sd"> &quot;&quot;&quot;</span>
9745
+ <a id="__codelineno-0-332" name="__codelineno-0-332"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9788
9746
  </code></pre></div></td></tr></table></div>
9789
9747
  </details>
9790
9748
  </div>
@@ -9821,7 +9779,8 @@ Tabs will be ordered by their position in the list.</p>
9821
9779
 
9822
9780
  <details class="quote">
9823
9781
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9824
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-335">335</a></span>
9782
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-334">334</a></span>
9783
+ <span class="normal"><a href="#__codelineno-0-335">335</a></span>
9825
9784
  <span class="normal"><a href="#__codelineno-0-336">336</a></span>
9826
9785
  <span class="normal"><a href="#__codelineno-0-337">337</a></span>
9827
9786
  <span class="normal"><a href="#__codelineno-0-338">338</a></span>
@@ -9839,27 +9798,26 @@ Tabs will be ordered by their position in the list.</p>
9839
9798
  <span class="normal"><a href="#__codelineno-0-350">350</a></span>
9840
9799
  <span class="normal"><a href="#__codelineno-0-351">351</a></span>
9841
9800
  <span class="normal"><a href="#__codelineno-0-352">352</a></span>
9842
- <span class="normal"><a href="#__codelineno-0-353">353</a></span>
9843
- <span class="normal"><a href="#__codelineno-0-354">354</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9844
- <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9845
- <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9846
- <a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9847
- <a id="__codelineno-0-339" name="__codelineno-0-339"></a>
9848
- <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9849
- <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> ```</span>
9850
- <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> [</span>
9851
- <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> {</span>
9852
- <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9853
- <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9854
- <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> },</span>
9855
- <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> {</span>
9856
- <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9857
- <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9858
- <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> },</span>
9859
- <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ]</span>
9860
- <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> ```</span>
9861
- <a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="sd"> &quot;&quot;&quot;</span>
9862
- <a id="__codelineno-0-354" name="__codelineno-0-354"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9801
+ <span class="normal"><a href="#__codelineno-0-353">353</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-334" name="__codelineno-0-334"></a><span class="k">def</span> <span class="nf">detail_tabs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9802
+ <a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9803
+ <a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> Tabs that will be rendered and added to the existing list of tabs on the detail page view.</span>
9804
+ <a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> Tabs will be ordered by their position in the list.</span>
9805
+ <a id="__codelineno-0-338" name="__codelineno-0-338"></a>
9806
+ <a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> Content should be returned as a list of dicts in the following format:</span>
9807
+ <a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> ```</span>
9808
+ <a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> [</span>
9809
+ <a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> {</span>
9810
+ <a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9811
+ <a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9812
+ <a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> },</span>
9813
+ <a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> {</span>
9814
+ <a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> &quot;title&quot;: &quot;&lt;title&gt;&quot;,</span>
9815
+ <a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> &quot;url&quot;: &quot;&lt;url for the tab link&gt;&quot;,</span>
9816
+ <a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> },</span>
9817
+ <a id="__codelineno-0-350" name="__codelineno-0-350"></a><span class="sd"> ]</span>
9818
+ <a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> ```</span>
9819
+ <a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> &quot;&quot;&quot;</span>
9820
+ <a id="__codelineno-0-353" name="__codelineno-0-353"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9863
9821
  </code></pre></div></td></tr></table></div>
9864
9822
  </details>
9865
9823
  </div>
@@ -9884,17 +9842,17 @@ HTML string. Note that content does not need to be marked as safe because this i
9884
9842
 
9885
9843
  <details class="quote">
9886
9844
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9887
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-320">320</a></span>
9845
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-319">319</a></span>
9846
+ <span class="normal"><a href="#__codelineno-0-320">320</a></span>
9888
9847
  <span class="normal"><a href="#__codelineno-0-321">321</a></span>
9889
9848
  <span class="normal"><a href="#__codelineno-0-322">322</a></span>
9890
9849
  <span class="normal"><a href="#__codelineno-0-323">323</a></span>
9891
- <span class="normal"><a href="#__codelineno-0-324">324</a></span>
9892
- <span class="normal"><a href="#__codelineno-0-325">325</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="k">def</span> <span class="nf">full_width_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9893
- <a id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9894
- <a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> Content that will be rendered within the full width of the detail page view. Content should be returned as an</span>
9895
- <a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9896
- <a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="sd"> &quot;&quot;&quot;</span>
9897
- <a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9850
+ <span class="normal"><a href="#__codelineno-0-324">324</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-319" name="__codelineno-0-319"></a><span class="k">def</span> <span class="nf">full_width_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9851
+ <a id="__codelineno-0-320" name="__codelineno-0-320"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9852
+ <a id="__codelineno-0-321" name="__codelineno-0-321"></a><span class="sd"> Content that will be rendered within the full width of the detail page view. Content should be returned as an</span>
9853
+ <a id="__codelineno-0-322" name="__codelineno-0-322"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9854
+ <a id="__codelineno-0-323" name="__codelineno-0-323"></a><span class="sd"> &quot;&quot;&quot;</span>
9855
+ <a id="__codelineno-0-324" name="__codelineno-0-324"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9898
9856
  </code></pre></div></td></tr></table></div>
9899
9857
  </details>
9900
9858
  </div>
@@ -9919,17 +9877,17 @@ HTML string. Note that content does not need to be marked as safe because this i
9919
9877
 
9920
9878
  <details class="quote">
9921
9879
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9922
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-306">306</a></span>
9880
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-305">305</a></span>
9881
+ <span class="normal"><a href="#__codelineno-0-306">306</a></span>
9923
9882
  <span class="normal"><a href="#__codelineno-0-307">307</a></span>
9924
9883
  <span class="normal"><a href="#__codelineno-0-308">308</a></span>
9925
9884
  <span class="normal"><a href="#__codelineno-0-309">309</a></span>
9926
- <span class="normal"><a href="#__codelineno-0-310">310</a></span>
9927
- <span class="normal"><a href="#__codelineno-0-311">311</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="k">def</span> <span class="nf">left_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9928
- <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9929
- <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> Content that will be rendered on the left of the detail page view. Content should be returned as an</span>
9930
- <a id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9931
- <a id="__codelineno-0-310" name="__codelineno-0-310"></a><span class="sd"> &quot;&quot;&quot;</span>
9932
- <a id="__codelineno-0-311" name="__codelineno-0-311"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9885
+ <span class="normal"><a href="#__codelineno-0-310">310</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-305" name="__codelineno-0-305"></a><span class="k">def</span> <span class="nf">left_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9886
+ <a id="__codelineno-0-306" name="__codelineno-0-306"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9887
+ <a id="__codelineno-0-307" name="__codelineno-0-307"></a><span class="sd"> Content that will be rendered on the left of the detail page view. Content should be returned as an</span>
9888
+ <a id="__codelineno-0-308" name="__codelineno-0-308"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9889
+ <a id="__codelineno-0-309" name="__codelineno-0-309"></a><span class="sd"> &quot;&quot;&quot;</span>
9890
+ <a id="__codelineno-0-310" name="__codelineno-0-310"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9933
9891
  </code></pre></div></td></tr></table></div>
9934
9892
  </details>
9935
9893
  </div>
@@ -9954,7 +9912,8 @@ context dictionary may be passed as <code>extra_context</code>.</p>
9954
9912
 
9955
9913
  <details class="quote">
9956
9914
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
9957
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-294">294</a></span>
9915
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-293">293</a></span>
9916
+ <span class="normal"><a href="#__codelineno-0-294">294</a></span>
9958
9917
  <span class="normal"><a href="#__codelineno-0-295">295</a></span>
9959
9918
  <span class="normal"><a href="#__codelineno-0-296">296</a></span>
9960
9919
  <span class="normal"><a href="#__codelineno-0-297">297</a></span>
@@ -9963,18 +9922,17 @@ context dictionary may be passed as <code>extra_context</code>.</p>
9963
9922
  <span class="normal"><a href="#__codelineno-0-300">300</a></span>
9964
9923
  <span class="normal"><a href="#__codelineno-0-301">301</a></span>
9965
9924
  <span class="normal"><a href="#__codelineno-0-302">302</a></span>
9966
- <span class="normal"><a href="#__codelineno-0-303">303</a></span>
9967
- <span class="normal"><a href="#__codelineno-0-304">304</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="k">def</span> <span class="nf">render</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">extra_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9968
- <a id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9969
- <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="sd"> Convenience method for rendering the specified Django template using the default context data. An additional</span>
9970
- <a id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="sd"> context dictionary may be passed as `extra_context`.</span>
9971
- <a id="__codelineno-0-298" name="__codelineno-0-298"></a><span class="sd"> &quot;&quot;&quot;</span>
9972
- <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="k">if</span> <span class="n">extra_context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
9973
- <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="n">extra_context</span> <span class="o">=</span> <span class="p">{}</span>
9974
- <a id="__codelineno-0-301" name="__codelineno-0-301"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">extra_context</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
9975
- <a id="__codelineno-0-302" name="__codelineno-0-302"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;extra_context must be a dictionary&quot;</span><span class="p">)</span>
9976
- <a id="__codelineno-0-303" name="__codelineno-0-303"></a>
9977
- <a id="__codelineno-0-304" name="__codelineno-0-304"></a> <span class="k">return</span> <span class="n">get_template</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span><span class="o">.</span><span class="n">render</span><span class="p">({</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">context</span><span class="p">,</span> <span class="o">**</span><span class="n">extra_context</span><span class="p">})</span>
9925
+ <span class="normal"><a href="#__codelineno-0-303">303</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-293" name="__codelineno-0-293"></a><span class="k">def</span> <span class="nf">render</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">extra_context</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
9926
+ <a id="__codelineno-0-294" name="__codelineno-0-294"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9927
+ <a id="__codelineno-0-295" name="__codelineno-0-295"></a><span class="sd"> Convenience method for rendering the specified Django template using the default context data. An additional</span>
9928
+ <a id="__codelineno-0-296" name="__codelineno-0-296"></a><span class="sd"> context dictionary may be passed as `extra_context`.</span>
9929
+ <a id="__codelineno-0-297" name="__codelineno-0-297"></a><span class="sd"> &quot;&quot;&quot;</span>
9930
+ <a id="__codelineno-0-298" name="__codelineno-0-298"></a> <span class="k">if</span> <span class="n">extra_context</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
9931
+ <a id="__codelineno-0-299" name="__codelineno-0-299"></a> <span class="n">extra_context</span> <span class="o">=</span> <span class="p">{}</span>
9932
+ <a id="__codelineno-0-300" name="__codelineno-0-300"></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">extra_context</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
9933
+ <a id="__codelineno-0-301" name="__codelineno-0-301"></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">&quot;extra_context must be a dictionary&quot;</span><span class="p">)</span>
9934
+ <a id="__codelineno-0-302" name="__codelineno-0-302"></a>
9935
+ <a id="__codelineno-0-303" name="__codelineno-0-303"></a> <span class="k">return</span> <span class="n">get_template</span><span class="p">(</span><span class="n">template_name</span><span class="p">)</span><span class="o">.</span><span class="n">render</span><span class="p">({</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">context</span><span class="p">,</span> <span class="o">**</span><span class="n">extra_context</span><span class="p">})</span>
9978
9936
  </code></pre></div></td></tr></table></div>
9979
9937
  </details>
9980
9938
  </div>
@@ -9999,17 +9957,17 @@ HTML string. Note that content does not need to be marked as safe because this i
9999
9957
 
10000
9958
  <details class="quote">
10001
9959
  <summary>Source code in <code>nautobot/extras/plugins/__init__.py</code></summary>
10002
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-313">313</a></span>
9960
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-312">312</a></span>
9961
+ <span class="normal"><a href="#__codelineno-0-313">313</a></span>
10003
9962
  <span class="normal"><a href="#__codelineno-0-314">314</a></span>
10004
9963
  <span class="normal"><a href="#__codelineno-0-315">315</a></span>
10005
9964
  <span class="normal"><a href="#__codelineno-0-316">316</a></span>
10006
- <span class="normal"><a href="#__codelineno-0-317">317</a></span>
10007
- <span class="normal"><a href="#__codelineno-0-318">318</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="k">def</span> <span class="nf">right_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
10008
- <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
10009
- <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> Content that will be rendered on the right of the detail page view. Content should be returned as an</span>
10010
- <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
10011
- <a id="__codelineno-0-317" name="__codelineno-0-317"></a><span class="sd"> &quot;&quot;&quot;</span>
10012
- <a id="__codelineno-0-318" name="__codelineno-0-318"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
9965
+ <span class="normal"><a href="#__codelineno-0-317">317</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-312" name="__codelineno-0-312"></a><span class="k">def</span> <span class="nf">right_page</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
9966
+ <a id="__codelineno-0-313" name="__codelineno-0-313"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
9967
+ <a id="__codelineno-0-314" name="__codelineno-0-314"></a><span class="sd"> Content that will be rendered on the right of the detail page view. Content should be returned as an</span>
9968
+ <a id="__codelineno-0-315" name="__codelineno-0-315"></a><span class="sd"> HTML string. Note that content does not need to be marked as safe because this is automatically handled.</span>
9969
+ <a id="__codelineno-0-316" name="__codelineno-0-316"></a><span class="sd"> &quot;&quot;&quot;</span>
9970
+ <a id="__codelineno-0-317" name="__codelineno-0-317"></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
10013
9971
  </code></pre></div></td></tr></table></div>
10014
9972
  </details>
10015
9973
  </div>