netbox-pathways 0.2.1__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/PKG-INFO +9 -4
  2. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/README.md +8 -3
  3. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/__init__.py +1 -1
  4. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/forms.py +8 -0
  5. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways.egg-info/PKG-INFO +9 -4
  6. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways.egg-info/SOURCES.txt +1 -0
  7. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/pyproject.toml +2 -2
  8. netbox_pathways-0.2.2/tests/test_map_widget.py +35 -0
  9. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/__init__.py +0 -0
  10. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/external_geo.py +0 -0
  11. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/geo.py +0 -0
  12. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/serializers.py +0 -0
  13. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/traversal.py +0 -0
  14. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/urls.py +0 -0
  15. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/api/views.py +0 -0
  16. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/checks.py +0 -0
  17. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/choices.py +0 -0
  18. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/filterforms.py +0 -0
  19. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/filters.py +0 -0
  20. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/geo.py +0 -0
  21. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/graph.py +0 -0
  22. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/graphql/__init__.py +0 -0
  23. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/graphql/filters.py +0 -0
  24. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/graphql/schema.py +0 -0
  25. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/graphql/types.py +0 -0
  26. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/__init__.py +0 -0
  27. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/commands/__init__.py +0 -0
  28. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/commands/_geodata_worker.py +0 -0
  29. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/commands/generate_qgis_project.py +0 -0
  30. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/commands/generate_sample_data.py +0 -0
  31. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/management/commands/import_geodata.py +0 -0
  32. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0001_initial.py +0 -0
  33. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0002_replace_owner_with_tenant.py +0 -0
  34. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0003_structure_optional_site_dimensions.py +0 -0
  35. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0004_circuit_geometry.py +0 -0
  36. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0005_replace_unique_together_with_constraints.py +0 -0
  37. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0006_remove_cablesegment_sequence_enter_exit.py +0 -0
  38. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0007_cable_routing_redesign.py +0 -0
  39. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0008_conduitbank_pathway_subclass.py +0 -0
  40. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0009_remove_conduit_unique_position_per_bank_and_more.py +0 -0
  41. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0010_structure_status.py +0 -0
  42. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0011_rename_name_to_label.py +0 -0
  43. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0012_add_filter_field_indexes.py +0 -0
  44. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0013_plannedroute.py +0 -0
  45. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0014_plannedroute_parent_split.py +0 -0
  46. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0015_installer_and_commissioned_date.py +0 -0
  47. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/0016_cablesegment_lashed_with.py +0 -0
  48. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/migrations/__init__.py +0 -0
  49. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/models.py +0 -0
  50. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/navigation.py +0 -0
  51. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/registry.py +0 -0
  52. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/route_engine.py +0 -0
  53. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/routing.py +0 -0
  54. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/search.py +0 -0
  55. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/signals.py +0 -0
  56. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/css/leaflet-theme.css +0 -0
  57. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/css/pathways-map.css +0 -0
  58. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/detail-map.min.js +0 -0
  59. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/detail-map.min.js.map +0 -0
  60. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/endpoint-markers.min.js +0 -0
  61. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/endpoint-markers.min.js.map +0 -0
  62. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/pathways-field.min.js +0 -0
  63. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/pathways-field.min.js.map +0 -0
  64. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/pathways-map.min.js +0 -0
  65. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/pathways-map.min.js.map +0 -0
  66. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/route-planner-map.min.js +0 -0
  67. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/dist/route-planner-map.min.js.map +0 -0
  68. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/qgis/pathways.qml +0 -0
  69. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/qgis/structures.qml +0 -0
  70. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/MarkerCluster.Default.css +0 -0
  71. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/MarkerCluster.css +0 -0
  72. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/geoman/leaflet-geoman.css +0 -0
  73. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/geoman/leaflet-geoman.js +0 -0
  74. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/images/layers-2x.png +0 -0
  75. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/images/layers.png +0 -0
  76. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/images/marker-icon-2x.png +0 -0
  77. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/images/marker-icon.png +0 -0
  78. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/images/marker-shadow.png +0 -0
  79. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/leaflet.css +0 -0
  80. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet/leaflet.js +0 -0
  81. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/static/netbox_pathways/vendor/leaflet.markercluster.js +0 -0
  82. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/tables.py +0 -0
  83. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/template_content.py +0 -0
  84. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/aerialspan.html +0 -0
  85. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/buttons/apply_route.html +0 -0
  86. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/buttons/replan_route.html +0 -0
  87. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/buttons/revert_split.html +0 -0
  88. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/buttons/split_route.html +0 -0
  89. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/buttons/view_in_map.html +0 -0
  90. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/cable_route_tab.html +0 -0
  91. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/cablesegment.html +0 -0
  92. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/conduit.html +0 -0
  93. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/conduitbank.html +0 -0
  94. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/conduitjunction.html +0 -0
  95. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/directburied.html +0 -0
  96. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/cable_add_segment_form.html +0 -0
  97. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/cable_route_finder_results.html +0 -0
  98. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/cable_routing_panel.html +0 -0
  99. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/cable_segment_table.html +0 -0
  100. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/connected_structures_panel.html +0 -0
  101. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/constraint_card.html +0 -0
  102. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/geo_map_panel.html +0 -0
  103. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/plannedroute_map_panel.html +0 -0
  104. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/inc/planner_results.html +0 -0
  105. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/innerduct.html +0 -0
  106. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/map.html +0 -0
  107. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/pathway.html +0 -0
  108. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/pathwaylocation.html +0 -0
  109. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/plannedroute.html +0 -0
  110. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/plannedroute_apply.html +0 -0
  111. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/plannedroute_split.html +0 -0
  112. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/pullsheet_detail.html +0 -0
  113. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/pullsheet_list.html +0 -0
  114. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/route_planner.html +0 -0
  115. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/sitegeometry.html +0 -0
  116. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/structure.html +0 -0
  117. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/templates/netbox_pathways/widgets/map_widget.html +0 -0
  118. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/ui/__init__.py +0 -0
  119. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/ui/panels.py +0 -0
  120. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/urls.py +0 -0
  121. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways/views.py +0 -0
  122. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways.egg-info/dependency_links.txt +0 -0
  123. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways.egg-info/requires.txt +0 -0
  124. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/netbox_pathways.egg-info/top_level.txt +0 -0
  125. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/setup.cfg +0 -0
  126. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_adjacency.py +0 -0
  127. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_cable_segment.py +0 -0
  128. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_circuit_geometry.py +0 -0
  129. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_endpoint_validation.py +0 -0
  130. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_external_geo.py +0 -0
  131. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_field_additions.py +0 -0
  132. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_geo_api.py +0 -0
  133. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_graph.py +0 -0
  134. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_graphql.py +0 -0
  135. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_import_geodata.py +0 -0
  136. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_lashed_with.py +0 -0
  137. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_map_view.py +0 -0
  138. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_planned_route.py +0 -0
  139. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_registry.py +0 -0
  140. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_route_engine.py +0 -0
  141. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_routing.py +0 -0
  142. {netbox_pathways-0.2.1 → netbox_pathways-0.2.2}/tests/test_srid_checks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-pathways
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: NetBox plugin for physical cable plant infrastructure documentation with GIS capabilities
5
5
  Author-email: Jonathan Senecal <contact@jonathansenecal.com>
6
6
  Project-URL: Homepage, https://github.com/jsenecal/netbox-pathways
@@ -58,9 +58,14 @@ Requires-Dist: zensical; extra == "docs"
58
58
 
59
59
  ## Compatibility
60
60
 
61
- | Plugin version | NetBox version | Python | PostgreSQL |
62
- |----------------|----------------|-----------|---------------------|
63
- | 0.1.x | 4.5.3+ | 3.12-3.14 | 16+ with PostGIS 3.4|
61
+ | Plugin version | NetBox version | Python | PostgreSQL |
62
+ |-----------------|----------------------|-----------|----------------------|
63
+ | 0.1.x -- 0.2.1 | 4.5.3 -- 4.5.x | 3.12-3.14 | 16+ with PostGIS 3.4+|
64
+ | 0.2.2+ | 4.5.3+ (incl. 4.6.x) | 3.12-3.14 | 16+ with PostGIS 3.4+|
65
+
66
+ > NetBox 4.6 ships Django 6.0. Plugin versions 0.2.1 and earlier do not render
67
+ > the geometry map widget on NetBox 4.6 (issue #52); upgrade to 0.2.2 or later
68
+ > for NetBox 4.6 support.
64
69
 
65
70
  ## Installation
66
71
 
@@ -28,9 +28,14 @@
28
28
 
29
29
  ## Compatibility
30
30
 
31
- | Plugin version | NetBox version | Python | PostgreSQL |
32
- |----------------|----------------|-----------|---------------------|
33
- | 0.1.x | 4.5.3+ | 3.12-3.14 | 16+ with PostGIS 3.4|
31
+ | Plugin version | NetBox version | Python | PostgreSQL |
32
+ |-----------------|----------------------|-----------|----------------------|
33
+ | 0.1.x -- 0.2.1 | 4.5.3 -- 4.5.x | 3.12-3.14 | 16+ with PostGIS 3.4+|
34
+ | 0.2.2+ | 4.5.3+ (incl. 4.6.x) | 3.12-3.14 | 16+ with PostGIS 3.4+|
35
+
36
+ > NetBox 4.6 ships Django 6.0. Plugin versions 0.2.1 and earlier do not render
37
+ > the geometry map widget on NetBox 4.6 (issue #52); upgrade to 0.2.2 or later
38
+ > for NetBox 4.6 support.
34
39
 
35
40
  ## Installation
36
41
 
@@ -2,7 +2,7 @@ import logging
2
2
 
3
3
  from netbox.plugins import PluginConfig
4
4
 
5
- __version__ = "0.2.1"
5
+ __version__ = "0.2.2"
6
6
 
7
7
  logger = logging.getLogger(__name__)
8
8
 
@@ -73,6 +73,14 @@ class PathwaysMapWidget(BaseGeometryWidget):
73
73
 
74
74
  def get_context(self, name, value, attrs):
75
75
  context = super().get_context(name, value, attrs)
76
+ # Django 6.0 stopped exposing id/name/geom_type at the top level of the
77
+ # widget context (they now live under ``widget``); our template reads
78
+ # them at the top level, so re-expose them here. setdefault keeps this
79
+ # backwards compatible with Django <= 5.2, which still sets them. (#52)
80
+ widget = context["widget"]
81
+ context.setdefault("id", widget["attrs"].get("id", ""))
82
+ context.setdefault("name", widget["name"])
83
+ context.setdefault("geom_type", widget["attrs"].get("geom_name", self.geom_type))
76
84
  if self.endpoint_geojson:
77
85
  context["endpoint_json"] = mark_safe(json.dumps(self.endpoint_geojson)) # noqa: S308
78
86
  return context
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-pathways
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: NetBox plugin for physical cable plant infrastructure documentation with GIS capabilities
5
5
  Author-email: Jonathan Senecal <contact@jonathansenecal.com>
6
6
  Project-URL: Homepage, https://github.com/jsenecal/netbox-pathways
@@ -58,9 +58,14 @@ Requires-Dist: zensical; extra == "docs"
58
58
 
59
59
  ## Compatibility
60
60
 
61
- | Plugin version | NetBox version | Python | PostgreSQL |
62
- |----------------|----------------|-----------|---------------------|
63
- | 0.1.x | 4.5.3+ | 3.12-3.14 | 16+ with PostGIS 3.4|
61
+ | Plugin version | NetBox version | Python | PostgreSQL |
62
+ |-----------------|----------------------|-----------|----------------------|
63
+ | 0.1.x -- 0.2.1 | 4.5.3 -- 4.5.x | 3.12-3.14 | 16+ with PostGIS 3.4+|
64
+ | 0.2.2+ | 4.5.3+ (incl. 4.6.x) | 3.12-3.14 | 16+ with PostGIS 3.4+|
65
+
66
+ > NetBox 4.6 ships Django 6.0. Plugin versions 0.2.1 and earlier do not render
67
+ > the geometry map widget on NetBox 4.6 (issue #52); upgrade to 0.2.2 or later
68
+ > for NetBox 4.6 support.
64
69
 
65
70
  ## Installation
66
71
 
@@ -132,6 +132,7 @@ tests/test_graphql.py
132
132
  tests/test_import_geodata.py
133
133
  tests/test_lashed_with.py
134
134
  tests/test_map_view.py
135
+ tests/test_map_widget.py
135
136
  tests/test_planned_route.py
136
137
  tests/test_registry.py
137
138
  tests/test_route_engine.py
@@ -16,7 +16,7 @@ netbox_pathways = [
16
16
 
17
17
  [project]
18
18
  name = "netbox-pathways"
19
- version = "0.2.1"
19
+ version = "0.2.2"
20
20
  description = "NetBox plugin for physical cable plant infrastructure documentation with GIS capabilities"
21
21
  readme = "README.md"
22
22
  authors = [
@@ -60,7 +60,7 @@ Tracker = "https://github.com/jsenecal/netbox-pathways/issues"
60
60
  Documentation = "https://jsenecal.github.io/netbox-pathways/"
61
61
 
62
62
  [tool.bumpversion]
63
- current_version = "0.2.1"
63
+ current_version = "0.2.2"
64
64
  commit = true
65
65
  tag = true
66
66
  tag_name = "v{new_version}"
@@ -0,0 +1,35 @@
1
+ """Regression tests for PathwaysMapWidget rendering.
2
+
3
+ Django 6.0 changed BaseGeometryWidget.get_context so it no longer exposes the
4
+ top-level ``id``, ``name`` and ``geom_type`` context variables that the widget
5
+ template relies on (they moved under ``widget``). Without compensation the
6
+ hidden input renders with an empty ``name`` (so no geometry is submitted) and
7
+ the map container renders with an empty ``data-field-id`` (so the JS bails and
8
+ no map appears). See issue #52.
9
+ """
10
+
11
+ from netbox_pathways.forms import PathwaysMapWidget
12
+
13
+
14
+ def _render(widget):
15
+ return widget.render("location", None, attrs={"id": "id_location"})
16
+
17
+
18
+ def test_hidden_input_keeps_field_name():
19
+ """The hidden geometry input must carry name="location" so the form submits a value."""
20
+ html = _render(PathwaysMapWidget(geom_type="Geometry"))
21
+ assert 'name="location"' in html
22
+ assert 'name=""' not in html
23
+
24
+
25
+ def test_map_container_has_field_id():
26
+ """The map container needs a non-empty data-field-id for the JS to initialize."""
27
+ html = _render(PathwaysMapWidget(geom_type="Geometry"))
28
+ assert 'data-field-id="id_location"' in html
29
+ assert 'data-field-id=""' not in html
30
+
31
+
32
+ def test_geom_type_is_exposed():
33
+ """The configured geometry type must reach the template's data-geom-type."""
34
+ assert 'data-geom-type="Geometry"' in _render(PathwaysMapWidget(geom_type="Geometry"))
35
+ assert 'data-geom-type="LineString"' in _render(PathwaysMapWidget(geom_type="LineString"))