Features
- Added indoor maps, allowing users to drill down from the geographic map to floor plans, retrieve indoor device information through the REST API, and filter locations by device status.
- Added a dedicated geographic map page with links from device pages and bookmarkable map actions for sharing specific map views.
- Allowed moving devices to update their position in real time on the dashboard map.
- Allowed opening indoor floor maps directly from their URL, including navigation between floors without first selecting a device.
- Added inspection and filtering of problematic metrics from the device list, making it easier to identify unhealthy devices without leaving the list page.
Changes
Other changes
- Improved location health status on the geographic map. Location markers now represent the predominant active-device health status while handling deactivated devices separately.
- Added 5G signal information and support for partial mobile signal metrics, including 5G RSSI and additional signal information in the device admin status tab.
- Simplified map world wrapping using the functionality provided by
netjsongraph.js. - Replaced the third-party
JSONFieldimplementation with Django's built-in JSONField, while preserving existing PostgreSQL data correctly during upgrades.
Dependencies
- Bumped
openwisp-controllerfrom~=1.2.0to ~=1.3.0. - Bumped
django-nested-adminfrom~=4.1.4to ~=4.1.6. - Bumped
python-dateutilfrom>=2.7.0,<3.0.0to >=2.9.0.post0,<3.0.0. - Upgraded netjsongraph.js to 0.4.0.
- Updated the bundled Plotly.js, Moment.js, and Leaflet Fullscreen libraries.
- Dropped support for Django
4.2. - Dropped support for Python
3.9.
Bugfixes
- Fixed broken charts on metric admin pages.
- Fixed incorrect metric health after a device became unknown, ensuring the correct health status is shown if the device is later reactivated.
- Fixed mobile signal attributes with zero values not being displayed.