1. TOHCC Medical Physics
  2. QATrack+
  3. qatrackplus

Wiki

Clone wiki

qatrackplus / v / 0.2.9 / release-notes

v0.2.9 Release Notes

A more complete list of bugs fixed and features added can be found in the issues tracker!

Deprecation Notices

As QATrack+, Python & Django and the web continue to evolve, occassionally we need to deprecate some of the versions of Python & web browsers we support. The next major release of QATrack+ will no longer officially support the following items:

  • Python 2.6 (Python 2.7 & 3.4+ only): In order to provide support for Python 3 we will be dropping support for Python 2.6
  • IE7-IE10 (IE 11+ Only): IE7-IE10 are no longer supported by Microsoft and we will no longer be testing these platforms.

Upgrade Instructions

If you are uncomfortable with doing the upgrade yourself, or would like assistance for any reason, please email randle.taylor@gmail.com and I will be more than happy to set up a time to be on call to help you troubleshoot or to do a remote support session and walk through the upgrade process with you. It is much easier for me to schedule time to help you before you start your upgrade, then it is to drop everything without warning and help you if get stuck on one of these steps!

Note: this release introduces some database schema changes. The database migrations have
been tested on SQLServer, PostgreSQL, MySQL & SQLite but it is important that you:

BACK UP YOUR DATABASE BEFORE ATTEMPTING THIS UPGRADE

If any of the following steps results in an error, stop and figure out why before carrying on to the next step!

Linux/Apache Instructions

  1. Back up your database
  2. source ~/venvs/qatrack/bin/activate
  3. cd ~/web/qatrackplus
  4. git rm --cached qatrack/wsgi.py
  5. git pull origin master
  6. pip install --upgrade pip
  7. pip install -r requirements/base.txt
  8. python manage.py syncdb
  9. python manage.py migrate
  10. python manage.py collectstatic
  11. Open your qatrack/local_settings.py file and add the line: ALLOWED_HOSTS = ['your_servername_or_ip_here'] e.g. ALLOWED_HOSTS = ['52.123.4.9'] or ALLOWED_HOSTS = ['YOURHOSTNAME']
  12. sudo service apache2 restart

Windows / IIS

  1. Back up your database
  2. Open a git bash shell
  3. export WINPTY=$(which winpty)
  4. source /c/deploy/venvs/qatrack/Scripts/activate
  5. cd /c/deploy/qatrackplus
  6. git rm --cached qatrack/wsgi.py
  7. git pull origin master
  8. pip install --upgrade pip
  9. pip install -r requirements/base.txt
  10. pip install -r requirements/win.txt # Windows only!
  11. $WINPTY python manage.py syncdb
  12. $WINPTY python manage.py migrate
  13. $WINPTY python manage.py collectstatic
  14. Open your qatrack/local_settings.py file and add the line: ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
  15. Restart the QATrack+ app (i.e. the CherryPy service)

If when you load a page in QATrack+ you see an error you may need to enable use_legacy_date_fields for the SQL Server driver. Open your local_settings.py file and add the OPTIONS section shown below:

DATABASES = {
    'default': {
        'ENGINE': 'sqlserver_ado',
        'NAME': '*******',        
        'USER': '********', 
        'PASSWORD': '******',
        'HOST': '******',  
        'PORT': '',  
        # Add this options section!
        'OPTIONS': {
            'use_legacy_date_fields': True
        }
    }
}

General

  1. This last step only applies to those of you who have composite tests that rely on the current value of a multiple choice test. Since this update changes the way multiple choice values are stored you need to update the calculation procedures for these tests. For example if your calculation procedure currently looks like this:

    test = Test.objects.get(name="Dosemeter")
    choices = test.choices.split(",")
    choice_idx = choices.index(dosemeter)
    
    previous_results = TestInstance.objects.filter(
        unit_test_info__test__slug="your_test_macro_name",
        value = choice_idx,
    ).latest("work_completed")
    

    you will need to modify it slightly like so:

    previous_results = TestInstance.objects.filter(
        unit_test_info__test__slug="your_test_macro_name",
        string_value = dosemeter,
    ).latest("work_completed")
    

Updated