Skip to content

Releases: usnistgov/NEMO

4.4.1

31 Jan 03:04
Compare
Choose a tag to compare
  • fixed modbus issue with new version of pymodbus

4.4.0

25 Jan 14:47
d9d0fc8
Compare
Choose a tag to compare

Update notes

Support for Python 3.7 has been dropped. Python 3.8 or newer is now required:

  • If you are using the docker image, it will be automatically taken care of.
  • If you are installing NEMO using pip, you will need to update your version of python, as well as your start/stop services to point to gunicorn from python 3.8

New features

  • Added Safety as a new main menu item. Safety issues and Safety data sheets have been moved under this new section to provide a main Safety "hub" in NEMO.
  • Added Safety items:
    • It is a customizable list of Safety bullet points, consisting of a name, a description and (optionally) a list of documents.
    • Safety items can be grouped in Safety categories.
    • PDF and Video documents (.mp4, .ogv, .webm, .3gp) can be opened directly in NEMO (popup)
    • All other types of documents will take the users to the link/download the file.
    • Users can search through Safety items name and descriptions.
  • In Customization -> Safety, the Safety menu item can be hidden, as well as the Safety suggestions and SDS. Safety categories can be organized as flat/collapsible items all in one page, or as separate side sub-menu items.

Improvements

  • Added update of os packages when building NEMO docker images, to guarantee the latest security patches and updates are installed.
  • Allowing user office members to force a user out of a tool.

Bug fixes

  • Fixed an issue on Chrome (Windows only) and Safari when clicking the back button after a spinner was shown would keep that spinner on indefinitely.

Libraries

  • gunicorn 19.9.0 -> 20.1.0
  • cryptography 38.0.4 -> 39.0.0
  • Pillow 9.3.0 -> 9.4.0
  • pymodbus 2.5.3 -> 3.1.1
  • pytz 2022.6 -> 2022.7.1
  • requests 2.28.1 -> 2.28.2

4.3.2

16 Dec 18:54
ba8ca5c
Compare
Choose a tag to compare

Bug fix

  • fixed training not being recorded when click the confirm button
  • fixed non technical staff not having access to staff status view options and past/future calendar
  • fixed user office needing access to areas when "allow_staff_access" is set on physical access levels
  • fixed user office not recognized as staff in occupancy screens

4.3.1

14 Dec 13:08
Compare
Choose a tag to compare

Bug fix

  • fixed csrf token issue on tool qualification customization

4.3.0

12 Dec 21:11
1821ccb
Compare
Choose a tag to compare

Update notes

  1. New User Office and Accounting Officer roles have been added. They allow a greater level of granularity in NEMO. Consequently, Staff users won't be able to edit user information or see the billing information for other users by default. To give a user any of the new roles, go to Detailed Administration -> Users select the user and check the User office or Accounting officer checkbox and uncheck the Staff box. More information can be found in the feature manual.
  2. A cron job for access expiration email reminders needs to be enabled for the feature to work. A systemd version for docker is available in the systemd folder.
  3. A cron job for managing tool qualifications needs to be enabled for the feature to work. A systemd version for docker is available in the systemd folder.
  4. A cron job for managing recurring charges needs to be enabled for the feature to work. A systemd version for docker is available in the systemd folder.

New features

  • Added recurring consumable charges, which allows charging users for the same consumable at a given frequency. For example, charging user for renting user bins every year.
    • Recurring charges can be exported (including potential errors)
    • The quantity can be forced to a certain number in customization (for example when it should only and always be just one)
    • The recurring charges can be locked so non facility managers can only assign them to user and not change the frequency or linked consumable.
    • A consumable category can be set in customization to limit recurring charges to only consumables belonging to that category.
    • Validating customers (inactive, access expired, etc.) can be deactivated for recurring charges in customizations.
    • Users can set email reminders for their recurring charges in User preferences.
  • Added Tool qualification expiration to remove tool qualification from users after a certain number of days. It needs to be enabled in Customization -> User. An example of the email template can be found here. There are 2 separate cases that can be customized:
    1. Number of days since the user last used a tool. For example, remove tools from the user qualifications if they have not used it for 6 months.
    2. Number of days without using a tool since the user was trained on that tool. For example, remove tools from the user qualifications if they haven't used it in the 2 weeks after being trained on it.
  • Added Access expiration reminder email to remind users a certain number of days before their access expires. It needs to be enabled in Customization -> User. An example of the email template can be found here.
  • Added an optional EMAIL_USE_DEFAULT_AND_REPLY_TO option in settings.py to use the default server email for all communication and setting the reply-to of the email to the actual sender. This option is helpful when using an email server that doesn't allow spoofing (for example a unique Gmail address).
  • Added an optional USERNAME_REGEX option in settings.py to validate usernames.
  • Added an optional MAIN_URL option in settings.py. This is useful when running multiple instances of NEMO, so all email links are sent to the same URL.
  • Added audit log library that can be customized to track any changes in NEMO. See setup instructions on the wiki.
  • Added a few contributions from Cornell NanoScale Facility:
    • Added Discipline, a new configurable category that can be set on projects (Chemistry, Electronics etc.).
    • Added Safety trainings, a new configurable list of trainings that can be checked/unchecked for each user.
    • Added Onboarding phases, a new configurable list of items that can be checked/unchecked for each user.
    • Added user and project document upload, which can be enabled in Customization -> Application and Customization -> Projects & accounts.

Improvements

  • Added unit_id for interlocks using Modbus and added last reply time.
  • Added tooltips with tool information in the status dashboard page.
  • All email templates can now use global variables like site_title, facility_name etc.
  • Updated autocomplete to be either synchronous or asynchronous, the ladder considerably speeding load time of pages like "Users".
  • The user search bar is now available when viewing/modifying users to facilitate switching between them.
  • Consumables can now be reusable which will prevent the quantity from ever decreasing when withdrawals are made.
  • Added customization in Customization -> User to hide inactive user in the users page and made the modify user page go back to previous pagination page upon success. Thanks USC Nanofab for the contributions!
  • Added customization in Customization -> Project & accounts to hide inactive accounts, inactive projects, and to collapse the project list by default. Thanks Polytechnique Montréal for the contributions!
  • Added a way to change the calendar time format in Customization -> Calendar.
  • Updated buttons in the entire application to have a consistent color and icon for same functionality.
  • Optimized Safety Data Sheets page and added sorting by Hazard.
  • Users now have the option to opt out from some of the email notifications in User preferences.
  • Added Safety Data Sheets CSV export.
  • Made pagination number of results per page sticky when navigating away and back. Also added an "all" option.
  • Broadcast email feature now allows selecting multiple tools/areas/projects/accounts.

Bug fixes

  • Fixed delayed docker container removal when stopping NEMO. Thanks @r-xyz for the contribution!

Librairies

  • added django-audit-log 2.2.1
  • added pytz 2022.6
  • cryptography 37.0.4 -> 38.0.4
  • django 3.2.15 -> 3.2.16 (vulnerability)
  • django-auditlog 2.2.0 -> 2.2.1
  • django-mptt 0.13.4 -> 0.14.0
  • djangorestframework 3.13.1 -> 3.14.0
  • drf-excel 2.1.0 -> 2.2.0
  • Pillow 9.2.0 -> 9.3.0

4.2.1

06 Sep 17:43
6ec9cef
Compare
Choose a tag to compare

Bug fixes

  • allowed for longer file names in chemical documents (in case the chemical name is pretty long)
  • fixed issue with rates table not being expanded/collapsed correctly
  • fixed CSS for rates table title
  • fixed fullcalendar flickering when events are reloaded

4.2.0

02 Sep 14:43
0607e64
Compare
Choose a tag to compare

New features

  • Added Safety data sheets:
    • ChemicalHazard (flammable, toxic, etc.) and Chemical objects should be added in the Detailed administration
    • Chemical document can be either uploaded to NEMO or set with a URL
    • Common hazard icons are available in the resources folder
    • Keywords/synonyms can be set for a Chemical and search through in the Safety data sheet page
    • There is no direct link in the navigation bar. A Landing page choice option needs to be added for this with url /safety_data_sheets/. An SDS icon is available for download in the resources folder
  • Added a button in the calendar to only display qualified tools for non-staff users. This feature is disabled by default and needs to be activated in the Customization page. Thx @pdessauw and NIST MML for the contribution!

Improvements

  • Updated style of Rate table in Tool control. The table is collapsed by default and can be expanded by default by checking the box in Customization -> Rates
  • Added LDAP "username_format" property to allow for custom formatting of the username
  • Checks during login are now case insensitive for username
  • Added Staff absence note which will only be visible to facility managers
  • Non-working days will not be shown as absence on the facility manager view of staff status
  • Updated display of comments in Tool control to keep new lines

Bug fixes

  • Fixed a bug preventing rates from being loaded at startup
  • Fixed a bug when running migrate of makemigrations before database is initialized
  • Fixed a bug when authentication fails and is not sending to the correct page due to not allowing POST
  • Fixed interlock configuration not accepting 0 as coil number
  • Fixed an issue where all tools would disappear when expanding/collapsing categories and switching from Calendar to Tool control
  • Fixed a ClosureTime warning on the staff status page
  • Fixed validation for reservation questions not being updated when adding/removing a group question

Librairies

  • Django 3.2.13 -> 3.2.15 (vulnerability)
  • drf-flex-fields 0.9.8 -> 1.0.0
  • cryptography 37.0.2 -> 37.0.4
  • django-filter 21.1 -> 22.1
  • requests 2.27.1 -> 2.28.1
  • Pillow 9.1.1 -> 9.2.0

4.1.2

06 Jul 18:03
Compare
Choose a tag to compare
  • Updated Django 3.2.13 -> 3.2.14 (vulnerability fix)

4.1.1

20 Jun 14:28
Compare
Choose a tag to compare

Bug fix

  • fixed an issue when accessing admin area access page that would try to load all access records ever created.

4.1.0

15 Jun 19:32
16c208d
Compare
Choose a tag to compare

Upgrade notes

To enable the new sensor data plugin:

  • Add 'NEMO.apps.sensors' to INSTALLED_APPS in your settings.py
  • Add a cron job to run every minute, either calling docker exec -it nemo django-admin manage_sensor_data or sending an http request to /manage_sensor_data

Live demo!

A live splash pad demo is now available at https://nemo.nist.gov/demo.
You can find the instructions on how to use it here

New features

  • Added Sensor data plugin for temperature, humidity, gases etc.:
    • Sensor cards can be created in a similar way to the interlock cards. Currently only Modbus TCP connection is available for sensors.
    • Sensors can be added to a sensor card as well as Sensor categories to organize all the sensors.
    • Sensor data can be displayed as a graph with different date ranges and data can be exported in csv file for further processing.
    • Sensor email alerts can be set with a trigger condition or when no data is read for a sensor.
    • The sensor dashboard will display sensor or categories as red when an alert has been triggered.
  • Split customization settings into tabs for better readability and refactored it in a way that plugins can now add their own.
  • Added option to make training required flag for new users optional (in customizations page).
  • Added alternate email in user preferences (gear icon on top right corner in NEMO) as well as flags to decide which NEMO emails should be sent to the alternate email address.

Improvements

  • Added landing page option flag to hide item from staff (visible to facility managers and admin only)
  • Added minified version of most Javascript libraries to improve page load time
  • Date pickers will now follow the format set for DATETIME_INPUT_FORMAT, DATE_INPUT_FORMAT and TIME_INPUT_FORMAT for better consistency throughout the application. Remove Bootstrap datepicker in favor of more versatile datetimepicker.
  • Added red border on required reservation and post usage questions, and on failed validation to better spot where the error is. Updated validation checks to happen on any input rather than only on required ones.
  • Added new REST_FRAMEWORK API permission: 'NEMO.permissions.DjangoModelPermissions' that allows for more granular permissions. With this permission class, users need view permission on individual models (UsageEvent, Project, Account etc.) to be able to access the data in the REST API. The only exception is for accessing billing data, which requires the special use_billing_api permission to access since no models are directly associated with billing.

Bug fixes

  • Fixed issue where staff status calendar was not respecting the closure staff_absent flag (always showing closure rather than only when flag is set)
  • Fixed "Cancel outage" button not showing anymore
  • Users should be logged in to access any media files. Thanks @r-xyz for reporting and fixing this!
  • Fixed a chicken-and-egg situation when migrating or creating migrations

Libraries

  • Django 3.2.12 -> 3.2.13 (vulnerability)
  • Moment 2.10.2 -> 2.29.3
  • cryptography 36.0.2 -> 37.0.2
  • Pillow 9.1.0 -> 9.1.1 (vulnerability)