Skip to content

Releases: usnistgov/NEMO

5.2.0

10 Jan 18:28
8093659
Compare
Choose a tag to compare

New features

  • Users logged in outside their allowed area access (for example users staying after hours in an area when they only have business hours access) will now be shown in red in the status dashboard and other pages showing occupancy like the Jumbotron (thanks Princeton Micro/NanoFabrication Center for the contribution!).
  • Added customization setting in Customization -> Calendar to show configuration settings the user picked directly in the reservation feed, similar to the Configuration agenda feed (thanks UPenn Singh Center for the contribution!).
  • Added customization setting in Customization -> Status dashboard to hide projects the user is working on in the area occupancy tab (thanks Cornell NanoScale Facility for the contribution!).
  • Added new broadcast email option to send an email to all Principal investigators. It can be filtered to only be sent to PIs of active projects, and can also be filtered down to a subset of selected projects (thanks Cornell NanoScale Facility for the contribution!).

Improvements

  • Updated jumbotron, kiosk and area access templates to use minified versions of js and css files
  • Added customization setting in Customization -> Tools -> Tool control for showing task details by default in tool control (thanks @abuckles-uci for the contribution!). #185
  • Updated configuration history to include slot number in item name when using multiple settings in the same configuration
  • Added users to Permission and Group in Detailed administration
  • Updated reservation flow on mobile and kiosk to have the user pick a date and time before showing configuration and reservation questions, to be consistent with the desktop calendar flow (thanks Stanford SNF for the contribution!).
  • Added direct link to the tool control page on the tool information tooltip displayed in the status dashboard. #191
  • Optimized access request queries to improve load time on the access requests page
  • Added favicon link in all base templates
  • In accounts and projects page, the search results will now have [INACTIVE] before the project or account name and inactive ones will be at the bottom of the list

API

  • Added project application iexact filter to allow case insensitive search for a project by its application identifier.
  • Added users to authentication permissions and groups endpoints. This allows viewing and setting the list of users through the API.
  • Added users and principal_investigators to projects endpoint. This allows viewing and setting them through the API.
  • Reservation's question_data field can now be null (thanks @NickiShaw for the contribution!). #194
  • Added InterlockCardCategories, InterlockCards and Interlocks endpoints.
  • Added /tool_status/ endpoint to return useful current tool information (thanks Cornell NanoScale Facility for the contribution!):
    • id (integer)
    • name (string)
    • category (string)
    • in_use (boolean)
    • visible (boolean)
    • operational (boolean)
    • problematic (boolean)
    • problem descriptions (string: list of problems)
    • customer id (integer)
    • customer name (string: first name last name)
    • customer username (string)
    • operator id (integer)
    • operator name (string: first name last name)
    • operator username (string)
    • current usage id (integer)
    • current usage start (datetime)
    • outages (string: list of current outages)
    • partial outages (string: list of current partial outages)
    • required resources unavailable (string: list of unavailable resources the tool fully depends on)
    • optional resources unavailable (string: list of unavailable resources the tool partially depends on)

Bug fixes

  • Fixed bug when searching user preferences in Detailed administration
  • Fixed empty string being recorded as a valid answer for required post usage questions
  • Fixed tool documents order not being respected in tool control page (reverse order of date uploaded)
  • Fixed error in training when entering a wrong tool name or group name would throw an exception

Libraries

  • Django 3.2.22 -> 3.2.23
  • django-filter 23.4 -> 23.5
  • Pillow 10.1.0 -> 10.2.0

5.1.0

06 Dec 14:15
4e922d0
Compare
Choose a tag to compare

Upgrade notes

  • Be aware that due to the reservation/configuration model changes, depending on the number of reservations and configurations in your instance, the update to NEMO 5.1.0 can take up to 10-15 minutes.

New features

  • Added long awaited color-coded configuration agenda feed in Calendar! Colors are set in Detailed administration -> Configurations -> Calendar colors (thanks UPenn Singh Center and Stanford SNF for the contribution!) #165
  • Added transfer of charges from one project to another. The option needs to be enabled in Customization -> Projects and accounts (thanks Stanford SNF for the contribution!)
  • Added new parameters to display tool usage and/or alerts in Kiosk main page (thanks @r-xyz for the contribution!) #178
  • Added Customization options to rename main menu items: Calendar, Tool Control, Safety, Requests (Thanks @abuckles-uci for the contribution!) #181

Improvements

  • Allowing to change outage dates when looking at outage details in the calendar. #171
  • Consumable categories are now collapsible in supplies page. They can be set to either expanded or collapsed in Customization and are expanded by default (thanks Stanford SNF for the contribution!)
  • Added customization to send tool problems and updates to superusers. #173
  • Now allowing 0 as a valid integer in customization integer lists

API

  • Added related object names as valid filters (i.e. tool and tool_id are both valid for filtering, not only tool_id)

Libraries

  • cryptography 41.0.4 -> 41.0.7
  • django-filter 23.3 -> 23.4
  • Pillow 10.0.1 -> 10.1.0

5.0.0

23 Oct 18:15
187f876
Compare
Choose a tag to compare
  • This new version of NEMO does not contain any new functionality, but the codebase has been entirely reformatted using black.
    This means that from now on NEMO's code will be using spaces instead of tabs, and all code and contributions should be formatted using black with the option --line-length=120

  • Both NEMO and Splash Pad containers are now running Python 3.11

Upgrade notes (Forks only)

If you have a fork of NEMO, the easiest way to update is the following:

  1. Merge all changes up to NEMO 4.7.1
  2. Create a new branch in your fork
  3. In PyCharm, change tabs to spaces in Settings -> Editor -> Code Style -> Python -> uncheck "use tab character" and install and set up black in Settings -> Tools -> Black with the --line-length=120 parameter
  4. Run black on the entire *.py project files
  5. Merge NEMO 5.0.0
  6. Resolve any potential conflicts by accepting your version over NEMO

4.7.1

11 Oct 23:13
Compare
Choose a tag to compare

Bug fixes

  • Fixed calendar issue when looking at qualified tools only

4.7.0

10 Oct 17:53
46d8692
Compare
Choose a tag to compare

Upgrade notes

  • For the area auto logout feature, a timed service action/systemd service needs to be enabled on the server. See nemo_auto_logout.service and nemo_auto_logout.timer files in the systemd resource folder
  • If your are using Django Rest Framework's pagination, change the DEFAULT_PAGINATION_CLASS to NEMO.rest_pagination.NEMOPageNumberPagination to be able to override page size on the fly using the page_size request parameter

New features

  • Added the ability to set an auto-logout time for each area. A timed service task needs to be enabled for this feature to work (thanks Cornell NanoScale Facility for the contribution!).
  • Added checkboxes in calendar view to allow viewing more than one tool/area at a time (thanks Stanford SNF for the contribution!)
  • Configuration agenda's near future days can now be configured in Customization -> Tools (thanks Polytechnique Montreal for the contribution!)
  • Added an option in Customization -> Tools to allow tool superusers to be exempt from reservation policy rules (thanks UPenn Singh Center for the contribution!)
  • A topic has been added to the email subject in the broadcast email feature. This topic will be the tool, project or account selected to send an email about. The topic is not added when more than one tool/project/account is selected (thanks UPenn Singh Center for the contribution!)
  • Consumables can be set to be checked out by regular users (True by default). This only affect instances where consumable self checkout is enabled (thanks Stanford SNF for the contribution!)
  • Added support for banks for NCD/ProXR interlocks and support for relay 0 to turn on/off all relays (thanks Stanford SNF for the contribution!)
  • Reviewers for adjustment requests and access requests can now be set on the relevant tool/area and defaults to all facility managers if left blank. This replaces the manager's preference fields to limit adjustment requests (thanks Stanford SNF for the contribution!)

Improvements

  • In status dashboard, jumbotron and tool status, now displaying the date using Django's MONTH_DAY_FORMAT setting (default to "October 9th"). See #159
  • Added the ability to attach pictures when using the broadcast email feature (thanks UPenn Singh Center for the contribution!)
  • Added a resizing limit for attached images when reporting a tool problem (thanks UPenn Singh Center for the contribution!)
  • Added a setting to send new tool problems to all qualified users (thanks USC Nanofab for the contribution!)
  • For PIs in usage page, now showing user's own usage by default, instead of all managed projects (thanks Cornell NanoScale Facility for the contribution!)
  • Showing project PIs in edit user page when available
  • For temporary access requests, the user office will not be cc'd anymore
  • Freed time notifications will now be sent when a reservation is missed or shortened
  • Added service personnel checkbox on edit user page to give users the service personnel role
  • Added notes for consumables, updated user interface to show both notes and quantity left (thanks Stanford SNF for the contribution!)
  • Added label support for dynamic form (post usage questions, reservation questions) for radio buttons, checkboxes and dropdown types. This allows to show different values than the one being submitted
  • Added actions to enable/disabled multiple interlock and sensor cards at the same time

API

  • Added exact filters wherever iexact was used
  • Added filters for validated and validated_by for all charge types
  • Added readonly PIs field in Projects endpoint
  • When using pagination and the new NEMOPageNumberPagination class, the page size can be changed on the fly by using the page_size request parameter
  • Pagination is now automatically bypassed for any requests not rendered using the Browsable API (except if the page_size parameter is used explicitly in the request). Consequently, exporting in json, excel, etc. will return all results and be less confusing.

Bug fixes

  • Fixed a bug in staff status not showing closures when the closure is on the last day of the period the user is looking at
  • Fixed conditional expression in tool status wrongly showing usage data history tab to staff even when no post usage questions are set (#164)
  • Fixed API issue when data would not be rolled back when bulk saving users with integrity errors (non unique username for example)
  • Fixed tab issue in requests not showing the correct default tab in some cases

Libraries

  • cryptography 41.0.2 -> 41.0.4
  • Pillow 10.0.0 -> 10.0.1 (vulnerability)
  • Django 3.2.21 -> 3.2.22 (vulnerability)
  • django-filter 23.2 -> 23.3

4.6.4

29 Sep 16:11
Compare
Choose a tag to compare

Libraries

  • Django 3.2.20 -> 3.2.21 (vulnerability)

Improvements

  • Now passing user to rates to allow filtering

4.6.3

28 Jul 21:08
7caef02
Compare
Choose a tag to compare

Bug fixes

  • Fixed non visible staff in staff status throwing error
  • Fixed consumable withdrawal not being validated before saving them
  • Fixed a bug when forcing another user out and the wrong user's reservation is shortened
  • Fixed bug when managers would get notifications/emails for adjustment requests but not see them in the list

Improvements

  • Added user preferences setting for facility managers to limit areas to receive adjustment request for

4.6.2

26 Jul 20:04
a1267d8
Compare
Choose a tag to compare

Improvements

  • updated colors for status dashboard, jumbotron and occupancy

4.6.1

25 Jul 22:18
ddcb8e0
Compare
Choose a tag to compare

Bug fixes

  • Fixed staff status previous button not working
  • Fixed customization name not allowing more than 50 characters
  • Fixed case when no one could receive adjustment notifications if all managers have a restricted list of tools for adjustments (sending to all if that's the case)
  • Fixed deprecated ANTIALIAS property from Pillow

Improvements

  • Added Customization to not show areas in use in usage reminder notification email

4.6.0

18 Jul 16:53
343dd9a
Compare
Choose a tag to compare

Upgrade notes

  • If using the consumables/supplies self-checkout feature, a dashboard icon (landing page choice with url /consumables/ in detailed administration) needs to be added for regular users to have a link to it (one is available in the icons folder)
  • To enable the new contracts sub-plugin:
    • "NEMO.apps.contracts" needs to be added to INSTALLED_APPS in settings.py.
    • A timed service job needs to be created for contract reminders to be sent (an example is available in the systemd folder).

New features

  • Added new contracts sub-plugin, where Service contracts, Procurements and Contractor agreements can be tracked:
    • Service contracts and contractor agreements have a reminder date and facility managers receive emails when they are due for renewal
    • Contractor agreements are linked to either Service contracts or Procurements
    • Service contracts and contractor agreements can be renewed (a new item is created with year +1)
    • Each list can be exported in CSV format
  • Added an option to let user self-checkout consumables and supplies in Customization -> Application (thanks Cornell NanoScale Facility for the contribution!)
  • In Area access plugin, added an option to automatically log users out when they are trying to login to the same area again, so tablets can be used for both entrance and exit (thanks UPenn Singh Center for the contribution!)
  • Added tool freed time notifications, allowing users to set a list of tools they want to be notified for, when time is freed up either from a cancellation or moving a reservation. Users can set the tool list in preferences, and set the minimum time and days in the future to trigger the notifications (thanks Princeton Micro/NanoFabrication Center for the contribution!)
  • Added new setting in setting.py called NEMO_EMAIL_SUBJECT_PREFIX to add a prefix to all NEMO related emails (thanks UPenn Singh Center for the contribution!).

Improvements

  • Updated colors and contrasts, added label and better support for screen readers and accessibility in NEMO (thanks to Cornell NanoScale Facility detailed report on accessibility).
  • Added task resolution time to task update emails
  • Added item id in billing api
  • Added option to set default badge reader configuration and fixed a bunch of issues when only using send key and not using any recording key (thanks UPenn Singh Center for the contribution!)
  • Added option to retry sensor data reading before triggering a no data alert
  • Added alert logs in sensor categories, limited to the last 30 alerts
  • Added flag on tools to prevent qualification from ever expiring (thanks Polytechnique Montreal for the contribution)
  • Optimized status dashboard loading time and made first page load asynchronous.
  • Added an option in preferences for facility managers to limit tools they are receiving/viewing adjustment requests for.
  • Added an option in preferences for facility managers, technical staff and service personnel to either limit or add tools they want to view maintenance records for and view task notifications for. This is particularly useful with facilities with multiple managers handling separate sets of tools (thanks UPenn Singh Center for the contribution!)
  • When technical staff have a reservation and are done working on a tool, they will now be offered the option to free up the remaining time on their reservation.
  • Added customization setting to allow Technical staff, User office or Accounting staff to see the details of a staff absence (type of leave, notes) in the staff status tab of the status dashboard.
  • Updated NEMO references in email templates to automatically use the site title customization (thanks @r-xyz for the contribution!).
  • Reservation start and end date can now be changed manually in the reservation details page (only by the reservation user or staff). Thanks @jat255 for the suggestion.

Bug fixes

  • Fixed badge number issue when importing users from API (wrongly rejecting duplicates)
  • Fixed bug when trying to validate an ongoing staff charge
  • Fixed API file import issues when redirecting (for example when redirecting http -> https)
  • Fixed sensor reading not allowing to read at address 0
  • Fixed trying to open the door when no interlocks are set
  • Fixed unanswered post usage question email when forced off by staff to be sent by user office email (instead of site email). Thanks @r-xyz for the contribution!
  • Fixed delayed splash_pad container removal (thanks @r-xyz for the contribution!).

Libraries

  • Django 3.2.19 -> 3.2.20 (vulnerability)
  • cryptography 40.0.1 -> 41.0.2
  • django-auditlog 2.2.2 -> 2.3.0
  • django-filter 23.1 -> 23.2
  • drf-excel 2.3.0 -> 2.4.0
  • Pillow 9.5.0 -> 10.0.0
  • pymodbus 3.2.2 -> 3.3.2
  • requests 2.28.2 -> 2.31.0