Version history

Version 2.3

  • Django Channels has been upgraded to version 2.x

  • runprodserver uses Uvicorn instead of Daphne

  • You can do MTurk sandbox testing locally. Install Redis then run otree runprodserver 8001 --dev-https to run an HTTPS server on https://localhost:8001. You will get a security warning but it’s OK because the site is on your own computer.

Version 2.2

  • support for the otreezip format (otree zip, otree unzip, otree runzip)

  • MTurk: in sandbox mode, don’t grant qualifications or check qualification requirements

  • MTurk: before paying participants, check if there is adequate account balance.

  • “next button” is disabled after clicking, to prevent congesting the server with duplicate page loads.

  • Upgrade to the latest version of Sentry

  • Form validation methods should go on the model, not the page. See Dynamic form field validation

  • app_after_this_page

  • Various performance and stability improvements

Version 2.1

  • oTree now raises an error if you use an undefined variable in your template. This will help catch typos like {{ Player.payoff }} or {% if player.id_in_gruop %}. This means that apps that previously worked may now get a template error (previously, it failed silently). If you can’t remove the offending variable, you can apply the |default filter, like: {{ my_undefined_variable|default:None }}

  • oTree now warns you if you use an invalid attribute on a Page/WaitPage. You can disable this by setting _allow_custom_attributes=True on the page class. See here for more details.

  • CSV/Excel data export is done asynchronously, which will fix timeout issues for large files on Heroku.

  • Better performance, especially for “Monitor” and “Data” tab in admin interface