Upgrade notes
- The new version of Gunicorn drops all HTTP headers with underscores in it. If using the docker image of NEMO, make sure you do not set any headers with underscores (use dashes, which are automatically converted to underscores in NEMO anyway)
Improvements
- Organized all inactive projects under a separate section for an account. Thanks `USC Nanofab` for the contribution!
- Added handling of checked status for required checkboxes in Dynamic forms. Also making them slightly visible (transparent, 1x1 boxes) to better handle validation.
- introduced "auto_resize" option for text areas in Dynamic forms.
- Updated Tool usage counters to work with either pre or post usage questions (or both). Thanks `MIT.nano` for the contribution!
- Added new option in Customization -> remote work to assume work on behalf of another user is **never** remote. These options are now more clear: `always`/`never` considered remote, or `ask explicitly`. Thanks `MIT.nano` for the contribution!
- Reordered impersonate checks to avoid extra db call on most requests.
- Changed loading spinner behavior to hide on page unload instead of pageshow. Now the spinner can be used in ajax requests like adjustment requests.
- Slightly improved adjustment requests loading time.
- Added more options in Landing Page Choice view permissions. Icons can now be shown to anyone or specific roles/groups of people allowing a lot of flexibility.
- Added option to unlock door on area logout. Thanks `MIT.nano` for the contribution!
- Added "read_only" option for text fields in Dynamic forms.
- Added "show_formula_preview" option for Dynamic form Formula field which will display the formula result as readonly field on the form.
- Updated Dynamic form events to automatically handle add/remove of group questions and showing/hiding enable and disable tool buttons. Dynamic form changes now trigger `dynamic-form-group-changed` and `dynamic-form-field-changed` js events.
- Added `GenericRemoteUserAuthenticationBackend` and `GenericBasicAuthenticationHeaderAuthenticationBackend` to handle remote user without removing and everything after.
- Added support for pre-filling description in adjustment request (with GET parameter `description`)
Bug fixes
- In detailed admin, fixed the permission issues preventing someone from using the autocomplete to find related objects. For example if a user had Staff Charge creation permission, they wouldn't be able to select a user unless they also had view permissions on all users. This fix guarantees they can select them if they have creation or change permissions on the parent object.
- Fixed leftover "date" field preventing reservation from being made on kiosk and mobile devices.
- Fixed an error when displaying run data in usage in the calendar view.
- Fixed error being thrown when kiosk plugin is installed but not area access.
- Fixed a bug in area access tablets where project validation would not happen if the user had only one project and that project had area restrictions (derived from tool restrictions). This is an edge case unlikely to affect many users.
- Fixed buffer days for automatic user deactivation which was reversed. Users were deactivated days before instead of days after their access expiration date.
- Fixed landing page link automatic prepending of `SCRIPT_NAME` (when deploying NEMO on a subpath) which should only happen for relative links.
- Fixed Dynamic form group questions not working for pre usage questions.
Libraries
- Django 4.2.19 -> 4.2.20
- cryptography 44.0.1 -> 44.0.2
- drf-excel 2.5.2 -> 2.5.3