nautobot 2.4.8__py3-none-any.whl → 2.4.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 (364) hide show
  1. nautobot/circuits/templates/circuits/circuittype.html +1 -1
  2. nautobot/circuits/templates/circuits/circuittype_retrieve.html +1 -39
  3. nautobot/circuits/views.py +18 -23
  4. nautobot/cloud/templates/cloud/cloudresourcetype_retrieve.html +4 -111
  5. nautobot/cloud/views.py +56 -25
  6. nautobot/core/celery/schedulers.py +1 -0
  7. nautobot/core/filters.py +1 -1
  8. nautobot/core/graphql/schema.py +1 -0
  9. nautobot/core/jobs/__init__.py +14 -3
  10. nautobot/core/tables.py +13 -6
  11. nautobot/core/testing/views.py +27 -2
  12. nautobot/core/tests/test_jobs.py +113 -0
  13. nautobot/core/tests/test_ui.py +53 -1
  14. nautobot/core/tests/test_utils.py +11 -0
  15. nautobot/core/ui/object_detail.py +19 -12
  16. nautobot/core/utils/filtering.py +3 -0
  17. nautobot/core/views/renderers.py +1 -1
  18. nautobot/dcim/forms.py +10 -0
  19. nautobot/dcim/templates/dcim/devicefamily_retrieve.html +1 -43
  20. nautobot/dcim/templates/dcim/deviceredundancygroup_retrieve.html +1 -59
  21. nautobot/dcim/templates/dcim/devicetype.html +2 -217
  22. nautobot/dcim/templates/dcim/devicetype_edit.html +2 -32
  23. nautobot/dcim/templates/dcim/devicetype_retrieve.html +217 -0
  24. nautobot/dcim/templates/dcim/devicetype_update.html +32 -0
  25. nautobot/dcim/templates/dcim/inc/rack_elevation.html +1 -1
  26. nautobot/dcim/templates/dcim/modulebay_retrieve.html +1 -84
  27. nautobot/dcim/templates/dcim/rack_elevation.html +14 -0
  28. nautobot/dcim/templates/dcim/rackreservation_retrieve.html +0 -68
  29. nautobot/dcim/tests/integration/test_fileinputpicker.py +1 -1
  30. nautobot/dcim/urls.py +1 -36
  31. nautobot/dcim/views.py +133 -81
  32. nautobot/extras/api/views.py +4 -6
  33. nautobot/extras/migrations/0024_job_data_migration.py +1 -1
  34. nautobot/extras/models/jobs.py +78 -62
  35. nautobot/extras/tables.py +11 -1
  36. nautobot/extras/templates/extras/computedfield_retrieve.html +1 -55
  37. nautobot/extras/templates/extras/inc/job_tiles.html +1 -1
  38. nautobot/extras/templates/extras/jobresult.html +1 -1
  39. nautobot/extras/templates/extras/metadatatype_retrieve.html +1 -66
  40. nautobot/extras/templates/extras/scheduledjob.html +25 -9
  41. nautobot/extras/tests/test_api.py +1 -1
  42. nautobot/extras/tests/test_views.py +15 -2
  43. nautobot/extras/utils.py +18 -16
  44. nautobot/extras/views.py +65 -26
  45. nautobot/ipam/tables.py +3 -4
  46. nautobot/project-static/docs/404.html +4 -4
  47. nautobot/project-static/docs/apps/index.html +4 -4
  48. nautobot/project-static/docs/apps/nautobot-apps.html +4 -4
  49. nautobot/project-static/docs/assets/javascripts/{bundle.c8b220af.min.js → bundle.13a4f30d.min.js} +4 -4
  50. nautobot/project-static/docs/assets/javascripts/{bundle.c8b220af.min.js.map → bundle.13a4f30d.min.js.map} +2 -2
  51. nautobot/project-static/docs/assets/javascripts/workers/{search.f8cc74c7.min.js → search.d50fe291.min.js} +2 -2
  52. nautobot/project-static/docs/assets/javascripts/workers/{search.f8cc74c7.min.js.map → search.d50fe291.min.js.map} +1 -1
  53. nautobot/project-static/docs/assets/stylesheets/{main.2afb09e1.min.css → main.342714a4.min.css} +1 -1
  54. nautobot/project-static/docs/assets/stylesheets/{main.2afb09e1.min.css.map → main.342714a4.min.css.map} +1 -1
  55. nautobot/project-static/docs/code-reference/nautobot/apps/__init__.html +4 -4
  56. nautobot/project-static/docs/code-reference/nautobot/apps/admin.html +4 -4
  57. nautobot/project-static/docs/code-reference/nautobot/apps/api.html +4 -4
  58. nautobot/project-static/docs/code-reference/nautobot/apps/change_logging.html +4 -4
  59. nautobot/project-static/docs/code-reference/nautobot/apps/choices.html +4 -4
  60. nautobot/project-static/docs/code-reference/nautobot/apps/config.html +4 -4
  61. nautobot/project-static/docs/code-reference/nautobot/apps/constants.html +4 -4
  62. nautobot/project-static/docs/code-reference/nautobot/apps/datasources.html +4 -4
  63. nautobot/project-static/docs/code-reference/nautobot/apps/events.html +4 -4
  64. nautobot/project-static/docs/code-reference/nautobot/apps/exceptions.html +4 -4
  65. nautobot/project-static/docs/code-reference/nautobot/apps/factory.html +4 -4
  66. nautobot/project-static/docs/code-reference/nautobot/apps/filters.html +4 -4
  67. nautobot/project-static/docs/code-reference/nautobot/apps/forms.html +4 -4
  68. nautobot/project-static/docs/code-reference/nautobot/apps/graphql.html +4 -4
  69. nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +4 -4
  70. nautobot/project-static/docs/code-reference/nautobot/apps/models.html +4 -4
  71. nautobot/project-static/docs/code-reference/nautobot/apps/querysets.html +4 -4
  72. nautobot/project-static/docs/code-reference/nautobot/apps/secrets.html +4 -4
  73. nautobot/project-static/docs/code-reference/nautobot/apps/tables.html +4 -4
  74. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +4 -4
  75. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +6 -8
  76. nautobot/project-static/docs/code-reference/nautobot/apps/urls.html +4 -4
  77. nautobot/project-static/docs/code-reference/nautobot/apps/utils.html +36 -6
  78. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +4 -4
  79. nautobot/project-static/docs/development/apps/api/configuration-view.html +4 -4
  80. nautobot/project-static/docs/development/apps/api/database-backend-config.html +4 -4
  81. nautobot/project-static/docs/development/apps/api/models/django-admin.html +4 -4
  82. nautobot/project-static/docs/development/apps/api/models/global-search.html +4 -4
  83. nautobot/project-static/docs/development/apps/api/models/graphql.html +4 -4
  84. nautobot/project-static/docs/development/apps/api/models/index.html +4 -4
  85. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +4 -4
  86. nautobot/project-static/docs/development/apps/api/platform-features/custom-validators.html +4 -4
  87. nautobot/project-static/docs/development/apps/api/platform-features/filter-extensions.html +4 -4
  88. nautobot/project-static/docs/development/apps/api/platform-features/git-repository-content.html +4 -4
  89. nautobot/project-static/docs/development/apps/api/platform-features/index.html +4 -4
  90. nautobot/project-static/docs/development/apps/api/platform-features/jinja2-filters.html +4 -4
  91. nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +4 -4
  92. nautobot/project-static/docs/development/apps/api/platform-features/populating-extensibility-features.html +4 -4
  93. nautobot/project-static/docs/development/apps/api/platform-features/secrets-providers.html +4 -4
  94. nautobot/project-static/docs/development/apps/api/platform-features/table-extensions.html +4 -4
  95. nautobot/project-static/docs/development/apps/api/platform-features/uniquely-identify-objects.html +4 -4
  96. nautobot/project-static/docs/development/apps/api/prometheus.html +4 -4
  97. nautobot/project-static/docs/development/apps/api/setup.html +4 -4
  98. nautobot/project-static/docs/development/apps/api/testing.html +4 -4
  99. nautobot/project-static/docs/development/apps/api/ui-extensions/banners.html +4 -4
  100. nautobot/project-static/docs/development/apps/api/ui-extensions/home-page.html +4 -4
  101. nautobot/project-static/docs/development/apps/api/ui-extensions/index.html +4 -4
  102. nautobot/project-static/docs/development/apps/api/ui-extensions/navigation.html +4 -4
  103. nautobot/project-static/docs/development/apps/api/ui-extensions/object-views.html +4 -4
  104. nautobot/project-static/docs/development/apps/api/views/base-template.html +4 -4
  105. nautobot/project-static/docs/development/apps/api/views/core-view-overrides.html +4 -4
  106. nautobot/project-static/docs/development/apps/api/views/django-generic-views.html +4 -4
  107. nautobot/project-static/docs/development/apps/api/views/help-documentation.html +4 -4
  108. nautobot/project-static/docs/development/apps/api/views/index.html +4 -4
  109. nautobot/project-static/docs/development/apps/api/views/nautobot-generic-views.html +4 -4
  110. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewset.html +4 -4
  111. nautobot/project-static/docs/development/apps/api/views/nautobotuiviewsetrouter.html +4 -4
  112. nautobot/project-static/docs/development/apps/api/views/notes.html +4 -4
  113. nautobot/project-static/docs/development/apps/api/views/rest-api.html +4 -4
  114. nautobot/project-static/docs/development/apps/api/views/urls.html +4 -4
  115. nautobot/project-static/docs/development/apps/index.html +4 -4
  116. nautobot/project-static/docs/development/apps/migration/code-updates.html +4 -4
  117. nautobot/project-static/docs/development/apps/migration/dependency-updates.html +4 -4
  118. nautobot/project-static/docs/development/apps/migration/from-v1.html +4 -4
  119. nautobot/project-static/docs/development/apps/migration/model-updates/dcim.html +4 -4
  120. nautobot/project-static/docs/development/apps/migration/model-updates/extras.html +4 -4
  121. nautobot/project-static/docs/development/apps/migration/model-updates/global.html +4 -4
  122. nautobot/project-static/docs/development/apps/migration/model-updates/ipam.html +4 -4
  123. nautobot/project-static/docs/development/apps/migration/ui-component-framework/best-practices.html +4 -4
  124. nautobot/project-static/docs/development/apps/migration/ui-component-framework/custom-content.html +4 -4
  125. nautobot/project-static/docs/development/apps/migration/ui-component-framework/index.html +4 -4
  126. nautobot/project-static/docs/development/apps/migration/ui-component-framework/migration-steps.html +4 -4
  127. nautobot/project-static/docs/development/apps/porting-from-netbox.html +4 -4
  128. nautobot/project-static/docs/development/core/application-registry.html +4 -4
  129. nautobot/project-static/docs/development/core/best-practices.html +4 -4
  130. nautobot/project-static/docs/development/core/bootstrap-ui.html +4 -4
  131. nautobot/project-static/docs/development/core/caching.html +4 -4
  132. nautobot/project-static/docs/development/core/controllers.html +4 -4
  133. nautobot/project-static/docs/development/core/docker-compose-advanced-use-cases.html +41 -55
  134. nautobot/project-static/docs/development/core/generic-views.html +4 -4
  135. nautobot/project-static/docs/development/core/getting-started.html +4 -4
  136. nautobot/project-static/docs/development/core/homepage.html +4 -4
  137. nautobot/project-static/docs/development/core/index.html +4 -4
  138. nautobot/project-static/docs/development/core/minikube-dev-environment-for-k8s-jobs.html +4 -4
  139. nautobot/project-static/docs/development/core/model-checklist.html +4 -4
  140. nautobot/project-static/docs/development/core/model-features.html +4 -4
  141. nautobot/project-static/docs/development/core/natural-keys.html +4 -4
  142. nautobot/project-static/docs/development/core/navigation-menu.html +4 -4
  143. nautobot/project-static/docs/development/core/release-checklist.html +4 -4
  144. nautobot/project-static/docs/development/core/role-internals.html +4 -4
  145. nautobot/project-static/docs/development/core/settings.html +4 -4
  146. nautobot/project-static/docs/development/core/style-guide.html +4 -4
  147. nautobot/project-static/docs/development/core/templates.html +4 -4
  148. nautobot/project-static/docs/development/core/testing.html +4 -4
  149. nautobot/project-static/docs/development/core/ui-component-framework.html +4 -4
  150. nautobot/project-static/docs/development/core/user-preferences.html +4 -4
  151. nautobot/project-static/docs/development/index.html +4 -4
  152. nautobot/project-static/docs/development/jobs/getting-started.html +4 -4
  153. nautobot/project-static/docs/development/jobs/index.html +4 -4
  154. nautobot/project-static/docs/development/jobs/installation.html +4 -4
  155. nautobot/project-static/docs/development/jobs/job-extensions.html +4 -4
  156. nautobot/project-static/docs/development/jobs/job-logging.html +4 -4
  157. nautobot/project-static/docs/development/jobs/job-patterns.html +4 -4
  158. nautobot/project-static/docs/development/jobs/job-structure.html +4 -4
  159. nautobot/project-static/docs/development/jobs/migration/from-v1.html +4 -4
  160. nautobot/project-static/docs/development/jobs/testing.html +4 -4
  161. nautobot/project-static/docs/index.html +4 -4
  162. nautobot/project-static/docs/overview/application_stack.html +4 -4
  163. nautobot/project-static/docs/overview/design_philosophy.html +4 -4
  164. nautobot/project-static/docs/release-notes/index.html +4 -4
  165. nautobot/project-static/docs/release-notes/version-1.0.html +4 -4
  166. nautobot/project-static/docs/release-notes/version-1.1.html +4 -4
  167. nautobot/project-static/docs/release-notes/version-1.2.html +4 -4
  168. nautobot/project-static/docs/release-notes/version-1.3.html +4 -4
  169. nautobot/project-static/docs/release-notes/version-1.4.html +4 -4
  170. nautobot/project-static/docs/release-notes/version-1.5.html +4 -4
  171. nautobot/project-static/docs/release-notes/version-1.6.html +4 -4
  172. nautobot/project-static/docs/release-notes/version-2.0.html +4 -4
  173. nautobot/project-static/docs/release-notes/version-2.1.html +4 -4
  174. nautobot/project-static/docs/release-notes/version-2.2.html +4 -4
  175. nautobot/project-static/docs/release-notes/version-2.3.html +4 -4
  176. nautobot/project-static/docs/release-notes/version-2.4.html +190 -4
  177. nautobot/project-static/docs/requirements.txt +1 -1
  178. nautobot/project-static/docs/search/search_index.json +1 -1
  179. nautobot/project-static/docs/sitemap.xml +298 -298
  180. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  181. nautobot/project-static/docs/user-guide/administration/configuration/authentication/ldap.html +4 -4
  182. nautobot/project-static/docs/user-guide/administration/configuration/authentication/remote.html +4 -4
  183. nautobot/project-static/docs/user-guide/administration/configuration/authentication/sso.html +4 -4
  184. nautobot/project-static/docs/user-guide/administration/configuration/index.html +4 -4
  185. nautobot/project-static/docs/user-guide/administration/configuration/redis.html +4 -4
  186. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +4 -4
  187. nautobot/project-static/docs/user-guide/administration/configuration/time-zones.html +4 -4
  188. nautobot/project-static/docs/user-guide/administration/guides/celery-queues.html +4 -4
  189. nautobot/project-static/docs/user-guide/administration/guides/docker.html +4 -4
  190. nautobot/project-static/docs/user-guide/administration/guides/health-checks.html +4 -4
  191. nautobot/project-static/docs/user-guide/administration/guides/permissions.html +4 -4
  192. nautobot/project-static/docs/user-guide/administration/guides/prometheus-metrics.html +4 -4
  193. nautobot/project-static/docs/user-guide/administration/guides/replicating-nautobot.html +4 -4
  194. nautobot/project-static/docs/user-guide/administration/guides/request-profiling.html +4 -4
  195. nautobot/project-static/docs/user-guide/administration/guides/s3-django-storage.html +4 -4
  196. nautobot/project-static/docs/user-guide/administration/guides/selinux-troubleshooting.html +4 -4
  197. nautobot/project-static/docs/user-guide/administration/installation/app-install.html +4 -4
  198. nautobot/project-static/docs/user-guide/administration/installation/external-authentication.html +4 -4
  199. nautobot/project-static/docs/user-guide/administration/installation/http-server.html +4 -4
  200. nautobot/project-static/docs/user-guide/administration/installation/index.html +4 -4
  201. nautobot/project-static/docs/user-guide/administration/installation/install_system.html +4 -4
  202. nautobot/project-static/docs/user-guide/administration/installation/nautobot.html +4 -4
  203. nautobot/project-static/docs/user-guide/administration/installation/services.html +4 -4
  204. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-netbox.html +4 -4
  205. nautobot/project-static/docs/user-guide/administration/migration/migrating-from-postgresql.html +4 -4
  206. nautobot/project-static/docs/user-guide/administration/security/index.html +4 -4
  207. nautobot/project-static/docs/user-guide/administration/security/notices.html +4 -4
  208. nautobot/project-static/docs/user-guide/administration/tools/nautobot-server.html +4 -4
  209. nautobot/project-static/docs/user-guide/administration/tools/nautobot-shell.html +4 -4
  210. nautobot/project-static/docs/user-guide/administration/upgrading/database-backup.html +4 -4
  211. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/after-you-upgrade.html +4 -4
  212. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/before-you-upgrade.html +4 -4
  213. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/for-developers.html +4 -4
  214. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/index.html +4 -4
  215. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/ipam/whats-changed.html +4 -4
  216. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/region-and-site-data-migration-guide.html +4 -4
  217. nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +4 -4
  218. nautobot/project-static/docs/user-guide/administration/upgrading/upgrading.html +4 -4
  219. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuit.html +4 -4
  220. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittermination.html +4 -4
  221. nautobot/project-static/docs/user-guide/core-data-model/circuits/circuittype.html +4 -4
  222. nautobot/project-static/docs/user-guide/core-data-model/circuits/provider.html +4 -4
  223. nautobot/project-static/docs/user-guide/core-data-model/circuits/providernetwork.html +4 -4
  224. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloud.html +4 -4
  225. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudaccount.html +4 -4
  226. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetwork.html +4 -4
  227. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudnetworkprefixassignment.html +4 -4
  228. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudresourcetype.html +4 -4
  229. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservice.html +4 -4
  230. nautobot/project-static/docs/user-guide/core-data-model/cloud/cloudservicenetworkassignment.html +4 -4
  231. nautobot/project-static/docs/user-guide/core-data-model/dcim/cable.html +4 -4
  232. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleport.html +4 -4
  233. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleporttemplate.html +4 -4
  234. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverport.html +4 -4
  235. nautobot/project-static/docs/user-guide/core-data-model/dcim/consoleserverporttemplate.html +4 -4
  236. nautobot/project-static/docs/user-guide/core-data-model/dcim/controller.html +4 -4
  237. nautobot/project-static/docs/user-guide/core-data-model/dcim/controllermanageddevicegroup.html +4 -4
  238. nautobot/project-static/docs/user-guide/core-data-model/dcim/device.html +4 -4
  239. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebay.html +4 -4
  240. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicebaytemplate.html +4 -4
  241. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicefamily.html +4 -4
  242. nautobot/project-static/docs/user-guide/core-data-model/dcim/deviceredundancygroup.html +4 -4
  243. nautobot/project-static/docs/user-guide/core-data-model/dcim/devicetype.html +4 -4
  244. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontport.html +4 -4
  245. nautobot/project-static/docs/user-guide/core-data-model/dcim/frontporttemplate.html +4 -4
  246. nautobot/project-static/docs/user-guide/core-data-model/dcim/interface.html +4 -4
  247. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfaceredundancygroup.html +4 -4
  248. nautobot/project-static/docs/user-guide/core-data-model/dcim/interfacetemplate.html +4 -4
  249. nautobot/project-static/docs/user-guide/core-data-model/dcim/inventoryitem.html +4 -4
  250. nautobot/project-static/docs/user-guide/core-data-model/dcim/location.html +4 -4
  251. nautobot/project-static/docs/user-guide/core-data-model/dcim/locationtype.html +4 -4
  252. nautobot/project-static/docs/user-guide/core-data-model/dcim/manufacturer.html +4 -4
  253. nautobot/project-static/docs/user-guide/core-data-model/dcim/module.html +4 -4
  254. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebay.html +4 -4
  255. nautobot/project-static/docs/user-guide/core-data-model/dcim/modulebaytemplate.html +4 -4
  256. nautobot/project-static/docs/user-guide/core-data-model/dcim/moduletype.html +4 -4
  257. nautobot/project-static/docs/user-guide/core-data-model/dcim/platform.html +4 -4
  258. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerfeed.html +4 -4
  259. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlet.html +4 -4
  260. nautobot/project-static/docs/user-guide/core-data-model/dcim/poweroutlettemplate.html +4 -4
  261. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerpanel.html +4 -4
  262. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerport.html +4 -4
  263. nautobot/project-static/docs/user-guide/core-data-model/dcim/powerporttemplate.html +4 -4
  264. nautobot/project-static/docs/user-guide/core-data-model/dcim/rack.html +4 -4
  265. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackgroup.html +4 -4
  266. nautobot/project-static/docs/user-guide/core-data-model/dcim/rackreservation.html +4 -4
  267. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearport.html +4 -4
  268. nautobot/project-static/docs/user-guide/core-data-model/dcim/rearporttemplate.html +4 -4
  269. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareimagefile.html +4 -4
  270. nautobot/project-static/docs/user-guide/core-data-model/dcim/softwareversion.html +4 -4
  271. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualchassis.html +4 -4
  272. nautobot/project-static/docs/user-guide/core-data-model/dcim/virtualdevicecontext.html +4 -4
  273. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontext.html +4 -4
  274. nautobot/project-static/docs/user-guide/core-data-model/extras/configcontextschema.html +4 -4
  275. nautobot/project-static/docs/user-guide/core-data-model/extras/contact.html +4 -4
  276. nautobot/project-static/docs/user-guide/core-data-model/extras/team.html +4 -4
  277. nautobot/project-static/docs/user-guide/core-data-model/ipam/ipaddress.html +4 -4
  278. nautobot/project-static/docs/user-guide/core-data-model/ipam/namespace.html +4 -4
  279. nautobot/project-static/docs/user-guide/core-data-model/ipam/prefix.html +4 -4
  280. nautobot/project-static/docs/user-guide/core-data-model/ipam/rir.html +4 -4
  281. nautobot/project-static/docs/user-guide/core-data-model/ipam/routetarget.html +4 -4
  282. nautobot/project-static/docs/user-guide/core-data-model/ipam/service.html +4 -4
  283. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +4 -4
  284. nautobot/project-static/docs/user-guide/core-data-model/ipam/vlangroup.html +4 -4
  285. nautobot/project-static/docs/user-guide/core-data-model/ipam/vrf.html +4 -4
  286. nautobot/project-static/docs/user-guide/core-data-model/overview/introduction.html +4 -4
  287. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenant.html +4 -4
  288. nautobot/project-static/docs/user-guide/core-data-model/tenancy/tenantgroup.html +4 -4
  289. nautobot/project-static/docs/user-guide/core-data-model/virtualization/cluster.html +4 -4
  290. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustergroup.html +4 -4
  291. nautobot/project-static/docs/user-guide/core-data-model/virtualization/clustertype.html +4 -4
  292. nautobot/project-static/docs/user-guide/core-data-model/virtualization/virtualmachine.html +4 -4
  293. nautobot/project-static/docs/user-guide/core-data-model/virtualization/vminterface.html +4 -4
  294. nautobot/project-static/docs/user-guide/core-data-model/wireless/index.html +4 -4
  295. nautobot/project-static/docs/user-guide/core-data-model/wireless/radioprofile.html +4 -4
  296. nautobot/project-static/docs/user-guide/core-data-model/wireless/supporteddatarate.html +4 -4
  297. nautobot/project-static/docs/user-guide/core-data-model/wireless/wirelessnetwork.html +4 -4
  298. nautobot/project-static/docs/user-guide/feature-guides/contacts-and-teams.html +4 -4
  299. nautobot/project-static/docs/user-guide/feature-guides/custom-fields.html +4 -4
  300. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-devices.html +4 -4
  301. nautobot/project-static/docs/user-guide/feature-guides/getting-started/creating-location-types-and-locations.html +4 -4
  302. nautobot/project-static/docs/user-guide/feature-guides/getting-started/index.html +4 -4
  303. nautobot/project-static/docs/user-guide/feature-guides/getting-started/interfaces.html +4 -4
  304. nautobot/project-static/docs/user-guide/feature-guides/getting-started/ipam.html +4 -4
  305. nautobot/project-static/docs/user-guide/feature-guides/getting-started/platforms.html +4 -4
  306. nautobot/project-static/docs/user-guide/feature-guides/getting-started/search-bar.html +4 -4
  307. nautobot/project-static/docs/user-guide/feature-guides/getting-started/tenants.html +4 -4
  308. nautobot/project-static/docs/user-guide/feature-guides/getting-started/vlans-and-vlan-groups.html +4 -4
  309. nautobot/project-static/docs/user-guide/feature-guides/git-data-source.html +4 -4
  310. nautobot/project-static/docs/user-guide/feature-guides/graphql.html +4 -4
  311. nautobot/project-static/docs/user-guide/feature-guides/ip-address-merge-tool.html +4 -4
  312. nautobot/project-static/docs/user-guide/feature-guides/relationships.html +4 -4
  313. nautobot/project-static/docs/user-guide/feature-guides/software-image-files-and-versions.html +4 -4
  314. nautobot/project-static/docs/user-guide/feature-guides/wireless-networks-and-controllers.html +4 -4
  315. nautobot/project-static/docs/user-guide/index.html +4 -4
  316. nautobot/project-static/docs/user-guide/platform-functionality/change-logging.html +4 -4
  317. nautobot/project-static/docs/user-guide/platform-functionality/computedfield.html +4 -4
  318. nautobot/project-static/docs/user-guide/platform-functionality/customfield.html +4 -4
  319. nautobot/project-static/docs/user-guide/platform-functionality/customlink.html +4 -4
  320. nautobot/project-static/docs/user-guide/platform-functionality/dynamicgroup.html +4 -4
  321. nautobot/project-static/docs/user-guide/platform-functionality/events.html +4 -4
  322. nautobot/project-static/docs/user-guide/platform-functionality/exporttemplate.html +4 -4
  323. nautobot/project-static/docs/user-guide/platform-functionality/externalintegration.html +4 -4
  324. nautobot/project-static/docs/user-guide/platform-functionality/gitrepository.html +4 -4
  325. nautobot/project-static/docs/user-guide/platform-functionality/graphql.html +4 -4
  326. nautobot/project-static/docs/user-guide/platform-functionality/graphqlquery.html +4 -4
  327. nautobot/project-static/docs/user-guide/platform-functionality/imageattachment.html +4 -4
  328. nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +4 -4
  329. nautobot/project-static/docs/user-guide/platform-functionality/jobs/job-scheduling-and-approvals.html +4 -4
  330. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobbutton.html +4 -4
  331. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobhook.html +4 -4
  332. nautobot/project-static/docs/user-guide/platform-functionality/jobs/jobqueue.html +4 -4
  333. nautobot/project-static/docs/user-guide/platform-functionality/jobs/kubernetes-job-support.html +4 -4
  334. nautobot/project-static/docs/user-guide/platform-functionality/jobs/managing-jobs.html +4 -4
  335. nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +4 -4
  336. nautobot/project-static/docs/user-guide/platform-functionality/napalm.html +4 -4
  337. nautobot/project-static/docs/user-guide/platform-functionality/note.html +4 -4
  338. nautobot/project-static/docs/user-guide/platform-functionality/objectmetadata.html +4 -4
  339. nautobot/project-static/docs/user-guide/platform-functionality/relationship.html +4 -4
  340. nautobot/project-static/docs/user-guide/platform-functionality/rendering-jinja-templates.html +4 -4
  341. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/authentication.html +4 -4
  342. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/filtering.html +4 -4
  343. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/overview.html +4 -4
  344. nautobot/project-static/docs/user-guide/platform-functionality/rest-api/ui-related-endpoints.html +4 -4
  345. nautobot/project-static/docs/user-guide/platform-functionality/role.html +4 -4
  346. nautobot/project-static/docs/user-guide/platform-functionality/savedview.html +4 -4
  347. nautobot/project-static/docs/user-guide/platform-functionality/secret.html +4 -4
  348. nautobot/project-static/docs/user-guide/platform-functionality/staticgroupassociation.html +4 -4
  349. nautobot/project-static/docs/user-guide/platform-functionality/status.html +4 -4
  350. nautobot/project-static/docs/user-guide/platform-functionality/tag.html +4 -4
  351. nautobot/project-static/docs/user-guide/platform-functionality/template-filters.html +4 -4
  352. nautobot/project-static/docs/user-guide/platform-functionality/users/objectpermission.html +4 -4
  353. nautobot/project-static/docs/user-guide/platform-functionality/users/token.html +4 -4
  354. nautobot/project-static/docs/user-guide/platform-functionality/webhook.html +4 -4
  355. nautobot/project-static/js/forms.js +0 -14
  356. nautobot/wireless/tables.py +1 -0
  357. nautobot/wireless/templates/wireless/wirelessnetwork_retrieve.html +1 -55
  358. nautobot/wireless/views.py +33 -28
  359. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/METADATA +3 -3
  360. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/RECORD +364 -361
  361. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/LICENSE.txt +0 -0
  362. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/NOTICE +0 -0
  363. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/WHEEL +0 -0
  364. {nautobot-2.4.8.dist-info → nautobot-2.4.9.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,217 @@
1
+ {% extends 'generic/object_retrieve.html' %}
2
+ {% load buttons %}
3
+ {% load helpers %}
4
+ {% load plugins %}
5
+
6
+ {% block extra_breadcrumbs %}
7
+ <li><a href="{% url 'dcim:devicetype_list' %}?manufacturer={{ object.manufacturer.name }}">{{ object.manufacturer }}</a></li>
8
+ {% endblock extra_breadcrumbs %}
9
+
10
+ {% block extra_buttons %}
11
+ {% if perms.dcim.change_devicetype %}
12
+ <div class="btn-group">
13
+ <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" id="device-type-add-components-button">
14
+ <span class="mdi mdi-plus-thick" aria-hidden="true"></span> Add Components <span class="caret"></span>
15
+ </button>
16
+ <ul class="dropdown-menu">
17
+ {% if perms.dcim.add_consoleporttemplate %}
18
+ <li><a href="{% url 'dcim:consoleporttemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=consoleports">Console Ports</a></li>
19
+ {% endif %}
20
+ {% if perms.dcim.add_consoleserverporttemplate %}
21
+ <li><a href="{% url 'dcim:consoleserverporttemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=consoleserverports">Console Server Ports</a></li>
22
+ {% endif %}
23
+ {% if perms.dcim.add_powerporttemplate %}
24
+ <li><a href="{% url 'dcim:powerporttemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=powerports">Power Ports</a></li>
25
+ {% endif %}
26
+ {% if perms.dcim.add_poweroutlettemplate %}
27
+ <li><a href="{% url 'dcim:poweroutlettemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=poweroutlets">Power Outlets</a></li>
28
+ {% endif %}
29
+ {% if perms.dcim.add_interfacetemplate %}
30
+ <li><a href="{% url 'dcim:interfacetemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=interfaces">Interfaces</a></li>
31
+ {% endif %}
32
+ {% if perms.dcim.add_frontporttemplate %}
33
+ <li><a href="{% url 'dcim:frontporttemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=frontports">Front Ports</a></li>
34
+ {% endif %}
35
+ {% if perms.dcim.add_rearporttemplate %}
36
+ <li><a href="{% url 'dcim:rearporttemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=rearports">Rear Ports</a></li>
37
+ {% endif %}
38
+ {% if perms.dcim.add_devicebaytemplate %}
39
+ <li><a href="{% url 'dcim:devicebaytemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=devicebays">Device Bays</a></li>
40
+ {% endif %}
41
+ {% if perms.dcim.add_modulebaytemplate %}
42
+ <li><a href="{% url 'dcim:modulebaytemplate_add' %}?device_type={{ object.pk }}&return_url={{ object.get_absolute_url }}%3Ftab=modulebays">Module Bays</a></li>
43
+ {% endif %}
44
+ </ul>
45
+ </div>
46
+ {% endif %}
47
+ {% endblock extra_buttons %}
48
+
49
+ {% block title %}{{ object.manufacturer }} {{ object.model }}{% endblock title %}
50
+
51
+ {% block extra_nav_tabs %}
52
+ <li role="presentation" {% if request.GET.tab == 'interfaces' %} class="active"{% endif %}>
53
+ <a href="{{ object.get_absolute_url }}#interfaces" onclick="switch_tab(this.href)" aria-controls="interfaces" role="tab" data-toggle="tab">
54
+ Interfaces {% badge interface_table.rows|length %}
55
+ </a>
56
+ </li>
57
+ <li role="presentation" {% if request.GET.tab == 'frontports' %} class="active"{% endif %}>
58
+ <a href="{{ object.get_absolute_url }}#frontports" onclick="switch_tab(this.href)" aria-controls="frontports" role="tab" data-toggle="tab">
59
+ Front Ports {% badge front_port_table.rows|length %}
60
+ </a>
61
+ </li>
62
+ <li role="presentation" {% if request.GET.tab == 'rearports' %} class="active"{% endif %}>
63
+ <a href="{{ object.get_absolute_url }}#rearports" onclick="switch_tab(this.href)" aria-controls="rearports" role="tab" data-toggle="tab">
64
+ Rear Ports {% badge rear_port_table.rows|length %}
65
+ </a>
66
+ </li>
67
+ <li role="presentation" {% if request.GET.tab == 'consoleports' %} class="active"{% endif %}>
68
+ <a href="{{ object.get_absolute_url }}#consoleports" onclick="switch_tab(this.href)" aria-controls="consoleports" role="tab" data-toggle="tab">
69
+ Console Ports {% badge consoleport_table.rows|length %}
70
+ </a>
71
+ </li>
72
+ <li role="presentation" {% if request.GET.tab == 'consoleserverports' %} class="active"{% endif %}>
73
+ <a href="{{ object.get_absolute_url }}#consoleserverports" onclick="switch_tab(this.href)" aria-controls="consoleserverports" role="tab" data-toggle="tab">
74
+ Console Server Ports {% badge consoleserverport_table.rows|length %}
75
+ </a>
76
+ </li>
77
+ <li role="presentation" {% if request.GET.tab == 'powerports' %} class="active"{% endif %}>
78
+ <a href="{{ object.get_absolute_url }}#powerports" onclick="switch_tab(this.href)" aria-controls="powerports" role="tab" data-toggle="tab">
79
+ Power Ports {% badge powerport_table.rows|length %}
80
+ </a>
81
+ </li>
82
+ <li role="presentation" {% if request.GET.tab == 'poweroutlets' %} class="active"{% endif %}>
83
+ <a href="{{ object.get_absolute_url }}#poweroutlets" onclick="switch_tab(this.href)" aria-controls="poweroutlets" role="tab" data-toggle="tab">
84
+ Power Outlets {% badge poweroutlet_table.rows|length %}
85
+ </a>
86
+ </li>
87
+ <li role="presentation"{% if request.GET.tab == 'devicebays' %} class="active"{% endif %}>
88
+ <a href="{{ object.get_absolute_url }}#devicebays" onclick="switch_tab(this.href)" aria-controls="devicebays" role="tab" data-toggle="tab">
89
+ Device Bays {% badge devicebay_table.rows|length %}
90
+ </a>
91
+ </li>
92
+ <li role="presentation"{% if request.GET.tab == 'modulebays' %} class="active"{% endif %}>
93
+ <a href="{{ object.get_absolute_url }}#modulebays" onclick="switch_tab(this.href)" aria-controls="modulebays" role="tab" data-toggle="tab">
94
+ Module Bays {% badge modulebay_table.rows|length %}
95
+ </a>
96
+ </li>
97
+ {% endblock extra_nav_tabs %}
98
+
99
+ {% block content_left_page %}
100
+ <div class="panel panel-default">
101
+ <div class="panel-heading">
102
+ <strong>Chassis</strong>
103
+ </div>
104
+ <table class="table table-hover panel-body attr-table">
105
+ <tr>
106
+ <td>Manufacturer</td>
107
+ <td><a href="{% url 'dcim:devicetype_list' %}?manufacturer={{ object.manufacturer.name }}">{{ object.manufacturer }}</a></td>
108
+ </tr>
109
+ <tr>
110
+ <td>Device Family</td>
111
+ <td>
112
+ {{ object.device_family | hyperlinked_object }}
113
+ </td>
114
+ </tr>
115
+ <tr>
116
+ <td>Model Name</td>
117
+ <td>
118
+ {{ object.model }}<br/>
119
+ </td>
120
+ </tr>
121
+ <tr>
122
+ <td>Part Number</td>
123
+ <td>{{ object.part_number|placeholder }}</td>
124
+ </tr>
125
+ <tr>
126
+ <td>Height (U)</td>
127
+ <td>{{ object.u_height }}</td>
128
+ </tr>
129
+ <tr>
130
+ <td>Full Depth</td>
131
+ <td>{{ object.is_full_depth | render_boolean }}</td>
132
+ </tr>
133
+ <tr>
134
+ <td>Parent/Child</td>
135
+ <td>
136
+ {{ object.get_subdevice_role_display|placeholder }}
137
+ </td>
138
+ </tr>
139
+ <tr>
140
+ <td>Front Image</td>
141
+ <td>
142
+ {% if object.front_image %}
143
+ <a href="{{ object.front_image.url }}">
144
+ <img src="{{ object.front_image.url }}" alt="{{ object.front_image.name }}" class="img-responsive" />
145
+ </a>
146
+ {% else %}
147
+ <span class="text-muted">&mdash;</span>
148
+ {% endif %}
149
+ </td>
150
+ </tr>
151
+ <tr>
152
+ <td>Rear Image</td>
153
+ <td>
154
+ {% if object.rear_image %}
155
+ <a href="{{ object.rear_image.url }}">
156
+ <img src="{{ object.rear_image.url }}" alt="{{ object.rear_image.name }}" class="img-responsive" />
157
+ </a>
158
+ {% else %}
159
+ <span class="text-muted">&mdash;</span>
160
+ {% endif %}
161
+ </td>
162
+ </tr>
163
+ <tr>
164
+ <td>Device Instances</td>
165
+ <td><a href="{% url 'dcim:device_list' %}?device_type={{ object.pk }}">{{ instance_count }}</a></td>
166
+ </tr>
167
+ </table>
168
+ </div>
169
+ {% endblock content_left_page %}
170
+
171
+ {% block content_right_page %}
172
+ <div class="panel panel-default">
173
+ <div class="panel-heading">
174
+ <strong>Comments</strong>
175
+ </div>
176
+ <div class="panel-body rendered-markdown">
177
+ {% if object.comments %}
178
+ {{ object.comments|render_markdown }}
179
+ {% else %}
180
+ <span class="text-muted">None</span>
181
+ {% endif %}
182
+ </div>
183
+ </div>
184
+ {% if object.software_image_files.count %}
185
+ {% include 'panel_table.html' with table=software_image_files_table heading='Software Image Files' %}
186
+ {% endif %}
187
+ {% endblock content_right_page %}
188
+
189
+ {% block extra_tab_content %}
190
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'interfaces' %}active{% else %}fade{% endif %}" id="interfaces">
191
+ {% include 'dcim/inc/devicetype_component_table.html' with table=interface_table title='Interfaces' tab='interfaces' %}
192
+ </div>
193
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'frontports' %}active{% else %}fade{% endif %}" id="frontports">
194
+ {% include 'dcim/inc/devicetype_component_table.html' with table=front_port_table title='Front Ports' tab='frontports' %}
195
+ </div>
196
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'rearports' %}active{% else %}fade{% endif %}" id="rearports">
197
+ {% include 'dcim/inc/devicetype_component_table.html' with table=rear_port_table title='Rear Ports' tab='rearports' %}
198
+ </div>
199
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'consoleports' %}active{% else %}fade{% endif %}" id="consoleports">
200
+ {% include 'dcim/inc/devicetype_component_table.html' with table=consoleport_table title='Console Ports' tab='consoleports' %}
201
+ </div>
202
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'consoleserverports' %}active{% else %}fade{% endif %}" id="consoleserverports">
203
+ {% include 'dcim/inc/devicetype_component_table.html' with table=consoleserverport_table title='Console Server Ports' tab='consoleserverports' %}
204
+ </div>
205
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'powerports' %}active{% else %}fade{% endif %}" id="powerports">
206
+ {% include 'dcim/inc/devicetype_component_table.html' with table=powerport_table title='Power Ports' tab='powerports' %}
207
+ </div>
208
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'poweroutlets' %}active{% else %}fade{% endif %}" id="poweroutlets">
209
+ {% include 'dcim/inc/devicetype_component_table.html' with table=poweroutlet_table title='Power Outlets' tab='poweroutlets' %}
210
+ </div>
211
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'devicebays' %}active{% else %}fade{% endif %}" id="devicebays">
212
+ {% include 'dcim/inc/devicetype_component_table.html' with table=devicebay_table title='Device Bays' tab='devicebays' %}
213
+ </div>
214
+ <div role="tabpanel" class="tab-pane {% if request.GET.tab == 'modulebays' %}active{% else %}fade{% endif %}" id="modulebays">
215
+ {% include 'dcim/inc/devicetype_component_table.html' with table=modulebay_table title='Module Bays' tab='modulebays' %}
216
+ </div>
217
+ {% endblock extra_tab_content %}
@@ -0,0 +1,32 @@
1
+ {% extends 'generic/object_create.html' %}
2
+ {% load form_helpers %}
3
+
4
+ {% block form %}
5
+ <div class="panel panel-default">
6
+ <div class="panel-heading"><strong>Device Type</strong></div>
7
+ <div class="panel-body">
8
+ {% render_field form.manufacturer %}
9
+ {% render_field form.device_family %}
10
+ {% render_field form.model %}
11
+ {% render_field form.part_number %}
12
+ {% render_field form.u_height %}
13
+ {% render_field form.is_full_depth %}
14
+ {% render_field form.subdevice_role %}
15
+ {% render_field form.software_image_files %}
16
+ </div>
17
+ </div>
18
+ <div class="panel panel-default">
19
+ <div class="panel-heading"><strong>Rack Images</strong></div>
20
+ <div class="panel-body">
21
+ {% render_field form.front_image %}
22
+ {% render_field form.rear_image %}
23
+ </div>
24
+ </div>
25
+ {% include 'inc/extras_features_edit_form_fields.html' %}
26
+ <div class="panel panel-default">
27
+ <div class="panel-heading"><strong>Comments</strong></div>
28
+ <div class="panel-body">
29
+ {% render_field form.comments %}
30
+ </div>
31
+ </div>
32
+ {% endblock %}
@@ -5,4 +5,4 @@
5
5
  <a href="{% url 'dcim-api:rack-elevation' pk=object.pk %}?face={{face}}&render=svg" class="rack_elevation_save_svg_link" download="rack_{{ face }}_{{ object }}.svg">
6
6
  <i class="mdi mdi-content-save-outline"></i> Save SVG
7
7
  </a>
8
- </div>
8
+ </div>
@@ -1,6 +1,5 @@
1
1
  {% extends 'generic/object_retrieve.html' %}
2
2
  {% load helpers %}
3
-
4
3
  {% block breadcrumbs %}
5
4
  {% if object.parent_device %}
6
5
  <li><a href="{% url 'dcim:device_list' %}">Devices</a></li>
@@ -16,86 +15,4 @@
16
15
  {% endif %}
17
16
  {% endif %}
18
17
  <li><a href="{{ object.get_absolute_url }}">{{ object.name }}</a></li>
19
- {% endblock breadcrumbs %}
20
- {% block content_left_page %}
21
- <div class="panel panel-default">
22
- <div class="panel-heading">
23
- <strong>Module Bay</strong>
24
- </div>
25
- <table class="table table-hover panel-body attr-table">
26
- <tr>
27
- {% if object.parent_device %}
28
- <td>Parent Device</td>
29
- <td>
30
- {{ object.parent_device|hyperlinked_object }}
31
- </td>
32
- {% else %}
33
- <td>Parent Module</td>
34
- <td>
35
- {{ object.parent_module|hyperlinked_object }}
36
- </td>
37
- {% endif %}
38
- </tr>
39
- <tr>
40
- <td>Name</td>
41
- <td>{{ object.name }}</td>
42
- </tr>
43
- <tr>
44
- <td>Position</td>
45
- <td>{{ object.position }}</td>
46
- </tr>
47
- <tr>
48
- <td>Label</td>
49
- <td>{{ object.label|placeholder }}</td>
50
- </tr>
51
- <tr>
52
- <td>Description</td>
53
- <td>{{ object.description|placeholder }}</td>
54
- </tr>
55
- </table>
56
- </div>
57
- {% endblock content_left_page %}
58
-
59
- {% block content_right_page %}
60
- {% if object.installed_module %}
61
- <div class="panel panel-default">
62
- <div class="panel-heading">
63
- <strong>Installed Module</strong>
64
- </div>
65
- <table class="table table-hover panel-body attr-table">
66
- <tr>
67
- <td>Module</td>
68
- <td>
69
- {{ object.installed_module|hyperlinked_object }}
70
- </td>
71
- </tr>
72
- <tr>
73
- <td>Module Type</td>
74
- <td>
75
- {{ object.installed_module.module_type|hyperlinked_object }}
76
- </td>
77
- </tr>
78
- <tr>
79
- <td>Status</td>
80
- <td>{{ object.installed_module.status|hyperlinked_object_with_color }}</td>
81
- </tr>
82
- <tr>
83
- <td>Role</td>
84
- <td>{{ object.installed_module.role|hyperlinked_object_with_color }}</td>
85
- </tr>
86
- <tr>
87
- <td>Serial</td>
88
- <td>{{ object.installed_module.serial|placeholder }}</td>
89
- </tr>
90
- <tr>
91
- <td>Asset Tag</td>
92
- <td>{{ object.installed_module.asset_tag|placeholder }}</td>
93
- </tr>
94
- <tr>
95
- <td>Tenant</td>
96
- <td>{{ object.installed_module.tenant|hyperlinked_object }}</td>
97
- </tr>
98
- </table>
99
- </div>
100
- {% endif %}
101
- {% endblock content_right_page %}
18
+ {% endblock breadcrumbs %}
@@ -0,0 +1,14 @@
1
+ <div class="row" style="margin-bottom: 20px">
2
+ <div class="col-md-6 col-sm-6 col-xs-12">
3
+ <div class="rack_header">
4
+ <h4>Front</h4>
5
+ </div>
6
+ {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %}
7
+ </div>
8
+ <div class="col-md-6 col-sm-6 col-xs-12">
9
+ <div class="rack_header">
10
+ <h4>Rear</h4>
11
+ </div>
12
+ {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %}
13
+ </div>
14
+ </div>
@@ -5,74 +5,6 @@
5
5
  {% block extra_breadcrumbs %}
6
6
  <li>{{ object.rack|hyperlinked_object }}</li>
7
7
  {% endblock extra_breadcrumbs %}
8
-
9
- {% block content_left_page %}
10
- <div class="panel panel-default">
11
- <div class="panel-heading">
12
- <strong>Rack</strong>
13
- </div>
14
- <table class="table table-hover panel-body attr-table">
15
- {% with rack=object.rack %}
16
- <tr>
17
- <td>Location</td>
18
- <td>{% include 'dcim/inc/location_hierarchy.html' with location=rack.location %}</td>
19
- </tr>
20
- <tr>
21
- <td>Group</td>
22
- <td>
23
- {% if rack.rack_group %}
24
- <a href="{% url 'dcim:rack_list' %}?location={{ rack.location.pk }}&rack_group={{ rack.rack_group.pk }}">{{ rack.rack_group }}</a>
25
- {% else %}
26
- <span class="text-muted">None</span>
27
- {% endif %}
28
- </td>
29
- </tr>
30
- <tr>
31
- <td>Rack</td>
32
- <td>{{ rack|hyperlinked_object }}</td>
33
- </tr>
34
- {% endwith %}
35
- </table>
36
- </div>
37
- <div class="panel panel-default">
38
- <div class="panel-heading">
39
- <strong>Reservation Details</strong>
40
- </div>
41
- <table class="table table-hover panel-body attr-table">
42
- <tr>
43
- <td>Units</td>
44
- <td>{{ object.unit_list }}</td>
45
- </tr>
46
- {% include 'inc/tenant_table_row.html' %}
47
- <tr>
48
- <td>User</td>
49
- <td>{{ object.user }}</td>
50
- </tr>
51
- <tr>
52
- <td>Description</td>
53
- <td>{{ object.description }}</td>
54
- </tr>
55
- </table>
56
- </div>
57
- {% endblock content_left_page %}
58
-
59
- {% block content_right_page %}
60
- <div class="row" style="margin-bottom: 20px">
61
- <div class="col-md-6 col-sm-6 col-xs-12">
62
- <div class="rack_header">
63
- <h4>Front</h4>
64
- </div>
65
- {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %}
66
- </div>
67
- <div class="col-md-6 col-sm-6 col-xs-12">
68
- <div class="rack_header">
69
- <h4>Rear</h4>
70
- </div>
71
- {% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %}
72
- </div>
73
- </div>
74
- {% endblock content_right_page %}
75
-
76
8
  {% block javascript %}
77
9
  {{ block.super }}
78
10
  <script src="{% versioned_static 'js/rack_elevations.js' %}"></script>
@@ -52,7 +52,7 @@ class ClearableFileInputTestCase(SeleniumTestCase):
52
52
  """
53
53
  self._assert_file_picker(
54
54
  uri_to_visit=reverse("dcim:devicetype_add"),
55
- page_loaded_confirmation="Device Type",
55
+ page_loaded_confirmation="Add a new device type",
56
56
  file_input_selector_id="id_front_image",
57
57
  )
58
58
 
nautobot/dcim/urls.py CHANGED
@@ -12,7 +12,6 @@ from .models import (
12
12
  ConsoleServerPort,
13
13
  Device,
14
14
  DeviceBay,
15
- DeviceType,
16
15
  FrontPort,
17
16
  Interface,
18
17
  InventoryItem,
@@ -32,6 +31,7 @@ router.register("controller-managed-device-groups", views.ControllerManagedDevic
32
31
  router.register("controllers", views.ControllerUIViewSet)
33
32
  router.register("device-families", views.DeviceFamilyUIViewSet)
34
33
  router.register("device-redundancy-groups", views.DeviceRedundancyGroupUIViewSet)
34
+ router.register("device-types", views.DeviceTypeUIViewSet)
35
35
  router.register("interface-redundancy-groups", views.InterfaceRedundancyGroupUIViewSet)
36
36
  router.register("interface-redundancy-groups-associations", views.InterfaceRedundancyGroupAssociationUIViewSet)
37
37
  router.register("location-types", views.LocationTypeUIViewSet)
@@ -121,46 +121,11 @@ urlpatterns = [
121
121
  kwargs={"model": Rack},
122
122
  ),
123
123
  # Device types
124
- path("device-types/", views.DeviceTypeListView.as_view(), name="devicetype_list"),
125
- path("device-types/add/", views.DeviceTypeEditView.as_view(), name="devicetype_add"),
126
124
  path(
127
125
  "device-types/import/",
128
126
  views.DeviceTypeImportView.as_view(),
129
127
  name="devicetype_import",
130
128
  ),
131
- path(
132
- "device-types/edit/",
133
- views.DeviceTypeBulkEditView.as_view(),
134
- name="devicetype_bulk_edit",
135
- ),
136
- path(
137
- "device-types/delete/",
138
- views.DeviceTypeBulkDeleteView.as_view(),
139
- name="devicetype_bulk_delete",
140
- ),
141
- path("device-types/<uuid:pk>/", views.DeviceTypeView.as_view(), name="devicetype"),
142
- path(
143
- "device-types/<uuid:pk>/edit/",
144
- views.DeviceTypeEditView.as_view(),
145
- name="devicetype_edit",
146
- ),
147
- path(
148
- "device-types/<uuid:pk>/delete/",
149
- views.DeviceTypeDeleteView.as_view(),
150
- name="devicetype_delete",
151
- ),
152
- path(
153
- "device-types/<uuid:pk>/changelog/",
154
- ObjectChangeLogView.as_view(),
155
- name="devicetype_changelog",
156
- kwargs={"model": DeviceType},
157
- ),
158
- path(
159
- "device-types/<uuid:pk>/notes/",
160
- ObjectNotesView.as_view(),
161
- name="devicetype_notes",
162
- kwargs={"model": DeviceType},
163
- ),
164
129
  # Console port templates
165
130
  path(
166
131
  "console-port-templates/add/",