Release Notes

QATrack+ v4.0

v4.0.0

QATrack+ v4.0.0 introduces a major platform modernization release focused on maintainability, deployment consistency, and long-term support readiness. This release includes updates to the Python and Django stack, Windows deployment tooling, and admin architecture.

Highlights

  • Localization support for multiple languages. Draft translations are available for English, French, and Spanish.

  • Upgraded core platform to newer Python and Django ecosystem components.

  • Standardized environment and dependency management around uv.

  • Improved Windows deployment workflow for both fresh installs and upgrades.

  • Updated SQL Server guidance and local settings expectations for modern Django behavior.

Major Changes

  • Windows deployment documentation has been refreshed for Server 2022 and SQL Server 2022 scenarios.

  • Dependency and environment management now uses uv workflows for setup and synchronization.

  • CherryPy service and scheduled task naming have been simplified to support future patching and upgrades.

  • Local settings expectations now explicitly include host and CSRF origin configuration required by current Django versions.

  • Database engine guidance for SQL Server has been updated to current backend conventions.

Technical Improvements

  • Removed external django-admin-views dependency and migrated related functionality into Django admin.

  • Consolidated and simplified admin URL and view handling.

  • Reduced package complexity by removing an unnecessary external dependency from the stack.

  • Improved consistency of installation and upgrade command sequences.

  • Updated time handling to use timezone-aware datetimes throughout the codebase.

Bug Fixes

  • Fixed tolerance compatibility validation across different test types.

  • Fixed reference value type preservation in admin forms.

  • Improved handling and messaging for incompatible tolerance and test-type combinations.

  • Addressed multiple documentation inconsistencies and deployment workflow ambiguities.

Deployment and Upgrade Notes

  • Existing Windows v3.1 installations should follow the dedicated v4.0 upgrade guide.

  • New installations should use the fresh install guide for uv-based environment setup.

  • Verify service and task definitions after upgrade to ensure they point to the active virtual environment Python executable.

  • Review local settings before first startup, including host and CSRF origin settings.

Acknowledgements

Thank you to everyone who contributed bug reports, validation feedback, deployment testing, and documentation improvements that helped shape this release.

Contributors from the project history include:

QATrack+ v3.1

QATrack+ v3.1.1.4 Release Notes

  • Fixed javascript error on service event pages

QATrack+ v3.1.1.3 Release Notes

  • Fixed issue with migration from 0.3.x to 3.1.1

QATrack+ v3.1.1.2 Release Notes

  • Fixed issue with Chromes font rendering in PDF reports

QATrack+ v3.1.1.1 Release Notes

  • Fixed a permission check bug for users creating service event templates

QATrack+ v3.1.1 Release Notes

This is a follow up release to address a few issues that were found in v3.1.0. The following issues have been addressed:

QA

  • Added basic multiple choice plotting support

  • Fixed a Test admin bug with the display of “Test item visible in charts”

  • A message warning you about being logged out or your server not being reachable will be shown after 3 consecutive unauthenticated or failed pings. In order to disable this check set PING_INTERVAL_S = 0 in your local_settings.py file.

  • The maximum frequency of autosaves has been reduced to once per 4s. This an attempt to work around occasional deadlocks with SQL Server.

  • Pylinac has been updated (TODO: version):
    • An issue with CatPhan modules CNR calculations return NaN due to the modules not having background ROIs defined has been fixed

    • A bug with DMLC VMAT tests with valleys in their profiles that fell below 50% of Dmax has been fixed.

    • A regression in QC3 image detection introduced in the QATrack fork of Pylinac has been remedied.

  • A bug with QA Frequency recurrence rule start dates has been fixed

  • The Assign Test Lists to Units admin page will no longer allow a blank Assigned to Field

  • Sometimes a test which was skipped by default would not get unskipped when a user performed the test. This has been resolved.

  • The confirmation dialogue for reviewing QA was not showing the status correctly. This has now been resolved.

  • Due dates were being calculated incorrectly sometimes when the UTC date and the local date differed.

  • Fixed issue with UTILS.previous_instance and UTILS.previous_test_list_instance would not be fetched if they were completed within the last minute.

Service Log

  • Fixed a bug with Return To Service work forms being populated with incorrect data

  • The first Service Event Status created will now automatically be set to the default

  • The Service Type field was being incorrectly when entering a new service event using a Service Log Template without a Service Type set. This has been fixed.

Faults

  • Fault Type codes are now required to be unique. A migration has been added to update the code to a unique value for any duplicate fault codes.

  • Fault ID column size has been reduced in the fault list views

  • Fault review users are now shown as full names instead of usernames where possible

  • The ability to create new fault types on the fly when entering faults is now restricted to users with the “Can Add Fault Type” permission

  • Fault type matches are now case insensitive and surrounding whitespace will be stripped

  • Fix fault table ordering and search issues with Description & Review Status columns

Parts ^^^

Parts tables now allow you to sort/filter by room

API

  • Fixed a file upload API bug where QATrack+ would try to base64 decode a null value

  • The UnitTestCollection API end point should no longer return duplicated results.

  • The AutoReviewRuleSetFilter API end point has been fixed.

  • Fixed the fault_types field of the API’s FaultSerializer

  • The API schema view will no longer throw a 500 error.

  • Submitting a null or blank comment when performing QA via the API (e.g. with post data like {…, “comment”: “”}) would previously result in a 400 Bad Request error being returned. This has been adjusted so that a null or blank comment is now valid (no comment will be created) and will not block the QA Session from being created.

Reports

  • The Active filter for Service Log Scheduling report filters worked for “Both” but not “Yes” or “No”. This has now been fixed. In addition, the wrong set of filters was being displayed for the Next Due Dates for Scheduled Service Events report. This has also been addressed.

  • Reports now respect the active/inactive status of units as well as the active/inactive status of test list assignments.

  • Units are now displayed correctly in the test instance report filters.

  • A Chrome update caused the PDF report generation to fail due to trying to access already opened files. This has been fixed.

  • If the “Difference” column is shown when reviewing QA (i.e. REVIEW_DIFF_COL = True) then the test list instance details report will now also show the difference column.

  • Fixed an issue with scheduled reports failing for some report types

  • Fixed an issue with Excel report emails failing

  • Add new 3 month, 6 month, 90 days, and 180 days date filters

Miscellaneous

  • A few documentation typo fixes

  • Fixed a permissions check for deleting faults

  • Reviewing faults now use the term “Acknowledge” instead of “Approve”

  • Admin access will no longer be required to access the page for editing units available times.

  • A permissions check for editing unit available times has been fixed. Anyone with the ‘Change Unit Available Time’ permission should be able to edit available times now.

QATrack+ v3.1.0.1 Release Notes

  • Attempt to fix an issue with Django Q not being able to find report types on Windows

QATrack+ v3.1.0 Release Notes

Acknowledgements

Thank you to the many people who suggested new features, contributed bug reports, and helped out testing this release. Thank you also to all of you who waited patiently and provided words of encouragement in the 2 years since the last major QATrack+ release!

Details of the v3.1.0 release

New version numbering

Given that QATrack+ is now a mature and featureful application, we are eliminating the 0. from the version number and moving from v0.3.0 to v3.1.0.

Moving to GitHub

QATrack+ is migrating from BitBucket to [GitHub](https://github.com/qatrackplus/qatrackplus/). As part of your update process you will be instructed to update your origin url (git remote set-url origin https://github.com/qatrackplus/qatrackplus.git).

Deprecations & Discontinuations
  • Python 3.4 & 3.5, 3.6: Python 3.4 & 3.5 are no longer receiving updates and therefore QATrack+ will no longer be supporting those Python versions. It is also recommended that Python 3.7-3.10 be used on Windows as it simplifies the install process.

  • The settings AD_DEBUG & AD_DEBUG_FILE are no longer used. Instead, information is now logged to an ‘auth.log’ file.

Major Features

  • A new Reports tool has been added for generating and scheduling PDF & Excel reports. As part of this move the following features have now been moved to a report rather than a standalone page:

    • Paper Backup Forms

  • A new Query Tool has been added for advanced query and reporting. (You must set USE_SQL_REPORTS = True in your local_settings.py file to use this feature).

  • Notifications have been expanded & improved.
    • You can now send notifications on test lists being completed.

    • You can now specify to send notifications to individual users as well as groups.

    • You can now specify that a given notifications will only be sent for specific units or test lists.

    • New QC Scheduling & Unreviewed QC Notices.

    • Service event creation & update notices.

    • Parts low inventory notices.

    • Machine faults

  • A new Autosave feature has been implemented to automatically save test list instance data temporarily to prevent data loss when a user mistakenly navigates away from the page while entering QC data.

  • A new Users & Groups Page has been added to simplify the management of Group membership and group permissions.

  • A new Fault log feature for recording machine faults.

  • You can now create Service Event Templates and schedule them in a similar manner to scheduling QC work.

Non backwards compatible changes

  • Composite Tests will now raise an error if they return anything other than a numerical value, None, or an empty string (“”). Previously it was possible to return e.g. a string which would have resulted in the test being skipped. If you were relying on this behaviour, you need to switch to using a String Composite/JSON test type instead.

  • The day key is now required when performing a Test List Cycle via the API

  • Upload tests can not have reference/tolerance values set. Allowing this originally was an implementation oversight.

  • EMAIL_NOTIFICATION_SENDER must be set to a valid email address, not just a name.

Tests & Test Lists

  • New test types including:

    • Date and Date & Time test types to allow users to select dates/times with a calendar widget. These test results will be available in calculation contexts as Python date, and datetime values respectively.

    • Wraparound test type have been added. This test type allows you to define a test that “wraps around” at a minimum and maximum value. This type of test is useful for example if you have a collimator/gantry readout test and want to consider 359.9 deg a 0.1 deg difference from a 0 deg reference.

  • A new “Display Name” field has been added to tests. This is an optional field where you can add text describing how a test should be displayed when performing or reviewing. Having a separate name & display name allows you to create tests with descriptive names that are easy to find in the admin area, but use a more succinct name when performing a Test List. If left blank, the test name will be used.

  • A new “Require Comment” option has been added to force users to enter a comment before submitting a test.

  • It is now possible to perform a test and not have the due date advanced by de-selecting the “Include for Scheduling” option.

  • Calculation procedures are now syntax checked, and automatically formatted using Black.

  • Numerical tests now have an optional Formatting field to control how their results are displayed. For example a test with a formatting of “%.2E” will use scientific notation with 2 decimal places (3 sig figures).

  • Non-calculated test types (e.g. simple numerical, multiple choice, string, etc) may now use the calculation_procedure to set default initial values.

  • Added UTILS.set_skip and UTILS.get_skip functions for setting/getting skip status of tests.

  • Using UTILS.set_comment in a calculation will now open the comment box on the front end.

  • Setting the Warning message field to blank on a TestList will now prevent a warning message/banner from being shown when tests are at action level.

  • Calculated tests are now included in Paper Backup Forms (now a Report) by default

  • Frequency dropdown lists when choosing a unit to perform QC on will now only show Ad Hoc if that unit has ad hoc test lists assigned

  • There are new Tree Views available (under the Perform QC menu) for viewing/selecting QC assigned to units.

  • There is a new MAX_TESTS_PER_TESTLIST setting (default is 250 tests per test list)

Review & Approval

  • Test.auto_review has been replaced by new AutoReviewRuleSet’s that allow you to apply different AutoReviewRules to different tests. For more information see the Auto Review page.

  • A new Bulk Review feature has been added to allow setting review & approval status for multiple test list instances at the same time.

  • New management commands review_all_unreviewed and clear_in_progress have been added. review_all_unreviewed updates the status of all unreviewed test list instances, while clear_in_progress will delete all in progress test lists.

Units & Unit Types

  • A new Collapse option has been added to the Unit Type model to allow collapsing less frequency used unit types in user interface.

  • Unit modalities are now labeled as Treatment or Imaging Modality

UI Changes

  • QA -> QC: In most places in the UI the initials QA have been replaced by QC. This change was made to reflect that while QATrack+ is a tool for managing the QA program of radiation therapy programs, the data collected in QATrack+ is QC data.

  • Improved the ordering and organization of unit, frequency, and test lists fields when assigning a test list to a unit. Also improve UnitType dropdown for Unit Admin.

  • The Unit admin page now has “Save as New” as an option to make it easier to create new units using an existing unit as a template. You can also now leave the unit number blank to have it assigned automatically.

  • Staff Status has been renamed to Admin Status to reflect the fact that almost all QATrack+ users are “Staff”!

  • Test Instance points with comments associated with them are now highlighed in charts

  • Clicking on a chart link beside a tests history will now set the date range for the chart to the larger of a span of 1 year, or span between the first and last history items. This results in a chart of say the last 5 years of data for an annual QA item rather than just the single point from the most recent year.

  • Keyboard entry of dates is now permitted for Work Started & Work Completed dates when performing QC

  • New dropdown on Unit selection buttons to allow selecting QC to perform based on Test categories.

  • A calculation status icon has been added (spins when calculations are being performed).

  • Add test type css class to test rows. Allows you to target different test types in site.css like:

    .qa-boolean, .qa-numerical {
        background-color: rgba(0, 0, 0, 0.05);
    }
    
  • The In Progress label will now only display the count of in progress test lists visible to the users rather than the total count.

  • History & Unreviewed listing pages will now show a paperclip icon if the test list instance has at least one attachment.

  • ID attributes have been added to many elements on the pages for performing/editing test lists to make them easier to target with JavaScript.

  • For installations with Units assigned to multiple ‘Sites’, a new ‘Site’ column has been added to many of the views used for selecting TestList assignments and TestListInstances.

Admin Changes

  • Inline links to edit and delete foreign key choices have been disabled in all QATrack+ admin models. Editing or deleting a foreign key object here has always been a poor workflow that lead to confusion for users.

  • Setting multiple references & tolerances now allows removing tolerances.

  • Setting multiple references & tolerances will now include an entry in that UnitTestInfo’s change log

API Changes

  • A number of bug in the API have been fixed including:

    • a bug which was causing extra information to be returned for list views has been fixed. This may require you to adjust scripts if you were relying on:

      • permissions or user_set data present in the Groups list view

      • first_name, last_name, date_joined, permissions in the User List view

      • Fields other than name, number, or site in the Unit list

    • Bugs with filtering for exact matches of search strings have been resolved.

    • First Name & Last Name have been added to the user-list api view

    • When dependencies of a composite test are skipped and the composite test itself is not skipped, an error letting the user know to skip the composite test explicitly is now shown.

  • The UnitTestCollection API results now include “next_day” and “next_test_list” parameters to make it simple to determine which test list is to be performed next in a test list cycle.

  • The TestList API results now includes a field “test_lists” which is a list of all the sublist test lists for that TestList.

  • The banner at the top of the browsable API now says “QATrack+ API” rather than Django Rest Framework and now the link directs to the main site rather than DRFs site.

  • It is now possible to perform a test and not have the due date advanced by setting “include_for_scheduling”: False, in your API post data.

  • The day key is now required when performing a Test List Cycle via the API

Service Log & Parts

  • The USE_SERVICE_LOG and USE_PARTS settings have been removed. Permissions are suitable for hiding the UI elements if you don’t want to use service log or parts, but having these settings can complicate some views and testing.

  • Added option to Group Linkers to make a given Group Linker required when submitting a ServiceEvent.

  • There is a new New or Used field on Parts to allow you to track new and used inventories of the same part separately.

  • A new setting SL_ALLOW_BLANK_SERVICE_AREA has been added to optionally allow users to submit ServiceEvents without a ServiceArea set explicitly.

  • A new setting SL_ALLOW_BLANK_SERVICE_TYPE has been added to optionally allow users to submit ServiceEvents without a ServiceType set explicitly.

  • Parts Supplier details have been expanded to include phone numbers, website, address and contact information

  • Part supplier details pages have been added to show what parts are available from each supplier as well as company & contact details.

  • You may now add attachments & images to Parts. Images will be shown inline in the parts listing table and parts detail pages.

  • Service Log Status now have an order field to allow you

  • You can now create Service Event Templates and schedule them in a similar manner to scheduling QC work.

  • There is now an app for logging machine faults.

Authentication

  • The default authentication backend setting is now:

    AUTHENTICATION_BACKENDS = (
        'qatrack.accounts.backends.QATrackAccountBackend',
    )
    

    the QATrackAccountBackend is a simple wrapper around the Django ModelBackend to allow usernames to be transformed prior to authentication. The transform is controlled by the ACCOUNTS_CLEAN_USERNAME settings.

  • A new ACCOUNTS_SELF_REGISTER setting has been added to control whether users are allowed to register their own accounts.

  • A new ACCOUNTS_PASSWORD_RESET setting has been added to control whether users are allowed to reset or change their own passwords.

  • Users can now automatically be added to QATrack+ groups based on their AD group memberships using . Active Directory Groups to QATrack+ Group Map’s

  • The AD_MEMBERSHIP_REQ was previously not functional and has now been replaced by Qualifying Groups’s

  • When a user logs in through the AD backend, their email address, first name, and lastname will be updated to match the values found in Active Directory.

  • The DEFAULT_GROUP_NAMES setting has been removed. Instead, QATrack+ groups now have a default group flag. Anytime a user logs into QATrack+, they will automatically be added to any group with this flag set.

Other Minor Features & Bugs Fixed

  • Fixed bug with control charts and null valued / skipped tests. #506

  • Fixed bug with selecting Test List Cycle days from sidebar menu

  • QATrack+ by default will now use the database for caching rather than the filesystem. This should have comparable or better performance and eliminate the occassional 500 errors generated on Windows servers due to file permissions & access issues.

  • Some python packages have been updated
    • pydicom updated to 2.1.2

    • numpy updated to 1.20.0

    • matplotlib updated to 3.3.4

    • scipy updated to 1.5.4

What didn’t make it into this release?

  • Translations Unfortunately there is still quite a bit of work to be done in order to get QATrack+ translated into other languages. Translations are currently low on the developers priority list so without outside contributions it is hard to say when this will be completed. However, incremental progress is being made in this direction and templates and strings are gradually getting marked for translation.

QATrack+ v0.3.0

QATrack+ v0.3.0.18 Release Notes

  • Fixed the UnitTestCollection queryset in the API

  • Updated requirements to work with Python 3.7 & new versions of pip

QATrack+ v0.3.0.18 Release Notes

  • Fixed a bug where Test Lists from Test List Cycles with Ad-Hoc frequency would not show up when charting

QATrack+ v0.3.0.16 Release Notes

  • Allow disabling warning message by setting TestList.warning_message blank

  • Add test type to html class for qa-valuerows so they can more easily be targeted in JavaScript code.

QATrack+ v0.3.0.15 Release Notes

  • The Active Unit Test Info filter was fixed

  • Fixed minimum width of Category display when performing QC tests

  • Added new setting CATEGORY_FIRST_OF_GROUP_ONLY. When True, if there is a group of sequential tests with the same category, only the top most category name will be shown to allow better visual separation of groups of categories. Currently this defaults to False to maintain current behaviour but this will default to True for the v3.1.0 release.

Upgrading to v0.3.0.15 from v0.3.0

If you haven’t upgraded to v0.3.0 yet see instructions for v0.3.0 below. If you’ve already upgraded to v0.3.0 then to upgrade to v0.3.0.15:

  1. Open shell and activate your Python 3 virtual environment then:

  2. git fetch origin
    git checkout v0.3.0.15
    python manage.py collectstatic
    python manage.py clearcache
    
  3. On Linux sudo service apache2 restart on Windows, restart QATrack3 CherryPy Service

QATrack+ v0.3.0.14 Release Notes

  • A patch was made to fix a security flaw in LDAP/Active Directory Authentication. This patch is only required if you use LDAP/Active Directory for authenticating your users.

    To patch your system, please follow the following instructions for your version:

    • v0.3.0.x:

      • Windows. Open a Powershell Window then:

        cd C:\deploy
        .\venvs\qatrack3\Script\Activate.ps1
        cd qatrackplus
        git fetch origin
        git checkout v0.3.0.14
        python manage.py shell -c "from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()"
        python manage.py collectstatic
        

        then restart the CherryPy service

      • Linux. Open a terminal:

        cd ~/web/qatrackplus
        source ~/venvs/qatrack3/bin/activate
        git fetch origin
        git checkout v0.3.0.14
        python manage.py shell -c "from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()"
        python manage.py collectstatic
        sudo service apache2 restart
        
    • v0.2.9.x:

      • Windows. Open a Powershell Window then:

        cd C:\deploy
        .\venvs\qatrack\Script\Activate.ps1
        cd qatrackplus
        git fetch origin
        git checkout v0.2.9.2
        python manage.py shell
        >>> from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()
        >>> exit()
        python manage.py collectstatic
        

        then restart the CherryPy service

      • Linux. Open a terminal:

        cd ~/web/qatrackplus
        source ~/venvs/qatrack3/bin/activate
        git fetch origin
        git checkout v0.2.9.2
        python manage.py shell
        >>> from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()
        >>> exit()
        python manage.py collectstatic
        sudo service apache2 restart
        
    • v0.2.8.x:

      • Windows. Open a Powershell Window then:

        cd C:\deploy
        .\venvs\qatrack\Script\Activate.ps1
        cd qatrackplus
        git fetch origin
        git checkout v0.2.8.1
        python manage.py shell
        >>> from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()
        >>> exit()
        python manage.py collectstatic
        

        then restart the CherryPy service

      • Linux. Open a terminal:

        cd ~/web/qatrackplus
        source ~/venvs/qatrack3/bin/activate
        git fetch origin
        git checkout v0.2.8.1
        python manage.py shell
        >>> from qatrack.accounts.utils import fix_ldap_passwords; fix_ldap_passwords()
        >>> exit()
        python manage.py collectstatic
        sudo service apache2 restart
        

QATrack+ v0.3.0.13 Release Notes

For full details of v0.3.0 see the v0.3.0 release notes below. v0.3.013 is a patch to v0.3.0 that fixes a few minor issues.

  • Service Events have been added to the admin so they can now be hard deleted.

  • A few bugs with testpacks has been fixed including where Sublist tests were not created correctly when creating test packs.

  • A number of bugs with the API have been fixed.

  • A bug with the initial v0.3.0 migration has been fixed for those who have SITE_ID ~= 1 in their settings file.

  • skipped tests are now excluded by default from UTILS.previous_test_instance.

  • Bug where the Test List Members drop down would not be populated correctly due to conflicting jQuery versions has been resolved.

Upgrading to v0.3.0.13 from v0.3.0

If you haven’t upgraded to v0.3.0 yet see instructions for v0.3.0 below. If you’ve already upgraded to v0.3.0 then to upgrade to v0.3.0.13:

  1. Open shell and activate your Python 3 virtual environment then:

  2. git fetch origin
    git checkout v0.3.0.13
    python manage.py collectstatic
    python manage.py clearcache
    
  3. On Linux sudo service apache2 restart on Windows, restart QATrack3 CherryPy Service

QATrack+ v0.3.0 Release Notes

It’s been two years since the release of QATrack+ v0.2.9 and this release marks the largest update to QATrack+ since the initial release in 2012. Details of QATrack+ v0.3.0 are included below.

Acknowledgements

Many thanks to Ryan Bottema & Crystal Angers at The Ottawa Hospital for all their work on the development and implementation of the new Service Log app (with guidance and QA from the rest of the Ottawa QATrack+ team!).

Thank you to Simon Biggs for all his work on the new experimental Docker deployment method as well as ideas and discussions on many other features.

Thanks to all of you who provided databases for testing the data model migration from 0.2.9 to 0.3.0. This helped catch a few DBMS specific migration issues. There were also a number of people who tested the migration / update procedure before this releae which is hugely appreciated!

A big thanks also goes out to the Canadian Nuclear Safety Commission! QATrack+ was one of the recipients of the 2017 CSNC’s Innovation Grant which provided financial support for this release.

Last but certainly not least, thank you to those of you who have submitted bug reports, made feature requests, and contributed to the many discussions on the mailing list.

Details of the v0.3.0 release
  • A new Service Log application for tracking machine service events, machine down time, return to service, and more!

  • A new Parts application for tracking spare parts, where they’re located, how many are in inventory, and their vendors.

  • Sublists have been updated and improved and can now have their order rearranged within the parent test list as well as optional visual emphasis when performing a test list.

  • The user interface has been updated to be a bit more modern while hopefully remaining familiar to existing QATrack+ users.

  • Pylinac is now installed by default. Images can be uploaded, analyzed, and displayed inline within test lists.

  • Experimental support for importing/exporting Testpacks for exchanging test configurations with other QATrack+ installations.

  • An Application Programming Interface (API) has been added for allowing external applications and scripts to access and upload data to your QATrack+ server.

  • When reviewing data by Due Status you can now filter by unit.

  • After creating a Unit Test Collection, it is no longer possible to change the test list (cycle) assigned to it. This is in order to prevent unintended data loss.

  • You can now assign a tolerance to boolean tests.

  • The ability to save test lists is now an assignable user permission.

  • Entire units can now be marked as inactive to make it easy to hide units when they are decomissioned.

  • Hidden tests can now be autoreviewed.

  • When choosing a unit to peform QA on, rather than showing all defined frequencies, the drop down lists for test frequencies are now limited to frequencies of test lists assigned to that unit.

  • A new “experimental” method of deploying QATrack+ using Docker is available. This method makes it very easy to get a complete QATrack+ installation up and running. Currently marked as experimental as it has not been deployed in production anywhere. Thank you very much to Simon Biggs for putting this idea forward and then getting it all implemented in a sensible way!

  • When a reference or tolerance for a test is updated, the history of the users who made the change, when the changes was made, the previous reference and tolerance, and an optional comment are now stored.

  • It’s now possible to set (or read) the comment for a test instance from the tests calculation procedure.

  • Default email notifications are now sent as html emails with a link to the relevant test list instance

  • Notification emails are no longer sent to inactives users.

  • When performing a test list, the number of existing in-progress sessions for the same test list is now shown in the UI. The total number of test lists in progress is also now shown in the main drop down menus.

  • Comments can now be added when reviewing test list instances and comments on test list instances now <record the username and timestamp of the comment.

  • If a composite test or upload test generates a “Server Error”, the error can now be seen by hovering your mouse over the Status column for the test.

  • The UX for deleting a test list has been improved.

  • Upload tests now have two context variables available FILE and BIN_FILE, the latter being a file instances opened in binary rather than text mode. Any existing upload tests that you have which assume a binary file type will need to be updated to use BIN_FILE. More details are available in the v0.3.0 installation docs.

  • Mainstream support for Python 2 is ending in 2020 and as such QATrack+ has been updated to use Python 3.4-3.6.

  • The complete list of bugs/features can be found on BitBucket

Upgrading to v0.3.0

For instructions on upgrading to QATrack+ 0.3.0 please see the installation docs for your platform.