Releases: CESNET/cesnet_service_path_plugin
v5.1.2
Release Notes – v5.1.2
Changes Since v5.1.1
-
Template Update:
The HTML templatesegment_edit.html
has been revised:- The block previously named
title
now useshead
for improved HTML structure and extension compatibility. - The stylesheet and JavaScript for the segment form are now included inside the
head
block. - Ensures proper extension of parent templates with
{{ block.super }}
at the correct place.
- The block previously named
-
Version Bump:
- The project version in
pyproject.toml
updated from5.1.1
to5.1.2
.
- The project version in
Summary
This release improves the template structure for editing segments, ensuring styles and scripts load correctly and enhancing maintainability for further customizations.
Full Changelog: v5.1.1...v5.1.2
v5.1.1
Release Notes for CESNET Service Path Plugin v5.1.1 (from v5.0.4)
Highlights
🚀 Major Features
-
Segment Type System
- Segments now support explicit types: Dark Fiber, Optical Spectrum, Ethernet Service.
- New
segment_type
field and dynamic, type-specific technical data stored as JSON. - Dynamic form fields and validation for each segment type.
- Smart numeric filtering with operators (>, <, >=, <=, ranges).
- GraphQL API supports type-specific data filtering (
has_type_specific_data
).
-
Enhanced Map Visualization
- Map coloring and legend based on segment type, status, or provider.
- Multiple background map layers (OpenStreetMap, satellite, topographic, CartoDB).
- Improved overlapping segment visualization and selection.
-
Advanced Filtering System
- Smart numeric filters for technical fields.
- Type-specific filters (fiber type, connector type, modulation format, etc.).
- Boolean parsing and improved search for segment type and technical fields.
🛠 Improvements
- Segment form preserves type-specific field values when changing type.
- Updated segment table to display segment type.
- API serializers and GraphQL types now include segment type and type-specific data.
- Unified segment serializers, removed redundancy.
🐞 Bug Fixes
- Fixed form rendering for type-specific fields.
- Improved value preservation when editing segment types.
- Resolved edge cases in smart numeric filtering.
- Enhanced JSON serialization for Decimal types.
- Fixed dynamic field visibility issues.
⚡ Technical/Documentation
- New CSS/JS for dynamic segment form fields.
- Documentation updates with sample maps and GraphQL examples (
docs/graphQL_examples.md
). - Added Apache 2.0 license badge.
- Updated
pyproject.toml
with repository info. - Migration: New fields added to Segment model (
segment_type
,type_specific_data
).
Migration Notes
- 🗄 Database migration required: New fields for segment type and type-specific data.
⚠️ Existing installations will have default values for new fields.- No breaking changes expected for core APIs, but segment editing and filtering are now much richer.
For Developers
- New model:
models/segment_types.py
with choices and schemas for validation. - New template, CSS, and JS for dynamic form rendering.
- GraphQL API expanded for segment type and advanced filtering.
- Example queries and mutation samples in
docs/graphQL_examples.md
.
Full Changelog
See CHANGELOG.md for detailed changes.
Upgrade Recommendation:
Run migrations after upgrading. Review segment forms and filtering options for new features.
Release Versions:
- v5.1.0 (2025-09-23): Segment type system, advanced filtering, improved map visualization.
- v5.0.3 (2025-08-29): Critical bugfix for saving tags (many-to-many).
- v5.0.2 (2025-08-21): Documentation and licensing improvements.
Compatibility:
NetBox 4.4+ (see README for compatibility matrix).
Full Changelog: v5.0.4...v5.1.1
v5.0.4
Changes Made
Added v5.0.4 Release Notes (2025-09-12)
- Enhanced Map Visualization: Documents the major improvements to segment map display including:
- Dual color schemes (status-based and provider-based color coding)
- Enhanced overlay segment selection with improved click algorithm
- Better visual differentiation for overlapping segments
- API Improvements: Covers streamlined segment serialization changes:
- Consolidation of SegmentListSerializer functionality into SegmentSerializer
- Enhanced support for path file uploads
- Improved API response consistency and performance
- Bug Fixes: Documents map interaction improvements and rendering performance optimizations
Added v5.0.3 Release Notes (2025-08-29)
- Forms Fix: Documents the important SegmentForm fix that added save_m2m() call to properly save tags
- Resolves tag persistence issues in segment creation and editing
Full Changelog: v5.0.3...v5.0.4
5.0.3
Added
-
Geographic Path Visualization: Complete interactive map system with Leaflet
- Multiple tile layer support (OpenStreetMap, satellite, topographic, CartoDB variants)
- Individual segment map views with path geometry display
- Comprehensive segments map view with filtering support
- Overlapping segment detection and selection interface
- Status-based color coding for visual segment identification
-
Path Data Management: Full support for geographic path data
- KML, KMZ, and GeoJSON file format support
- Enhanced KMZ processing with multi-layer extraction
- Automatic 3D to 2D coordinate conversion
- Path geometry validation and error reporting
- Automatic path length calculation using projected coordinates
- Path data export as GeoJSON files
-
Advanced Map Features:
- Interactive controls (pan, zoom, fit-to-bounds)
- Fallback visualization with straight lines when path data unavailable
- Site markers for segment endpoints
- Detailed segment information panels
- Path data availability indicators
- Responsive map controls and layer switching
-
Enhanced Data Model:
path_geometry
field for storing MultiLineString geometriespath_length_km
field with automatic calculationpath_source_format
field tracking data originpath_notes
field for additional metadata- Geographic helper methods for coordinate handling
-
UI/UX Improvements:
- Template extensions for Circuits, Providers, Sites, Locations, and Tenants
- Custom table columns showing path data availability
- Date status indicators with visual progress bars
- Enhanced filtering including geographic data availability
- Improved navigation with map view integration
-
API Enhancements:
- Separate serializers for list and detail views (performance optimization)
- Geographic data endpoints for map visualization
- GeoJSON export capabilities
- Path bounds and coordinate data in API responses
- Enhanced filtering on geographic fields
-
GraphQL Support:
- Complete GraphQL schema with geographic field support
- Custom scalar types for path bounds and coordinates
- Lazy-loaded relationship fields for performance
- Geographic data queries and filtering
Changed
- Breaking: Upgraded to Django 5.2.3 with GeoDjango support
- Breaking: Added PostGIS dependency for geographic features
- Breaking: Modified database schema to include geographic fields
- Improved segment form with path data upload capability
- Enhanced segment detail view with geographic information
- Updated table layouts with new path-related columns
- Refactored status choices to use configurable ChoiceSet system
- Improved error handling for geographic data processing
Fixed
- Resolved migration conflicts during table renaming process
- Fixed segment validation to properly handle location-site relationships
- Improved date validation with better error messaging
- Enhanced KMZ file processing for complex archive structures
- Fixed coordinate system handling for accurate length calculations
Technical Details
- Added
geopandas
,fiona
, andshapely
as core dependencies - Implemented comprehensive GIS utility functions
- Added extensive JavaScript map handling with modular design
- Created reusable template components for map functionality
- Enhanced error handling and logging for geographic operations
- Implemented proper geometric validation and sanitization
Migration Notes
- Database Migration Required: New geographic fields require PostGIS
- Dependency Installation: Geographic libraries (GDAL, GEOS, PROJ) required
- Configuration Updates: May need GeoDjango configuration updates
- Data Migration: Existing installations will have empty path geometry fields
Full Changelog: v4.3.0...v5.0.3