Features
-
Added real-time progress updates for single and mass upgrade operations. Mass upgrade details now use a paginated table which can be filtered by status and organization.
-
Added mass upgrades by device group or location.
-
Allowed cancelling upgrade operations.
-
Added the following firmwares to the default firmware image map:
- Google Wifi (Gale) > - EnGenius EWS2910P > - Extreme Networks WS-AP3825i > - TP-Link TL-MR6400
Changes
Other changes
- Allowed deletion of completed upgrade operations. Single and batch upgrade operations can now be deleted when they are no longer in progress.
- Improved cascade deletion of upgrade operations, allowing parent objects such as organizations to be deleted while still preventing direct deletion of in-progress operations.
- Improved breadcrumbs and display names for upgrade operations.
- Improved compatibility with OpenWISP admin themes by using shared theme color variables.
Dependencies
- Bumped
openwisp-controllerfrom~=1.2.0to ~=1.3.0. - Bumped
django-private-storagefrom~=3.1.0to ~=3.1.3. - Dropped support for Django
4.2. - Dropped support for Python
3.9.
Bugfixes
- Fixed errors when OPENWISP_FIRMWARE_UPGRADER_API is disabled. Upgrade operation pages no longer raise
NoReverseMatchwhen the REST API is disabled. - Fixed upgrade operations being allowed on deactivated devices.
- Fixed HTTP 500 errors when device credentials are missing by reporting a validation error instead.
- Fixed migration
0002to correctly create permissions when using a custom group model. - Fixed HTTP 500 response in the device admin when submitting firmware without selecting an image.