nautobot 2.1.7__py3-none-any.whl → 2.1.9__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (338) hide show
  1. nautobot/apps/api.py +1 -2
  2. nautobot/apps/utils.py +4 -0
  3. nautobot/apps/views.py +2 -0
  4. nautobot/circuits/api/urls.py +1 -2
  5. nautobot/circuits/api/views.py +0 -12
  6. nautobot/circuits/tests/integration/test_relationships.py +0 -4
  7. nautobot/core/api/routers.py +25 -3
  8. nautobot/core/api/utils.py +4 -0
  9. nautobot/core/api/views.py +21 -15
  10. nautobot/core/celery/schedulers.py +13 -0
  11. nautobot/core/choices.py +0 -21
  12. nautobot/core/models/__init__.py +1 -1
  13. nautobot/core/models/tree_queries.py +29 -7
  14. nautobot/core/releases.py +1 -1
  15. nautobot/core/settings.py +9 -0
  16. nautobot/core/settings_funcs.py +0 -18
  17. nautobot/core/signals.py +5 -5
  18. nautobot/core/tasks.py +7 -3
  19. nautobot/core/templates/admin/base.html +23 -94
  20. nautobot/core/templates/generic/object_list.html +2 -0
  21. nautobot/core/templates/graphene/graphiql.html +18 -47
  22. nautobot/core/templates/inc/footer.html +5 -5
  23. nautobot/core/templates/inc/nav_menu.html +0 -7
  24. nautobot/core/templates/nautobot_config.py.j2 +6 -0
  25. nautobot/core/templates/rest_framework/api.html +12 -5
  26. nautobot/core/testing/mixins.py +13 -5
  27. nautobot/core/tests/integration/test_plugin_navbar.py +7 -21
  28. nautobot/core/tests/integration/test_view_authentication.py +67 -0
  29. nautobot/core/tests/runner.py +25 -2
  30. nautobot/core/tests/test_graphql.py +2 -14
  31. nautobot/core/tests/test_models.py +3 -3
  32. nautobot/core/tests/test_navigations.py +67 -10
  33. nautobot/core/tests/test_releases.py +9 -3
  34. nautobot/core/tests/test_views.py +23 -16
  35. nautobot/core/utils/lookup.py +124 -0
  36. nautobot/core/views/__init__.py +3 -7
  37. nautobot/core/views/generic.py +9 -0
  38. nautobot/dcim/api/urls.py +1 -2
  39. nautobot/dcim/api/views.py +1 -12
  40. nautobot/dcim/choices.py +56 -0
  41. nautobot/dcim/models/racks.py +1 -3
  42. nautobot/dcim/navigation.py +1 -1
  43. nautobot/dcim/templates/dcim/device/lldp_neighbors.html +67 -43
  44. nautobot/dcim/tests/test_api.py +3 -0
  45. nautobot/dcim/tests/test_filters.py +0 -28
  46. nautobot/dcim/views.py +5 -2
  47. nautobot/extras/api/urls.py +1 -2
  48. nautobot/extras/api/views.py +0 -10
  49. nautobot/extras/choices.py +14 -0
  50. nautobot/extras/models/customfields.py +93 -34
  51. nautobot/extras/models/groups.py +1 -1
  52. nautobot/extras/models/relationships.py +32 -19
  53. nautobot/extras/navigation.py +3 -2
  54. nautobot/extras/plugins/__init__.py +8 -0
  55. nautobot/extras/plugins/views.py +6 -9
  56. nautobot/extras/querysets.py +1 -1
  57. nautobot/extras/signals.py +12 -6
  58. nautobot/extras/templates/extras/customfield.html +22 -14
  59. nautobot/extras/templatetags/job_buttons.py +7 -0
  60. nautobot/extras/templatetags/plugins.py +5 -1
  61. nautobot/extras/tests/test_customfields.py +323 -287
  62. nautobot/extras/tests/test_dynamicgroups.py +1 -1
  63. nautobot/extras/tests/test_jobs.py +2 -2
  64. nautobot/extras/tests/test_plugins.py +41 -0
  65. nautobot/extras/tests/test_relationships.py +31 -14
  66. nautobot/extras/tests/test_views.py +124 -1
  67. nautobot/extras/utils.py +7 -3
  68. nautobot/extras/views.py +10 -10
  69. nautobot/ipam/api/urls.py +1 -2
  70. nautobot/ipam/api/views.py +6 -13
  71. nautobot/ipam/tables.py +0 -1
  72. nautobot/ipam/tests/test_graphql.py +2 -3
  73. nautobot/ipam/views.py +12 -10
  74. nautobot/project-static/css/base.css +1 -0
  75. nautobot/project-static/docs/404.html +30 -2
  76. nautobot/project-static/docs/apps/index.html +30 -2
  77. nautobot/project-static/docs/apps/nautobot-apps.html +30 -2
  78. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +30 -2
  79. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +30 -2
  80. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +410 -410
  81. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +30 -2
  82. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +386 -358
  83. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +30 -2
  84. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +30 -2
  85. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +30 -2
  86. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +30 -2
  87. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +45 -17
  88. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +30 -2
  89. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +30 -2
  90. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +30 -2
  91. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +759 -602
  92. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +30 -2
  93. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +30 -2
  94. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +30 -2
  95. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +528 -467
  96. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +205 -109
  97. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +30 -2
  98. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +1265 -785
  99. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +1827 -1746
  100. nautobot/project-static/docs/development/apps/api/configuration-view.html +30 -2
  101. nautobot/project-static/docs/development/apps/api/database-backend-config.html +30 -2
  102. nautobot/project-static/docs/development/apps/api/models/django-admin.html +30 -2
  103. nautobot/project-static/docs/development/apps/api/models/global-search.html +30 -2
  104. nautobot/project-static/docs/development/apps/api/models/graphql.html +30 -2
  105. nautobot/project-static/docs/development/apps/api/models/index.html +30 -2
  106. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +31 -3
  107. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +30 -2
  108. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +30 -2
  109. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +30 -2
  110. nautobot/project-static/docs/development/apps/api/platform-features/index.html +30 -2
  111. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +30 -2
  112. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +30 -2
  113. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +30 -2
  114. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +30 -2
  115. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +30 -2
  116. nautobot/project-static/docs/development/apps/api/prometheus.html +30 -2
  117. nautobot/project-static/docs/development/apps/api/setup.html +30 -2
  118. nautobot/project-static/docs/development/apps/api/testing.html +33 -5
  119. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +30 -2
  120. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +30 -2
  121. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +30 -2
  122. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +33 -5
  123. nautobot/project-static/docs/development/apps/api/ui-extensions/object-detail-views.html +13 -5559
  124. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +5594 -0
  125. nautobot/project-static/docs/development/apps/api/ui-extensions/tabs.html +3 -3
  126. nautobot/project-static/docs/development/apps/api/views/base-template.html +30 -2
  127. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +44 -11
  128. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +47 -14
  129. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +30 -2
  130. nautobot/project-static/docs/development/apps/api/views/index.html +30 -2
  131. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +30 -2
  132. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +30 -2
  133. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +30 -2
  134. nautobot/project-static/docs/development/apps/api/views/notes.html +30 -2
  135. nautobot/project-static/docs/development/apps/api/views/rest-api.html +30 -2
  136. nautobot/project-static/docs/development/apps/api/views/urls.html +30 -2
  137. nautobot/project-static/docs/development/apps/index.html +30 -2
  138. nautobot/project-static/docs/development/apps/migration/code-updates.html +30 -2
  139. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +30 -2
  140. nautobot/project-static/docs/development/apps/migration/from-v1.html +30 -2
  141. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +30 -2
  142. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +30 -2
  143. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +30 -2
  144. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +30 -2
  145. nautobot/project-static/docs/development/apps/porting-from-netbox.html +30 -2
  146. nautobot/project-static/docs/development/core/application-registry.html +30 -2
  147. nautobot/project-static/docs/development/core/best-practices.html +33 -5
  148. nautobot/project-static/docs/development/core/bootstrap-ui.html +30 -2
  149. nautobot/project-static/docs/development/core/caching.html +5481 -0
  150. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +30 -2
  151. nautobot/project-static/docs/development/core/extending-models.html +33 -5
  152. nautobot/project-static/docs/development/core/generic-views.html +30 -2
  153. nautobot/project-static/docs/development/core/getting-started.html +49 -12
  154. nautobot/project-static/docs/development/core/homepage.html +30 -2
  155. nautobot/project-static/docs/development/core/index.html +30 -2
  156. nautobot/project-static/docs/development/core/model-features.html +30 -2
  157. nautobot/project-static/docs/development/core/natural-keys.html +30 -2
  158. nautobot/project-static/docs/development/core/navigation-menu.html +30 -2
  159. nautobot/project-static/docs/development/core/release-checklist.html +30 -2
  160. nautobot/project-static/docs/development/core/role-internals.html +30 -2
  161. nautobot/project-static/docs/development/core/style-guide.html +30 -2
  162. nautobot/project-static/docs/development/core/templates.html +30 -2
  163. nautobot/project-static/docs/development/core/testing.html +30 -2
  164. nautobot/project-static/docs/development/core/user-preferences.html +30 -2
  165. nautobot/project-static/docs/development/index.html +30 -2
  166. nautobot/project-static/docs/development/jobs/index.html +30 -2
  167. nautobot/project-static/docs/development/jobs/migration/from-v1.html +30 -2
  168. nautobot/project-static/docs/index.html +30 -2
  169. nautobot/project-static/docs/objects.inv +0 -0
  170. nautobot/project-static/docs/release-notes/index.html +30 -2
  171. nautobot/project-static/docs/release-notes/version-1.0.html +30 -2
  172. nautobot/project-static/docs/release-notes/version-1.1.html +30 -2
  173. nautobot/project-static/docs/release-notes/version-1.2.html +30 -2
  174. nautobot/project-static/docs/release-notes/version-1.3.html +30 -2
  175. nautobot/project-static/docs/release-notes/version-1.4.html +31 -3
  176. nautobot/project-static/docs/release-notes/version-1.5.html +30 -2
  177. nautobot/project-static/docs/release-notes/version-1.6.html +573 -134
  178. nautobot/project-static/docs/release-notes/version-2.0.html +30 -2
  179. nautobot/project-static/docs/release-notes/version-2.1.html +539 -170
  180. nautobot/project-static/docs/search/search_index.json +1 -1
  181. nautobot/project-static/docs/sitemap.xml +250 -240
  182. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  183. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +30 -2
  184. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +30 -2
  185. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +30 -2
  186. nautobot/project-static/docs/user-guide/administration/configuration/index.html +30 -2
  187. nautobot/project-static/docs/user-guide/administration/configuration/optional-settings.html +49 -2
  188. nautobot/project-static/docs/user-guide/administration/configuration/required-settings.html +30 -2
  189. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +30 -2
  190. nautobot/project-static/docs/user-guide/administration/guides/caching.html +30 -2
  191. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +30 -2
  192. nautobot/project-static/docs/user-guide/administration/guides/healthcheck.html +30 -2
  193. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +30 -2
  194. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +30 -2
  195. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +30 -2
  196. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +30 -2
  197. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +30 -2
  198. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +30 -2
  199. nautobot/project-static/docs/user-guide/administration/installation/docker.html +37 -5
  200. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +30 -2
  201. nautobot/project-static/docs/user-guide/administration/installation/health-checks.html +6019 -0
  202. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +30 -2
  203. nautobot/project-static/docs/user-guide/administration/installation/index.html +30 -2
  204. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +30 -2
  205. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +30 -2
  206. nautobot/project-static/docs/user-guide/administration/installation/selinux-troubleshooting.html +33 -5
  207. nautobot/project-static/docs/user-guide/administration/installation/services.html +30 -2
  208. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +30 -2
  209. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +30 -2
  210. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +30 -2
  211. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +30 -2
  212. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +30 -2
  213. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +30 -2
  214. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +30 -2
  215. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +30 -2
  216. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +30 -2
  217. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +30 -2
  218. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +30 -2
  219. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +30 -2
  220. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +30 -2
  221. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +30 -2
  222. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +30 -2
  223. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +30 -2
  224. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +30 -2
  225. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +30 -2
  226. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +30 -2
  227. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +30 -2
  228. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +30 -2
  229. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +30 -2
  230. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +30 -2
  231. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +30 -2
  232. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +30 -2
  233. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +30 -2
  234. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +30 -2
  235. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +30 -2
  236. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +30 -2
  237. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +30 -2
  238. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +30 -2
  239. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +30 -2
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +30 -2
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +30 -2
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +30 -2
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +30 -2
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +30 -2
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +30 -2
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +30 -2
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +30 -2
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +30 -2
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +30 -2
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +30 -2
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +30 -2
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +30 -2
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +30 -2
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +30 -2
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +30 -2
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +30 -2
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +30 -2
  258. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +30 -2
  259. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +30 -2
  260. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +30 -2
  261. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +30 -2
  262. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +30 -2
  263. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +30 -2
  264. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +30 -2
  265. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +30 -2
  266. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +30 -2
  267. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +30 -2
  268. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +30 -2
  269. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +30 -2
  270. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +30 -2
  271. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +30 -2
  272. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +30 -2
  273. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +30 -2
  274. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +30 -2
  275. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +30 -2
  276. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +30 -2
  277. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +33 -5
  278. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +30 -2
  279. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +30 -2
  280. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +30 -2
  281. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +30 -2
  282. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +30 -2
  283. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +30 -2
  284. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +30 -2
  285. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +30 -2
  286. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +30 -2
  287. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +30 -2
  288. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +30 -2
  289. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +30 -2
  290. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +30 -2
  291. nautobot/project-static/docs/user-guide/index.html +30 -2
  292. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +30 -2
  293. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +30 -2
  294. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +111 -15
  295. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +30 -2
  296. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +30 -2
  297. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +30 -2
  298. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +30 -2
  299. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +30 -2
  300. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +30 -2
  301. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +30 -2
  302. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +30 -2
  303. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +30 -2
  304. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +30 -2
  305. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +30 -2
  306. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +30 -2
  307. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +30 -2
  308. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +30 -2
  309. nautobot/project-static/docs/user-guide/platform-functionality/note.html +30 -2
  310. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +30 -2
  311. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +30 -2
  312. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +30 -2
  313. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +30 -2
  314. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +30 -2
  315. nautobot/project-static/docs/user-guide/platform-functionality/role.html +30 -2
  316. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +30 -2
  317. nautobot/project-static/docs/user-guide/platform-functionality/status.html +30 -2
  318. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +30 -2
  319. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +30 -2
  320. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +30 -2
  321. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +30 -2
  322. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +30 -2
  323. nautobot/tenancy/api/urls.py +1 -2
  324. nautobot/tenancy/api/views.py +0 -12
  325. nautobot/tenancy/navigation.py +1 -1
  326. nautobot/tenancy/tests/test_filters.py +0 -168
  327. nautobot/users/api/urls.py +1 -2
  328. nautobot/users/api/views.py +2 -65
  329. nautobot/users/views.py +8 -8
  330. nautobot/virtualization/api/urls.py +1 -2
  331. nautobot/virtualization/api/views.py +0 -12
  332. nautobot/virtualization/tests/test_filters.py +0 -28
  333. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/METADATA +2 -2
  334. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/RECORD +338 -334
  335. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/LICENSE.txt +0 -0
  336. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/NOTICE +0 -0
  337. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/WHEEL +0 -0
  338. {nautobot-2.1.7.dist-info → nautobot-2.1.9.dist-info}/entry_points.txt +0 -0
@@ -550,6 +550,20 @@
550
550
 
551
551
 
552
552
 
553
+ <li class="md-nav__item">
554
+ <a href="../../../user-guide/administration/installation/health-checks.html" class="md-nav__link">
555
+ Health Checks
556
+ </a>
557
+ </li>
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
553
567
  <li class="md-nav__item">
554
568
  <a href="../../../user-guide/administration/installation/selinux-troubleshooting.html" class="md-nav__link">
555
569
  SELinux Troubleshooting
@@ -3888,8 +3902,8 @@
3888
3902
 
3889
3903
 
3890
3904
  <li class="md-nav__item">
3891
- <a href="../../../development/apps/api/ui-extensions/object-detail-views.html" class="md-nav__link">
3892
- Object Detail Views and Tabs
3905
+ <a href="../../../development/apps/api/ui-extensions/object-views.html" class="md-nav__link">
3906
+ Object Detail & List Views
3893
3907
  </a>
3894
3908
  </li>
3895
3909
 
@@ -4699,6 +4713,20 @@
4699
4713
 
4700
4714
 
4701
4715
 
4716
+ <li class="md-nav__item">
4717
+ <a href="../../../development/core/caching.html" class="md-nav__link">
4718
+ Caching
4719
+ </a>
4720
+ </li>
4721
+
4722
+
4723
+
4724
+
4725
+
4726
+
4727
+
4728
+
4729
+
4702
4730
  <li class="md-nav__item">
4703
4731
  <a href="../../../development/core/extending-models.html" class="md-nav__link">
4704
4732
  Extending Models
@@ -5506,7 +5534,28 @@
5506
5534
 
5507
5535
  <details class="quote">
5508
5536
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
5509
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-201">201</a></span>
5537
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-180">180</a></span>
5538
+ <span class="normal"><a href="#__codelineno-0-181">181</a></span>
5539
+ <span class="normal"><a href="#__codelineno-0-182">182</a></span>
5540
+ <span class="normal"><a href="#__codelineno-0-183">183</a></span>
5541
+ <span class="normal"><a href="#__codelineno-0-184">184</a></span>
5542
+ <span class="normal"><a href="#__codelineno-0-185">185</a></span>
5543
+ <span class="normal"><a href="#__codelineno-0-186">186</a></span>
5544
+ <span class="normal"><a href="#__codelineno-0-187">187</a></span>
5545
+ <span class="normal"><a href="#__codelineno-0-188">188</a></span>
5546
+ <span class="normal"><a href="#__codelineno-0-189">189</a></span>
5547
+ <span class="normal"><a href="#__codelineno-0-190">190</a></span>
5548
+ <span class="normal"><a href="#__codelineno-0-191">191</a></span>
5549
+ <span class="normal"><a href="#__codelineno-0-192">192</a></span>
5550
+ <span class="normal"><a href="#__codelineno-0-193">193</a></span>
5551
+ <span class="normal"><a href="#__codelineno-0-194">194</a></span>
5552
+ <span class="normal"><a href="#__codelineno-0-195">195</a></span>
5553
+ <span class="normal"><a href="#__codelineno-0-196">196</a></span>
5554
+ <span class="normal"><a href="#__codelineno-0-197">197</a></span>
5555
+ <span class="normal"><a href="#__codelineno-0-198">198</a></span>
5556
+ <span class="normal"><a href="#__codelineno-0-199">199</a></span>
5557
+ <span class="normal"><a href="#__codelineno-0-200">200</a></span>
5558
+ <span class="normal"><a href="#__codelineno-0-201">201</a></span>
5510
5559
  <span class="normal"><a href="#__codelineno-0-202">202</a></span>
5511
5560
  <span class="normal"><a href="#__codelineno-0-203">203</a></span>
5512
5561
  <span class="normal"><a href="#__codelineno-0-204">204</a></span>
@@ -5520,63 +5569,42 @@
5520
5569
  <span class="normal"><a href="#__codelineno-0-212">212</a></span>
5521
5570
  <span class="normal"><a href="#__codelineno-0-213">213</a></span>
5522
5571
  <span class="normal"><a href="#__codelineno-0-214">214</a></span>
5523
- <span class="normal"><a href="#__codelineno-0-215">215</a></span>
5524
- <span class="normal"><a href="#__codelineno-0-216">216</a></span>
5525
- <span class="normal"><a href="#__codelineno-0-217">217</a></span>
5526
- <span class="normal"><a href="#__codelineno-0-218">218</a></span>
5527
- <span class="normal"><a href="#__codelineno-0-219">219</a></span>
5528
- <span class="normal"><a href="#__codelineno-0-220">220</a></span>
5529
- <span class="normal"><a href="#__codelineno-0-221">221</a></span>
5530
- <span class="normal"><a href="#__codelineno-0-222">222</a></span>
5531
- <span class="normal"><a href="#__codelineno-0-223">223</a></span>
5532
- <span class="normal"><a href="#__codelineno-0-224">224</a></span>
5533
- <span class="normal"><a href="#__codelineno-0-225">225</a></span>
5534
- <span class="normal"><a href="#__codelineno-0-226">226</a></span>
5535
- <span class="normal"><a href="#__codelineno-0-227">227</a></span>
5536
- <span class="normal"><a href="#__codelineno-0-228">228</a></span>
5537
- <span class="normal"><a href="#__codelineno-0-229">229</a></span>
5538
- <span class="normal"><a href="#__codelineno-0-230">230</a></span>
5539
- <span class="normal"><a href="#__codelineno-0-231">231</a></span>
5540
- <span class="normal"><a href="#__codelineno-0-232">232</a></span>
5541
- <span class="normal"><a href="#__codelineno-0-233">233</a></span>
5542
- <span class="normal"><a href="#__codelineno-0-234">234</a></span>
5543
- <span class="normal"><a href="#__codelineno-0-235">235</a></span>
5544
- <span class="normal"><a href="#__codelineno-0-236">236</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-201" name="__codelineno-0-201"></a><span class="k">class</span> <span class="nc">ButtonActionColorChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
5545
- <a id="__codelineno-0-202" name="__codelineno-0-202"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5546
- <a id="__codelineno-0-203" name="__codelineno-0-203"></a><span class="sd"> Map standard button actions to Bootstrap color classes.</span>
5547
- <a id="__codelineno-0-204" name="__codelineno-0-204"></a><span class="sd"> &quot;&quot;&quot;</span>
5548
- <a id="__codelineno-0-205" name="__codelineno-0-205"></a>
5549
- <a id="__codelineno-0-206" name="__codelineno-0-206"></a> <span class="n">ADD</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5550
- <a id="__codelineno-0-207" name="__codelineno-0-207"></a> <span class="n">CANCEL</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5551
- <a id="__codelineno-0-208" name="__codelineno-0-208"></a> <span class="n">CLONE</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5552
- <a id="__codelineno-0-209" name="__codelineno-0-209"></a> <span class="n">CONFIGURE</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5553
- <a id="__codelineno-0-210" name="__codelineno-0-210"></a> <span class="n">CONNECT</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5554
- <a id="__codelineno-0-211" name="__codelineno-0-211"></a> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5555
- <a id="__codelineno-0-212" name="__codelineno-0-212"></a> <span class="n">DELETE</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
5556
- <a id="__codelineno-0-213" name="__codelineno-0-213"></a> <span class="n">DISCONNECT</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5557
- <a id="__codelineno-0-214" name="__codelineno-0-214"></a> <span class="n">EDIT</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
5558
- <a id="__codelineno-0-215" name="__codelineno-0-215"></a> <span class="n">EXPORT</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5559
- <a id="__codelineno-0-216" name="__codelineno-0-216"></a> <span class="n">IMPORT</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5560
- <a id="__codelineno-0-217" name="__codelineno-0-217"></a> <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5561
- <a id="__codelineno-0-218" name="__codelineno-0-218"></a> <span class="n">SUBMIT</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5562
- <a id="__codelineno-0-219" name="__codelineno-0-219"></a> <span class="n">SWAP</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5563
- <a id="__codelineno-0-220" name="__codelineno-0-220"></a>
5564
- <a id="__codelineno-0-221" name="__codelineno-0-221"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
5565
- <a id="__codelineno-0-222" name="__codelineno-0-222"></a> <span class="p">(</span><span class="n">ADD</span><span class="p">,</span> <span class="s2">&quot;Add&quot;</span><span class="p">),</span>
5566
- <a id="__codelineno-0-223" name="__codelineno-0-223"></a> <span class="p">(</span><span class="n">CANCEL</span><span class="p">,</span> <span class="s2">&quot;Cancel&quot;</span><span class="p">),</span>
5567
- <a id="__codelineno-0-224" name="__codelineno-0-224"></a> <span class="p">(</span><span class="n">CLONE</span><span class="p">,</span> <span class="s2">&quot;Clone&quot;</span><span class="p">),</span>
5568
- <a id="__codelineno-0-225" name="__codelineno-0-225"></a> <span class="p">(</span><span class="n">CONFIGURE</span><span class="p">,</span> <span class="s2">&quot;Configure&quot;</span><span class="p">),</span>
5569
- <a id="__codelineno-0-226" name="__codelineno-0-226"></a> <span class="p">(</span><span class="n">CONNECT</span><span class="p">,</span> <span class="s2">&quot;Connect&quot;</span><span class="p">),</span>
5570
- <a id="__codelineno-0-227" name="__codelineno-0-227"></a> <span class="p">(</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="s2">&quot;Default&quot;</span><span class="p">),</span>
5571
- <a id="__codelineno-0-228" name="__codelineno-0-228"></a> <span class="p">(</span><span class="n">DELETE</span><span class="p">,</span> <span class="s2">&quot;Delete&quot;</span><span class="p">),</span>
5572
- <a id="__codelineno-0-229" name="__codelineno-0-229"></a> <span class="p">(</span><span class="n">DISCONNECT</span><span class="p">,</span> <span class="s2">&quot;Disconnect&quot;</span><span class="p">),</span>
5573
- <a id="__codelineno-0-230" name="__codelineno-0-230"></a> <span class="p">(</span><span class="n">EDIT</span><span class="p">,</span> <span class="s2">&quot;Edit&quot;</span><span class="p">),</span>
5574
- <a id="__codelineno-0-231" name="__codelineno-0-231"></a> <span class="p">(</span><span class="n">EXPORT</span><span class="p">,</span> <span class="s2">&quot;Export&quot;</span><span class="p">),</span>
5575
- <a id="__codelineno-0-232" name="__codelineno-0-232"></a> <span class="p">(</span><span class="n">IMPORT</span><span class="p">,</span> <span class="s2">&quot;Import&quot;</span><span class="p">),</span>
5576
- <a id="__codelineno-0-233" name="__codelineno-0-233"></a> <span class="p">(</span><span class="n">INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
5577
- <a id="__codelineno-0-234" name="__codelineno-0-234"></a> <span class="p">(</span><span class="n">SUBMIT</span><span class="p">,</span> <span class="s2">&quot;Submit&quot;</span><span class="p">),</span>
5578
- <a id="__codelineno-0-235" name="__codelineno-0-235"></a> <span class="p">(</span><span class="n">SWAP</span><span class="p">,</span> <span class="s2">&quot;Swap&quot;</span><span class="p">),</span>
5579
- <a id="__codelineno-0-236" name="__codelineno-0-236"></a> <span class="p">)</span>
5572
+ <span class="normal"><a href="#__codelineno-0-215">215</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="k">class</span> <span class="nc">ButtonActionColorChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
5573
+ <a id="__codelineno-0-181" name="__codelineno-0-181"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5574
+ <a id="__codelineno-0-182" name="__codelineno-0-182"></a><span class="sd"> Map standard button actions to Bootstrap color classes.</span>
5575
+ <a id="__codelineno-0-183" name="__codelineno-0-183"></a><span class="sd"> &quot;&quot;&quot;</span>
5576
+ <a id="__codelineno-0-184" name="__codelineno-0-184"></a>
5577
+ <a id="__codelineno-0-185" name="__codelineno-0-185"></a> <span class="n">ADD</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5578
+ <a id="__codelineno-0-186" name="__codelineno-0-186"></a> <span class="n">CANCEL</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5579
+ <a id="__codelineno-0-187" name="__codelineno-0-187"></a> <span class="n">CLONE</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5580
+ <a id="__codelineno-0-188" name="__codelineno-0-188"></a> <span class="n">CONFIGURE</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5581
+ <a id="__codelineno-0-189" name="__codelineno-0-189"></a> <span class="n">CONNECT</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5582
+ <a id="__codelineno-0-190" name="__codelineno-0-190"></a> <span class="n">DEFAULT</span> <span class="o">=</span> <span class="s2">&quot;default&quot;</span>
5583
+ <a id="__codelineno-0-191" name="__codelineno-0-191"></a> <span class="n">DELETE</span> <span class="o">=</span> <span class="s2">&quot;danger&quot;</span>
5584
+ <a id="__codelineno-0-192" name="__codelineno-0-192"></a> <span class="n">DISCONNECT</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5585
+ <a id="__codelineno-0-193" name="__codelineno-0-193"></a> <span class="n">EDIT</span> <span class="o">=</span> <span class="s2">&quot;warning&quot;</span>
5586
+ <a id="__codelineno-0-194" name="__codelineno-0-194"></a> <span class="n">EXPORT</span> <span class="o">=</span> <span class="s2">&quot;success&quot;</span>
5587
+ <a id="__codelineno-0-195" name="__codelineno-0-195"></a> <span class="n">IMPORT</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5588
+ <a id="__codelineno-0-196" name="__codelineno-0-196"></a> <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;info&quot;</span>
5589
+ <a id="__codelineno-0-197" name="__codelineno-0-197"></a> <span class="n">SUBMIT</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5590
+ <a id="__codelineno-0-198" name="__codelineno-0-198"></a> <span class="n">SWAP</span> <span class="o">=</span> <span class="s2">&quot;primary&quot;</span>
5591
+ <a id="__codelineno-0-199" name="__codelineno-0-199"></a>
5592
+ <a id="__codelineno-0-200" name="__codelineno-0-200"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
5593
+ <a id="__codelineno-0-201" name="__codelineno-0-201"></a> <span class="p">(</span><span class="n">ADD</span><span class="p">,</span> <span class="s2">&quot;Add&quot;</span><span class="p">),</span>
5594
+ <a id="__codelineno-0-202" name="__codelineno-0-202"></a> <span class="p">(</span><span class="n">CANCEL</span><span class="p">,</span> <span class="s2">&quot;Cancel&quot;</span><span class="p">),</span>
5595
+ <a id="__codelineno-0-203" name="__codelineno-0-203"></a> <span class="p">(</span><span class="n">CLONE</span><span class="p">,</span> <span class="s2">&quot;Clone&quot;</span><span class="p">),</span>
5596
+ <a id="__codelineno-0-204" name="__codelineno-0-204"></a> <span class="p">(</span><span class="n">CONFIGURE</span><span class="p">,</span> <span class="s2">&quot;Configure&quot;</span><span class="p">),</span>
5597
+ <a id="__codelineno-0-205" name="__codelineno-0-205"></a> <span class="p">(</span><span class="n">CONNECT</span><span class="p">,</span> <span class="s2">&quot;Connect&quot;</span><span class="p">),</span>
5598
+ <a id="__codelineno-0-206" name="__codelineno-0-206"></a> <span class="p">(</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="s2">&quot;Default&quot;</span><span class="p">),</span>
5599
+ <a id="__codelineno-0-207" name="__codelineno-0-207"></a> <span class="p">(</span><span class="n">DELETE</span><span class="p">,</span> <span class="s2">&quot;Delete&quot;</span><span class="p">),</span>
5600
+ <a id="__codelineno-0-208" name="__codelineno-0-208"></a> <span class="p">(</span><span class="n">DISCONNECT</span><span class="p">,</span> <span class="s2">&quot;Disconnect&quot;</span><span class="p">),</span>
5601
+ <a id="__codelineno-0-209" name="__codelineno-0-209"></a> <span class="p">(</span><span class="n">EDIT</span><span class="p">,</span> <span class="s2">&quot;Edit&quot;</span><span class="p">),</span>
5602
+ <a id="__codelineno-0-210" name="__codelineno-0-210"></a> <span class="p">(</span><span class="n">EXPORT</span><span class="p">,</span> <span class="s2">&quot;Export&quot;</span><span class="p">),</span>
5603
+ <a id="__codelineno-0-211" name="__codelineno-0-211"></a> <span class="p">(</span><span class="n">IMPORT</span><span class="p">,</span> <span class="s2">&quot;Import&quot;</span><span class="p">),</span>
5604
+ <a id="__codelineno-0-212" name="__codelineno-0-212"></a> <span class="p">(</span><span class="n">INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
5605
+ <a id="__codelineno-0-213" name="__codelineno-0-213"></a> <span class="p">(</span><span class="n">SUBMIT</span><span class="p">,</span> <span class="s2">&quot;Submit&quot;</span><span class="p">),</span>
5606
+ <a id="__codelineno-0-214" name="__codelineno-0-214"></a> <span class="p">(</span><span class="n">SWAP</span><span class="p">,</span> <span class="s2">&quot;Swap&quot;</span><span class="p">),</span>
5607
+ <a id="__codelineno-0-215" name="__codelineno-0-215"></a> <span class="p">)</span>
5580
5608
  </code></pre></div></td></tr></table></div>
5581
5609
  </details>
5582
5610
 
@@ -5620,7 +5648,28 @@
5620
5648
 
5621
5649
  <details class="quote">
5622
5650
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
5623
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-239">239</a></span>
5651
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-218">218</a></span>
5652
+ <span class="normal"><a href="#__codelineno-0-219">219</a></span>
5653
+ <span class="normal"><a href="#__codelineno-0-220">220</a></span>
5654
+ <span class="normal"><a href="#__codelineno-0-221">221</a></span>
5655
+ <span class="normal"><a href="#__codelineno-0-222">222</a></span>
5656
+ <span class="normal"><a href="#__codelineno-0-223">223</a></span>
5657
+ <span class="normal"><a href="#__codelineno-0-224">224</a></span>
5658
+ <span class="normal"><a href="#__codelineno-0-225">225</a></span>
5659
+ <span class="normal"><a href="#__codelineno-0-226">226</a></span>
5660
+ <span class="normal"><a href="#__codelineno-0-227">227</a></span>
5661
+ <span class="normal"><a href="#__codelineno-0-228">228</a></span>
5662
+ <span class="normal"><a href="#__codelineno-0-229">229</a></span>
5663
+ <span class="normal"><a href="#__codelineno-0-230">230</a></span>
5664
+ <span class="normal"><a href="#__codelineno-0-231">231</a></span>
5665
+ <span class="normal"><a href="#__codelineno-0-232">232</a></span>
5666
+ <span class="normal"><a href="#__codelineno-0-233">233</a></span>
5667
+ <span class="normal"><a href="#__codelineno-0-234">234</a></span>
5668
+ <span class="normal"><a href="#__codelineno-0-235">235</a></span>
5669
+ <span class="normal"><a href="#__codelineno-0-236">236</a></span>
5670
+ <span class="normal"><a href="#__codelineno-0-237">237</a></span>
5671
+ <span class="normal"><a href="#__codelineno-0-238">238</a></span>
5672
+ <span class="normal"><a href="#__codelineno-0-239">239</a></span>
5624
5673
  <span class="normal"><a href="#__codelineno-0-240">240</a></span>
5625
5674
  <span class="normal"><a href="#__codelineno-0-241">241</a></span>
5626
5675
  <span class="normal"><a href="#__codelineno-0-242">242</a></span>
@@ -5642,71 +5691,50 @@
5642
5691
  <span class="normal"><a href="#__codelineno-0-258">258</a></span>
5643
5692
  <span class="normal"><a href="#__codelineno-0-259">259</a></span>
5644
5693
  <span class="normal"><a href="#__codelineno-0-260">260</a></span>
5645
- <span class="normal"><a href="#__codelineno-0-261">261</a></span>
5646
- <span class="normal"><a href="#__codelineno-0-262">262</a></span>
5647
- <span class="normal"><a href="#__codelineno-0-263">263</a></span>
5648
- <span class="normal"><a href="#__codelineno-0-264">264</a></span>
5649
- <span class="normal"><a href="#__codelineno-0-265">265</a></span>
5650
- <span class="normal"><a href="#__codelineno-0-266">266</a></span>
5651
- <span class="normal"><a href="#__codelineno-0-267">267</a></span>
5652
- <span class="normal"><a href="#__codelineno-0-268">268</a></span>
5653
- <span class="normal"><a href="#__codelineno-0-269">269</a></span>
5654
- <span class="normal"><a href="#__codelineno-0-270">270</a></span>
5655
- <span class="normal"><a href="#__codelineno-0-271">271</a></span>
5656
- <span class="normal"><a href="#__codelineno-0-272">272</a></span>
5657
- <span class="normal"><a href="#__codelineno-0-273">273</a></span>
5658
- <span class="normal"><a href="#__codelineno-0-274">274</a></span>
5659
- <span class="normal"><a href="#__codelineno-0-275">275</a></span>
5660
- <span class="normal"><a href="#__codelineno-0-276">276</a></span>
5661
- <span class="normal"><a href="#__codelineno-0-277">277</a></span>
5662
- <span class="normal"><a href="#__codelineno-0-278">278</a></span>
5663
- <span class="normal"><a href="#__codelineno-0-279">279</a></span>
5664
- <span class="normal"><a href="#__codelineno-0-280">280</a></span>
5665
- <span class="normal"><a href="#__codelineno-0-281">281</a></span>
5666
- <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-239" name="__codelineno-0-239"></a><span class="k">class</span> <span class="nc">ButtonActionIconChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
5667
- <a id="__codelineno-0-240" name="__codelineno-0-240"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5668
- <a id="__codelineno-0-241" name="__codelineno-0-241"></a><span class="sd"> Map standard button actions to Material Design Icons classes.</span>
5669
- <a id="__codelineno-0-242" name="__codelineno-0-242"></a><span class="sd"> &quot;&quot;&quot;</span>
5670
- <a id="__codelineno-0-243" name="__codelineno-0-243"></a>
5671
- <a id="__codelineno-0-244" name="__codelineno-0-244"></a> <span class="n">ADD</span> <span class="o">=</span> <span class="s2">&quot;mdi-plus-thick&quot;</span>
5672
- <a id="__codelineno-0-245" name="__codelineno-0-245"></a> <span class="n">ALERT</span> <span class="o">=</span> <span class="s2">&quot;mdi-alert&quot;</span>
5673
- <a id="__codelineno-0-246" name="__codelineno-0-246"></a> <span class="n">ARROW_DOWN</span> <span class="o">=</span> <span class="s2">&quot;mdi-arrow-down-bold&quot;</span>
5674
- <a id="__codelineno-0-247" name="__codelineno-0-247"></a> <span class="n">ARROW_UP</span> <span class="o">=</span> <span class="s2">&quot;mdi-arrow-up-bold&quot;</span>
5675
- <a id="__codelineno-0-248" name="__codelineno-0-248"></a> <span class="n">CONFIGURE</span> <span class="o">=</span> <span class="s2">&quot;mdi-cogs&quot;</span>
5676
- <a id="__codelineno-0-249" name="__codelineno-0-249"></a> <span class="n">CONNECT</span> <span class="o">=</span> <span class="s2">&quot;mdi-ethernet-cable&quot;</span>
5677
- <a id="__codelineno-0-250" name="__codelineno-0-250"></a> <span class="n">DELETE</span> <span class="o">=</span> <span class="s2">&quot;mdi-trash-can-outline&quot;</span>
5678
- <a id="__codelineno-0-251" name="__codelineno-0-251"></a> <span class="n">DISCONNECT</span> <span class="o">=</span> <span class="s2">&quot;mdi-ethernet-cable-off&quot;</span>
5679
- <a id="__codelineno-0-252" name="__codelineno-0-252"></a> <span class="n">EDIT</span> <span class="o">=</span> <span class="s2">&quot;mdi-pencil&quot;</span>
5680
- <a id="__codelineno-0-253" name="__codelineno-0-253"></a> <span class="n">EXPORT</span> <span class="o">=</span> <span class="s2">&quot;mdi-database-export-outline&quot;</span>
5681
- <a id="__codelineno-0-254" name="__codelineno-0-254"></a> <span class="n">HELP</span> <span class="o">=</span> <span class="s2">&quot;mdi-help-circle&quot;</span>
5682
- <a id="__codelineno-0-255" name="__codelineno-0-255"></a> <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;mdi-help-circle&quot;</span>
5683
- <a id="__codelineno-0-256" name="__codelineno-0-256"></a> <span class="n">IMPORT</span> <span class="o">=</span> <span class="s2">&quot;mdi-database-import-outline&quot;</span>
5684
- <a id="__codelineno-0-257" name="__codelineno-0-257"></a> <span class="n">LOCK</span> <span class="o">=</span> <span class="s2">&quot;mdi-lock&quot;</span>
5685
- <a id="__codelineno-0-258" name="__codelineno-0-258"></a> <span class="n">MAGNIFY</span> <span class="o">=</span> <span class="s2">&quot;mdi-magnify&quot;</span>
5686
- <a id="__codelineno-0-259" name="__codelineno-0-259"></a> <span class="n">NOTE</span> <span class="o">=</span> <span class="s2">&quot;mdi-note-text&quot;</span>
5687
- <a id="__codelineno-0-260" name="__codelineno-0-260"></a> <span class="n">SWAP</span> <span class="o">=</span> <span class="s2">&quot;mdi-swap-vertical&quot;</span>
5688
- <a id="__codelineno-0-261" name="__codelineno-0-261"></a> <span class="n">TRASH</span> <span class="o">=</span> <span class="s2">&quot;mdi-trash-can-outline&quot;</span>
5689
- <a id="__codelineno-0-262" name="__codelineno-0-262"></a>
5690
- <a id="__codelineno-0-263" name="__codelineno-0-263"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
5691
- <a id="__codelineno-0-264" name="__codelineno-0-264"></a> <span class="p">(</span><span class="n">ADD</span><span class="p">,</span> <span class="s2">&quot;Add&quot;</span><span class="p">),</span>
5692
- <a id="__codelineno-0-265" name="__codelineno-0-265"></a> <span class="p">(</span><span class="n">ALERT</span><span class="p">,</span> <span class="s2">&quot;Alert&quot;</span><span class="p">),</span>
5693
- <a id="__codelineno-0-266" name="__codelineno-0-266"></a> <span class="p">(</span><span class="n">ARROW_DOWN</span><span class="p">,</span> <span class="s2">&quot;Arrow Down&quot;</span><span class="p">),</span>
5694
- <a id="__codelineno-0-267" name="__codelineno-0-267"></a> <span class="p">(</span><span class="n">ARROW_UP</span><span class="p">,</span> <span class="s2">&quot;Arrow Up&quot;</span><span class="p">),</span>
5695
- <a id="__codelineno-0-268" name="__codelineno-0-268"></a> <span class="p">(</span><span class="n">CONFIGURE</span><span class="p">,</span> <span class="s2">&quot;Configure&quot;</span><span class="p">),</span>
5696
- <a id="__codelineno-0-269" name="__codelineno-0-269"></a> <span class="p">(</span><span class="n">CONNECT</span><span class="p">,</span> <span class="s2">&quot;Connect&quot;</span><span class="p">),</span>
5697
- <a id="__codelineno-0-270" name="__codelineno-0-270"></a> <span class="p">(</span><span class="n">DELETE</span><span class="p">,</span> <span class="s2">&quot;Delete&quot;</span><span class="p">),</span>
5698
- <a id="__codelineno-0-271" name="__codelineno-0-271"></a> <span class="p">(</span><span class="n">DISCONNECT</span><span class="p">,</span> <span class="s2">&quot;Disconnect&quot;</span><span class="p">),</span>
5699
- <a id="__codelineno-0-272" name="__codelineno-0-272"></a> <span class="p">(</span><span class="n">EDIT</span><span class="p">,</span> <span class="s2">&quot;Edit&quot;</span><span class="p">),</span>
5700
- <a id="__codelineno-0-273" name="__codelineno-0-273"></a> <span class="p">(</span><span class="n">EXPORT</span><span class="p">,</span> <span class="s2">&quot;Export&quot;</span><span class="p">),</span>
5701
- <a id="__codelineno-0-274" name="__codelineno-0-274"></a> <span class="p">(</span><span class="n">HELP</span><span class="p">,</span> <span class="s2">&quot;Help&quot;</span><span class="p">),</span>
5702
- <a id="__codelineno-0-275" name="__codelineno-0-275"></a> <span class="p">(</span><span class="n">INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
5703
- <a id="__codelineno-0-276" name="__codelineno-0-276"></a> <span class="p">(</span><span class="n">IMPORT</span><span class="p">,</span> <span class="s2">&quot;Import&quot;</span><span class="p">),</span>
5704
- <a id="__codelineno-0-277" name="__codelineno-0-277"></a> <span class="p">(</span><span class="n">LOCK</span><span class="p">,</span> <span class="s2">&quot;Lock&quot;</span><span class="p">),</span>
5705
- <a id="__codelineno-0-278" name="__codelineno-0-278"></a> <span class="p">(</span><span class="n">MAGNIFY</span><span class="p">,</span> <span class="s2">&quot;Magnify&quot;</span><span class="p">),</span>
5706
- <a id="__codelineno-0-279" name="__codelineno-0-279"></a> <span class="p">(</span><span class="n">NOTE</span><span class="p">,</span> <span class="s2">&quot;Note&quot;</span><span class="p">),</span>
5707
- <a id="__codelineno-0-280" name="__codelineno-0-280"></a> <span class="p">(</span><span class="n">SWAP</span><span class="p">,</span> <span class="s2">&quot;Swap&quot;</span><span class="p">),</span>
5708
- <a id="__codelineno-0-281" name="__codelineno-0-281"></a> <span class="p">(</span><span class="n">TRASH</span><span class="p">,</span> <span class="s2">&quot;Trash&quot;</span><span class="p">),</span>
5709
- <a id="__codelineno-0-282" name="__codelineno-0-282"></a> <span class="p">)</span>
5694
+ <span class="normal"><a href="#__codelineno-0-261">261</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="k">class</span> <span class="nc">ButtonActionIconChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
5695
+ <a id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5696
+ <a id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="sd"> Map standard button actions to Material Design Icons classes.</span>
5697
+ <a id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="sd"> &quot;&quot;&quot;</span>
5698
+ <a id="__codelineno-0-222" name="__codelineno-0-222"></a>
5699
+ <a id="__codelineno-0-223" name="__codelineno-0-223"></a> <span class="n">ADD</span> <span class="o">=</span> <span class="s2">&quot;mdi-plus-thick&quot;</span>
5700
+ <a id="__codelineno-0-224" name="__codelineno-0-224"></a> <span class="n">ALERT</span> <span class="o">=</span> <span class="s2">&quot;mdi-alert&quot;</span>
5701
+ <a id="__codelineno-0-225" name="__codelineno-0-225"></a> <span class="n">ARROW_DOWN</span> <span class="o">=</span> <span class="s2">&quot;mdi-arrow-down-bold&quot;</span>
5702
+ <a id="__codelineno-0-226" name="__codelineno-0-226"></a> <span class="n">ARROW_UP</span> <span class="o">=</span> <span class="s2">&quot;mdi-arrow-up-bold&quot;</span>
5703
+ <a id="__codelineno-0-227" name="__codelineno-0-227"></a> <span class="n">CONFIGURE</span> <span class="o">=</span> <span class="s2">&quot;mdi-cogs&quot;</span>
5704
+ <a id="__codelineno-0-228" name="__codelineno-0-228"></a> <span class="n">CONNECT</span> <span class="o">=</span> <span class="s2">&quot;mdi-ethernet-cable&quot;</span>
5705
+ <a id="__codelineno-0-229" name="__codelineno-0-229"></a> <span class="n">DELETE</span> <span class="o">=</span> <span class="s2">&quot;mdi-trash-can-outline&quot;</span>
5706
+ <a id="__codelineno-0-230" name="__codelineno-0-230"></a> <span class="n">DISCONNECT</span> <span class="o">=</span> <span class="s2">&quot;mdi-ethernet-cable-off&quot;</span>
5707
+ <a id="__codelineno-0-231" name="__codelineno-0-231"></a> <span class="n">EDIT</span> <span class="o">=</span> <span class="s2">&quot;mdi-pencil&quot;</span>
5708
+ <a id="__codelineno-0-232" name="__codelineno-0-232"></a> <span class="n">EXPORT</span> <span class="o">=</span> <span class="s2">&quot;mdi-database-export-outline&quot;</span>
5709
+ <a id="__codelineno-0-233" name="__codelineno-0-233"></a> <span class="n">HELP</span> <span class="o">=</span> <span class="s2">&quot;mdi-help-circle&quot;</span>
5710
+ <a id="__codelineno-0-234" name="__codelineno-0-234"></a> <span class="n">INFO</span> <span class="o">=</span> <span class="s2">&quot;mdi-help-circle&quot;</span>
5711
+ <a id="__codelineno-0-235" name="__codelineno-0-235"></a> <span class="n">IMPORT</span> <span class="o">=</span> <span class="s2">&quot;mdi-database-import-outline&quot;</span>
5712
+ <a id="__codelineno-0-236" name="__codelineno-0-236"></a> <span class="n">LOCK</span> <span class="o">=</span> <span class="s2">&quot;mdi-lock&quot;</span>
5713
+ <a id="__codelineno-0-237" name="__codelineno-0-237"></a> <span class="n">MAGNIFY</span> <span class="o">=</span> <span class="s2">&quot;mdi-magnify&quot;</span>
5714
+ <a id="__codelineno-0-238" name="__codelineno-0-238"></a> <span class="n">NOTE</span> <span class="o">=</span> <span class="s2">&quot;mdi-note-text&quot;</span>
5715
+ <a id="__codelineno-0-239" name="__codelineno-0-239"></a> <span class="n">SWAP</span> <span class="o">=</span> <span class="s2">&quot;mdi-swap-vertical&quot;</span>
5716
+ <a id="__codelineno-0-240" name="__codelineno-0-240"></a> <span class="n">TRASH</span> <span class="o">=</span> <span class="s2">&quot;mdi-trash-can-outline&quot;</span>
5717
+ <a id="__codelineno-0-241" name="__codelineno-0-241"></a>
5718
+ <a id="__codelineno-0-242" name="__codelineno-0-242"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">(</span>
5719
+ <a id="__codelineno-0-243" name="__codelineno-0-243"></a> <span class="p">(</span><span class="n">ADD</span><span class="p">,</span> <span class="s2">&quot;Add&quot;</span><span class="p">),</span>
5720
+ <a id="__codelineno-0-244" name="__codelineno-0-244"></a> <span class="p">(</span><span class="n">ALERT</span><span class="p">,</span> <span class="s2">&quot;Alert&quot;</span><span class="p">),</span>
5721
+ <a id="__codelineno-0-245" name="__codelineno-0-245"></a> <span class="p">(</span><span class="n">ARROW_DOWN</span><span class="p">,</span> <span class="s2">&quot;Arrow Down&quot;</span><span class="p">),</span>
5722
+ <a id="__codelineno-0-246" name="__codelineno-0-246"></a> <span class="p">(</span><span class="n">ARROW_UP</span><span class="p">,</span> <span class="s2">&quot;Arrow Up&quot;</span><span class="p">),</span>
5723
+ <a id="__codelineno-0-247" name="__codelineno-0-247"></a> <span class="p">(</span><span class="n">CONFIGURE</span><span class="p">,</span> <span class="s2">&quot;Configure&quot;</span><span class="p">),</span>
5724
+ <a id="__codelineno-0-248" name="__codelineno-0-248"></a> <span class="p">(</span><span class="n">CONNECT</span><span class="p">,</span> <span class="s2">&quot;Connect&quot;</span><span class="p">),</span>
5725
+ <a id="__codelineno-0-249" name="__codelineno-0-249"></a> <span class="p">(</span><span class="n">DELETE</span><span class="p">,</span> <span class="s2">&quot;Delete&quot;</span><span class="p">),</span>
5726
+ <a id="__codelineno-0-250" name="__codelineno-0-250"></a> <span class="p">(</span><span class="n">DISCONNECT</span><span class="p">,</span> <span class="s2">&quot;Disconnect&quot;</span><span class="p">),</span>
5727
+ <a id="__codelineno-0-251" name="__codelineno-0-251"></a> <span class="p">(</span><span class="n">EDIT</span><span class="p">,</span> <span class="s2">&quot;Edit&quot;</span><span class="p">),</span>
5728
+ <a id="__codelineno-0-252" name="__codelineno-0-252"></a> <span class="p">(</span><span class="n">EXPORT</span><span class="p">,</span> <span class="s2">&quot;Export&quot;</span><span class="p">),</span>
5729
+ <a id="__codelineno-0-253" name="__codelineno-0-253"></a> <span class="p">(</span><span class="n">HELP</span><span class="p">,</span> <span class="s2">&quot;Help&quot;</span><span class="p">),</span>
5730
+ <a id="__codelineno-0-254" name="__codelineno-0-254"></a> <span class="p">(</span><span class="n">INFO</span><span class="p">,</span> <span class="s2">&quot;Info&quot;</span><span class="p">),</span>
5731
+ <a id="__codelineno-0-255" name="__codelineno-0-255"></a> <span class="p">(</span><span class="n">IMPORT</span><span class="p">,</span> <span class="s2">&quot;Import&quot;</span><span class="p">),</span>
5732
+ <a id="__codelineno-0-256" name="__codelineno-0-256"></a> <span class="p">(</span><span class="n">LOCK</span><span class="p">,</span> <span class="s2">&quot;Lock&quot;</span><span class="p">),</span>
5733
+ <a id="__codelineno-0-257" name="__codelineno-0-257"></a> <span class="p">(</span><span class="n">MAGNIFY</span><span class="p">,</span> <span class="s2">&quot;Magnify&quot;</span><span class="p">),</span>
5734
+ <a id="__codelineno-0-258" name="__codelineno-0-258"></a> <span class="p">(</span><span class="n">NOTE</span><span class="p">,</span> <span class="s2">&quot;Note&quot;</span><span class="p">),</span>
5735
+ <a id="__codelineno-0-259" name="__codelineno-0-259"></a> <span class="p">(</span><span class="n">SWAP</span><span class="p">,</span> <span class="s2">&quot;Swap&quot;</span><span class="p">),</span>
5736
+ <a id="__codelineno-0-260" name="__codelineno-0-260"></a> <span class="p">(</span><span class="n">TRASH</span><span class="p">,</span> <span class="s2">&quot;Trash&quot;</span><span class="p">),</span>
5737
+ <a id="__codelineno-0-261" name="__codelineno-0-261"></a> <span class="p">)</span>
5710
5738
  </code></pre></div></td></tr></table></div>
5711
5739
  </details>
5712
5740
 
@@ -5764,7 +5792,28 @@ or optionally as tuples of the form <code>(grouping, ((value, display_str), (val
5764
5792
  </details>
5765
5793
  <details class="quote">
5766
5794
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
5767
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-36">36</a></span>
5795
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-15">15</a></span>
5796
+ <span class="normal"><a href="#__codelineno-0-16">16</a></span>
5797
+ <span class="normal"><a href="#__codelineno-0-17">17</a></span>
5798
+ <span class="normal"><a href="#__codelineno-0-18">18</a></span>
5799
+ <span class="normal"><a href="#__codelineno-0-19">19</a></span>
5800
+ <span class="normal"><a href="#__codelineno-0-20">20</a></span>
5801
+ <span class="normal"><a href="#__codelineno-0-21">21</a></span>
5802
+ <span class="normal"><a href="#__codelineno-0-22">22</a></span>
5803
+ <span class="normal"><a href="#__codelineno-0-23">23</a></span>
5804
+ <span class="normal"><a href="#__codelineno-0-24">24</a></span>
5805
+ <span class="normal"><a href="#__codelineno-0-25">25</a></span>
5806
+ <span class="normal"><a href="#__codelineno-0-26">26</a></span>
5807
+ <span class="normal"><a href="#__codelineno-0-27">27</a></span>
5808
+ <span class="normal"><a href="#__codelineno-0-28">28</a></span>
5809
+ <span class="normal"><a href="#__codelineno-0-29">29</a></span>
5810
+ <span class="normal"><a href="#__codelineno-0-30">30</a></span>
5811
+ <span class="normal"><a href="#__codelineno-0-31">31</a></span>
5812
+ <span class="normal"><a href="#__codelineno-0-32">32</a></span>
5813
+ <span class="normal"><a href="#__codelineno-0-33">33</a></span>
5814
+ <span class="normal"><a href="#__codelineno-0-34">34</a></span>
5815
+ <span class="normal"><a href="#__codelineno-0-35">35</a></span>
5816
+ <span class="normal"><a href="#__codelineno-0-36">36</a></span>
5768
5817
  <span class="normal"><a href="#__codelineno-0-37">37</a></span>
5769
5818
  <span class="normal"><a href="#__codelineno-0-38">38</a></span>
5770
5819
  <span class="normal"><a href="#__codelineno-0-39">39</a></span>
@@ -5776,61 +5825,40 @@ or optionally as tuples of the form <code>(grouping, ((value, display_str), (val
5776
5825
  <span class="normal"><a href="#__codelineno-0-45">45</a></span>
5777
5826
  <span class="normal"><a href="#__codelineno-0-46">46</a></span>
5778
5827
  <span class="normal"><a href="#__codelineno-0-47">47</a></span>
5779
- <span class="normal"><a href="#__codelineno-0-48">48</a></span>
5780
- <span class="normal"><a href="#__codelineno-0-49">49</a></span>
5781
- <span class="normal"><a href="#__codelineno-0-50">50</a></span>
5782
- <span class="normal"><a href="#__codelineno-0-51">51</a></span>
5783
- <span class="normal"><a href="#__codelineno-0-52">52</a></span>
5784
- <span class="normal"><a href="#__codelineno-0-53">53</a></span>
5785
- <span class="normal"><a href="#__codelineno-0-54">54</a></span>
5786
- <span class="normal"><a href="#__codelineno-0-55">55</a></span>
5787
- <span class="normal"><a href="#__codelineno-0-56">56</a></span>
5788
- <span class="normal"><a href="#__codelineno-0-57">57</a></span>
5789
- <span class="normal"><a href="#__codelineno-0-58">58</a></span>
5790
- <span class="normal"><a href="#__codelineno-0-59">59</a></span>
5791
- <span class="normal"><a href="#__codelineno-0-60">60</a></span>
5792
- <span class="normal"><a href="#__codelineno-0-61">61</a></span>
5793
- <span class="normal"><a href="#__codelineno-0-62">62</a></span>
5794
- <span class="normal"><a href="#__codelineno-0-63">63</a></span>
5795
- <span class="normal"><a href="#__codelineno-0-64">64</a></span>
5796
- <span class="normal"><a href="#__codelineno-0-65">65</a></span>
5797
- <span class="normal"><a href="#__codelineno-0-66">66</a></span>
5798
- <span class="normal"><a href="#__codelineno-0-67">67</a></span>
5799
- <span class="normal"><a href="#__codelineno-0-68">68</a></span>
5800
- <span class="normal"><a href="#__codelineno-0-69">69</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-36" name="__codelineno-0-36"></a><span class="k">class</span> <span class="nc">ChoiceSet</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">ChoiceSetMeta</span><span class="p">):</span>
5801
- <a id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5802
- <a id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="sd"> Base class for defining choices for a model and/or menu.</span>
5803
- <a id="__codelineno-0-39" name="__codelineno-0-39"></a>
5804
- <a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="sd"> Subclasses should define a CHOICES constant which consists of a list of tuples of the form `(value, display_str)`,</span>
5805
- <a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="sd"> or optionally as tuples of the form `(grouping, ((value, display_str), (value, display_str), ...))`.</span>
5806
- <a id="__codelineno-0-42" name="__codelineno-0-42"></a>
5807
- <a id="__codelineno-0-43" name="__codelineno-0-43"></a><span class="sd"> Example:</span>
5808
- <a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="sd"> ```python</span>
5809
- <a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="sd"> class GreekCapitalLetterChoices(ChoiceSet):</span>
5810
- <a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="sd"> ALPHA = &quot;A&quot;</span>
5811
- <a id="__codelineno-0-47" name="__codelineno-0-47"></a><span class="sd"> BETA = &quot;B&quot;</span>
5812
- <a id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="sd"> GAMMA = &quot;Γ&quot;</span>
5813
- <a id="__codelineno-0-49" name="__codelineno-0-49"></a>
5814
- <a id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="sd"> CHOICES = (</span>
5815
- <a id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="sd"> (ALPHA, &quot;alpha&quot;),</span>
5816
- <a id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="sd"> (BETA, &quot;beta&quot;),</span>
5817
- <a id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="sd"> (GAMMA, &quot;gamma&quot;),</span>
5818
- <a id="__codelineno-0-54" name="__codelineno-0-54"></a><span class="sd"> )</span>
5819
- <a id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="sd"> ```</span>
5820
- <a id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="sd"> &quot;&quot;&quot;</span>
5821
- <a id="__codelineno-0-57" name="__codelineno-0-57"></a>
5822
- <a id="__codelineno-0-58" name="__codelineno-0-58"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">[]</span>
5823
- <a id="__codelineno-0-59" name="__codelineno-0-59"></a>
5824
- <a id="__codelineno-0-60" name="__codelineno-0-60"></a> <span class="nd">@classmethod</span>
5825
- <a id="__codelineno-0-61" name="__codelineno-0-61"></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5826
- <a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a flat list of all values defined in this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5827
- <a id="__codelineno-0-63" name="__codelineno-0-63"></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">)]</span>
5828
- <a id="__codelineno-0-64" name="__codelineno-0-64"></a>
5829
- <a id="__codelineno-0-65" name="__codelineno-0-65"></a> <span class="nd">@classmethod</span>
5830
- <a id="__codelineno-0-66" name="__codelineno-0-66"></a> <span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5831
- <a id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a dictionary representation of this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5832
- <a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="c1"># Unpack grouped choices before casting as a dict</span>
5833
- <a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span><span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">))</span>
5828
+ <span class="normal"><a href="#__codelineno-0-48">48</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-15" name="__codelineno-0-15"></a><span class="k">class</span> <span class="nc">ChoiceSet</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">ChoiceSetMeta</span><span class="p">):</span>
5829
+ <a id="__codelineno-0-16" name="__codelineno-0-16"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5830
+ <a id="__codelineno-0-17" name="__codelineno-0-17"></a><span class="sd"> Base class for defining choices for a model and/or menu.</span>
5831
+ <a id="__codelineno-0-18" name="__codelineno-0-18"></a>
5832
+ <a id="__codelineno-0-19" name="__codelineno-0-19"></a><span class="sd"> Subclasses should define a CHOICES constant which consists of a list of tuples of the form `(value, display_str)`,</span>
5833
+ <a id="__codelineno-0-20" name="__codelineno-0-20"></a><span class="sd"> or optionally as tuples of the form `(grouping, ((value, display_str), (value, display_str), ...))`.</span>
5834
+ <a id="__codelineno-0-21" name="__codelineno-0-21"></a>
5835
+ <a id="__codelineno-0-22" name="__codelineno-0-22"></a><span class="sd"> Example:</span>
5836
+ <a id="__codelineno-0-23" name="__codelineno-0-23"></a><span class="sd"> ```python</span>
5837
+ <a id="__codelineno-0-24" name="__codelineno-0-24"></a><span class="sd"> class GreekCapitalLetterChoices(ChoiceSet):</span>
5838
+ <a id="__codelineno-0-25" name="__codelineno-0-25"></a><span class="sd"> ALPHA = &quot;A&quot;</span>
5839
+ <a id="__codelineno-0-26" name="__codelineno-0-26"></a><span class="sd"> BETA = &quot;B&quot;</span>
5840
+ <a id="__codelineno-0-27" name="__codelineno-0-27"></a><span class="sd"> GAMMA = &quot;Γ&quot;</span>
5841
+ <a id="__codelineno-0-28" name="__codelineno-0-28"></a>
5842
+ <a id="__codelineno-0-29" name="__codelineno-0-29"></a><span class="sd"> CHOICES = (</span>
5843
+ <a id="__codelineno-0-30" name="__codelineno-0-30"></a><span class="sd"> (ALPHA, &quot;alpha&quot;),</span>
5844
+ <a id="__codelineno-0-31" name="__codelineno-0-31"></a><span class="sd"> (BETA, &quot;beta&quot;),</span>
5845
+ <a id="__codelineno-0-32" name="__codelineno-0-32"></a><span class="sd"> (GAMMA, &quot;gamma&quot;),</span>
5846
+ <a id="__codelineno-0-33" name="__codelineno-0-33"></a><span class="sd"> )</span>
5847
+ <a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="sd"> ```</span>
5848
+ <a id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="sd"> &quot;&quot;&quot;</span>
5849
+ <a id="__codelineno-0-36" name="__codelineno-0-36"></a>
5850
+ <a id="__codelineno-0-37" name="__codelineno-0-37"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="p">[]</span>
5851
+ <a id="__codelineno-0-38" name="__codelineno-0-38"></a>
5852
+ <a id="__codelineno-0-39" name="__codelineno-0-39"></a> <span class="nd">@classmethod</span>
5853
+ <a id="__codelineno-0-40" name="__codelineno-0-40"></a> <span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5854
+ <a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a flat list of all values defined in this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5855
+ <a id="__codelineno-0-42" name="__codelineno-0-42"></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">)]</span>
5856
+ <a id="__codelineno-0-43" name="__codelineno-0-43"></a>
5857
+ <a id="__codelineno-0-44" name="__codelineno-0-44"></a> <span class="nd">@classmethod</span>
5858
+ <a id="__codelineno-0-45" name="__codelineno-0-45"></a> <span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5859
+ <a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a dictionary representation of this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5860
+ <a id="__codelineno-0-47" name="__codelineno-0-47"></a> <span class="c1"># Unpack grouped choices before casting as a dict</span>
5861
+ <a id="__codelineno-0-48" name="__codelineno-0-48"></a> <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span><span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">))</span>
5834
5862
  </code></pre></div></td></tr></table></div>
5835
5863
  </details>
5836
5864
 
@@ -5867,15 +5895,15 @@ or optionally as tuples of the form <code>(grouping, ((value, display_str), (val
5867
5895
 
5868
5896
  <details class="quote">
5869
5897
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
5870
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-65">65</a></span>
5871
- <span class="normal"><a href="#__codelineno-0-66">66</a></span>
5872
- <span class="normal"><a href="#__codelineno-0-67">67</a></span>
5873
- <span class="normal"><a href="#__codelineno-0-68">68</a></span>
5874
- <span class="normal"><a href="#__codelineno-0-69">69</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="nd">@classmethod</span>
5875
- <a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5876
- <a id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a dictionary representation of this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5877
- <a id="__codelineno-0-68" name="__codelineno-0-68"></a> <span class="c1"># Unpack grouped choices before casting as a dict</span>
5878
- <a id="__codelineno-0-69" name="__codelineno-0-69"></a> <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span><span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">))</span>
5898
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-44">44</a></span>
5899
+ <span class="normal"><a href="#__codelineno-0-45">45</a></span>
5900
+ <span class="normal"><a href="#__codelineno-0-46">46</a></span>
5901
+ <span class="normal"><a href="#__codelineno-0-47">47</a></span>
5902
+ <span class="normal"><a href="#__codelineno-0-48">48</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-44" name="__codelineno-0-44"></a><span class="nd">@classmethod</span>
5903
+ <a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="k">def</span> <span class="nf">as_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5904
+ <a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a dictionary representation of this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5905
+ <a id="__codelineno-0-47" name="__codelineno-0-47"></a> <span class="c1"># Unpack grouped choices before casting as a dict</span>
5906
+ <a id="__codelineno-0-48" name="__codelineno-0-48"></a> <span class="k">return</span> <span class="nb">dict</span><span class="p">(</span><span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">))</span>
5879
5907
  </code></pre></div></td></tr></table></div>
5880
5908
  </details>
5881
5909
  </div>
@@ -5903,13 +5931,13 @@ or optionally as tuples of the form <code>(grouping, ((value, display_str), (val
5903
5931
 
5904
5932
  <details class="quote">
5905
5933
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
5906
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-60">60</a></span>
5907
- <span class="normal"><a href="#__codelineno-0-61">61</a></span>
5908
- <span class="normal"><a href="#__codelineno-0-62">62</a></span>
5909
- <span class="normal"><a href="#__codelineno-0-63">63</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="nd">@classmethod</span>
5910
- <a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5911
- <a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a flat list of all values defined in this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5912
- <a id="__codelineno-0-63" name="__codelineno-0-63"></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">)]</span>
5934
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-39">39</a></span>
5935
+ <span class="normal"><a href="#__codelineno-0-40">40</a></span>
5936
+ <span class="normal"><a href="#__codelineno-0-41">41</a></span>
5937
+ <span class="normal"><a href="#__codelineno-0-42">42</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-39" name="__codelineno-0-39"></a><span class="nd">@classmethod</span>
5938
+ <a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
5939
+ <a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get a flat list of all values defined in this ChoiceSet&#39;s `CHOICES`.&quot;&quot;&quot;</span>
5940
+ <a id="__codelineno-0-42" name="__codelineno-0-42"></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">unpack_grouped_choices</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">CHOICES</span><span class="p">)]</span>
5913
5941
  </code></pre></div></td></tr></table></div>
5914
5942
  </details>
5915
5943
  </div>
@@ -5945,21 +5973,7 @@ is equivalent to a Celery task state.</p>
5945
5973
 
5946
5974
  <details class="quote">
5947
5975
  <summary>Source code in <code>nautobot/extras/choices.py</code></summary>
5948
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-176">176</a></span>
5949
- <span class="normal"><a href="#__codelineno-0-177">177</a></span>
5950
- <span class="normal"><a href="#__codelineno-0-178">178</a></span>
5951
- <span class="normal"><a href="#__codelineno-0-179">179</a></span>
5952
- <span class="normal"><a href="#__codelineno-0-180">180</a></span>
5953
- <span class="normal"><a href="#__codelineno-0-181">181</a></span>
5954
- <span class="normal"><a href="#__codelineno-0-182">182</a></span>
5955
- <span class="normal"><a href="#__codelineno-0-183">183</a></span>
5956
- <span class="normal"><a href="#__codelineno-0-184">184</a></span>
5957
- <span class="normal"><a href="#__codelineno-0-185">185</a></span>
5958
- <span class="normal"><a href="#__codelineno-0-186">186</a></span>
5959
- <span class="normal"><a href="#__codelineno-0-187">187</a></span>
5960
- <span class="normal"><a href="#__codelineno-0-188">188</a></span>
5961
- <span class="normal"><a href="#__codelineno-0-189">189</a></span>
5962
- <span class="normal"><a href="#__codelineno-0-190">190</a></span>
5976
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-190">190</a></span>
5963
5977
  <span class="normal"><a href="#__codelineno-0-191">191</a></span>
5964
5978
  <span class="normal"><a href="#__codelineno-0-192">192</a></span>
5965
5979
  <span class="normal"><a href="#__codelineno-0-193">193</a></span>
@@ -5992,54 +6006,68 @@ is equivalent to a Celery task state.</p>
5992
6006
  <span class="normal"><a href="#__codelineno-0-220">220</a></span>
5993
6007
  <span class="normal"><a href="#__codelineno-0-221">221</a></span>
5994
6008
  <span class="normal"><a href="#__codelineno-0-222">222</a></span>
5995
- <span class="normal"><a href="#__codelineno-0-223">223</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-176" name="__codelineno-0-176"></a><span class="k">class</span> <span class="nc">JobResultStatusChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
5996
- <a id="__codelineno-0-177" name="__codelineno-0-177"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
5997
- <a id="__codelineno-0-178" name="__codelineno-0-178"></a><span class="sd"> These status choices are using the same taxonomy as within Celery core. A Nautobot Job status</span>
5998
- <a id="__codelineno-0-179" name="__codelineno-0-179"></a><span class="sd"> is equivalent to a Celery task state.</span>
5999
- <a id="__codelineno-0-180" name="__codelineno-0-180"></a><span class="sd"> &quot;&quot;&quot;</span>
6000
- <a id="__codelineno-0-181" name="__codelineno-0-181"></a>
6001
- <a id="__codelineno-0-182" name="__codelineno-0-182"></a> <span class="n">STATUS_FAILURE</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">FAILURE</span>
6002
- <a id="__codelineno-0-183" name="__codelineno-0-183"></a> <span class="n">STATUS_PENDING</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PENDING</span>
6003
- <a id="__codelineno-0-184" name="__codelineno-0-184"></a> <span class="n">STATUS_RECEIVED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">RECEIVED</span>
6004
- <a id="__codelineno-0-185" name="__codelineno-0-185"></a> <span class="n">STATUS_RETRY</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">RETRY</span>
6005
- <a id="__codelineno-0-186" name="__codelineno-0-186"></a> <span class="n">STATUS_REVOKED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">REVOKED</span>
6006
- <a id="__codelineno-0-187" name="__codelineno-0-187"></a> <span class="n">STATUS_STARTED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">STARTED</span>
6007
- <a id="__codelineno-0-188" name="__codelineno-0-188"></a> <span class="n">STATUS_SUCCESS</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">SUCCESS</span>
6008
- <a id="__codelineno-0-189" name="__codelineno-0-189"></a>
6009
- <a id="__codelineno-0-190" name="__codelineno-0-190"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span><span class="p">,</span> <span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span><span class="p">))</span>
6010
- <a id="__codelineno-0-191" name="__codelineno-0-191"></a>
6011
- <a id="__codelineno-0-192" name="__codelineno-0-192"></a> <span class="c1">#: Set of all possible states.</span>
6012
- <a id="__codelineno-0-193" name="__codelineno-0-193"></a> <span class="n">ALL_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span>
6013
- <a id="__codelineno-0-194" name="__codelineno-0-194"></a> <span class="c1">#: Set of states meaning the task returned an exception.</span>
6014
- <a id="__codelineno-0-195" name="__codelineno-0-195"></a> <span class="n">EXCEPTION_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">EXCEPTION_STATES</span>
6015
- <a id="__codelineno-0-196" name="__codelineno-0-196"></a> <span class="c1">#: State precedence.</span>
6016
- <a id="__codelineno-0-197" name="__codelineno-0-197"></a> <span class="c1">#: None represents the precedence of an unknown state.</span>
6017
- <a id="__codelineno-0-198" name="__codelineno-0-198"></a> <span class="c1">#: Lower index means higher precedence.</span>
6018
- <a id="__codelineno-0-199" name="__codelineno-0-199"></a> <span class="n">PRECEDENCE</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PRECEDENCE</span>
6019
- <a id="__codelineno-0-200" name="__codelineno-0-200"></a> <span class="c1">#: Set of exception states that should propagate exceptions to the user.</span>
6020
- <a id="__codelineno-0-201" name="__codelineno-0-201"></a> <span class="n">PROPAGATE_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PROPAGATE_STATES</span>
6021
- <a id="__codelineno-0-202" name="__codelineno-0-202"></a> <span class="c1">#: Set of states meaning the task result is ready (has been executed).</span>
6022
- <a id="__codelineno-0-203" name="__codelineno-0-203"></a> <span class="n">READY_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">READY_STATES</span>
6023
- <a id="__codelineno-0-204" name="__codelineno-0-204"></a> <span class="c1">#: Set of states meaning the task result is not ready (hasn&#39;t been executed).</span>
6024
- <a id="__codelineno-0-205" name="__codelineno-0-205"></a> <span class="n">UNREADY_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">UNREADY_STATES</span>
6025
- <a id="__codelineno-0-206" name="__codelineno-0-206"></a>
6026
- <a id="__codelineno-0-207" name="__codelineno-0-207"></a> <span class="nd">@staticmethod</span>
6027
- <a id="__codelineno-0-208" name="__codelineno-0-208"></a> <span class="k">def</span> <span class="nf">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">):</span>
6028
- <a id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6029
- <a id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="sd"> Get the precedence for a state. Lower index means higher precedence.</span>
6030
- <a id="__codelineno-0-211" name="__codelineno-0-211"></a>
6031
- <a id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="sd"> Args:</span>
6032
- <a id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="sd"> state (str): One of the status choices.</span>
6033
- <a id="__codelineno-0-214" name="__codelineno-0-214"></a>
6034
- <a id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="sd"> Returns:</span>
6035
- <a id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="sd"> (int): Precedence value.</span>
6036
- <a id="__codelineno-0-217" name="__codelineno-0-217"></a>
6037
- <a id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="sd"> Examples:</span>
6038
- <a id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="sd"> &gt;&gt;&gt; JobResultStatusChoices.precedence(JobResultStatusChoices.STATUS_SUCCESS)</span>
6039
- <a id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="sd"> 0</span>
6040
- <a id="__codelineno-0-221" name="__codelineno-0-221"></a>
6041
- <a id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="sd"> &quot;&quot;&quot;</span>
6042
- <a id="__codelineno-0-223" name="__codelineno-0-223"></a> <span class="k">return</span> <span class="n">states</span><span class="o">.</span><span class="n">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">)</span>
6009
+ <span class="normal"><a href="#__codelineno-0-223">223</a></span>
6010
+ <span class="normal"><a href="#__codelineno-0-224">224</a></span>
6011
+ <span class="normal"><a href="#__codelineno-0-225">225</a></span>
6012
+ <span class="normal"><a href="#__codelineno-0-226">226</a></span>
6013
+ <span class="normal"><a href="#__codelineno-0-227">227</a></span>
6014
+ <span class="normal"><a href="#__codelineno-0-228">228</a></span>
6015
+ <span class="normal"><a href="#__codelineno-0-229">229</a></span>
6016
+ <span class="normal"><a href="#__codelineno-0-230">230</a></span>
6017
+ <span class="normal"><a href="#__codelineno-0-231">231</a></span>
6018
+ <span class="normal"><a href="#__codelineno-0-232">232</a></span>
6019
+ <span class="normal"><a href="#__codelineno-0-233">233</a></span>
6020
+ <span class="normal"><a href="#__codelineno-0-234">234</a></span>
6021
+ <span class="normal"><a href="#__codelineno-0-235">235</a></span>
6022
+ <span class="normal"><a href="#__codelineno-0-236">236</a></span>
6023
+ <span class="normal"><a href="#__codelineno-0-237">237</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-190" name="__codelineno-0-190"></a><span class="k">class</span> <span class="nc">JobResultStatusChoices</span><span class="p">(</span><span class="n">ChoiceSet</span><span class="p">):</span>
6024
+ <a id="__codelineno-0-191" name="__codelineno-0-191"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6025
+ <a id="__codelineno-0-192" name="__codelineno-0-192"></a><span class="sd"> These status choices are using the same taxonomy as within Celery core. A Nautobot Job status</span>
6026
+ <a id="__codelineno-0-193" name="__codelineno-0-193"></a><span class="sd"> is equivalent to a Celery task state.</span>
6027
+ <a id="__codelineno-0-194" name="__codelineno-0-194"></a><span class="sd"> &quot;&quot;&quot;</span>
6028
+ <a id="__codelineno-0-195" name="__codelineno-0-195"></a>
6029
+ <a id="__codelineno-0-196" name="__codelineno-0-196"></a> <span class="n">STATUS_FAILURE</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">FAILURE</span>
6030
+ <a id="__codelineno-0-197" name="__codelineno-0-197"></a> <span class="n">STATUS_PENDING</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PENDING</span>
6031
+ <a id="__codelineno-0-198" name="__codelineno-0-198"></a> <span class="n">STATUS_RECEIVED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">RECEIVED</span>
6032
+ <a id="__codelineno-0-199" name="__codelineno-0-199"></a> <span class="n">STATUS_RETRY</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">RETRY</span>
6033
+ <a id="__codelineno-0-200" name="__codelineno-0-200"></a> <span class="n">STATUS_REVOKED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">REVOKED</span>
6034
+ <a id="__codelineno-0-201" name="__codelineno-0-201"></a> <span class="n">STATUS_STARTED</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">STARTED</span>
6035
+ <a id="__codelineno-0-202" name="__codelineno-0-202"></a> <span class="n">STATUS_SUCCESS</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">SUCCESS</span>
6036
+ <a id="__codelineno-0-203" name="__codelineno-0-203"></a>
6037
+ <a id="__codelineno-0-204" name="__codelineno-0-204"></a> <span class="n">CHOICES</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span><span class="p">,</span> <span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span><span class="p">))</span>
6038
+ <a id="__codelineno-0-205" name="__codelineno-0-205"></a>
6039
+ <a id="__codelineno-0-206" name="__codelineno-0-206"></a> <span class="c1">#: Set of all possible states.</span>
6040
+ <a id="__codelineno-0-207" name="__codelineno-0-207"></a> <span class="n">ALL_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">ALL_STATES</span>
6041
+ <a id="__codelineno-0-208" name="__codelineno-0-208"></a> <span class="c1">#: Set of states meaning the task returned an exception.</span>
6042
+ <a id="__codelineno-0-209" name="__codelineno-0-209"></a> <span class="n">EXCEPTION_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">EXCEPTION_STATES</span>
6043
+ <a id="__codelineno-0-210" name="__codelineno-0-210"></a> <span class="c1">#: State precedence.</span>
6044
+ <a id="__codelineno-0-211" name="__codelineno-0-211"></a> <span class="c1">#: None represents the precedence of an unknown state.</span>
6045
+ <a id="__codelineno-0-212" name="__codelineno-0-212"></a> <span class="c1">#: Lower index means higher precedence.</span>
6046
+ <a id="__codelineno-0-213" name="__codelineno-0-213"></a> <span class="n">PRECEDENCE</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PRECEDENCE</span>
6047
+ <a id="__codelineno-0-214" name="__codelineno-0-214"></a> <span class="c1">#: Set of exception states that should propagate exceptions to the user.</span>
6048
+ <a id="__codelineno-0-215" name="__codelineno-0-215"></a> <span class="n">PROPAGATE_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">PROPAGATE_STATES</span>
6049
+ <a id="__codelineno-0-216" name="__codelineno-0-216"></a> <span class="c1">#: Set of states meaning the task result is ready (has been executed).</span>
6050
+ <a id="__codelineno-0-217" name="__codelineno-0-217"></a> <span class="n">READY_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">READY_STATES</span>
6051
+ <a id="__codelineno-0-218" name="__codelineno-0-218"></a> <span class="c1">#: Set of states meaning the task result is not ready (hasn&#39;t been executed).</span>
6052
+ <a id="__codelineno-0-219" name="__codelineno-0-219"></a> <span class="n">UNREADY_STATES</span> <span class="o">=</span> <span class="n">states</span><span class="o">.</span><span class="n">UNREADY_STATES</span>
6053
+ <a id="__codelineno-0-220" name="__codelineno-0-220"></a>
6054
+ <a id="__codelineno-0-221" name="__codelineno-0-221"></a> <span class="nd">@staticmethod</span>
6055
+ <a id="__codelineno-0-222" name="__codelineno-0-222"></a> <span class="k">def</span> <span class="nf">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">):</span>
6056
+ <a id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6057
+ <a id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="sd"> Get the precedence for a state. Lower index means higher precedence.</span>
6058
+ <a id="__codelineno-0-225" name="__codelineno-0-225"></a>
6059
+ <a id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="sd"> Args:</span>
6060
+ <a id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="sd"> state (str): One of the status choices.</span>
6061
+ <a id="__codelineno-0-228" name="__codelineno-0-228"></a>
6062
+ <a id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="sd"> Returns:</span>
6063
+ <a id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="sd"> (int): Precedence value.</span>
6064
+ <a id="__codelineno-0-231" name="__codelineno-0-231"></a>
6065
+ <a id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="sd"> Examples:</span>
6066
+ <a id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="sd"> &gt;&gt;&gt; JobResultStatusChoices.precedence(JobResultStatusChoices.STATUS_SUCCESS)</span>
6067
+ <a id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="sd"> 0</span>
6068
+ <a id="__codelineno-0-235" name="__codelineno-0-235"></a>
6069
+ <a id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="sd"> &quot;&quot;&quot;</span>
6070
+ <a id="__codelineno-0-237" name="__codelineno-0-237"></a> <span class="k">return</span> <span class="n">states</span><span class="o">.</span><span class="n">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">)</span>
6043
6071
  </code></pre></div></td></tr></table></div>
6044
6072
  </details>
6045
6073
 
@@ -6137,39 +6165,39 @@ is equivalent to a Celery task state.</p>
6137
6165
 
6138
6166
  <details class="quote">
6139
6167
  <summary>Source code in <code>nautobot/extras/choices.py</code></summary>
6140
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-207">207</a></span>
6141
- <span class="normal"><a href="#__codelineno-0-208">208</a></span>
6142
- <span class="normal"><a href="#__codelineno-0-209">209</a></span>
6143
- <span class="normal"><a href="#__codelineno-0-210">210</a></span>
6144
- <span class="normal"><a href="#__codelineno-0-211">211</a></span>
6145
- <span class="normal"><a href="#__codelineno-0-212">212</a></span>
6146
- <span class="normal"><a href="#__codelineno-0-213">213</a></span>
6147
- <span class="normal"><a href="#__codelineno-0-214">214</a></span>
6148
- <span class="normal"><a href="#__codelineno-0-215">215</a></span>
6149
- <span class="normal"><a href="#__codelineno-0-216">216</a></span>
6150
- <span class="normal"><a href="#__codelineno-0-217">217</a></span>
6151
- <span class="normal"><a href="#__codelineno-0-218">218</a></span>
6152
- <span class="normal"><a href="#__codelineno-0-219">219</a></span>
6153
- <span class="normal"><a href="#__codelineno-0-220">220</a></span>
6154
- <span class="normal"><a href="#__codelineno-0-221">221</a></span>
6168
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-221">221</a></span>
6155
6169
  <span class="normal"><a href="#__codelineno-0-222">222</a></span>
6156
- <span class="normal"><a href="#__codelineno-0-223">223</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-207" name="__codelineno-0-207"></a><span class="nd">@staticmethod</span>
6157
- <a id="__codelineno-0-208" name="__codelineno-0-208"></a><span class="k">def</span> <span class="nf">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">):</span>
6158
- <a id="__codelineno-0-209" name="__codelineno-0-209"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6159
- <a id="__codelineno-0-210" name="__codelineno-0-210"></a><span class="sd"> Get the precedence for a state. Lower index means higher precedence.</span>
6160
- <a id="__codelineno-0-211" name="__codelineno-0-211"></a>
6161
- <a id="__codelineno-0-212" name="__codelineno-0-212"></a><span class="sd"> Args:</span>
6162
- <a id="__codelineno-0-213" name="__codelineno-0-213"></a><span class="sd"> state (str): One of the status choices.</span>
6163
- <a id="__codelineno-0-214" name="__codelineno-0-214"></a>
6164
- <a id="__codelineno-0-215" name="__codelineno-0-215"></a><span class="sd"> Returns:</span>
6165
- <a id="__codelineno-0-216" name="__codelineno-0-216"></a><span class="sd"> (int): Precedence value.</span>
6166
- <a id="__codelineno-0-217" name="__codelineno-0-217"></a>
6167
- <a id="__codelineno-0-218" name="__codelineno-0-218"></a><span class="sd"> Examples:</span>
6168
- <a id="__codelineno-0-219" name="__codelineno-0-219"></a><span class="sd"> &gt;&gt;&gt; JobResultStatusChoices.precedence(JobResultStatusChoices.STATUS_SUCCESS)</span>
6169
- <a id="__codelineno-0-220" name="__codelineno-0-220"></a><span class="sd"> 0</span>
6170
- <a id="__codelineno-0-221" name="__codelineno-0-221"></a>
6171
- <a id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="sd"> &quot;&quot;&quot;</span>
6172
- <a id="__codelineno-0-223" name="__codelineno-0-223"></a> <span class="k">return</span> <span class="n">states</span><span class="o">.</span><span class="n">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">)</span>
6170
+ <span class="normal"><a href="#__codelineno-0-223">223</a></span>
6171
+ <span class="normal"><a href="#__codelineno-0-224">224</a></span>
6172
+ <span class="normal"><a href="#__codelineno-0-225">225</a></span>
6173
+ <span class="normal"><a href="#__codelineno-0-226">226</a></span>
6174
+ <span class="normal"><a href="#__codelineno-0-227">227</a></span>
6175
+ <span class="normal"><a href="#__codelineno-0-228">228</a></span>
6176
+ <span class="normal"><a href="#__codelineno-0-229">229</a></span>
6177
+ <span class="normal"><a href="#__codelineno-0-230">230</a></span>
6178
+ <span class="normal"><a href="#__codelineno-0-231">231</a></span>
6179
+ <span class="normal"><a href="#__codelineno-0-232">232</a></span>
6180
+ <span class="normal"><a href="#__codelineno-0-233">233</a></span>
6181
+ <span class="normal"><a href="#__codelineno-0-234">234</a></span>
6182
+ <span class="normal"><a href="#__codelineno-0-235">235</a></span>
6183
+ <span class="normal"><a href="#__codelineno-0-236">236</a></span>
6184
+ <span class="normal"><a href="#__codelineno-0-237">237</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-221" name="__codelineno-0-221"></a><span class="nd">@staticmethod</span>
6185
+ <a id="__codelineno-0-222" name="__codelineno-0-222"></a><span class="k">def</span> <span class="nf">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">):</span>
6186
+ <a id="__codelineno-0-223" name="__codelineno-0-223"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6187
+ <a id="__codelineno-0-224" name="__codelineno-0-224"></a><span class="sd"> Get the precedence for a state. Lower index means higher precedence.</span>
6188
+ <a id="__codelineno-0-225" name="__codelineno-0-225"></a>
6189
+ <a id="__codelineno-0-226" name="__codelineno-0-226"></a><span class="sd"> Args:</span>
6190
+ <a id="__codelineno-0-227" name="__codelineno-0-227"></a><span class="sd"> state (str): One of the status choices.</span>
6191
+ <a id="__codelineno-0-228" name="__codelineno-0-228"></a>
6192
+ <a id="__codelineno-0-229" name="__codelineno-0-229"></a><span class="sd"> Returns:</span>
6193
+ <a id="__codelineno-0-230" name="__codelineno-0-230"></a><span class="sd"> (int): Precedence value.</span>
6194
+ <a id="__codelineno-0-231" name="__codelineno-0-231"></a>
6195
+ <a id="__codelineno-0-232" name="__codelineno-0-232"></a><span class="sd"> Examples:</span>
6196
+ <a id="__codelineno-0-233" name="__codelineno-0-233"></a><span class="sd"> &gt;&gt;&gt; JobResultStatusChoices.precedence(JobResultStatusChoices.STATUS_SUCCESS)</span>
6197
+ <a id="__codelineno-0-234" name="__codelineno-0-234"></a><span class="sd"> 0</span>
6198
+ <a id="__codelineno-0-235" name="__codelineno-0-235"></a>
6199
+ <a id="__codelineno-0-236" name="__codelineno-0-236"></a><span class="sd"> &quot;&quot;&quot;</span>
6200
+ <a id="__codelineno-0-237" name="__codelineno-0-237"></a> <span class="k">return</span> <span class="n">states</span><span class="o">.</span><span class="n">precedence</span><span class="p">(</span><span class="n">state</span><span class="p">)</span>
6173
6201
  </code></pre></div></td></tr></table></div>
6174
6202
  </details>
6175
6203
  </div>
@@ -6219,71 +6247,71 @@ is equivalent to a Celery task state.</p>
6219
6247
 
6220
6248
  <details class="quote">
6221
6249
  <summary>Source code in <code>nautobot/core/choices.py</code></summary>
6222
- <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-72"> 72</a></span>
6223
- <span class="normal"><a href="#__codelineno-0-73"> 73</a></span>
6224
- <span class="normal"><a href="#__codelineno-0-74"> 74</a></span>
6225
- <span class="normal"><a href="#__codelineno-0-75"> 75</a></span>
6226
- <span class="normal"><a href="#__codelineno-0-76"> 76</a></span>
6227
- <span class="normal"><a href="#__codelineno-0-77"> 77</a></span>
6228
- <span class="normal"><a href="#__codelineno-0-78"> 78</a></span>
6229
- <span class="normal"><a href="#__codelineno-0-79"> 79</a></span>
6230
- <span class="normal"><a href="#__codelineno-0-80"> 80</a></span>
6231
- <span class="normal"><a href="#__codelineno-0-81"> 81</a></span>
6232
- <span class="normal"><a href="#__codelineno-0-82"> 82</a></span>
6233
- <span class="normal"><a href="#__codelineno-0-83"> 83</a></span>
6234
- <span class="normal"><a href="#__codelineno-0-84"> 84</a></span>
6235
- <span class="normal"><a href="#__codelineno-0-85"> 85</a></span>
6236
- <span class="normal"><a href="#__codelineno-0-86"> 86</a></span>
6237
- <span class="normal"><a href="#__codelineno-0-87"> 87</a></span>
6238
- <span class="normal"><a href="#__codelineno-0-88"> 88</a></span>
6239
- <span class="normal"><a href="#__codelineno-0-89"> 89</a></span>
6240
- <span class="normal"><a href="#__codelineno-0-90"> 90</a></span>
6241
- <span class="normal"><a href="#__codelineno-0-91"> 91</a></span>
6242
- <span class="normal"><a href="#__codelineno-0-92"> 92</a></span>
6243
- <span class="normal"><a href="#__codelineno-0-93"> 93</a></span>
6244
- <span class="normal"><a href="#__codelineno-0-94"> 94</a></span>
6245
- <span class="normal"><a href="#__codelineno-0-95"> 95</a></span>
6246
- <span class="normal"><a href="#__codelineno-0-96"> 96</a></span>
6247
- <span class="normal"><a href="#__codelineno-0-97"> 97</a></span>
6248
- <span class="normal"><a href="#__codelineno-0-98"> 98</a></span>
6249
- <span class="normal"><a href="#__codelineno-0-99"> 99</a></span>
6250
- <span class="normal"><a href="#__codelineno-0-100">100</a></span>
6251
- <span class="normal"><a href="#__codelineno-0-101">101</a></span>
6252
- <span class="normal"><a href="#__codelineno-0-102">102</a></span>
6253
- <span class="normal"><a href="#__codelineno-0-103">103</a></span>
6254
- <span class="normal"><a href="#__codelineno-0-104">104</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="k">def</span> <span class="nf">unpack_grouped_choices</span><span class="p">(</span><span class="n">choices</span><span class="p">):</span>
6255
- <a id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6256
- <a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="sd"> Unpack a grouped choices hierarchy into a flat list of two-tuples. For example:</span>
6257
- <a id="__codelineno-0-75" name="__codelineno-0-75"></a>
6258
- <a id="__codelineno-0-76" name="__codelineno-0-76"></a><span class="sd"> choices = (</span>
6259
- <a id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="sd"> (&#39;Foo&#39;, (</span>
6260
- <a id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="sd"> (1, &#39;A&#39;),</span>
6261
- <a id="__codelineno-0-79" name="__codelineno-0-79"></a><span class="sd"> (2, &#39;B&#39;)</span>
6262
- <a id="__codelineno-0-80" name="__codelineno-0-80"></a><span class="sd"> )),</span>
6263
- <a id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="sd"> (&#39;Bar&#39;, (</span>
6264
- <a id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="sd"> (3, &#39;C&#39;),</span>
6265
- <a id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="sd"> (4, &#39;D&#39;)</span>
6266
- <a id="__codelineno-0-84" name="__codelineno-0-84"></a><span class="sd"> ))</span>
6267
- <a id="__codelineno-0-85" name="__codelineno-0-85"></a><span class="sd"> )</span>
6268
- <a id="__codelineno-0-86" name="__codelineno-0-86"></a>
6269
- <a id="__codelineno-0-87" name="__codelineno-0-87"></a><span class="sd"> becomes:</span>
6270
- <a id="__codelineno-0-88" name="__codelineno-0-88"></a>
6271
- <a id="__codelineno-0-89" name="__codelineno-0-89"></a><span class="sd"> choices = (</span>
6272
- <a id="__codelineno-0-90" name="__codelineno-0-90"></a><span class="sd"> (1, &#39;A&#39;),</span>
6273
- <a id="__codelineno-0-91" name="__codelineno-0-91"></a><span class="sd"> (2, &#39;B&#39;),</span>
6274
- <a id="__codelineno-0-92" name="__codelineno-0-92"></a><span class="sd"> (3, &#39;C&#39;),</span>
6275
- <a id="__codelineno-0-93" name="__codelineno-0-93"></a><span class="sd"> (4, &#39;D&#39;)</span>
6276
- <a id="__codelineno-0-94" name="__codelineno-0-94"></a><span class="sd"> )</span>
6277
- <a id="__codelineno-0-95" name="__codelineno-0-95"></a><span class="sd"> &quot;&quot;&quot;</span>
6278
- <a id="__codelineno-0-96" name="__codelineno-0-96"></a> <span class="n">unpacked_choices</span> <span class="o">=</span> <span class="p">[]</span>
6279
- <a id="__codelineno-0-97" name="__codelineno-0-97"></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">choices</span><span class="p">:</span>
6280
- <a id="__codelineno-0-98" name="__codelineno-0-98"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</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>
6281
- <a id="__codelineno-0-99" name="__codelineno-0-99"></a> <span class="c1"># Entered an optgroup</span>
6282
- <a id="__codelineno-0-100" name="__codelineno-0-100"></a> <span class="k">for</span> <span class="n">optgroup_key</span><span class="p">,</span> <span class="n">optgroup_value</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
6283
- <a id="__codelineno-0-101" name="__codelineno-0-101"></a> <span class="n">unpacked_choices</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">optgroup_key</span><span class="p">,</span> <span class="n">optgroup_value</span><span class="p">))</span>
6284
- <a id="__codelineno-0-102" name="__codelineno-0-102"></a> <span class="k">else</span><span class="p">:</span>
6285
- <a id="__codelineno-0-103" name="__codelineno-0-103"></a> <span class="n">unpacked_choices</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
6286
- <a id="__codelineno-0-104" name="__codelineno-0-104"></a> <span class="k">return</span> <span class="n">unpacked_choices</span>
6250
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-51">51</a></span>
6251
+ <span class="normal"><a href="#__codelineno-0-52">52</a></span>
6252
+ <span class="normal"><a href="#__codelineno-0-53">53</a></span>
6253
+ <span class="normal"><a href="#__codelineno-0-54">54</a></span>
6254
+ <span class="normal"><a href="#__codelineno-0-55">55</a></span>
6255
+ <span class="normal"><a href="#__codelineno-0-56">56</a></span>
6256
+ <span class="normal"><a href="#__codelineno-0-57">57</a></span>
6257
+ <span class="normal"><a href="#__codelineno-0-58">58</a></span>
6258
+ <span class="normal"><a href="#__codelineno-0-59">59</a></span>
6259
+ <span class="normal"><a href="#__codelineno-0-60">60</a></span>
6260
+ <span class="normal"><a href="#__codelineno-0-61">61</a></span>
6261
+ <span class="normal"><a href="#__codelineno-0-62">62</a></span>
6262
+ <span class="normal"><a href="#__codelineno-0-63">63</a></span>
6263
+ <span class="normal"><a href="#__codelineno-0-64">64</a></span>
6264
+ <span class="normal"><a href="#__codelineno-0-65">65</a></span>
6265
+ <span class="normal"><a href="#__codelineno-0-66">66</a></span>
6266
+ <span class="normal"><a href="#__codelineno-0-67">67</a></span>
6267
+ <span class="normal"><a href="#__codelineno-0-68">68</a></span>
6268
+ <span class="normal"><a href="#__codelineno-0-69">69</a></span>
6269
+ <span class="normal"><a href="#__codelineno-0-70">70</a></span>
6270
+ <span class="normal"><a href="#__codelineno-0-71">71</a></span>
6271
+ <span class="normal"><a href="#__codelineno-0-72">72</a></span>
6272
+ <span class="normal"><a href="#__codelineno-0-73">73</a></span>
6273
+ <span class="normal"><a href="#__codelineno-0-74">74</a></span>
6274
+ <span class="normal"><a href="#__codelineno-0-75">75</a></span>
6275
+ <span class="normal"><a href="#__codelineno-0-76">76</a></span>
6276
+ <span class="normal"><a href="#__codelineno-0-77">77</a></span>
6277
+ <span class="normal"><a href="#__codelineno-0-78">78</a></span>
6278
+ <span class="normal"><a href="#__codelineno-0-79">79</a></span>
6279
+ <span class="normal"><a href="#__codelineno-0-80">80</a></span>
6280
+ <span class="normal"><a href="#__codelineno-0-81">81</a></span>
6281
+ <span class="normal"><a href="#__codelineno-0-82">82</a></span>
6282
+ <span class="normal"><a href="#__codelineno-0-83">83</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="k">def</span> <span class="nf">unpack_grouped_choices</span><span class="p">(</span><span class="n">choices</span><span class="p">):</span>
6283
+ <a id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
6284
+ <a id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="sd"> Unpack a grouped choices hierarchy into a flat list of two-tuples. For example:</span>
6285
+ <a id="__codelineno-0-54" name="__codelineno-0-54"></a>
6286
+ <a id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="sd"> choices = (</span>
6287
+ <a id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="sd"> (&#39;Foo&#39;, (</span>
6288
+ <a id="__codelineno-0-57" name="__codelineno-0-57"></a><span class="sd"> (1, &#39;A&#39;),</span>
6289
+ <a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="sd"> (2, &#39;B&#39;)</span>
6290
+ <a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="sd"> )),</span>
6291
+ <a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="sd"> (&#39;Bar&#39;, (</span>
6292
+ <a id="__codelineno-0-61" name="__codelineno-0-61"></a><span class="sd"> (3, &#39;C&#39;),</span>
6293
+ <a id="__codelineno-0-62" name="__codelineno-0-62"></a><span class="sd"> (4, &#39;D&#39;)</span>
6294
+ <a id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="sd"> ))</span>
6295
+ <a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="sd"> )</span>
6296
+ <a id="__codelineno-0-65" name="__codelineno-0-65"></a>
6297
+ <a id="__codelineno-0-66" name="__codelineno-0-66"></a><span class="sd"> becomes:</span>
6298
+ <a id="__codelineno-0-67" name="__codelineno-0-67"></a>
6299
+ <a id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="sd"> choices = (</span>
6300
+ <a id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="sd"> (1, &#39;A&#39;),</span>
6301
+ <a id="__codelineno-0-70" name="__codelineno-0-70"></a><span class="sd"> (2, &#39;B&#39;),</span>
6302
+ <a id="__codelineno-0-71" name="__codelineno-0-71"></a><span class="sd"> (3, &#39;C&#39;),</span>
6303
+ <a id="__codelineno-0-72" name="__codelineno-0-72"></a><span class="sd"> (4, &#39;D&#39;)</span>
6304
+ <a id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="sd"> )</span>
6305
+ <a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="sd"> &quot;&quot;&quot;</span>
6306
+ <a id="__codelineno-0-75" name="__codelineno-0-75"></a> <span class="n">unpacked_choices</span> <span class="o">=</span> <span class="p">[]</span>
6307
+ <a id="__codelineno-0-76" name="__codelineno-0-76"></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">choices</span><span class="p">:</span>
6308
+ <a id="__codelineno-0-77" name="__codelineno-0-77"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</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>
6309
+ <a id="__codelineno-0-78" name="__codelineno-0-78"></a> <span class="c1"># Entered an optgroup</span>
6310
+ <a id="__codelineno-0-79" name="__codelineno-0-79"></a> <span class="k">for</span> <span class="n">optgroup_key</span><span class="p">,</span> <span class="n">optgroup_value</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
6311
+ <a id="__codelineno-0-80" name="__codelineno-0-80"></a> <span class="n">unpacked_choices</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">optgroup_key</span><span class="p">,</span> <span class="n">optgroup_value</span><span class="p">))</span>
6312
+ <a id="__codelineno-0-81" name="__codelineno-0-81"></a> <span class="k">else</span><span class="p">:</span>
6313
+ <a id="__codelineno-0-82" name="__codelineno-0-82"></a> <span class="n">unpacked_choices</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">))</span>
6314
+ <a id="__codelineno-0-83" name="__codelineno-0-83"></a> <span class="k">return</span> <span class="n">unpacked_choices</span>
6287
6315
  </code></pre></div></td></tr></table></div>
6288
6316
  </details>
6289
6317
  </div>