Recent Releases of nemo

nemo - 7.2.4

Improvements

  • Added option to open the kiosk on logout even when the user has already logged out (if there are still tools in use)
  • Showing tools in use for the user when trying to logout and the user is already logged out
  • Added small and large size options for the kiosk numpad (large by default)
  • Replace first name for logged in user on Kiosk with the full name

API

  • Added "projects" to filters in the user endpoint
  • Added user preferences endpoint

Bug fixes

  • Fixed kiosk tools the user is not qualified on not being grayed out properly
  • Fixed reversed logic in broadcast email causing emails to be sent to inactive users and users with expired access when it shouldn't
  • Fixed calendar status bar to show danger label and fire icon for forced shutdown problems (to be consistent with tool control)
  • Fixed pre/post usage data throwing an error when the user input is a list in data history and usage pages

- Python
Published by rptmat57 8 months ago

nemo - 7.2.3

Bug fixes

  • Fixed policy off time in calendar not showing times properly

- Python
Published by rptmat57 8 months ago

nemo - 7.2.2

Improvements

  • Added reservation duration to calendar event details
  • Added checkboxes to transfer charge feature to pick specific charges to transfer
  • Added filters for transfer charges by type of charge
  • Added reservation policy display in calendar (can be disabled in Customization -> Calendar) and in tool control page

Bug fixes

  • Fixed users not being able to stop a tool if their project was deactivated after they started using the tool

- Python
Published by rptmat57 8 months ago

nemo - 7.2.1

Bug fixes

  • Fixed a bug in the calendar not displaying the tool reservations when the tool has no problems

- Python
Published by rptmat57 8 months ago

nemo - 7.2.0

Upgrade notes

  • This update can take up to 10 minutes so make sure to plan enough downtime.
  • Make sure you add django_jsonform to your INSTALLED_APPS in settings.py
  • Migrations for NEMO 3.x and NEMO 4.x have been squashed, which means if by any chance you are currently still on NEMO < 5.0.0, you will need to update to NEMO 7.1.4 before updating to 7.2.0

New features

  • Added support for Staff on tool permission (defined in Detailed administration -> Tool or Detailed administration -> User). Thanks MIT.nano for the contribution! Users who are given staff on tool permission for a specific tool can:
    • use the tool on behalf of a user or for remote project
    • use the configuration agenda for that tool (and change the configuration)
    • use the maintenance page for that tool (and update/resolve tasks)
    • reset the tool's usage counters
    • qualify and train users on that tool
    • see the tool's credentials
    • receive Task status updates (when enabled)
  • Added experimental support for custom tool properties defined by a JSON Schema. This JSON Schema is used to create a GUI in Detailed administration -> Tool to allow admins to select properties for their tools. Once defined, the properties are also displayed on the tool control page as key/value pairs. More information on the schema definition can be found here: https://django-jsonform.readthedocs.io/en/latest/schema.html

Improvements

  • Added option in Customizations -> Tool -> Tool control to automatically pre-fill post usage answers with pre usage answers, as long as the question's name matches. Thanks MIT.nano for the contribution!
  • Added support for SCRIPTNAME in Gunicorn's configuration when using docker image, by passing the environment variable: `GUNICORNSCRIPTNAME` (this is used for subpath deployments)
  • Usage reminders do not include tools the user has an ongoing reservation for anymore. Thanks MIT.nano for the contribution!
  • Text area resizing in NEMO (mostly used in Customizations and Custom forms) now extends according to the placeholder text too.
  • Pre/post usage data will now be displayed in the Usage page. Thanks MIT.nano for the contribution!
  • In Email broadcast feature, updated the display of active/inactive and access expired users to be more clear and straightforward.
  • When qualified users are sent tool problems, they will now also receive problem resolutions (same for users subscribing to tool problems in preferences).
  • Added filter by tool category in maintenance page. Thanks MIT.nano for the contribution!
  • Comments can now be pinned. Pinned comments are be red and serve as tool alerts. They are displayed at the top of the tool control page and on the calendar. Thanks MIT.nano for the contribution!
  • In the Kiosk, the first name of the badged-in user will be be displayed in the bottom left corner.
  • Added option to customize the message displayed by the Kiosk page. Thanks MIT.nano for the contribution!
  • Updated user profile page to add separate active/inactive projects, access expiration and tool responsibilities (primary owner, backup, staff on tool, superuser)
  • Added options in Customizations -> User to display a warning and/or a danger banner when their access is about to expire (from access expiration date). The number of days before a warning/danger message is displayed is customizable.
  • Added account type and project type filter in project billing. #292 . Thanks @anielsantos for the contribution!
  • Added options (on successful login and logout) to add kiosk button shortcuts in area access screens, so users can go directly to the Kiosk after logging in/out of the lab. The options are available in Customization -> Application. Thanks UPenn Singh Center for the contribution!
  • The button on the calendar that is used to only display tools the user is qualified is now available for staff users to show only tools they are responsible for (as primary & backup owners, staff on tool or superuser). Thanks Stanford SNF for the contribution!
  • For interlock cards, added support for "reversesignal" option in `extraargswhich will send the opposite signal (lock vs unlock) to the interlocks. This is useful for boxes set up to "fail open". ThanksHarvard CNS` for the contribution!
  • List of qualified users for a tool will now display the date they last qualified.

API

  • Fixed an issue that was bypassing model validation when fields were set to "__all__".
  • Added filtering by serial for Tools.
  • Added "shortened" filter for Reservations.
  • Added Customizations and Tool comments endpoints.

Bug fixes

  • Fixed issue when no project type was selected when creating a project which was throwing an error when it shouldn't.
  • Fixed some permission issues in the Kiosk where the kiosk user was used instead of the badged in user.
  • Added new DB constraint to prevent duplicate tool usage events and area access records from being created.
  • Fixed an issue when users given temporary access to a lab would still get abuse messages that they were not supposed to be in the lab.
  • Fixed a problem with duplicate reservations by retrieving only the last one instead of all the matching reservations within the timeframe.
  • Fixed an issue in Requests when it would display a blank page when only Staff assistance requests were enabled.
  • Fixed error when a customization page does not exists by returning a 404 page instead of blowing up.
  • Fixed missing Project billing link for facility managers

Libraries

  • Django 4.2.20 -> 4.2.23
  • cryptography 44.0.2 -> 45.0.4
  • django-auditlog 3.0.0 -> 3.2.0

- Python
Published by rptmat57 8 months ago

nemo - 7.1.4

Improvements

  • The adjustment charge cannot be changed when editing or reviewing anymore (if it needs to be changed, users will need to delete their adjustment request and create a new one)

API

  • Switched metadata endpoint to ViewSet so it can be included in the root of the browsable API
  • Updated metadata API endpoint to work with python 3.9

Bug fixes

  • Fixed validation errors during recurring charges not being rendered properly
  • Fixed skip_customer_validation option not being respected in consumable withdrawals for recurring charges

Libraries

  • djangorestframework -> 3.16.0
  • Pillow -> 11.2.1

- Python
Published by rptmat57 11 months ago

nemo - 7.1.3

Bug fixes

  • Fixed issues with project name length in MySQL databases (which cannot create long unique indexes)
  • Fixed formula extraction not working when using a non-group variable inside a group formula
  • Fixed unnecessary db calls when using RoleGroupPermissionChoiceField

- Python
Published by rptmat57 11 months ago

nemo - 7.1.2

Bug fixes

  • Fixed issue when creation reservations on mobile and kiosk views.
  • Fixed file name comparison not working with windows paths (for those running NEMO on windows)

- Python
Published by rptmat57 11 months ago

nemo - 7.1.1

Bug fixes

  • Fixed escaping in project names in user's page (when names contained quotes it was removing all projects from a user on save)
  • Fixed some path issues on windows when automatically renaming document files

- Python
Published by rptmat57 11 months ago

nemo - 7.1.0

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 "showformulapreview" 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

- Python
Published by rptmat57 11 months ago

nemo - 7.0.2

Improvements

  • Updated to use python3 -m instead of pip in Dockerfile
  • Replaced var with let for variable declarations to enhance code consistency and modernity in a few places
  • Now automatically loading customization email templates when there is a customization_<customization_key>_templates.html file (helpful for plugins)
  • Updated customization template loading to work from templates/<plugin_name>/customizations/ too instead of being forced to use the global templates directory (also helpful for plugins)

API

  • Added tests for API lists
  • Added staff assistance requests endpoint to API

Bug fixes

  • Removed direct dependency on admin app for interlocks to avoid issues when the admin app is not installed
  • Fixed issue with personal schedule checkbox showing in the calendar when not applicable
  • Fixed hybrid reservation and use feed not working properly when there are both reservations and use events

Libraries

  • gunicorn 20.1.0 -> 23.0.0

- Python
Published by rptmat57 12 months ago

nemo -

Improvements

  • Added Training email category
  • Updated tool credential detailed admin list to include password
  • Restricted list of staff that can be allowed to view tool credentials to only "active" staff

Bug fixes

  • Fixed username display in tool freed time notification
  • Fixed a few html/js/css display issues
  • Fixed old reference to NEMO 6.1.0 (instead of 7.0.0)
  • Fixed help text on document display order

- Python
Published by rptmat57 about 1 year ago

nemo - 7.0.0

Breaking changes

  • Dropped support for python 3.8 (end-of-life was reached in October 2024).
  • Added support for Python 3.13.
  • Removed dependency on pytz which is deprecated. Plugins will have to manually add that requirement it if they need it.

Upgrade notes

  • This is a major release. It is recommended to wait until new compatible plugin versions are released before updating.
  • The code for sensors has been moved to its own plugin, if you were using it you need to remove NEMO.apps.sensors from the list of INSTALLED_APPS in settings.py and follow the instructions to install NEMO-Sensors.
  • The code for contracts and procurements has been moved to its own plugin, if you were using it you need to remove NEMO.apps.contracts from the list of INSTALLED_APPS in settings.py and follow the instructions to install NEMO-Contracts.
  • A new email template needs to be added for the tool required unanswered questions email, which can be found here.
  • The out_of_time_reservation_email template needs to be updated to the new version which can be found here.
  • The adjustment_request_notification_email template needs to be updated to the new version which can be found here.
  • To use the new periodic interlock status report feature, add the nemo_email_interlock_status_report systemd service and timer available in the systemd folder.

New features

  • Added new Staff assistance requests:
    • staff assistance requests have to be enabled in Customization -> User requests.
    • users can create assistance requests, which are sent to all technical staff members. Staff members cannot create assistance requests.
    • emails are sent and notifications are added in requests menu.
    • any staff can reply and mark the request as resolved.
  • Tool usage counter updates (Thanks UPenn Singh Center for the contribution!):
    • added way to increase or decrease counters
    • added multiple checkboxes to decide who can reset the counter (staff/superusers/qualified users)
    • added flag to not send reset notification to facility members
  • Adjustment request updates:
    • added a way to mark charges as waived and request it in adjustment requests. Thanks Cornell NanoScale Facility and MIT.nano for the contribution!
    • customizations are now in a separate section
    • requests can be linked to a charge without requiring changing one of the fields
    • users can now request adjustments for non-remote charges done on their behalf. The staff member operating the tool can also request adjustments for that same charge.
  • Dynamic form updates (used in pre/post usage and reservations questions):
    • added new dynamic form question of type "radioreportproblem" to automatically report tool issues from pre/post usage questions. Thanks UPenn Singh Center for the contribution!
    • added a way to specify initial data. This is the first step toward allowing editing of questions (#153).
    • added form_row and row_cell to allow customization of the form display into a grid.
    • added inline property to radio buttons and checkboxes to display the options inline instead of vertically.
    • added support for option groups in dropdown questions by enabling the use of a dictionary in the labels property: labels = { "Category 1": ["Choice1", "Choice2"], "Category 2": "Choice3" }
  • Added staff activity in My usage page for staff to view the activities they have performed on behalf of users.
  • Added readonly Detailed administration audit log to keep track of what users are doing in detailed admin. Thanks UPenn Singh Center for the contribution!
  • Added interlock ping function and systemd service to get periodic reports of interlocks responding to pings. Thanks Stanford SNF for the contribution!
  • Projects can now have one or multiple configurable Project types. Thanks Cornell NanoScale Facility for the contribution!

Improvements

  • Updated the out of time reservation email to notify users when they are over staying. Thanks @r-xyz for the contribution!
  • Added hybrid reservation + usage calendar feed option.
  • Made the tool required unanswered questions email customizable in file & email templates.
  • Projects are now shown in the user's page following the project selection template for consistency.
  • In tool control data usage history tab, the date field for pre and post run data will now be called Start date for pre run data and End date for post run data.
  • Added ability to customize the farewellscreen page display the same way as the welcomescreen.
  • When there are no tools or areas, the Calendar main menu item will now be hidden.
  • Added end date field when creating a reservation in the kiosk (only time was available previously). Thanks @r-xyz for the contribution!. Fixes #253.
  • Now sending email with required questions when someone else forces someone off (even if they are not staff or user office).
  • Updated char field length using predefined length: SMALL (100), MEDIUM (255), LARGE (1024) for consistency across NEMO.
  • Now using reservation title when sending ICS calendar invites. Thanks UPenn Singh Center for the contribution!
  • Added an option in customization to show the username in the tool freed time email notification. Thanks UPenn Singh Center for the contribution!
  • Now showing pre/post usage data in calendar usage details.
  • In Usage data history, added operator information. Thanks MIT.nano for the contribution!
  • Added customization option to show tool documents in a separate tab in tool control (instead of at the bottom). Thanks MIT.nano for the contribution!
  • Added option to only show qualified tools in the Kiosk (instead of all the tools the user cannot reserve/engage). Thanks MIT.nano for the contribution!
  • Added ?category= query parameter to Kiosk URL to go show only tool of a specific category. Thanks MIT.nano for the contribution!
  • Added an option (in Customization -> Tool) to show who has a reservation next in tool control.
  • Added new environment variables to Dockerfile to customize the container's configuration. This allows more flexibility for workers and threads:
    • NEMOEXTRAPIP_PACKAGES (to add plugins or other packages to be installed on start)
    • GUNICORNWORKERCLASS (default is gthread)
    • GUNICORNWORKERCOUNT (default is cpu_count() * 2 + 1 with a max of 9)
    • GUNICORNTHREADCOUNT (default is 8)
    • GUNICORNKEEPALIVESECONDS (default is 300)
    • GUNICORNCAPTUREOUTPUT (default is True)
  • In Detailed administration -> Email logs, added the date when email was sent in the detailed view.
  • Now displaying project PIs in Detailed administration -> Projects
  • Added new type of AdminEmailHandler for django to limit the number of error emails sent within a certain timeframe. This option can be configured in settings.py using LOGGING_ERROR_EMAIL_PERIOD_SECONDS and LOGGING_ERROR_EMAIL_MAX_EMAILS
  • Added a new option for using tools, for "training". This new mode will automatically take the trainer to the record training page in NEMO and link the usage event back to the training after it is successfully recorded. The usage event will also have a training field set to True when it was used for training. Thanks MIT.nano for the contribution!
  • Added critical flag in app config so NEMO doesn't start if there is a plugin is set as critical and has an error on startup.
  • Added an option to automatically shut down a tool when a safety hazard is reported, even if the shutdown flag on the report is not True. Thanks Cornell NanoScale Facility for the contribution!
  • Added json dictionary of extra arguments for interlock cards. For modbusTCP implementations, the "timeout" key/value can be specified as the timeout for the connection. Thanks MIT.nano for the contribution!
  • Improved highlighting for required questions in Dynamic forms. Thanks @r-xyz for the contribution! Fixes #256.
  • Added new autocomplete widget for admin fields.
  • Added new NEMO.plugins.utils python file with utility functions for plugins. Added a function to dynamically add new notification types.
  • Added an enable flag on reservation questions.
  • If an SMTP connection error is detected (AuthenticationError, ConnectError or ServerDisconnected) when sending an email, NEMO will automatically retry it once.
  • Added utility function to rename files in storage when their name depends on the tool name (for example tool image) and that tool name is updated in NEMO. Previously those files would keep the old name forever.
  • Added links to projects from User's page and links to users from Project's page. Thanks Stanford SNF for the contribution!
  • Added new maximum future reservations policy for tools and areas. Thanks MIT.nano for the contribution!
  • Added options to always notify the person who has a reservation next when the current reservation is shortened. Thanks MIT.nano for the contribution!
  • Added a Control button in mobile calendar view to easily switch to the tool control page for that tool. Thanks Cornell NanoScale Facility for the contribution!
  • Added tool status icon in mobile calendar view. Thanks Cornell NanoScale Facility for the contribution!

API

  • Removed pagination on readonly API endpoints (Permission, ContentType, ) to be consistent with other API endpoints.
  • Added serializer field for MultiEmailField, so it can be handled properly in the API.
  • All charge types (UsageEvent, AreaAccessRecord, ConsumableWithdrawal, StaffCharge, TrainingSession, Reservation) now have waived and waived_by fields.
  • Added user documents to API. Thanks @r-xyz for the contribution!
  • Added a /metadata endpoint to provide information about NEMO's version, plugins and packages installed, os version etc.
  • Added a /api/media/<path> endpoint to serve media files directly from storage.
  • Fixed wrong api filters for weekdays_start_time and weekdays_end_time, datetime filters were used instead of time only filters.
  • Added project types endpoint.

Bug fixes

  • Fixed tool configuration options not being ordered properly (now ordered by configuration display order).
  • Fixed adjustment request link not showing in email template sent to users.
  • Fixed impersonate permission not working for anyone else than admins. The feature will now work for anyone given that permission but they can only impersonate someone with a lower role: Admins can impersonate everyone, Facility managers can impersonate everyone except admins, and staff members can only impersonate regular users.
  • Removed links on footer for Kiosk and Area access pages which would allow users to access NEMO as the kiosk user.
  • Allow relative path to work for landing page choices when NEMO is deployed on a subpath. Thanks @r-xyz for the contribution!. Fixes #249.
  • Removed dependency on distutils which is not a part of standard python library anymore.
  • Added timeout on tool information tooltip in Kiosk pages to prevent it from staying open after the user's session times out. Thanks @r-xyz for the contribution!. Fixes #246.
  • Fixed a bug when NEMO would throw error 500 instead of returning a bad request (400) when an exception happens when looking up comments and tasks.
  • Now emailing tool problems to qualified users as BCC instead of exposing their emails to everyone.
  • Fixed reservation policy issues when policy is off during weekdays and weekend:
    • reservation time during off hours is not taken into account anymore when checking reservation rules (if reservation time overlaps with off time).
    • reservations scheduled during off hours are also not taken into account when calculating total reservation time in the future and reservation count per day.
  • Fixed validation issues not being displayed in Broadcast email form.
  • Fixed bug preventing tool notifications from being sent correctly to all qualified users.
  • Fixed a bug allowing duplicate usage events, area access records or reservations to be created at the same time by adding locks that are thread safe and worker safe, as well as adding the preload_app = True setting in Gunicorn.
  • Fixed the inefficiency of the method used to set alerts as expired. It used to mark all previous alerts as expired even if they already had the expired flag on.
  • In Calendar when more information is needed to create a reservation/outage, fixed the logic that is sending the additional parameters so it overrides previous ones instead of appending to them. This was only really an issue when sending lists of parameter values.
  • Fixed incorrect redirect parameters when using mobile calendar view.
  • The Jumbotron will no longer throw a 404 when it has no watermark.

Libraries

  • cryptography -> 44.0.1
  • Django -> 4.2.19
  • django-filter -> 25.1
  • drf-excel -> 2.5.2
  • Pillow -> 11.1.0
  • packaging -> 24.2
  • pymodbus -> 3.8.6

- Python
Published by rptmat57 about 1 year ago

nemo - 6.0.3

Bug fix

  • fixed issue with task notification being sent from the last qualified user instead of the reporter

Libraries

  • django 4.2.11 -> 4.2.15 (vulnerability)

- Python
Published by rptmat57 over 1 year ago

nemo - 6.0.2

Bug fixes

  • fixed error with first day of the week format for moment.js which created issues with daterangepicker in sensor data pages

- Python
Published by rptmat57 over 1 year ago

nemo - 6.0.1

Bug fixes

  • fixed a bug from Django 4.2 upgrade preventing rates from being loaded correctly on start
  • fixed a validation bug in dynamic form with formula type questions

- Python
Published by rptmat57 over 1 year ago

nemo - 6.0.0

Upgrade notes

[ORACLE & REPORTS PLUGIN USERS ONLY] If you use ORACLE Database and have NEMO-reports version >= 1.8.0, you need to remove it from settings.py INSTALLED_APPS, update NEMO, then put it back. If you have NEMO-reports version < 1.8.0, you can proceed directly.

[EVERYONE] NEMO 6.0.0 includes a major update to NEMO's underlying framework (Django 3.2 -> 4.2), and the following changes need to be made:

  1. add to settings.py:

```python

ALLOWED_HOSTS = ["nemo.example.com"]

...

CSRFTRUSTEDORIGINS = ["https://{}".format(ALLOWED_HOSTS[0])]

or directly CSRFTRUSTEDORIGINS = ["https://nemo.example.com"]

```

  1. the unauthorizedtoolaccess_email template needs to be updated to the new version which can be found here

New features

  • Added a new Tool credentials page for staff, allowing administrators and staff with permissions to add/edit and search tool credentials (username/passwords). Tool credentials are shown to staff by default in the Tool control -> Details tab but require the user to expand the section to see the actual information (for privacy).
  • Added a user profile view which, if enabled in Customization -> Users, will allow users to see their profile by clicking on their name in the navigation bar. The user profile contains user's general information, projects, area access levels and tool qualifications (Thanks @Valilian of UC Irvine for the contribution!).
  • Added support for consumable withdrawal adjustment requests

Improvements

  • Project usage and project billing will now allow to search for inactive users.
  • Added an option to hide inactive projects when looking at a specific account page in Customization -> Projects & accounts.
  • Added confirmation dialog when marking an adjustment request as applied.
  • Automatically adding tool owners, backup owners and superusers when sending a email to all qualified users (in case they are not explicitly qualified).
  • Added option to require selecting a user type when creating a new user.
  • Training can now be enabled for some specific hidden tools in Customization -> Training (Thanks @r-xyz for the contribution). #221
  • Added settings to allow tool problems and updates to be sent to users if they add them in preferences. only qualified tools are allowed (Thanks UPenn Singh Center for the contribution!).
  • In user's page, added the last access date for each area access levels. None will be displayed in red color if the user has an area access that they never used.
  • Personal schedule can now be selected in the calendar to be displayed in the same view as tool reservations (Thanks UPenn Singh Center for the contribution!).
  • Added an option to sort tools in status dashboard by time of use instead of name (Thanks Stanford SNF for the contribution!).
  • Added an option in email broadcast to send the message to users with expired access (false by default)
  • Max delayed logoff time can now be customized per tool. It replaces the previous checkbox. Any tool that previously allowed delayed logoff will be automatically set to 120 minutes which was the hardcoded value until now.

  • Added title for contact information people. #195

API

  • Added recurring consumables, physical access levels, buddy requests, temporary physical access requests and adjustment requests endpoint.
  • Missed reservation adjustment can now be applied (if times are changed, new times will be applied, and if no times are changed, the reservation will be changed to not missed).
  • Simplified API filters in the code for easier maintainability and consistency.

Bug fixes

  • Reservation ending email reminders will not be sent anymore when the user has back to back reservations (Thanks @r-xyz for the contribution!).
  • Fixed the first day of the week not being consistent when using datetime pickers (Thanks @r-xyz for the contribution!). #231
  • Fixed invalid dates when selecting blank option as a month in my usage/project billing pages. #235

Libraries

  • Django 3.2.25 -> 4.2.11
  • cryptography 42.0.5 -> 42.0.8
  • requests 2.31.0 -> 2.32.3

- Python
Published by rptmat57 over 1 year ago

nemo - 5.6.1

Bug fixes

  • Fixed an issue when reporting an problem or comment in the kiosk would not use the correct user

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.6.0

Upgrade notes

  • To use the new automatic deactivation when a user's access expires, a new timed services need to be added, nemo_deactivate_access_expired_users Systemd services are available in the systemd folder

New features

  • Users with access expiring can now be automatically deactivated. The timed service needs to be set and at least one user type option needs to be picked in Customization -> User -> Access expiration - deactivate users

Improvements

  • Policy rules were changed, so that the access expiration date on users now prevents users from making reservations and engaging tools.
  • active and access_expiration fields have also be renamed to active NEMO account and active access expiration (respectively) to be more explicit
  • By default, broadcast emails will also not be sent to users with access expired. An option was added to still send it to them when writing a message

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.5.3

Bug fix

  • fixed a bug with model instance copies that interfered with the new version of auditlog

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.5.2

Improvements

  • added name field to interlock to provide more flexibility for naming them
  • changed default date range for project usage to the current day instead of the current month (which could take a long time to load)

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.5.1

Bug fixes

  • fixed a bug when trying to upload project and user documents (display_order field needed a default value)

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.5.0

Upgrade notes

  • [IMPORTANT] ORACLE users only: due to a bug in the third party library auditlog, you need to follow instructions for 2 step migration highlighted here: https://django-auditlog.readthedocs.io/en/latest/upgrade.html
  • 2 timed services need to be added, nemo_check_update_wait_list and nemo_email_scheduled_outage_reminders for the new tool waitlist operation mode and the scheduled outages email reminders, respectively. Systemd services are available in the systemd folder
  • 2 email templates need to be added for those features as well, in Customization -> File & email templates: wait_list_notification_email.html and scheduled_outage_reminder_email.html, available in the emails folder

New features

  • Tools can now operate in 3 modes: regular/waitlist/hybrid (thanks JPL Microdevices Laboratory for the contribution!):
    • Regular mode is the normal/previous mode of operation and the default for all tools
    • Waitlist mode allows users to sign up on a list when someone is already using the tool, and to be notified when it's their turn. Tool reservations are not allowed in waitlist mode.
    • Hybrid mode is similar to waitlist mode except that reservations are still allowed and take precedence over the waitlist.
    • There are customization options to specify buffer times after which a spot is lost and to determine if the tool should be available if it's close to a reservation time.

Improvements

  • Added settings in Customization -> Calendar to specify the time format used for the events (thanks @r-xyz for the contribution!)
  • Reporting a problem and adding a comment for a tool is now available in the Kiosk (Thanks Stanford SNF for the contribution!)
  • HTML is now allowed in alert contents
  • In Detailed administration -> Configuration, added new column to show whether the linked tool is visible and added filter
  • Added display order to documents throughout NEMO (Tool documents, User documents, Project documents, Contract documents, Safety item documents, Knowledge base documents).
  • Added display order for Safety items in the same category and Knowledge base items
  • Project usage will now show all usage by default when nothing is selected (selecting a user, project or application is not required anymore)
  • Added scheduled outage reminders to be set on tool/area/resource outages (Thanks Polytechnique Montreal for the contribution!).
  • Updated resource outage page to allow recurring outages.
  • Added a "Mark as applied" button on adjustment requests to signal that the adjustment has been dealt with (Thanks Cornell NanoScale Facility for the contribution!).
  • Added an "Adjust charge" button on adjustment requests to change the charge itself based on the approved dates (Thanks Cornell NanoScale Facility for the contribution!).

Bug fixes

  • Fixed sensors not accepting 0 value
  • Fixed dismissible alerts for users not showing the option to actually dismiss it
  • Fixed validation error in transfer charges showing the exception page instead of in the form itself

Libraries

  • django-auditlog 2.3.0 -> 3.0.0
  • djangorestframework 3.14.0 -> 3.15.1
  • Pillow 10.2.0 -> 10.3.0

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.4.1

Bug fixes

  • fixed icons not showing in sidebar

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.4.0

This new version of NEMO does not contain any new functionality, but the codebase has been entirely reformatted using djlint. This means that from now, all code and contributions should be formatted using djlint. To make this automatic, configuration files and pre-commit hooks have been added (see below).

For developers

  1. Run pip install ./["dev-tools"] to install pre-commit, black and djlint
  2. Install pre-commit hooks by running pre-commit install
  3. Pull the latest version and run pre-commit run --all-files to double check (everything should pass)

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 5.3.1
  2. Run pip install ./["dev-tools"] to install pre-commit, black and djlint
  3. Install pre-commit hooks by running pre-commit install
  4. Create a new branch in your fork git checkout -b <branch_name>
  5. Run pre-commit hooks on the entire codebase pre-commit run --all-files
  6. Merge NEMO 5.4.0
  7. Resolve any potential conflicts by accepting your version over NEMO

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.3.1

Bug fixes

  • fixed calendar/tool control bug when using the search bar and it takes 2 searches to show the correct feed
  • fixed capitalization in tool customization page
  • fixed order of after tool logoff popups

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.3.0

New features

  • Added support for pre-usage questions (thanks Stanford SNF for the contribution!).
  • Added support for multiple areas in area access tablet screen, i.e. a door can provide entry to more than one area (thanks UPenn Singh Center for the contribution!).
  • Added new Formula type of Post usage question, allowing more flexibility when charging for consumables or for converting units based on other fields. Formula type questions are hidden from the user and evaluated after the user answers post usage questions. They can be nested and call another formula results, and they can also be used on a group question in which case the variable becomes a list of all the values (allowing to use sum(gold_used) for example, if the user is asked how much gold they used for each of their processes).
  • Added User and Staff knowledge base pages, where facilities can list documents, links, and other information for users and staff to browse (for example procedures for staff, training for users etc.).

Improvements

  • Made the email preview button in the broadcast email feature scroll to the preview section.
  • Now showing access expiration date in users' page.
  • Tool superusers can now see the list of qualified users in tool control and there is a new customization option to display that list to everyone. #201
  • Added an option (Customization -> Tools) to allow everyone to see the list of qualified users in tool control
  • Added options (Customization -> Calendar) to get a confirmation dialog before creating a reservation. It can be set globally and overridden individually by users in their preferences (thanks @abuckles-uci, @crprice and Alyssa Sheffler from UC Irvine for the contribution!).
  • Improved menu layout with smaller sizes. The menu will collapse into the hamburger menu when the menu items break the layout (for long names for example).
  • Added staff charge info on collapsed menu bar.
  • Updated most related fields in detailed admin (user, project, etc.) to use data lists instead of basic drop-downs.
  • Now displaying the user's main email address in their preferences page.
  • Checking for duplicate emails in email broadcast feature so it's not sent twice to the same address.
  • Added support for consumable_id in post usage questions to identify consumable uniquely (since consumable name is not unique).
  • Create a new impersonate permission so it can be given to specific users without the need for them to be super admins.
  • Added a label on the calendar (top left corner) to show which tool/area/selection the user is looking at. #204
  • Added option to only show tool documents to qualified users (thanks Polytech Group of Characterization of Materials for the contribution!).
  • Added option to allow everyone to email users with an upcoming reservation (thanks Stanford SNF for the contribution!).
  • 0 min training records are now allowed.
  • Sensor chart time x-axis formats can now be customized in Customization -> Sensor data.
  • Added support for read_coils in sensors' formula (thanks UPenn Singh Center for the contribution!).
  • Adjustment notifications are now automatically deleted if an adjustment is deleted.
  • Added date filtering by creation time for alerts in detailed admin.
  • Added training customizations to limit training to just one type, and to allow trainers to set the training date.
  • Projects not allowing consumable withdrawals will not be shown in the checkout page anymore.
  • Self checkout of consumables can now be limited to only certain users (thanks Stanford SNF for the contribution!).
  • Badge number will not be shown anymore when badging in and out of area and kiosk. Previous behavior can be restored in Customization -> Application
  • Added an option to offer the user to logout of the area they are logged in when disengaging a tool (thanks UPenn Singh Center for the contribution!).
  • Projects have a new option to not allow staff charges.
  • Optimized performance and load time on all pages by refactoring the queries for notifications and customizations.
  • Tests will now be published to PyPi as part of the NEMO package. This will allow other plugin developers to easily run NEMO's tests.
  • Now limiting the number of workers for gunicorn to a maximum of 9 to avoid issues with resources, database connections and overall performance.

API

  • Fixed error with Configuration & Resource API endpoints when it would break if filtering due to many to many relationship not being supported in filters
  • Tool status endpoint now requires the can view tool permission
  • Updated extra fields in API (mostly related fields like users in projects, permissions etc) to not be required and allow null

Bug fixes

  • Fixed a bug when reloading the qualified user list in tool control on mobile devices
  • Fixed issues with some models when users are given read only permissions in detailed admin
  • Fixed a major bug removing the user office role when updating their profile information in Administration -> Users
  • Fixed a Kiosk issue with links in tooltip that would display NEMO's main page within the kiosk page (thanks @r-xyz for the contribution!). #202
  • Fixed unique constraint on interlock Card/Channel preventing users from creating interlocks for different unit_id/bank.
  • Fixed potential CSRF vulnerability when deleting a buddy request.
  • Fixed multi email field issue when using the API and failing validation with empty string as value.
  • Fixed inactive users not being able to be used in the usage data history filter.

Libraries

  • cryptography 41.0.7 -> 42.0.5
  • Django 3.2.23 -> 3.2.25
  • python-dateutil 2.8.2 -> 2.9.0
  • pytz 2023.3 -> 2024.1

- Python
Published by rptmat57 almost 2 years ago

nemo - 5.2.0

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

- Python
Published by rptmat57 about 2 years ago

nemo - 5.1.0

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

- Python
Published by rptmat57 about 2 years ago

nemo - 5.0.0

  • 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

- Python
Published by rptmat57 over 2 years ago

nemo - 4.7.1

Bug fixes

  • Fixed calendar issue when looking at qualified tools only

- Python
Published by rptmat57 over 2 years ago

nemo - 4.7.0

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 Polytech Group of Characterization of Materials 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 MONTHDAYFORMAT 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

- Python
Published by rptmat57 over 2 years ago

nemo - 4.6.4

Libraries

  • Django 3.2.20 -> 3.2.21 (vulnerability)

Improvements

  • Now passing user to rates to allow filtering

- Python
Published by rptmat57 over 2 years ago

nemo - 4.6.3

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

- Python
Published by rptmat57 over 2 years ago

nemo - 4.6.2

Improvements

  • updated colors for status dashboard, jumbotron and occupancy

- Python
Published by rptmat57 over 2 years ago

nemo - 4.6.1

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

- Python
Published by rptmat57 over 2 years ago

nemo - 4.6.0

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 Polytech Group of Characterization of Materials 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

- Python
Published by rptmat57 over 2 years ago

nemo - 4.5.5

Bug fixes

  • Fixed trying to increment tool counter when forcing someone off a tool
  • Fixed issue when trying to disable a tool and a interlock error happens ("disable anyway" was not working)
  • Fixed issue when user office staff members are not able to force a user off a tool
  • Fixed issue with post usage questions not showing as empty when they should be
  • Fixed issue when using mocked request (in emails) and the full url method was not working
  • Fixed issue with related fields not being read correctly when using CSV api import
  • Fixed adjustment request breaking when the user is staff and has an ongoing staff charge
  • Fixed already adjustment charge still showing in my usage and in dropdown when creating new adjustment request
  • Fixed issue when deleting sensors in detailed admin and there is too much data and the system times out

Improvements

  • Added customization to show an "edit charge" button in approved adjustment requests

Libraries

  • Django 3.2.18 -> 3.2.19 (vulnerability)

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.5.4

Bug fix

  • fixes #145

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.5.3

Bug fixes

  • fixed adjustment tab issue when access requests are not enabled simultaneously

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.5.2

Bug fixes

  • fixed interlock being lost on tool or door save
  • added setting to disable Stanford interlock reply validation

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.5.1

Bug fix

  • fixed a bug with PostgreSQL when migrating and creating the news about the new version of NEMO

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.5.0

Update notes

  • The new adjustment request feature needs to be enabled in Customization -> User request and at least one user with the facility manager role needs to exist (for approval)
  • A email template for the new adjustment request feature can be found in the emails folder

New features

  • Added Tool qualification groups allowing to qualify a user on a group of tools at the same time. The feature is currently available in the Qualification and Training pages.
  • Merged staff charges and remote work menu items. Both can now be found under Administration -> Remote work now
  • Big expansion of the REST API now allows creating new users, accounts, projects etc. Actions available in the REST API are Creation, Update, Partial Update and Deletion. Thanks MIT.nano for the contribution!
  • Added adjustment requests:
    • If enabled in Customization, users can request adjustments from their usage page or from the global requests link
    • The type of charges allowed is customizable, currently tool usage, area access and missed reservations are available
    • Time limit for requesting adjustments is configurable and defaults to 2 weeks
    • PIs can request adjustments for any eligible charges on their projects
    • Adjustment requests can be exported in detailed administration and request page.
    • Adjustments can only be reviewed by facility managers.
    • If an adjustment is accepted, the user will receive confirmation, and a separate email will be sent to the User Office including optional instructions.
    • If an adjustment is rejected, the user will receive notification including optional feedback.
    • NOTE: Adjustment requests do not actually change charges. They are simply meant to allow users to create requests directly in NEMO, and adjustments should be made outside of NEMO in the facility's own billing system.

Improvements

  • Now displaying the creator of an access request when editing/reviewing it
  • Added stack trace for errors thrown during plugin loading
  • Discipline is now only used for projects and was renamed "Project discipline"
  • Including utility packages (vim, less) in the docker container
  • Major update of the Stanford interlock implementation with error checks for returned values. Many thanks to Dave Botsch from Cornell NanoScale Facility for the suggestion and all the help debugging!
  • Navigation bar will now collapse to the "hamburger" menu (similar to mobile experience) on medium sized screens
  • Improved the notification model to allow for multiple notifications of the same type.
  • Now allowing html in request description field (buddy requests, access requests etc.)
  • Added default value for post usage questions
  • Added customization to hide tool usage data history for regular users
  • Staff availability can now be hidden from staff status
  • The Application identifier display name for projects can now be customized (to PO#, Project Id, etc.)
  • Natural keys have been added for easier import/export of projects (by name), users (by username), accounts (by name) and any category type model (by name)
  • Added Customization to make location and phone number not required when creating tools. Tool usage data history tab can also be hidden from regular users.
  • Moved all policy rules into its own class
  • Regular users can now be given detailed admin permissions and the will have access to the administration if applicable
  • In detailed administration, locking/unlocking interlocks will now display errors
  • Added access requests export button (both in detailed admin and regular page)
  • Added new "checkbox" type post usage question
  • Added a way to customize how the current setting for configuration is displayed
  • Added remote work customizations, with options to automatically charge area access when working on remote project, to explicitly ask if work on behalf of a user should be considered remote, and to enable/disable remote charges validation
  • Added a customization option to allow PIs to add/remove existing users to their projects
  • Added a CSV parser for REST API as well as a file import option

Bug fixes

  • Fixed project discipline not showing in project detail admin form
  • Fixed #135 and more (broken links telling the admin to add model instances in detailed admin but django admin app is not installed)
  • Fixed #134. Thanks @r-xyz for the fix!
  • Fixed User office staff not being able to see access requests
  • Fixed infinite loop in authentication middleware when user doesn't have an account in NEMO.
  • Fixed recurring outage across midnight not being created correctly
  • Fixed issue when reading multiple sensors at once (connection not properly closed)

Libraries

  • Django 3.2.16 -> 3.2.18 (vulnerability)
  • cryptography 39.0.0 -> 40.0.1
  • drf-excel 2.2.0 -> 2.3.0
  • drf-flex-fields 1.0.0 -> 1.0.2
  • pytz 2022.7.1 -> 2023.3
  • django-filter 22.1 -> 23.1
  • Pillow 9.4.0 -> 9.5.0
  • pymodbus 3.1.1 -> 3.2.2

- Python
Published by rptmat57 almost 3 years ago

nemo - 4.4.1

  • fixed modbus issue with new version of pymodbus

- Python
Published by rptmat57 about 3 years ago

nemo - 4.4.0

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

- Python
Published by rptmat57 about 3 years ago

nemo - 4.3.2

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 "allowstaffaccess" is set on physical access levels
  • fixed user office not recognized as staff in occupancy screens

- Python
Published by rptmat57 about 3 years ago

nemo - 4.3.1

Bug fix

  • fixed csrf token issue on tool qualification customization

- Python
Published by rptmat57 about 3 years ago

nemo - 4.3.0

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 - LMF 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

- Python
Published by rptmat57 about 3 years ago

nemo - 4.2.1

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

- Python
Published by rptmat57 over 3 years ago

nemo - 4.2.0

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

- Python
Published by rptmat57 over 3 years ago

nemo - 4.1.2

  • Updated Django 3.2.13 -> 3.2.14 (vulnerability fix)

- Python
Published by rptmat57 over 3 years ago

nemo - 4.1.1

Bug fix

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

- Python
Published by rptmat57 over 3 years ago

nemo - 4.1.0

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 RESTFRAMEWORK 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 `usebilling_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)

- Python
Published by rptmat57 over 3 years ago

nemo - 4.0.0

Django 3.2 update: if you are using plugins, we recommend waiting until they are tested/updated to work with this major update

Upgrade notes

  • In settings.py:
    • Set DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
    • In REST_FRAMEWORK -> DEFAULT_RENDERER_CLASSES replace renderer 'drf_renderer_xlsx.renderers.XLSXRenderer' by 'drf_excel.renderers.XLSXRenderer'
    • If using postgres database, replace database engine django.db.backends.postgresql_psycopg2 by django.db.backends.postgresql
  • Some web browsers will cache old CSS/Javascript from detailed administration. If you are having issues (blank screens) in the admin section, try Ctrl + Shift + R or Ctrl + F5 to force a refresh or clear your browser's cache

Improvements

  • Closure alert preview and validation were added to catch potential issues before the automatic alert is created.
  • Closure on staff status calendar will now display the alert content if one is set.
  • Added interlock card enabled field on interlock view in detailed administration.

Interlock Modbus support

  • Support for Modbus over TCP was added to provide greater flexibility and support more interlock types.

Libraries

  • Django 2.2 -> 3.2.17
  • drfrendererxlsx 0.4.5 -> drf_excel 2.1.0
  • cryptography 36.0.1 -> 36.0.2
  • Pillow 9.0.1 -> 9.1.0
  • drf-flex-fields 0.9.7 -> 0.9.8
  • Added pymodbus 2.5.3 as new dependency

- Python
Published by rptmat57 almost 4 years ago

nemo - 3.16.0

New features

  • Added export of email addresses on broadcast email page. For use outside of NEMO.
  • Added option to send broadcast email using the users default email client. This only works when the list of emails is less than 2000 characters total due to limitations of the MAILTO feature. Use the export function to get around it.

Improvements

  • Tool configurations can now be enabled/disabled for more flexibility.
  • Added day view option for staff status page which is also the new default view.
  • Added settings in customizations to control whether users and or staff members can look at past/future staff availability and what view choices users can have (day/week/month) for more privacy control.
  • Added separate Staff availability categories to allow more flexibility in ordering staff in the staff status page.
  • Added user preference so users can choose their default staff status view.

Bug fixes

  • Fixed a bug with tool usage counter throwing an error when being updated from post usage questions. Thanks @cnf-clark for reporting it!

Libraries

  • Pillow 9.0.0 -> Pillow 9.0.1

- Python
Published by rptmat57 almost 4 years ago

nemo - 3.15.0

Upgrade notes

  • For the new automatic alert creation for Closures and reminder emails on last occurrence to work, a daily cron job must be added, calling either docker exec -it nemo django-admin create_closure_alerts or by sending an http request to /create_closure_alerts

New features

  • Added Staff status, a new feature on the status dashboard displaying whether staff are in/out:
    • Leave type can be customized (sick leave, annual leave, parental leave etc.)
    • Staff working days and typical hours can be set, as well as staff categories (second shift, user office etc.)
    • Only facility managers can add/edit staff absences and see the details (sick leave, annual leave etc.)
    • Regular user and staff users only see in/out status
    • Facility managers can also export the calendar
    • Customizations available: show/hide weekends, display staff status only to other staff members, start week on Sunday/Monday
    • Week/Month view
    • Renamed PhysicalAccessException to Closure and massively updated the feature:
      • A closure can now have multiple dates (to set Labor day for multiple years in advance for example)
      • A closure can triggered an automatic alert a certain number of days prior to the closure. (5 days before Labor day for example, informing users that buddy system will be in place etc.)
      • Staff can be marked as absent in the Staff status page during a closure (optional)
      • A reminder email can be sent on the last occurrence of a closure reminding facility managers to add more if needed. (In case you set Labor day 5 years in advance and then forget to add more dates)

Bug fixes

  • Fixed a bug preventing XLSX export in API
  • Fixed a bug requiring the identity service to be set in settings for qualifications to work. Thanks @rmwhite85 for reporting this!
  • Fixed reservation details on Mobile and Kiosk only displaying times which would make it very confusing when reservations span over multiple days. Thanks @nsieb for bringing this up!
  • Fixed reservations losing their reservation questions when moving/resizing them. Fixes #104. Thanks @jat255 for reporting it!

Libraries

  • Django 2.2.26 -> 2.2.27 (vulnerability)
  • drf-renderer-xlsx 0.4.4 -> 0.4.5 (fixes broken XLSX with manytomany fields)

- Python
Published by rptmat57 about 4 years ago

nemo - 3.14.1

Bug fixes

  • Fixed a wrong template name used in usage event details in calendar
  • Fixed another bug in custom task status. Thanks @rmwhite85 once more!
  • Fixed date format issues in user creation and abuse pages

- Python
Published by rptmat57 about 4 years ago

nemo - 3.14.0

Upgrade Notes

  • NEMO now requires Python 3.7 since security support for 3.6 ended last month.
  • The LAB_MANAGERS list in settings.py has been replaced by a permission on users called is_facility_manager. If you were using the LAB_MANAGERS setting, go to Detailed Administration -> Users and set the facility managers there after updating NEMO. Also please note that you need at least one facility manager to enable the new Access request feature.
  • The qualified checkbox is now enabled by default when recording training sessions. Make sure to double check before confirming.
  • The access request weekend access feature (more on this below) requires a cron job to be set hourly, calling docker exec -it nemo django-admin send_email_weekend_access_notification or sending a request to /email_weekend_access_notification

New Features

  • Added temporary access. This allows admins to give users access for a limited time. For example, giving someone weekend cleanroom access for one weekend. It is available through in Detailed Administration only.
  • Added user access requests:
    • Grouping Access Requests and Buddy Requests under one common "Requests" menu item.
    • Access requests (after-hours requests) need to be enabled by checking the "allow user request" box on a "Physical Access Level" in Detailed administration and by setting at least one Facility manager.
    • Added customizations for tab title, description message, minimum number of buddies, maximum number of requests to display, weekend access emails and cutoff day and time (more on this below)
    • Once enabled, users can submit access requests by selecting a start and end time, an access level (if multiple are enabled) and a list of buddies. Facility managers (see below) are then notified and can approve/deny the request in NEMO. Upon approval, a corresponding temporary access will be created for all users in the request.
    • The request creator and buddies will receive a confirmation email, and buddies/facility managers will have a notification badge in NEMO on the requests tab indicating there is something new.
    • Facility managers can approve/deny a request and have the opportunity to update it before approving. This allows them to change the dates, update the description etc. before approving. This is useful if for example the request can only be approved for one day due to lack of staff on the second day, etc.
    • A "weekend access" customizable email can be sent to a list of emails set in customization on the cutoff day and time set. If the email template is set, the email will be sent the within an hour of the first approved request that includes weekend time with a weekend_access value of True. If no access requests that include weekend time are approved by the cutoff day and time, the same email will be sent with a weekend_access value of false. The latter will not be sent if the cutoff day and time is not set.
  • Added the facility manager role in Detailed administration -> Users to replace the LAB_MANAGERS settings. Facility managers receive all tasks related updates and approve/deny access requests.
  • Added "Charge note". This is a text area field that can be set and updated after creating a Staff Charge. It will be displayed in "My usage", "Project billing" and "Remote work" pages as well as in the API.
  • The project selection name can now be customized in the "Customization" page. It will use the Django templating engine, allowing the use of things like "{{ project.account.name }} - {{ project.name }}" which would display the account name followed by the project name. This is limited to project selection lists (in reservations, logging in an area, kiosk etc.)
  • A standalone reservation view was added for linking from outside of NEMO, available at /event_details/reservation/<reservation_id>/. Thanks @jat255 for the contribution!
  • Email templates to be used in customizations were added in the resources folder. Feel free to adapt them to your needs.

Improvements

  • Date and time formats have been made more consistent across NEMO and follow django's format from settings.py instead of being hardcoded in certain places. Make sure DATETIME_FORMAT, SHORT_DATETIME_FORMAT, DATE_FORMAT, SHORT_DATE_FORMAT and TIME_FORMAT are set to your liking in settings.py otherwise Django's default will be used.
  • Added an EXPORT_DATE_FORMAT and EXPORT_TIME_FORMAT to settings.py to allow a custom format to be used in filenames when exporting (in API, My Usage, Tool Usage Data etc.). If not set, they will default to m_d_Y and h_i_s respectively.
  • Supplies/consumables withdrawals are now allowed in group post usage questions.
  • Project information can now be shown and exported in "Tool Usage Data History" through a checkbox (unchecked by default).
  • The qualified checkbox when recording a training session is now checked by default.
  • Fixed styling issues in the Email logs feature in the detailed administration, and also updated Customization to open the content preview in a separate tab.

Bug fixes

  • Fixed a bug dating back to 2018 in custom task status using primary_tool_owner instead of primary_owner. Thanks @rmwhite85 for noticing!
  • Fixed a bug when exporting usage where it would use UTC dates in the CSV file.
  • Fixed a bug when user having back-to-back reservations would have one of them marked as missed when they were in fact already logged in to the area (from the prior reservation).
  • Updated the misleading message when selecting projects for reservation. It will now only mention missed reservation fees if the missed_reservation_threshold field is set on the tool/area and the message will mention what the threshold actually is.
  • Fixed issue when billable items would not show up in API when crossing over the period. i.e. if a charge started before the end of the month and finished the next month, it would not show up. Changed the logic to show billables by end date only.

Libraries

  • Updated Django to 2.2.26
  • Updated django-filter to 21.1
  • Updated djangorestframework to 3.13.1
  • Updated django-mptt to 0.13.4
  • Updated cryptography to 36.0.1
  • Updated drf-flex-fields to 0.9.7
  • Updated drf-renderer-xlsx to 0.4.4
  • Updated python-dateutil to 2.8.2
  • Updated ldap3 to 2.9.1
  • Updated requests to 2.27.1
  • Updated Pillow to 9.0.0

- Python
Published by rptmat57 about 4 years ago

nemo - 3.13.3

Bug fix

  • fixed a bug when reservations would be marked as missed when the user was logged in from before its reservation (back-to-back reservations scenario)

- Python
Published by rptmat57 about 4 years ago

nemo - 3.13.2

Bug fix

  • Fixed email broadcast error when sending to users having access to an area or when sending to all users

- Python
Published by rptmat57 over 4 years ago

nemo - 3.13.1

Bug fix

  • Fixed issue with mobile reservations breaking when the user has only one project

- Python
Published by rptmat57 over 4 years ago

nemo - 3.13.0

New Features

  • Added support for group questions in Reservation questions.
  • Added option to send an email to all registered users.
  • Rest API updates:
    • Added Excel export. To enable it, it must be added to the DEFAULT_RENDERER_CLASSES of the REST_FRAMEWORK dictionary in settings.py, like the following: 'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', 'drf_renderer_xlsx.renderers.XLSXRenderer'],
    • Added billing to the browsable API page.
    • Added link to the API in the Administration menu. Only visible for admins.

Bug fix

  • Fixed an issue where sorting tools by name in the detailed admin section would break
  • Fixed multi email field validation issue where rendering would break when there was a validation issue.
  • Fixed multiple issues with reservation calendar invite in Outlook where the organizer cannot be the attendee. The organizer can now be set in settings.py using RESERVATION_ORGANIZER_EMAIL and RESERVATION_ORGANIZER for the email and the name of the organizer, respectively. see the settings page for details
  • Made Customizations page only accessible to admins

Library updates

  • Updated drf-flex-fields to 0.9.3
  • Updated Pillow to 8.3.2

- Python
Published by rptmat57 over 4 years ago

nemo - 3.12.2

Bug fix

  • Fixed issue with badge number not working on area access pages (already logged in and choose project pages) and kiosk Go back button.

- Python
Published by rptmat57 over 4 years ago

nemo - 3.12.1

Bug fix

  • Fixed issue with badge number not working in area access if they start with 0 or have letters in it

- Python
Published by rptmat57 over 4 years ago

nemo - 3.12.0

New features

  • Added export of tool tasks and comments history to a text file. Located in Tool Control -> Details -> Task and comment history.
  • When creating recurring scheduled outages, the number of days in advance can now be customized in the Customization page.

Improvements

  • In post usage group questions, the "Add" button text can be customized using property group_add_button_name
  • Changed display of upcoming reservation on Kiosk so they don't need to be expanded to cancel. Clicking on a reservation will go to the corresponding tool.

Bug fixes

  • Fixed a bug in new version of Chrome where extra scrollbars would appear and flicker on the calendar page.
  • Fixed an issue with recording training sessions, where a staff member who is also a tool superuser would not be able to record training on tools he is not superuser for.
  • Fixed issue when double clicking on task/comment creation/update would create multiple instances.

Vulnerabilities

  • Updated drf-flex-fields to version 0.9.1

- Python
Published by rptmat57 over 4 years ago

nemo - 3.11.0

New features

  • Added reservation questions that are asked when a user makes a reservation. They can be added in the detailed admin section. Reservation questions can be set for tools and/or areas and can also be limited to specific tools, specific areas and/or specific projects.
  • Added Areas, Resources, Staff Charges and Training Sessions to Rest API
  • Added conditional nesting of related objects in Rest API as well as cherry picking of fields returned using drf-flex-fields (see link for details)
  • Added a projects page for projects Principal Investigators who are not staff members. This allows them to see project information and users.

Improvements

  • Added filtering by display and filtering by areas in Reservation admin page.
  • Added filters to Rest API (for a complete list, see NEMO/views/api.py)
  • Added a "pinned" field to news to have certain news stay at the top of the feed.
  • Added optional start date for both projects and accounts. Added optional account type for accounts.
  • Improved dynamic form (JSON formatted questions):
    • Added red asterisk when a field is required
    • Added "title_html" attribute to display html in title
    • Added "help" attribute (displaying help text for inputs)
    • Added "maxlength" attribute to textbox questions (max characters allowed in input)

Bug fixes

  • Fixed issues with reservation dates in ical invites not using UTC times.

- Python
Published by rptmat57 over 4 years ago

nemo - 3.10.0

New features

  • Added "All tools", "All areas" and "All tools & Areas" overview options in the calendar. Thanks @bpedersen2 for the contribution!
  • Added tool superusers who are allowed to train users on tools. They can be added in the detailed admin section, either in the user section or the tool section.
  • Added a way to restrict projects to only certain tools, regardless of the users qualifications. This can be done in Detailed Administration/Project. A project restricted to certain tools will:
    • allow reservations and usage of those tools only.
    • allow reservations and login on area that this tool requires.
    • allow staff charges on those tools and areas they require.
    • allow training on those tools only.
  • Added a checkbox on projects to allow consumable withdrawals or not. Consumable withdrawals set through post usage questions are always allowed.
  • Added warning threshold and warning email addresses for Tool usage counter. Added corresponding email template in customizations
  • Added an area reservation ending reminder email 30 and 15 minutes before reservation ends and user is still logged in.

Improvements

  • Changed user's badge number field to string (rather than integer) to get around integer max number but also to provide better flexibility with card readers.
  • Added option to clear the list of consumable withdrawals.
  • Added tools the user is a backup owner on, in detailed administration user page.
  • Improved calendar support for making and cancellation reservations. Thanks @bpedersen2 for the suggestion.
  • Moved the set PI on project feature to Detailed Administration only.
  • Now sending task updated email when a task is cancelled.

Bug fix

  • Fixed issue where writing in a post usage question of type textarea would not update the "stop using tool" button
  • Fixed layout issues on pagination pages on mobile devices
  • Fixed an issue when multiple coincident reservations could be created at the same time.
  • Fixed NEMO installsystemdservice command.

- Python
Published by rptmat57 almost 5 years ago

nemo - 3.9.2

Bug fix

  • Fixed badge number max digits issue by making it a char field instead of integer. It should also provide more flexibility with badge readers

Security vulnerability

  • Updated django to 2.2.20

- Python
Published by rptmat57 almost 5 years ago

nemo - 3.9.1

Bug fix

  • fixed a bug after updating LDAP library. TLS is not needed anymore since the LDAP connection security is set on the server connection through use_ssl (and it actually raises an error if set on an already secure server connection)

- Python
Published by rptmat57 almost 5 years ago

nemo - 3.9.0

New features

  • Added the ability to set Principal Investigators on projects. PIs are able to see all activities for the projects they manage in the "My usage" page.
  • Added exporting of data in CSV format from "My usage" page.
  • When forcing a user out of a tool, if there are any required unanswered post usage questions, the required questions will be sent in an email to the user, lab managers, tool owner & backup owner, and to the staff member who forced the user off. Blank answers are set in the usage history record until edited in detailed admin.
  • Added float post usage question (with optional precision property) and textarea (with optional rows property)
  • Added tool documents. (thanks to 4D Labs for the contribution)

Improvements

  • Added options for last 10, 25, 50 & 100 records and filtering by users in tool usage data history
  • Added filtering by tool in Tool usage counter admin page
  • Improved the import of plugin URLs to be more consistent

Bug fix

  • Fixed an issue where areas that don't require a reservation would not show up when using staff charges
  • Updated to latest versions for all dependencies

- Python
Published by rptmat57 almost 5 years ago

nemo - 3.8.0

New Features

  • Added list views for Accounts and Projects and Users pages (thanks to 4D Labs for the contribution)
  • Supplies/Consumables withdrawal can now be done in bulk. A flat list is displayed and users can add supplies to they cart, and checkout all the items at once.
  • Added a way to bypass interlock errors on both desktop and kiosk. If there is an error with an interlock command, the user will now be able to:
    • enable anyway (so that time tracking can still take place - when staff can override interlocks manually)
    • try again
    • cancel

The "enable anyway" option can be turned on or off in customizations, and the error messages for both tool and door interlock failures can be customized as well.

Improvements

  • Billing pages (billing and project billing) will now redirect to usage/project usage if billing service is not defined or not available
  • Added notification message when post usage questions are linked to consumables/supplies withdrawals so that the user is aware that they are being billed for those.
  • Added 11:59pm time option for access level exception (end of the day)
  • Updated resources page so resizing would not mess with the layout
  • Made required tool fields bold and capitalized in detailed admin for consistency

Bug Fix

  • Fixed issue with upcoming reservation showing when delayed logoff is in effect (#60)
  • Fixed an error when creating a user would fail if identity service was not defined
  • Fixed an error when adding access level exception with blank start or end time would break (added validation)
  • Added locking mechanism to enable/disable tools and area login to prevent race condition (enabling the same tool at the same time - through js or "double click")

Security

  • Updated dependency version of cryptography library (due to vulnerability in previous version)

- Python
Published by rptmat57 about 5 years ago

nemo - 3.7.0

New Features

  • When a tool requires an area access, area access time will be charged when staff use tool for a remote project (so staff time, tool time and area time are all started at the same time)
  • Staff charge for area access will stop when staff users log out of any area
  • Added virtual keyboard for Kiosk text post usage questions
  • Added keypad for delayed logoff on Kiosk
  • Kiosk timeout will now reset on user input
  • Added a way to contact other users from reservation details and to contact the current user of a tool on tool control page
  • Added the Buddy Board, a simple message board for buddy requests:
    • At least one area need to be set to "allow buddy system" in detailed administration for this feature to be active
    • Users will be notified of new buddy requests with notification badge number on menu item (can be turned off in user preferences)
    • Users will be notified by notification badge number and via email when somebody also replies on a request they replied to (can be turned off in user preferences)
    • A disclaimer can be set in customizations. Use it to specify special instructions or rules for buddy system
    • Buddy request expire at the end of the day on their end date
    • Only users who have completed training, have an active project and have access to the area can reply
  • A news story will now be published when a new NEMO release is installed (with links to the release notes and the feature manual). This feature can be disabled by setting NEW_VERSION_NEWS = False in settings.py
  • All emails sent by NEMO will now be logged for audit purposes and accessible in the detailed administration. If you are a developer, make sure to use the send_email function available in utilities.py to benefit from this feature.

Improvements

  • News stories can now include HTML tags (link etc.)
  • Added validation for physical access exceptions in detailed admin (end date must be later than start date)

Bug Fix

  • Fixed a bug where project usage page was only showing results for the current logged in user.
  • Fixed a bug on Kiosk when the keypad would stay open on Kiosk timeout.

- Python
Published by rptmat57 about 5 years ago

nemo - 3.6.1

Bug fix

  • Fixed issue with timed services functions

- Python
Published by rptmat57 about 5 years ago

nemo - 3.6.0

New Features

  • Added a new setting in customization to display current time indicator in the calendar
  • Added "dropdown" type for tool post usage questions
  • Added "group" type post usage question. This allows to create groups of questions that can be repeated. For example when a user uses multiple processes on a tool, and we want to collect information about each one. More details can be found on the feature manual.
  • Added "Usage Data History" tab in tool control, which displays the history of answers to post usage questions. The data can also be exported to CSV.
  • Added Tool usage counters:
    • They are counters linked to a "number" type post usage question and keep a running total of some user inputs.
    • They can be added in the detailed administration and NEMO will check that the post usage question exists in the corresponding tool (with the correct type)
    • Counters are displayed in the tool summary page.
    • Counters can be reset by staff members. A comment will be added to the tool and an email will be sent to LAB_MANAGERS if that setting is enabled.
    • For example you can use it to keep track of total etch time for maintenance purposes etc.
  • Added Physical Access Exceptions which allows to set specific exceptions when access levels will be denied. This can be used for holiday closures, understaffed times etc.

Improvements

  • Area reservations can now be extended even while user is logged in the area (but not moved or cancelled).
  • Updated calendar area login/logout buttons to be shown only when relevant (instead of being grayed out if a tool is selected for instance)
  • Updated billing/usage search to use Bootstrap date picker instead of pickadate
  • Updated validation on post usage questions to check that consumable exists with the correct name, and that required attributes are provided
  • Added management commands to run timed services. (you can now use manage.py or django-admin to run timed services actions)
  • Added keypad for answering post usage questions of type number (only on Kiosk)

Bug Fixes

  • Fixed a error when using the search feature in physical access log (in Detailed Administration)
  • Fixed excessive load time when selecting a reservation in Detailed Administration
  • Fixed #43 unique constraint violation in Postgres, thanks to @bpedersen2

Security

  • Updated dependency version of cryptography library (due to vulnerability in previous version)

- Python
Published by rptmat57 about 5 years ago

nemo - 3.5.0

Feature Manual!

  • The long awaited NEMO Feature Manual is finally here. This was a huge undertaking, going back and documenting every single feature in NEMO. Thank you @jerrybowser for all the hard work!

New Feature

  • Added a way to link contact information to an actual user (through Detailed Administration\Contact Information). When both are linked, in Tool Control details page, the contact information will be displayed (instead of simply the email) of the tool owner or backup owner.

Improvements

  • Area reservation policies: user cannot cancel area reservation while logged in that area during that reservation. also, users won't be able to cancel or move an area reservation when they have tools reservations that require that area reservation.
  • Added post usage question validation and better error message for required attributes.
  • Consumables can now only be withdrawn if the post usage question is of type "number".

Bug Fixes

  • Fixed a bug preventing tool synchronization feature to work
  • Fixed a bug in tool admin page, when missing required attributes of post usage questions would completely break the page
  • Fixed a bug where selecting Facility Usage in calendar view would display ALL tool usage even when selecting a particular area.
  • Fixed a bug when a tool needed to be shutdown and the wrong email was sent to users

- Python
Published by rptmat57 over 5 years ago

nemo - 3.4.0

New Features

  • Added the ability to create more badge reader configuration in detailed administration. When using the Kiosk or Area Access, add ?reader_id=<reader_id> to the URL to select a badge reader configuration.

Improvements

  • Added ability to search by user in project billing
  • Added user information on Usage Events in usage page.
  • Hiding project billing if billing service isn't defined

Bug Fix

  • Fixed an error when not all areas would show up on the email broadcast page
  • Fixed out of time email being sent when customer has back to back reservations

- Python
Published by rptmat57 over 5 years ago

nemo - 3.3.0

New Features

  • Added service personnel to NEMO: service personnel can access authorized areas without having a reservation and use qualified tools even when shutdown or during outages
  • Added checkbox to count service personnel in area capacity or not
  • Added supply reminder email: an reorder email will be sent when supplies fall below the defined threshold.

Improvements

  • Improved the staff charges page to show more details: customer being charged staff time, area access and tool usage on behalf of that user
  • Improved resources page to be easier to navigate. Added a resource details page where the user can schedule an outage and modify the resource availability.

Security

  • Updated Pillow library to latest stable version

Bug fix

  • Reservations were not marked as missed if the email template wasn't defined. Fix it so that reservations would be marked as missed regardless.

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.7

Bug Fix

  • fixed a broken link when selecting tool on mobile

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.6

Bug Fix

  • fixed an issue in the kiosk where upcoming reservations would include area reservations and trying to display tool_id would fail

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.5

Bug Fix

  • Fixed an issue with platform specific formatting (was causing issues on Windows)
  • Fixed an issue when enabling a tool would not work if the user id contained a specific number

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.4

Bug Fix

  • fixed an issue with overlapping reservations not being counted correctly towards capacity

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.3

Bug Fix

  • Fixed a small UI issue where calendar/tool control would not show up correctly when impersonating.
  • Fixed an issue where Jumbotron would try to show tool usage info when no tools are set up

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.2

Bug Fix

  • fixed an issue with impersonating (couldn't go back in some conditions)

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.1

Bug Fix

  • fixed an issue when rest_framework isn't installed

- Python
Published by rptmat57 over 5 years ago

nemo - 3.2.0

New Features

  • (superusers only) added the ability to impersonate other users. Located in the administration dropdown menu. You'll need to add 'NEMO.middleware.ImpersonateMiddleware', to settings.py for this to work
  • default user reservation preferences can be overridden in settings.py with USER_RESERVATION_PREFERENCES_DEFAULT = True

Bug Fix

  • fixed a bug where access usage was not showing when clicking on areas in sidebar

Improvements

  • removed hard coded urls which cause issues when deploying using subpath
  • added success message when saving user preferences
  • fixed authentication issues when using multiple authentication backends (especially when mixing pre-auth backends and backends using login page)

- Python
Published by rptmat57 over 5 years ago

nemo - 3.1.2

Bug Fix

  • fixed an issue when staff cancels another user's reservation and the email is not sent to the additional reservation emails set on the area

- Python
Published by rptmat57 over 5 years ago

nemo - 3.1.1

Re-releasing 3.1.0 as 3.1.1 to fix docker tag issue.

- Python
Published by rptmat57 over 5 years ago

nemo - 3.1.0

New Features

  • A reservation email (or a list) can now be set on areas. Any reservation created or cancelled will be sent to that email with an .ics calendar invite attached (in addition to the user).
  • An abuse email (or a list) can now be set on areas. When a non-staff user overstays (reservation expired but still logged in the area) an email will be sent to that email (in addition to the user).

Improvements

  • Now using foldable trees in views where areas can be selected (self login, area access login, and physical access in user form).
  • Added email previews and link to download current content in customizations.

Note

For the abuse and reservation emails, NEMO will send the emails "all the way up the tree". So if you have a setup where Campus contains Buildings which contains Offices, then when a reservation is created in an office, the email will be sent to the email for the Office, and the email for the Building (if set) and the email for the Campus (again, if set) etc. same goes for overstays.

- Python
Published by rptmat57 over 5 years ago

nemo - 3.0.1

Bug Fix

  • fixed a bug when counting occupancy

- Python
Published by rptmat57 over 5 years ago

nemo - 3.0.0

NEMO 3.0.0 is here with area reservations!

Before Updating

  • add mptt to INSTALLED_APPS in settings.py
  • add timed services call to url /email_out_of_time_reservation_notification every minute
  • if you plan on using area reservations, update reservation email templates to check whether the reservation item is a tool or an area. reservation.tool, reservation.area or reservation.reservation_itemand reservation.reservation_item_type can be used for that. (emails to update area: reservation_reminder_email, reservation_warning_email, missed_reservation_email, cancellation_email, reservation_created_user_email, reservation_cancelled_user_email)
  • if you plan on using area reservations, update unauthorized_tool_access_email to use the new type variable. It can be either 'reservation' when a user tries to use a tool without a reservation or 'access' when a user tries to use a tool without being logged in to the required area

New Area Features

  • Added the ability to make reservations for Areas that have requires_reservation set to True
  • Added icon on tools in the sidebar when they require access to an area that requires a reservation
  • Tools cannot be reserved until a reservation is made on the required area (area reservation needs to exist at the start time of the tool reservation)
  • Added Area capacity and policy rules for area reservations. Area capacity is checked when making reservation and logging in, parent area capacity is also checked. (Capacity can be set on buildings or campuses that have other areas in them as well)
  • Warning will be shown to user when making a reservation if reservation_warning is set on an area
  • Added categories to area
  • Added count_staff_in_occupancy flag on areas. If unchecked, staff users will not count.
  • Added customization setting to display all areas or only areas the user has access to
  • Access levels can now be set directly when creating the access level.
  • Access level can be given on parent areas (i.e. Buildings)
  • Outages can be scheduled on Areas as well. Can also be set on parent area through the detailed administration
  • Added tooltip showing all users logged in an area
  • Added ability to log in and out of areas directly from the calendar view (enable with setting in customization)
  • Logged in users without a reservation will be shown in red on status dashboard
  • Area reservation are shortened when user logs out
  • Added ability to email users authorized to access an area or parent area (building)
  • Displaying scheduled outages and unavailable resources for areas in sidebar
  • Added mobile calendar area reservations
  • Added email to be sent when users are out of time (logged in area but reservation expired). A grace period can be set in area.

- Python
Published by rptmat57 over 5 years ago

nemo - 2.3.4

Bug fix

  • Fixed a bug preventing disabling tools from kiosk

- Python
Published by rptmat57 over 5 years ago

nemo - 2.3.3

Security vulnerability

  • Updated django version

- Python
Published by rptmat57 over 5 years ago

nemo - 2.3.2

Bug Fix

  • fixed a bug with reservation warning

- Python
Published by rptmat57 over 5 years ago

nemo - 2.3.1

Bug Fix

Fixed a bug with facility usage events not showing in calendar

- Python
Published by rptmat57 over 5 years ago

nemo - 2.3.0

Before Updating

  • Replace 'NEMO.context_processors.device' with 'NEMO.context_processors.base_context' in context_processors in settings.py
  • Rename media file nanofab_rules_tutorial.html to facility_rules_tutorial.html and update form in file to post to facility_rules url
  • Rename media file nanofab_rules_tutorial_email.html to facility_rules_tutorial_email.html

New Features

  • Added a reservation warning (number) field to Area. A "Busy time" warning will be displayed when reserving a tool in that Area when there already are a greater number of users with reservations for that same area. (This can be used separately from the area capacity)
  • Added a boolean field in area to decide if staff should count towards max capacity. Updated pages to show a separate staff count if unchecked
  • Post usage questions now support number type and min, max and pattern attribute.
  • Post usage questions preview has been added as well.
  • Consumable withdrawal now subtracts from quantity.
  • In email page, subject and content are now required and the preview can now be updated before sending.
  • Added area access record in remote work for staff charges.
  • Self login button will now be shown all the time when enabled from customization. Errors will be displayed when user cannot login (rather than hiding the button)
  • User type isn't required anymore. Confirmation of user creation/update has been added and anoter safely deactivate user link was added next to the active checkbox
  • The facility name can now be configured from the customization page. Thanks @dsbarth for the original code!
  • The site name can also be configured from the customization page.
  • The calendar view can now be configured from the customization page (default view, first day of the week, start of the day, column date format for day, week, and month views). Thanks @sbonaime for the suggestions and help!

Improvements

  • Added a spinner in tool control page when waiting after clicking on tools
  • Past outages aren't shown on scheduled outage page anymore
  • Added staff charges to billing api. Added detailed information for items.
  • Made identity service optional in settings.py
  • Made no_header feature sticky (per session): use parameter no_header=True in page url to use NEMO without header bar, use no_header=False to turn it off.

Bug fixes

  • Added consumable withdrawal on Kiosk after answering post usage questions.

- Python
Published by rptmat57 over 5 years ago

nemo - 2.2.3

Bug Fix

  • Fixes #32 (mix up between access levels and areas in area access record page)

- Python
Published by rptmat57 almost 6 years ago

nemo - 2.2.2

Bug Fix

  • fixes #33

- Python
Published by rptmat57 almost 6 years ago

nemo - 2.2.1

Bug Fix

  • Fixes #32

- Python
Published by rptmat57 almost 6 years ago

nemo - 2.2.0

Improvements

  • Improved LDAP settings to allow users to specify port, bind credentials, dn search and more
  • Improved interlock implementation interface, allowing to validate both interlock card and interlock objects
  • Updated tool autocomplete results to have better spacing.
  • Updated Jumbotron to not display areas when none are defined
  • Added area to area access records page, and added ability to filter by area

New Features

  • Users can now change the project on an upcoming reservation
  • Added comments that only staff can see (and create)
  • Added ProXR interlock implementation (contribution by @4Lowe at the Minnesota Nano Center)
  • Added rates to customizations. Labs can now upload a json file containing rates for tools
  • Added authorization failed to customizations. Labs can personalize the error message shown when login failed
  • Added jumbotron watermark to customizations.
  • Made tasks and comments searchable
  • Added notification icon and statement when scheduled non required resource is not available
  • Added tool config history tab (in tool control)
  • Added max capacity for areas

Bug fixes

  • Fixed an issue where staff needed to select a project when making reservations on desktop site (didn't need to in mobile). Now it doesn't ask for project either way (staff are not charged for missed reservations, so no projects needed)
  • Fixed a few typos here and there

- Python
Published by rptmat57 almost 6 years ago

nemo - 2.1.1

Bug Fix #24

  • Fixed error when image was being resized and removed then saved again (when no changes were made on the file)

- Python
Published by rptmat57 almost 6 years ago