Releases: usnistgov/NEMO
Releases · usnistgov/NEMO
7.4.0
Upgrade notes
- Remove
django-jsonform: this dependency is no longer used and must be removed from yourINSTALLED_APPS. - Only if using custom policy classes or for plugin developers:
- Update policy settings: to prevent deprecation warnings, rename
NEMO_POLICY_CLASStoMAIN_NEMO_POLICY_CLASSandNEMO_POLICY_CLASSEStoEXTRA_NEMO_POLICY_CLASSES(backward compatibility is temporarily maintained). - Developers: when adding policy classes, update your
AppConfigto use the newadd_extra_policy_classhelper fromNEMO.plugins.utils.
- Update policy settings: to prevent deprecation warnings, rename
Improvements
- Added configurable calendar resolution and label interval.
- Added a link back to staff charge on usage events when both are started at the same time from the tool control page
- Handling user access errors more gracefully in area views (tablet and web) by showing the error instead of a blank error page
- Added linked consumable withdrawal details in calendar usage
- Added option to stop charging staff time but keep using the tool
- Added customization to hide tool owners information from the tool details tab
- Users are now able to create reservations on the "reservation and use" calendar view
- Added new customization to choose what the default event view should be on the calendar
- Added conditions for showing labels in tool control customizations, so only options used are shown
- Added "usage_event" to autocomplete fields in consumable withdrawal admin to speed up page load
- Added consumable category filter in consumable withdrawal admin
- Added category and area filters to jumbotron and status dashboard views:
?category=<category_one>&category=<category_two>&area=<area_name_one>&area=<area_name_two> - Added
first_name,last_name,emailandcorrelation_idparameters to the URL for creating new users to have it pre-fill the corresponding fields (you can now use/users/new/?first_name=John&last_name=Smith&email=john.smith@example.com&correlation_id=12345). The correlation id will be set on the user but not saved in the database (it will be available in signals for linking another model)
Bug fixes
- Fixed staff on tool not seeing charges on behalf of users in my usage
- Fixed adjustment requests not showing correctly for child tools
- Fixed adjustment requests not showing own requests for users who are also reviewers
- Fixed calendar view not going all the way to the end of the day
- In tool control, when required resources are unavailable and they don't have a category, nothing will be shown (instead of
(None)previously) - Fixed policy issues with child tools (when checking required_resources for example)
- Fixed reservation not being shortened when using child tools
- Fixed verbose names on tool fields still having underscores
- Fixed django warning related to naive datetime (when checking policy off times for reservations)
- Fixed Oracle issues with JSON field in python 3.13 (when Oracle drivers already translate string into dict but django tries to do it again)
- Fixed usage view not displaying customer label for account managers
Libraries
- django-jsonform was removed
- cryptography 46.0.3 -> 4.0.5
- Django 4.2.28 -> 4.2.29
- pymodbus 3.11.4 -> 3.12.1
- Pillow 12.1.0 -> 12.1.1
7.3.7
7.3.6
7.3.5
7.3.4
Improvements
- Moved tool qualification expiration to individual tools
- Usage data history tab in tool control is now shows all usage history (not just ones with run data)
- Updated late cancellation penalty to only apply to start time being moved later. if the start time is moved earlier, that is allowed
Bug fixes
- Fixed issue with usage data history not showing for child tools
7.3.3
New features
- Added late cancellation reservation threshold (in minutes) to area and tool to mark late cancellations as missed. If set to 5 min for example, when a user cancels or moves a reservation less than 5 minutes before it starts, that reservation will be marked as missed. Thanks
MIT.nanofor the contribution! - Now tracking when tool is shut down (not operational) in UnplannedOutage model. It only covers cases when a tool status is changed to operational/non-operational from detailed admin or from a problem report. The model is accessible through the API as well. Thanks
Cornell NanoScale Facilityfor the contribution!
Improvements
- Added detailed admin validation for charges to never have an end date before the start date
- Now rounding reservation duration in detailed admin list display
- Added customization option to decide whether to let staff lock tool on problem shutdown or not (instead of being on by default)
- Added a new option for supervisors to see all managed users' usage in their usage page
- Allowing to define the order in which to display usage and alerts and occupancy based on the order of the parameters in the URL (for kiosk and area access pages)
- Added alert creator and creation time in alerts page
- Added new
use_project_billingpermission that can be given to users who should be able use the Administration -> Project billing page. ThanksStanford SNFfor the contribution! - Now allowing any user with the
add_consumablewithdrawpermission to use the supplies page in the Administration menu and in the kiosk, to checkout consumables for other users. ThanksMIT.nanofor the contribution!
Bug fixes
- Fixed error thrown when trying to create a reservation when a tool list is selected in calendar
- Fixed alerts, occupancy and usage showing after badging in on area access tablets even without the parameters being present
- Fixed tooltips in recurring charges showing True/False instead of showing the reason the charge is invalid
- Fixed validation error when consumable withdrawal quantity is null preventing proper comparison with consumable quantity
Libraries
- Pillow 12.0.0 -> 12.1.0
- packaging 25.0 -> 26.0
7.3.2
7.3.1
Bug fixes
- Added missing migration for area tree index
- Fixed error when showing adjustment requests only for reviewers and using a non remote-user authentication method
- Staff should always be able to shut down a tool when reporting a problem (even when problem shutdown is disabled for users)
7.3.0
Upgrade notes
- Make sure to update the adjustment request email in Customization -> File & email templates with this one
- Support for python 3.9 has been removed (end of life)
- In
settings.pyyou can removedjango_jsonformfromINSTALLED_APPSsince it is no longer needed - The python version in the docker container has been updated to python 3.13 (make sure to update the volume paths in docker-compose.yml if you are overriding files in the container)
- Plugins can now make use of the new
NEMO_POLICY_CLASSESinsettings.pywhich allows multiple policies. They have to all be OK for each method (save reservation, enable tool etc.) to be allowed
New features
- Added Account managers for accounts, who can see usage across all the projects under their managed accounts. Also added an option to email all account managers. Thanks
UPenn Singh Centerfor the contribution! - Users can now pick their landing page if they want to go directly to the Calendar or Tool control (and bypass the dashboard). This can be done in their preferences. Clicking on the "NEMO" link at the top left of the menu bar will always take them to the dashboard. Thanks
UPenn Singh Centerfor the contribution! - Added consumable checkout to the Kiosk (it needs to be enabled in Customization -> Application). Thanks
Stanford SNFfor the contribution! - Tool usage questions are now in a separate
Tool usage questionspart of Detailed administration. They can now be used with specific projects, groups, users, and can be set for multiple tools at once - Added a way for users to make their own custom tool lists in the calendar
- Added a reservation note which can be added on calendar reservation events. Thanks
Stanford SNFandMichigan Lurie Nanofabrication Facilityfor the contribution! - Added option in Customization -> Tool to allow tool usage note to be set. If enabled, the reservation note can be automatically copied into the usage note. The usage note can be set/updated before turning on the tool and before turning off the tool
- Added supervisor <-> managed users relationship, allowing to set managed users for a supervisor and allowing them to see the usage of all their managed users
- Added a
required area occupancy minimumin tools to prevent tool engagement unless there are at least that many people logged in the area. ThanksMIT.nanofor the contribution!
Improvements
- Added charge number and table search in transfer charges page. Thanks
UPenn Singh Centerfor the contribution! - Updated the method to safely initialize queryset during startup to not throw exception on missing tables
- Added new "manager edit mode" (which needs to be turned on in Customizations -> Accounts and projects) to allow adding/removing project and account managers on the accounts and project page
- Added
usage_eventvariable to required unanswered email template. ThanksStanford SNFfor the contribution! - Added a
notefield to accounts. ThanksUSC Nanofabfor the contribution! - Optimized loading time for
My usageandUserpages - Optimized general loading time everywhere by caching Customizations
- Added readonly primary owner on tools field in Detailed administration -> Users
- Added reservation abuse weight to tool and area configuration to allow giving more weight to some tools/areas in the abuse calculations. Thanks
MIT.nanofor the contribution! - The Kiosk URL now allows
category=<category_name>andtool=<tool_name>(both parameters can be chained multiple times). ThanksMIT.nanofor the contribution! - The Kiosk URL now supports
virtual_inputs=falseto disable virtual inputs (virtual keyboard) by kiosk. ThanksMIT.nanofor the contribution! - All request parameters will now be passed from
welcome_screenandfarewell_screenURLs to the kiosk if the Kiosk button is enabled. ThanksMIT.nanofor the contribution! - Both
welcome_screenandfarewell_screencan show alerts and usage by addingusageandalertsparameters in the URL - New UI for adjustment requests that should make it easier to filter and organize them. It also provides a major load time boost. Thanks
UPenn Singh Centerfor the contribution! - Users can now make an adjustment request to have the charge moved to a different project. Adjustment requests now keep track of original charge data (in case you want it reverted after applying a change). Thanks
Michigan Lurie Nanofabrication FacilityandCornell NanoScale Facilityfor the contribution! - Added option to only enable adjustment requests for reviewers (regular users won't be able to create new ones). Thanks
Michigan Lurie Nanofabrication Facilityfor the contribution! - Added option in Customization -> Adjustment requests to allow adjustments until a certain day each month (billing day). Thanks
Stanford SNFandMIT.nanofor the contribution! - Updated user profile view by adding tools they are reviewers on, managed accounts, managed projects, managed users and supervisors.
- Added
usage,occupancyandalertsparameters to Jumbotron URL to customize sections displayed. If parameters are false, that section won't be shown. ThanksUPenn Singh Centerfor the contribution! - Jumbotron tables will automatically scroll when the data overflows. Thanks
UPenn Singh Centerfor the contribution! - Added staff charge note to usage export. Thanks
Stanford SNFfor the contribution! - Tool comments can now be visible for x number of days (999 days max)
- Added option in Customization -> Tool to allow changing tool configuration while the tool is in use. Thanks
Stanford SNFfor the contribution! - Added option in Customization -> User to decide whether new users should be active or inactive by default when creating them
- Removed dependency on django-jsonform for tool properties (using our own widget now)
- Added options for default reminder days and whether users should receive the reminders at all in Customization -> Recurring charges. Thanks
MIT.nanofor the contribution! - Detailed administration actions now follow django permissions (so someone without add permission cannot use the
duplicate tool configurationaction for example). ThanksMIT.nanofor the contribution! - In Detailed administration -> Tools, added option to enable shutting down a tool when reporting a problem.
- Added option to customize the banner displayed on the dashboard when Facility rules tutorial is needed (in Customization -> Application) and to customize the
Facility rules tutorialname itself - When a reservation title or reservation note is updated, a calendar invite will be sent as well. Thanks
MIT.nanofor the contribution! - Added consumable category filters and invalid filter in Recurring charges. Thanks
MIT.nanofor the contribution! - Added option when staff are reporting a tool problem to not lock the tool (only displayed if the tool does have an interlock). Thanks
MIT.nanofor the contribution!
API
- Added filters by consumable name in consumables endpoint
- API Upload file is now under the
Raw datatab and will output the content in the main text area - Added
user_calendar_tool_listsendpoint - Added
membership_historyendpoint. ThanksMIT.nanofor the contribution! - Tool usage questions are now available at
/api/tool_usage_questions/instead of/api/tools/
Bug fixes
- Fixed configuration changes not being saved on the kiosk
- Fixed issues in user form when the validation would refer to the is_staff field that doesn't exist in the regular GUI page in NEMO
- Fixed wrong method signature causing the interlock report to fail for ProXR interlocks
- Fixed the application identifier search not working in the project billing page
- Fixed a bug with creating reservations on behalf of another user which would not ask for the project
- Fixed a bug when using a tool for training did not correctly show the record training page after disabling the tool
Libraries
- bootstrap-datetimepicker.js 4.17.43 -> 4.17.49
- cryptography 45.0.4 -> 46.0.3
- Django 4.2.26 -> 4.2.27
- django-auditlog 3.2.0 -> 3.4.1
- django-mptt 0.14.0 -> 0.18.0
- djangorestframework 3.16.0 -> 3.16.1
- packaging 24.2 -> 25.0
- Pillow 11.2.1 -> 12.0.0
- requests 2.32.3 -> 2.32.5
- pymodbus 3.8.6 -> 3.11.4