nautobot 2.4.17__py3-none-any.whl → 2.4.18__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 (92) hide show
  1. nautobot/apps/views.py +2 -0
  2. nautobot/circuits/templates/circuits/circuittermination_retrieve.html +1 -8
  3. nautobot/circuits/templates/circuits/inc/circuit_termination_speed_fragment.html +9 -0
  4. nautobot/circuits/tests/integration/test_circuit.py +2 -2
  5. nautobot/circuits/views.py +32 -15
  6. nautobot/core/filters.py +2 -2
  7. nautobot/core/settings.py +1 -0
  8. nautobot/core/settings.yaml +9 -0
  9. nautobot/core/tables.py +21 -23
  10. nautobot/core/templates/components/breadcrumbs.html +19 -0
  11. nautobot/core/templates/generic/object_changelog.html +0 -2
  12. nautobot/core/templates/generic/object_list.html +15 -12
  13. nautobot/core/templates/generic/object_notes.html +0 -2
  14. nautobot/core/templates/generic/object_retrieve.html +16 -9
  15. nautobot/core/templatetags/helpers.py +24 -0
  16. nautobot/core/templatetags/ui_framework.py +40 -5
  17. nautobot/core/testing/filters.py +37 -21
  18. nautobot/core/testing/views.py +25 -0
  19. nautobot/core/tests/test_tables.py +43 -6
  20. nautobot/core/tests/test_templatetags_ui_framework.py +146 -0
  21. nautobot/core/tests/test_titles.py +2 -2
  22. nautobot/core/tests/test_ui.py +14 -1
  23. nautobot/core/tests/test_views.py +45 -0
  24. nautobot/core/ui/breadcrumbs.py +13 -8
  25. nautobot/core/ui/object_detail.py +43 -5
  26. nautobot/core/ui/titles.py +9 -5
  27. nautobot/core/views/__init__.py +24 -3
  28. nautobot/core/views/generic.py +42 -17
  29. nautobot/core/views/mixins.py +146 -12
  30. nautobot/core/views/utils.py +117 -0
  31. nautobot/dcim/models/devices.py +4 -0
  32. nautobot/dcim/tables/__init__.py +2 -0
  33. nautobot/dcim/tables/devices.py +24 -0
  34. nautobot/dcim/tables/power.py +2 -2
  35. nautobot/dcim/templates/dcim/device/base.html +1 -11
  36. nautobot/dcim/templates/dcim/device_component.html +0 -19
  37. nautobot/dcim/templates/dcim/modulebay_retrieve.html +0 -16
  38. nautobot/dcim/templates/dcim/virtualchassis_retrieve.html +1 -50
  39. nautobot/dcim/tests/test_views.py +41 -0
  40. nautobot/dcim/views.py +160 -39
  41. nautobot/extras/filters/mixins.py +1 -1
  42. nautobot/extras/forms/forms.py +15 -0
  43. nautobot/extras/models/groups.py +10 -1
  44. nautobot/extras/models/jobs.py +2 -2
  45. nautobot/extras/plugins/views.py +18 -5
  46. nautobot/extras/tables.py +4 -2
  47. nautobot/extras/templates/extras/customfield_retrieve.html +1 -128
  48. nautobot/extras/templates/extras/dynamicgroup.html +2 -99
  49. nautobot/extras/templates/extras/dynamicgroup_edit.html +2 -199
  50. nautobot/extras/templates/extras/dynamicgroup_retrieve.html +99 -0
  51. nautobot/extras/templates/extras/dynamicgroup_update.html +199 -0
  52. nautobot/extras/templates/extras/gitrepository.html +2 -82
  53. nautobot/extras/templates/extras/gitrepository_object_edit.html +2 -13
  54. nautobot/extras/templates/extras/gitrepository_retrieve.html +82 -0
  55. nautobot/extras/templates/extras/gitrepository_update.html +13 -0
  56. nautobot/extras/templates/extras/note_retrieve.html +0 -52
  57. nautobot/extras/templates/extras/plugin_detail.html +3 -7
  58. nautobot/extras/templates/extras/plugins_list.html +0 -2
  59. nautobot/extras/tests/test_dynamicgroups.py +73 -18
  60. nautobot/extras/tests/test_views.py +5 -0
  61. nautobot/extras/urls.py +2 -94
  62. nautobot/extras/views.py +424 -430
  63. nautobot/ipam/querysets.py +3 -3
  64. nautobot/ipam/signals.py +6 -1
  65. nautobot/ipam/templates/ipam/prefix.html +0 -8
  66. nautobot/ipam/tests/test_api.py +5 -0
  67. nautobot/ipam/tests/test_models.py +387 -0
  68. nautobot/ipam/tests/test_querysets.py +46 -0
  69. nautobot/ipam/utils/migrations.py +1 -1
  70. nautobot/ipam/views.py +17 -8
  71. nautobot/project-static/docs/code-reference/nautobot/apps/testing.html +72 -0
  72. nautobot/project-static/docs/code-reference/nautobot/apps/ui.html +45 -9
  73. nautobot/project-static/docs/code-reference/nautobot/apps/views.html +393 -15
  74. nautobot/project-static/docs/development/apps/api/nautobot-app-config.html +1 -1
  75. nautobot/project-static/docs/development/core/getting-started.html +0 -15
  76. nautobot/project-static/docs/development/core/ui-component-framework.html +6 -11
  77. nautobot/project-static/docs/objects.inv +0 -0
  78. nautobot/project-static/docs/release-notes/version-2.4.html +222 -0
  79. nautobot/project-static/docs/search/search_index.json +1 -1
  80. nautobot/project-static/docs/sitemap.xml +300 -300
  81. nautobot/project-static/docs/sitemap.xml.gz +0 -0
  82. nautobot/project-static/docs/user-guide/administration/configuration/settings.html +27 -0
  83. nautobot/project-static/img/nautobot_icon.svg +32 -34
  84. nautobot/project-static/js/table_sorting_indicator.js +0 -2
  85. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/METADATA +4 -4
  86. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/RECORD +90 -85
  87. nautobot/core/templates/inc/breadcrumbs.html +0 -14
  88. nautobot/project-static/docs/requirements.txt +0 -14
  89. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/LICENSE.txt +0 -0
  90. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/NOTICE +0 -0
  91. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/WHEEL +0 -0
  92. {nautobot-2.4.17.dist-info → nautobot-2.4.18.dist-info}/entry_points.txt +0 -0
Binary file
@@ -2005,6 +2005,15 @@
2005
2005
  </span>
2006
2006
  </a>
2007
2007
 
2008
+ </li>
2009
+
2010
+ <li class="md-nav__item">
2011
+ <a href="#metrics_experimental_caching_duration" class="md-nav__link">
2012
+ <span class="md-ellipsis">
2013
+ METRICS_EXPERIMENTAL_CACHING_DURATION
2014
+ </span>
2015
+ </a>
2016
+
2008
2017
  </li>
2009
2018
 
2010
2019
  <li class="md-nav__item">
@@ -11918,6 +11927,15 @@
11918
11927
  </span>
11919
11928
  </a>
11920
11929
 
11930
+ </li>
11931
+
11932
+ <li class="md-nav__item">
11933
+ <a href="#metrics_experimental_caching_duration" class="md-nav__link">
11934
+ <span class="md-ellipsis">
11935
+ METRICS_EXPERIMENTAL_CACHING_DURATION
11936
+ </span>
11937
+ </a>
11938
+
11921
11939
  </li>
11922
11940
 
11923
11941
  <li class="md-nav__item">
@@ -13731,6 +13749,15 @@ to avoid this.</p>
13731
13749
  <li><a href="../guides/prometheus-metrics.html"> Guide to Nautobot Prometheus metrics </a></li>
13732
13750
  </ul>
13733
13751
  <hr />
13752
+ <h3 id="metrics_experimental_caching_duration"><code>METRICS_EXPERIMENTAL_CACHING_DURATION</code><a class="headerlink" href="#metrics_experimental_caching_duration" title="Permanent link">&para;</a></h3>
13753
+ <details class="version-added">
13754
+ <summary>Added in version 2.4.18</summary>
13755
+ </details>
13756
+ <p><strong>Default:</strong>
13757
+ <code>0</code></p>
13758
+ <p><strong>Environment Variable:</strong> <code>NAUTOBOT_METRICS_EXPERIMENTAL_CACHING_DURATION</code></p>
13759
+ <p>The number of seconds to cache Nautobot App metrics before refreshing them. A value of <code>0</code> means no caching (i.e. always recompute metrics on each request). This feature is experimental and may change or be removed in a future release, including patch releases.</p>
13760
+ <hr />
13734
13761
  <h3 id="napalm_args"><code>NAPALM_ARGS</code><a class="headerlink" href="#napalm_args" title="Permanent link">&para;</a></h3>
13735
13762
  <p><strong>Default:</strong>
13736
13763
  <code>{}</code></p>
@@ -1,25 +1,25 @@
1
1
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
2
  <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
3
  version="1.1"
11
4
  id="Layer_1"
12
5
  x="0px"
13
6
  y="0px"
14
7
  viewBox="0 0 200 200"
15
8
  xml:space="preserve"
16
- sodipodi:docname="nautobot_icon_n.svg"
17
- inkscape:version="1.0.1 (c497b03c, 2020-09-10)"
9
+ sodipodi:docname="nautobot_icon.svg"
10
+ inkscape:version="1.4.2 (ebf0e940, 2025-05-08)"
18
11
  width="200"
19
- height="200"><metadata
12
+ height="200"
13
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
15
+ xmlns="http://www.w3.org/2000/svg"
16
+ xmlns:svg="http://www.w3.org/2000/svg"
17
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
18
+ xmlns:cc="http://creativecommons.org/ns#"
19
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
20
20
  id="metadata200"><rdf:RDF><cc:Work
21
21
  rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
23
23
  id="defs198" /><sodipodi:namedview
24
24
  pagecolor="#ffffff"
25
25
  bordercolor="#666666"
@@ -29,27 +29,31 @@
29
29
  guidetolerance="10"
30
30
  inkscape:pageopacity="0"
31
31
  inkscape:pageshadow="2"
32
- inkscape:window-width="2308"
33
- inkscape:window-height="699"
32
+ inkscape:window-width="2320"
33
+ inkscape:window-height="1310"
34
34
  id="namedview196"
35
35
  showgrid="false"
36
36
  showguides="true"
37
37
  inkscape:guide-bbox="true"
38
38
  inkscape:zoom="2.6687159"
39
- inkscape:cx="62.598223"
40
- inkscape:cy="101.48555"
39
+ inkscape:cx="62.764268"
40
+ inkscape:cy="101.35961"
41
41
  inkscape:window-x="250"
42
- inkscape:window-y="711"
42
+ inkscape:window-y="72"
43
43
  inkscape:window-maximized="0"
44
44
  inkscape:current-layer="g193"
45
45
  fit-margin-top="0"
46
46
  fit-margin-left="0"
47
47
  fit-margin-right="0"
48
48
  fit-margin-bottom="0"
49
- inkscape:document-rotation="0"><sodipodi:guide
49
+ inkscape:document-rotation="0"
50
+ inkscape:showpageshadow="2"
51
+ inkscape:pagecheckerboard="0"
52
+ inkscape:deskcolor="#d1d1d1"><sodipodi:guide
50
53
  position="79.53482,31.029998"
51
54
  orientation="0,-1"
52
- id="guide210" /></sodipodi:namedview>
55
+ id="guide210"
56
+ inkscape:locked="false" /></sodipodi:namedview>
53
57
  <style
54
58
  type="text/css"
55
59
  id="style132">
@@ -69,7 +73,7 @@
69
73
  y1="101.1704"
70
74
  x2="610.09967"
71
75
  y2="-0.087783419"
72
- gradientTransform="matrix(0.99286375,0,0,1,-312.45179,0)">
76
+ gradientTransform="matrix(1.9175444,0,0,1.9459355,-708.40003,0)">
73
77
  <stop
74
78
  offset="0"
75
79
  style="stop-color:#0097FF"
@@ -83,21 +87,15 @@
83
87
 
84
88
 
85
89
  <g
86
- id="g849"
87
- transform="matrix(1.9313268,0,0,1.9459355,-104.95351,0)"><path
90
+ id="g1"><path
88
91
  class="st0"
89
- d="m 203.98147,0 h -79.17608 c -6.75146,0 -12.11293,5.5 -12.11293,12.2 v 78.2 c 0,6.8 5.46075,12.2 12.11293,12.2 h 79.17608 c 6.75147,0 12.11293,-5.5 12.11293,-12.2 V 12.2 C 216.0944,5.5 210.63366,0 203.98147,0 Z"
92
+ d="M 289.00137,0 H 136.08648 C 123.04721,0 112.69246,10.702645 112.69246,23.740413 V 175.91257 c 0,13.23236 10.54649,23.74041 23.39402,23.74041 h 152.91489 c 13.03929,0 23.39403,-10.70264 23.39403,-23.74041 V 23.740413 C 312.3954,10.702645 301.84892,0 289.00137,0 Z"
90
93
  id="path139"
91
- style="fill:url(#SVGID_1_);stroke-width:0.996426"
92
- sodipodi:nodetypes="sssssssss" /><text
93
- xml:space="preserve"
94
- style="font-style:normal;font-weight:normal;font-size:147.301px;line-height:1.25;font-family:sans-serif;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.68254"
95
- x="118.80797"
96
- y="84.890076"
97
- id="text208"><tspan
98
- sodipodi:role="line"
99
- id="tspan206"
100
- x="118.80797"
101
- y="84.890076"
102
- style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:147.301px;font-family:'Courier New';-inkscape-font-specification:'Courier New, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;stroke-width:3.68254">n</tspan></text></g></g>
94
+ style="fill:url(#SVGID_1_);stroke-width:1.93169"
95
+ sodipodi:nodetypes="sssssssss" /><path
96
+ style="font-size:285.56px;line-height:1.25;font-family:'Courier New';-inkscape-font-specification:'Courier New, Normal';fill:#ffffff;stroke-width:7.13904"
97
+ d="m 172.79923,43.819891 v 17.708066 q 12.27015,-12.40959 22.16994,-17.150332 9.89978,-4.740742 22.30937,-4.740742 13.38563,0 24.40088,5.716777 7.80828,4.183008 14.08279,13.943359 6.41395,9.620918 6.41395,19.79957 v 73.760371 h 9.89978 q 4.18301,0 5.99565,1.6732 1.81263,1.53377 1.81263,4.18301 0,2.50981 -1.81263,4.18301 -1.81264,1.6732 -5.99565,1.6732 h -31.37256 q -4.32244,0 -6.13507,-1.6732 -1.81264,-1.6732 -1.81264,-4.18301 0,-2.64924 1.81264,-4.18301 1.81263,-1.6732 6.13507,-1.6732 h 9.76036 v -71.8083 q 0,-12.40959 -9.06319,-20.915039 -9.06318,-8.644883 -24.26144,-8.644883 -11.57299,0 -20.07844,4.740742 -8.50545,4.601309 -24.26144,23.145977 v 73.481503 h 13.24619 q 4.183,0 5.99564,1.6732 1.81264,1.53377 1.81264,4.18301 0,2.50981 -1.81264,4.18301 -1.81264,1.6732 -5.99564,1.6732 h -38.20481 q -4.18301,0 -5.99564,-1.6732 -1.81264,-1.6732 -1.81264,-4.18301 0,-2.64924 1.81264,-4.18301 1.81263,-1.6732 5.99564,-1.6732 H 161.0868 V 55.671746 h -9.89978 q -4.18301,0 -5.99565,-1.673203 -1.81263,-1.673203 -1.81263,-4.322442 0,-2.509804 1.81263,-4.183007 1.81264,-1.673203 5.99565,-1.673203 z"
98
+ id="text208"
99
+ transform="scale(0.99623928,1.0037749)"
100
+ aria-label="n" /></g></g>
103
101
  </svg>
@@ -22,8 +22,6 @@ document.addEventListener("DOMContentLoaded", function() {
22
22
  } else if (sortParam === "-" + columnName) {
23
23
  // If the column is already sorted in descending order, reset to default
24
24
  searchParams.delete("sort");
25
- window.location.replace(window.location.pathname); // Reload the page with the default view without adding a new entry to history
26
- return;
27
25
  } else {
28
26
  // If no sort or default state, set to ascending
29
27
  searchParams.set("sort", columnName);
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nautobot
3
- Version: 2.4.17
3
+ Version: 2.4.18
4
4
  Summary: Source of truth and network automation platform.
5
5
  Home-page: https://nautobot.com
6
6
  License: Apache-2.0
@@ -22,14 +22,14 @@ Provides-Extra: mysql
22
22
  Provides-Extra: napalm
23
23
  Provides-Extra: remote-storage
24
24
  Provides-Extra: sso
25
- Requires-Dist: Django (>=4.2.23,<4.3.0)
25
+ Requires-Dist: Django (>=4.2.24,<4.3.0)
26
26
  Requires-Dist: GitPython (>=3.1.45,<3.2.0)
27
27
  Requires-Dist: Jinja2 (>=3.1.6,<3.2.0)
28
28
  Requires-Dist: Markdown (>=3.8.2,<3.9.0)
29
29
  Requires-Dist: Pillow (>=11.0,<12.0)
30
30
  Requires-Dist: PyYAML (>=6.0.2,<6.1.0)
31
31
  Requires-Dist: celery (>=5.3.6,<5.6.0)
32
- Requires-Dist: cryptography (>=45.0.6,<45.1.0)
32
+ Requires-Dist: cryptography (>=45.0.7,<45.1.0)
33
33
  Requires-Dist: django-ajax-tables (>=1.1.1,<1.2.0)
34
34
  Requires-Dist: django-auth-ldap (>=5.2.0,<5.3.0) ; extra == "all" or extra == "ldap"
35
35
  Requires-Dist: django-celery-beat (>=2.7.0,<2.8.0)
@@ -43,7 +43,7 @@ Requires-Dist: django-health-check (>=3.20.0,<3.21.0)
43
43
  Requires-Dist: django-jinja (>=2.11.0,<2.12.0)
44
44
  Requires-Dist: django-prometheus (>=2.4.1,<2.5.0)
45
45
  Requires-Dist: django-redis (>=6.0.0,<6.1.0)
46
- Requires-Dist: django-silk (>=5.4.2,<5.5.0)
46
+ Requires-Dist: django-silk (>=5.4.3,<5.5.0)
47
47
  Requires-Dist: django-storages (>=1.14.6,<1.15.0) ; extra == "all" or extra == "remote-storage"
48
48
  Requires-Dist: django-structlog[celery] (>=9.1.1,<10.0.0)
49
49
  Requires-Dist: django-tables2 (>=2.7.5,<2.8.0)