otree 6.0.1__tar.gz → 6.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. {otree-6.0.1/otree.egg-info → otree-6.0.3}/PKG-INFO +1 -1
  2. {otree-6.0.1 → otree-6.0.3}/otree/__init__.py +1 -1
  3. {otree-6.0.1 → otree-6.0.3}/otree/api.pyi +1 -1
  4. {otree-6.0.1 → otree-6.0.3}/otree/cli/zip.py +7 -11
  5. {otree-6.0.1 → otree-6.0.3}/otree/forms/fields.py +1 -1
  6. {otree-6.0.1 → otree-6.0.3}/otree/forms/forms.py +1 -1
  7. {otree-6.0.1 → otree-6.0.3}/otree/forms/widgets.py +5 -1
  8. {otree-6.0.1 → otree-6.0.3/otree.egg-info}/PKG-INFO +1 -1
  9. {otree-6.0.1 → otree-6.0.3}/LICENSE +0 -0
  10. {otree-6.0.1 → otree-6.0.3}/MANIFEST.in +0 -0
  11. {otree-6.0.1 → otree-6.0.3}/README.rst +0 -0
  12. {otree-6.0.1 → otree-6.0.3}/otree/api.py +0 -0
  13. {otree-6.0.1 → otree-6.0.3}/otree/asgi.py +0 -0
  14. {otree-6.0.1 → otree-6.0.3}/otree/assets/__init__.py +0 -0
  15. {otree-6.0.1 → otree-6.0.3}/otree/assets/__pycache__/__init__.cpython-310.pyc +0 -0
  16. {otree-6.0.1 → otree-6.0.3}/otree/assets/__pycache__/__init__.cpython-311.pyc +0 -0
  17. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template/MyPage.html +0 -0
  18. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template/Results.html +0 -0
  19. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template/__init__.py +0 -0
  20. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template/__pycache__/__init__.cpython-310.pyc +0 -0
  21. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template/__pycache__/__init__.cpython-311.pyc +0 -0
  22. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/Results.html +0 -0
  23. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/Task.html +0 -0
  24. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/__init__.py +0 -0
  25. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/__pycache__/__init__.cpython-310.pyc +0 -0
  26. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/__pycache__/__init__.cpython-311.pyc +0 -0
  27. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/trials.csv +0 -0
  28. {otree-6.0.1 → otree-6.0.3}/otree/assets/app_template_trials/trials.js +0 -0
  29. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/.gitignore +0 -0
  30. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/Procfile +0 -0
  31. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/__init__.py +0 -0
  32. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/__pycache__/__init__.cpython-310.pyc +0 -0
  33. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/__pycache__/__init__.cpython-311.pyc +0 -0
  34. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/__pycache__/settings.cpython-310.pyc +0 -0
  35. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/__pycache__/settings.cpython-311.pyc +0 -0
  36. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/_static/global/empty.css +0 -0
  37. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/requirements.txt +0 -0
  38. {otree-6.0.1 → otree-6.0.3}/otree/assets/project_template/settings.py +0 -0
  39. {otree-6.0.1 → otree-6.0.3}/otree/auth.py +0 -0
  40. {otree-6.0.1 → otree-6.0.3}/otree/bots/__init__.py +0 -0
  41. {otree-6.0.1 → otree-6.0.3}/otree/bots/bot.py +0 -0
  42. {otree-6.0.1 → otree-6.0.3}/otree/bots/browser.py +0 -0
  43. {otree-6.0.1 → otree-6.0.3}/otree/bots/browser_launcher.py +0 -0
  44. {otree-6.0.1 → otree-6.0.3}/otree/bots/runner.py +0 -0
  45. {otree-6.0.1 → otree-6.0.3}/otree/channels/__init__.py +0 -0
  46. {otree-6.0.1 → otree-6.0.3}/otree/channels/consumers.py +0 -0
  47. {otree-6.0.1 → otree-6.0.3}/otree/channels/routing.py +0 -0
  48. {otree-6.0.1 → otree-6.0.3}/otree/channels/utils.py +0 -0
  49. {otree-6.0.1 → otree-6.0.3}/otree/chat.py +0 -0
  50. {otree-6.0.1 → otree-6.0.3}/otree/checks.py +0 -0
  51. {otree-6.0.1 → otree-6.0.3}/otree/cli/__init__.py +0 -0
  52. {otree-6.0.1 → otree-6.0.3}/otree/cli/base.py +0 -0
  53. {otree-6.0.1 → otree-6.0.3}/otree/cli/bots.py +0 -0
  54. {otree-6.0.1 → otree-6.0.3}/otree/cli/browser_bots.py +0 -0
  55. {otree-6.0.1 → otree-6.0.3}/otree/cli/create_session.py +0 -0
  56. {otree-6.0.1 → otree-6.0.3}/otree/cli/devserver.py +0 -0
  57. {otree-6.0.1 → otree-6.0.3}/otree/cli/devserver_inner.py +0 -0
  58. {otree-6.0.1 → otree-6.0.3}/otree/cli/prodserver.py +0 -0
  59. {otree-6.0.1 → otree-6.0.3}/otree/cli/prodserver1of2.py +0 -0
  60. {otree-6.0.1 → otree-6.0.3}/otree/cli/prodserver2of2.py +0 -0
  61. {otree-6.0.1 → otree-6.0.3}/otree/cli/resetdb.py +0 -0
  62. {otree-6.0.1 → otree-6.0.3}/otree/cli/startapp.py +0 -0
  63. {otree-6.0.1 → otree-6.0.3}/otree/cli/startapp_trials.py +0 -0
  64. {otree-6.0.1 → otree-6.0.3}/otree/cli/startproject.py +0 -0
  65. {otree-6.0.1 → otree-6.0.3}/otree/cli/timeoutsubprocess.py +0 -0
  66. {otree-6.0.1 → otree-6.0.3}/otree/cli/unzip.py +0 -0
  67. {otree-6.0.1 → otree-6.0.3}/otree/cli/zipserver.py +0 -0
  68. {otree-6.0.1 → otree-6.0.3}/otree/common.py +0 -0
  69. {otree-6.0.1 → otree-6.0.3}/otree/common2.py +0 -0
  70. {otree-6.0.1 → otree-6.0.3}/otree/constants.py +0 -0
  71. {otree-6.0.1 → otree-6.0.3}/otree/currency.py +0 -0
  72. {otree-6.0.1 → otree-6.0.3}/otree/database.py +0 -0
  73. {otree-6.0.1 → otree-6.0.3}/otree/decimal.py +0 -0
  74. {otree-6.0.1 → otree-6.0.3}/otree/errorpage.py +0 -0
  75. {otree-6.0.1 → otree-6.0.3}/otree/export.py +0 -0
  76. {otree-6.0.1 → otree-6.0.3}/otree/forms/__init__.py +0 -0
  77. {otree-6.0.1 → otree-6.0.3}/otree/forms/multistring.py +0 -0
  78. {otree-6.0.1 → otree-6.0.3}/otree/i18n.py +0 -0
  79. {otree-6.0.1 → otree-6.0.3}/otree/live.py +0 -0
  80. {otree-6.0.1 → otree-6.0.3}/otree/locale/ar/LC_MESSAGES/django.mo +0 -0
  81. {otree-6.0.1 → otree-6.0.3}/otree/locale/ar/LC_MESSAGES/django.po +0 -0
  82. {otree-6.0.1 → otree-6.0.3}/otree/locale/babel.ini +0 -0
  83. {otree-6.0.1 → otree-6.0.3}/otree/locale/cs/LC_MESSAGES/django.mo +0 -0
  84. {otree-6.0.1 → otree-6.0.3}/otree/locale/cs/LC_MESSAGES/django.po +0 -0
  85. {otree-6.0.1 → otree-6.0.3}/otree/locale/de/LC_MESSAGES/django.mo +0 -0
  86. {otree-6.0.1 → otree-6.0.3}/otree/locale/de/LC_MESSAGES/django.po +0 -0
  87. {otree-6.0.1 → otree-6.0.3}/otree/locale/django.pot +0 -0
  88. {otree-6.0.1 → otree-6.0.3}/otree/locale/es/LC_MESSAGES/django.mo +0 -0
  89. {otree-6.0.1 → otree-6.0.3}/otree/locale/es/LC_MESSAGES/django.po +0 -0
  90. {otree-6.0.1 → otree-6.0.3}/otree/locale/fi/LC_MESSAGES/django.mo +0 -0
  91. {otree-6.0.1 → otree-6.0.3}/otree/locale/fi/LC_MESSAGES/django.po +0 -0
  92. {otree-6.0.1 → otree-6.0.3}/otree/locale/fr/LC_MESSAGES/django.mo +0 -0
  93. {otree-6.0.1 → otree-6.0.3}/otree/locale/fr/LC_MESSAGES/django.po +0 -0
  94. {otree-6.0.1 → otree-6.0.3}/otree/locale/he/LC_MESSAGES/django.mo +0 -0
  95. {otree-6.0.1 → otree-6.0.3}/otree/locale/he/LC_MESSAGES/django.po +0 -0
  96. {otree-6.0.1 → otree-6.0.3}/otree/locale/hi/LC_MESSAGES/django.mo +0 -0
  97. {otree-6.0.1 → otree-6.0.3}/otree/locale/hi/LC_MESSAGES/django.po +0 -0
  98. {otree-6.0.1 → otree-6.0.3}/otree/locale/hu/LC_MESSAGES/django.mo +0 -0
  99. {otree-6.0.1 → otree-6.0.3}/otree/locale/hu/LC_MESSAGES/django.po +0 -0
  100. {otree-6.0.1 → otree-6.0.3}/otree/locale/id/LC_MESSAGES/django.mo +0 -0
  101. {otree-6.0.1 → otree-6.0.3}/otree/locale/id/LC_MESSAGES/django.po +0 -0
  102. {otree-6.0.1 → otree-6.0.3}/otree/locale/it/LC_MESSAGES/django.mo +0 -0
  103. {otree-6.0.1 → otree-6.0.3}/otree/locale/it/LC_MESSAGES/django.po +0 -0
  104. {otree-6.0.1 → otree-6.0.3}/otree/locale/ja/LC_MESSAGES/django.mo +0 -0
  105. {otree-6.0.1 → otree-6.0.3}/otree/locale/ja/LC_MESSAGES/django.po +0 -0
  106. {otree-6.0.1 → otree-6.0.3}/otree/locale/ko/LC_MESSAGES/django.mo +0 -0
  107. {otree-6.0.1 → otree-6.0.3}/otree/locale/ko/LC_MESSAGES/django.po +0 -0
  108. {otree-6.0.1 → otree-6.0.3}/otree/locale/nb/LC_MESSAGES/django.mo +0 -0
  109. {otree-6.0.1 → otree-6.0.3}/otree/locale/nb/LC_MESSAGES/django.po +0 -0
  110. {otree-6.0.1 → otree-6.0.3}/otree/locale/nl/LC_MESSAGES/django.mo +0 -0
  111. {otree-6.0.1 → otree-6.0.3}/otree/locale/nl/LC_MESSAGES/django.po +0 -0
  112. {otree-6.0.1 → otree-6.0.3}/otree/locale/pl/LC_MESSAGES/django.mo +0 -0
  113. {otree-6.0.1 → otree-6.0.3}/otree/locale/pl/LC_MESSAGES/django.po +0 -0
  114. {otree-6.0.1 → otree-6.0.3}/otree/locale/pt/LC_MESSAGES/django.mo +0 -0
  115. {otree-6.0.1 → otree-6.0.3}/otree/locale/pt/LC_MESSAGES/django.po +0 -0
  116. {otree-6.0.1 → otree-6.0.3}/otree/locale/ru/LC_MESSAGES/django.mo +0 -0
  117. {otree-6.0.1 → otree-6.0.3}/otree/locale/ru/LC_MESSAGES/django.po +0 -0
  118. {otree-6.0.1 → otree-6.0.3}/otree/locale/tr/LC_MESSAGES/django.mo +0 -0
  119. {otree-6.0.1 → otree-6.0.3}/otree/locale/tr/LC_MESSAGES/django.po +0 -0
  120. {otree-6.0.1 → otree-6.0.3}/otree/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  121. {otree-6.0.1 → otree-6.0.3}/otree/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  122. {otree-6.0.1 → otree-6.0.3}/otree/lookup.py +0 -0
  123. {otree-6.0.1 → otree-6.0.3}/otree/main.py +0 -0
  124. {otree-6.0.1 → otree-6.0.3}/otree/middleware.py +0 -0
  125. {otree-6.0.1 → otree-6.0.3}/otree/models/__init__.py +0 -0
  126. {otree-6.0.1 → otree-6.0.3}/otree/models/group.py +0 -0
  127. {otree-6.0.1 → otree-6.0.3}/otree/models/participant.py +0 -0
  128. {otree-6.0.1 → otree-6.0.3}/otree/models/player.py +0 -0
  129. {otree-6.0.1 → otree-6.0.3}/otree/models/session.py +0 -0
  130. {otree-6.0.1 → otree-6.0.3}/otree/models/subsession.py +0 -0
  131. {otree-6.0.1 → otree-6.0.3}/otree/models_concrete.py +0 -0
  132. {otree-6.0.1 → otree-6.0.3}/otree/mturk_client.py +0 -0
  133. {otree-6.0.1 → otree-6.0.3}/otree/patch.py +0 -0
  134. {otree-6.0.1 → otree-6.0.3}/otree/read_csv.py +0 -0
  135. {otree-6.0.1 → otree-6.0.3}/otree/room.py +0 -0
  136. {otree-6.0.1 → otree-6.0.3}/otree/session.py +0 -0
  137. {otree-6.0.1 → otree-6.0.3}/otree/settings.py +0 -0
  138. {otree-6.0.1 → otree-6.0.3}/otree/static/bootstrap5/css/bootstrap.min.css +0 -0
  139. {otree-6.0.1 → otree-6.0.3}/otree/static/bootstrap5/css/bootstrap.min.css.map +0 -0
  140. {otree-6.0.1 → otree-6.0.3}/otree/static/bootstrap5/js/bootstrap.bundle.min.js +0 -0
  141. {otree-6.0.1 → otree-6.0.3}/otree/static/bootstrap5/js/bootstrap.bundle.min.js.map +0 -0
  142. {otree-6.0.1 → otree-6.0.3}/otree/static/favicon.ico +0 -0
  143. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/clock.png +0 -0
  144. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/cloud.png +0 -0
  145. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/cogwheel.png +0 -0
  146. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/delete.png +0 -0
  147. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/download-alt.png +0 -0
  148. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/eye-open.png +0 -0
  149. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/folder-closed.png +0 -0
  150. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/link.png +0 -0
  151. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/list-alt.png +0 -0
  152. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/pencil.png +0 -0
  153. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/plus.png +0 -0
  154. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/pushpin.png +0 -0
  155. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/refresh.png +0 -0
  156. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/stats.png +0 -0
  157. {otree-6.0.1 → otree-6.0.3}/otree/static/glyphicons/usd.png +0 -0
  158. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/css/table.css +0 -0
  159. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/css/theme2.css +0 -0
  160. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/back_button.js +0 -0
  161. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/common_admin.js +0 -0
  162. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/common_user_facing.js +0 -0
  163. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/formInputs.js +0 -0
  164. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/internet-explorer.js +0 -0
  165. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/jquery-3.2.1.min.js +0 -0
  166. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/jquery.color-2.1.2.min.js +0 -0
  167. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/jquery.countdown.min.js +0 -0
  168. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/jquery.timeago.en-short.js +0 -0
  169. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/jquery.timeago.js +0 -0
  170. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/live.js +0 -0
  171. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/page-websocket-redirect.js +0 -0
  172. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/preserve_unsubmitted_inputs.js +0 -0
  173. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/reconnecting-websocket-iife.min.js +0 -0
  174. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/session_data.js +0 -0
  175. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/session_monitor.js +0 -0
  176. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/trials-core.js +0 -0
  177. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/trials-core.js.backup +0 -0
  178. {otree-6.0.1 → otree-6.0.3}/otree/static/otree/js/trials-pre.js +0 -0
  179. {otree-6.0.1 → otree-6.0.3}/otree/static/robots.txt +0 -0
  180. {otree-6.0.1 → otree-6.0.3}/otree/tasks.py +0 -0
  181. {otree-6.0.1 → otree-6.0.3}/otree/templates/global/Base.html +0 -0
  182. {otree-6.0.1 → otree-6.0.3}/otree/templates/global/Page.html +0 -0
  183. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/AdminReport.html +0 -0
  184. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/BaseAdminAll.html +0 -0
  185. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/BaseAdminRegular.html +0 -0
  186. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Base_UserFacing.html +0 -0
  187. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/CreateDemoSession.html +0 -0
  188. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/CreateSession.html +0 -0
  189. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/DemoIndex.html +0 -0
  190. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/ExportIndex.html +0 -0
  191. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/FormPage.html +0 -0
  192. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/GBATInactive.html +0 -0
  193. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Login.html +0 -0
  194. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/MTurkCreateHIT.html +0 -0
  195. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/MTurkHTMLQuestion.html +0 -0
  196. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/MTurkSessionPayments.html +0 -0
  197. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/OutOfRangeNotification.html +0 -0
  198. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Page.html +0 -0
  199. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/RoomWelcomePage.html +0 -0
  200. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/RoomWithSession.html +0 -0
  201. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/RoomWithoutSession.html +0 -0
  202. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Rooms.html +0 -0
  203. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/ServerCheck.html +0 -0
  204. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Session.html +0 -0
  205. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionData.html +0 -0
  206. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionDemoGridView.html +0 -0
  207. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionDescription.html +0 -0
  208. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionEditProperties.html +0 -0
  209. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionMonitor.html +0 -0
  210. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionPayments.html +0 -0
  211. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionSplitScreen.html +0 -0
  212. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/SessionStartLinks.html +0 -0
  213. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/Sessions.html +0 -0
  214. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/WaitPage.html +0 -0
  215. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/WaitPageGeneric.html +0 -0
  216. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/CreateSessionForm.html +0 -0
  217. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/RoomParticipantLinks.html +0 -0
  218. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/SessionInfo.html +0 -0
  219. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/TimeLimit.html +0 -0
  220. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/TimeLimit.js.html +0 -0
  221. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/debug_info.html +0 -0
  222. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/hidden_form_errors.html +0 -0
  223. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/messages.html +0 -0
  224. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/mturk_payment_table.html +0 -0
  225. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/navbar.html +0 -0
  226. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/includes/participant_code_links_table.html +0 -0
  227. {otree-6.0.1 → otree-6.0.3}/otree/templates/otree/tags/chat.html +0 -0
  228. {otree-6.0.1 → otree-6.0.3}/otree/templating/__init__.py +0 -0
  229. {otree-6.0.1 → otree-6.0.3}/otree/templating/compiler.py +0 -0
  230. {otree-6.0.1 → otree-6.0.3}/otree/templating/context.py +0 -0
  231. {otree-6.0.1 → otree-6.0.3}/otree/templating/errors.py +0 -0
  232. {otree-6.0.1 → otree-6.0.3}/otree/templating/filters.py +0 -0
  233. {otree-6.0.1 → otree-6.0.3}/otree/templating/loader.py +0 -0
  234. {otree-6.0.1 → otree-6.0.3}/otree/templating/nodes.py +0 -0
  235. {otree-6.0.1 → otree-6.0.3}/otree/templating/template.py +0 -0
  236. {otree-6.0.1 → otree-6.0.3}/otree/templating/utils.py +0 -0
  237. {otree-6.0.1 → otree-6.0.3}/otree/test.py +0 -0
  238. {otree-6.0.1 → otree-6.0.3}/otree/trials.py +0 -0
  239. {otree-6.0.1 → otree-6.0.3}/otree/update.py +0 -0
  240. {otree-6.0.1 → otree-6.0.3}/otree/urls.py +0 -0
  241. {otree-6.0.1 → otree-6.0.3}/otree/views/__init__.py +0 -0
  242. {otree-6.0.1 → otree-6.0.3}/otree/views/abstract.py +0 -0
  243. {otree-6.0.1 → otree-6.0.3}/otree/views/admin.py +0 -0
  244. {otree-6.0.1 → otree-6.0.3}/otree/views/cbv.py +0 -0
  245. {otree-6.0.1 → otree-6.0.3}/otree/views/demo.py +0 -0
  246. {otree-6.0.1 → otree-6.0.3}/otree/views/export.py +0 -0
  247. {otree-6.0.1 → otree-6.0.3}/otree/views/mturk.py +0 -0
  248. {otree-6.0.1 → otree-6.0.3}/otree/views/participant.py +0 -0
  249. {otree-6.0.1 → otree-6.0.3}/otree/views/querystring.py +0 -0
  250. {otree-6.0.1 → otree-6.0.3}/otree/views/rest.py +0 -0
  251. {otree-6.0.1 → otree-6.0.3}/otree/views/room.py +0 -0
  252. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/SOURCES.txt +0 -0
  253. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/dependency_links.txt +0 -0
  254. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/entry_points.txt +0 -0
  255. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/not-zip-safe +0 -0
  256. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/requires.txt +0 -0
  257. {otree-6.0.1 → otree-6.0.3}/otree.egg-info/top_level.txt +0 -0
  258. {otree-6.0.1 → otree-6.0.3}/pyproject.toml +0 -0
  259. {otree-6.0.1 → otree-6.0.3}/requirements.txt +0 -0
  260. {otree-6.0.1 → otree-6.0.3}/setup.cfg +0 -0
  261. {otree-6.0.1 → otree-6.0.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otree
3
- Version: 6.0.1
3
+ Version: 6.0.3
4
4
  Summary: Framework for multiplayer strategy games and complex surveys.
5
5
  Home-page: http://otree.org/
6
6
  Author: chris@otree.org
@@ -1,2 +1,2 @@
1
- __version__ = '6.0.1'
1
+ __version__ = '6.0.3'
2
2
  # don't import anything else here because setup.py imports this.
@@ -157,7 +157,7 @@ class widgets:
157
157
 
158
158
  # don't need HiddenInput because you can just write <input type="hidden" ...>
159
159
  # and then you know the element's selector
160
- class CheckboxInput:
160
+ class Checkbox:
161
161
  pass
162
162
 
163
163
  class RadioSelect:
@@ -95,11 +95,7 @@ def zip_project(project_path: Path):
95
95
  logger.error(str(exc))
96
96
  sys.exit(1)
97
97
 
98
- # once Heroku upgrades their default python version, we can remove this runtime stuff.
99
- # we should just overwrite the existing runtime. because maybe it has something old.
100
- # (e.g. if it was downloaded from otree hub)
101
98
  overwrite_runtime_txt = not os.getenv('OTREE_NO_RUNTIME_TXT')
102
- print_function('overwrite_runtime_txt', overwrite_runtime_txt)
103
99
  if overwrite_runtime_txt:
104
100
  runtime_txt = project_path / '.python-version'
105
101
  runtime_txt.write_text('3.12')
@@ -115,9 +111,12 @@ def zip_project(project_path: Path):
115
111
 
116
112
  def fix_reqs_files(project_path: Path) -> dict:
117
113
  rpath = project_path.joinpath('requirements.txt')
118
- rbpath = project_path.joinpath('requirements_base.txt')
114
+
115
+ # If requirements.txt doesn't exist, create it with defaults
116
+ if not rpath.exists():
117
+ return {rpath.name: REQS_DEFAULT}
118
+
119
119
  original_rtxt = rpath.read_text('utf8')
120
- original_rbtxt = rbpath.read_text('utf8') if rbpath.exists() else ''
121
120
 
122
121
  can_overwrite = False
123
122
  if OVERWRITE_TOKEN in original_rtxt:
@@ -125,7 +124,7 @@ def fix_reqs_files(project_path: Path) -> dict:
125
124
  elif DONT_OVERWRITE_TOKEN not in original_rtxt:
126
125
  ans = input(
127
126
  "Do you want oTree to automatically keep your requirements files up to date?\n"
128
- "(Enter 'n' if you have custom requirements in requirements.txt or requirements_base.txt)\n"
127
+ "(Enter 'n' if you have custom requirements in requirements.txt)\n"
129
128
  "(y/n): "
130
129
  ).lower()
131
130
  if ans == 'y':
@@ -137,10 +136,7 @@ def fix_reqs_files(project_path: Path) -> dict:
137
136
  can_overwrite = False
138
137
 
139
138
  if can_overwrite:
140
- d = {rpath.name: REQS_DEFAULT}
141
- if rbpath.exists():
142
- d[rbpath.name] = REQS_BASE_DEFAULT
143
- return d
139
+ return {rpath.name: REQS_DEFAULT}
144
140
  else:
145
141
  return {}
146
142
 
@@ -163,4 +163,4 @@ class TextAreaField(StringField):
163
163
 
164
164
 
165
165
  class CheckboxField(wtfields.BooleanField):
166
- widget = wg.CheckboxInput()
166
+ widget = wg.Checkbox()
@@ -142,7 +142,7 @@ class ModelConverter(wtforms_sqlalchemy.orm.ModelConverterBase):
142
142
  @converts("Boolean")
143
143
  def conv_Boolean(self, field_args, **extra):
144
144
  field_args.setdefault('widget', widgets.RadioSelect())
145
- if isinstance(field_args['widget'], widgets.CheckboxInput):
145
+ if isinstance(field_args['widget'], widgets.Checkbox):
146
146
  return fields.CheckboxField(**field_args)
147
147
  fld = get_choices_field(field_args, FormDataTypes.bool)
148
148
  return fld
@@ -30,7 +30,7 @@ class BaseWidget:
30
30
  return html_params(name=self.field.name, **self.render_kw)
31
31
 
32
32
 
33
- class CheckboxInput(BaseWidget):
33
+ class Checkbox(BaseWidget):
34
34
  def __call__(self, field, **render_kw):
35
35
  if getattr(field, 'checked', field.data):
36
36
  render_kw['checked'] = True
@@ -40,6 +40,10 @@ class CheckboxInput(BaseWidget):
40
40
  yield ('<input type="checkbox" class="form-check-input" %s>' % (self.attrs()))
41
41
 
42
42
 
43
+ # 2025-12-25: it was never public API but keep this for compat
44
+ CheckboxInput = Checkbox
45
+
46
+
43
47
  class IntegerWidget(BaseWidget):
44
48
  """
45
49
  better to use number input when we can, because:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otree
3
- Version: 6.0.1
3
+ Version: 6.0.3
4
4
  Summary: Framework for multiplayer strategy games and complex surveys.
5
5
  Home-page: http://otree.org/
6
6
  Author: chris@otree.org
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes