otree 6.0.2__tar.gz → 6.0.4__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.2/otree.egg-info → otree-6.0.4}/PKG-INFO +1 -1
  2. {otree-6.0.2 → otree-6.0.4}/otree/__init__.py +1 -1
  3. {otree-6.0.2 → otree-6.0.4}/otree/api.pyi +1 -1
  4. {otree-6.0.2 → otree-6.0.4}/otree/forms/fields.py +1 -1
  5. {otree-6.0.2 → otree-6.0.4}/otree/forms/forms.py +1 -1
  6. {otree-6.0.2 → otree-6.0.4}/otree/forms/widgets.py +5 -1
  7. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/css/theme2.css +5 -2
  8. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionData.html +2 -2
  9. {otree-6.0.2 → otree-6.0.4}/otree/views/export.py +12 -0
  10. {otree-6.0.2 → otree-6.0.4/otree.egg-info}/PKG-INFO +1 -1
  11. {otree-6.0.2 → otree-6.0.4}/LICENSE +0 -0
  12. {otree-6.0.2 → otree-6.0.4}/MANIFEST.in +0 -0
  13. {otree-6.0.2 → otree-6.0.4}/README.rst +0 -0
  14. {otree-6.0.2 → otree-6.0.4}/otree/api.py +0 -0
  15. {otree-6.0.2 → otree-6.0.4}/otree/asgi.py +0 -0
  16. {otree-6.0.2 → otree-6.0.4}/otree/assets/__init__.py +0 -0
  17. {otree-6.0.2 → otree-6.0.4}/otree/assets/__pycache__/__init__.cpython-310.pyc +0 -0
  18. {otree-6.0.2 → otree-6.0.4}/otree/assets/__pycache__/__init__.cpython-311.pyc +0 -0
  19. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template/MyPage.html +0 -0
  20. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template/Results.html +0 -0
  21. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template/__init__.py +0 -0
  22. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template/__pycache__/__init__.cpython-310.pyc +0 -0
  23. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template/__pycache__/__init__.cpython-311.pyc +0 -0
  24. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/Results.html +0 -0
  25. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/Task.html +0 -0
  26. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/__init__.py +0 -0
  27. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/__pycache__/__init__.cpython-310.pyc +0 -0
  28. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/__pycache__/__init__.cpython-311.pyc +0 -0
  29. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/trials.csv +0 -0
  30. {otree-6.0.2 → otree-6.0.4}/otree/assets/app_template_trials/trials.js +0 -0
  31. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/.gitignore +0 -0
  32. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/Procfile +0 -0
  33. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/__init__.py +0 -0
  34. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/__pycache__/__init__.cpython-310.pyc +0 -0
  35. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/__pycache__/__init__.cpython-311.pyc +0 -0
  36. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/__pycache__/settings.cpython-310.pyc +0 -0
  37. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/__pycache__/settings.cpython-311.pyc +0 -0
  38. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/_static/global/empty.css +0 -0
  39. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/requirements.txt +0 -0
  40. {otree-6.0.2 → otree-6.0.4}/otree/assets/project_template/settings.py +0 -0
  41. {otree-6.0.2 → otree-6.0.4}/otree/auth.py +0 -0
  42. {otree-6.0.2 → otree-6.0.4}/otree/bots/__init__.py +0 -0
  43. {otree-6.0.2 → otree-6.0.4}/otree/bots/bot.py +0 -0
  44. {otree-6.0.2 → otree-6.0.4}/otree/bots/browser.py +0 -0
  45. {otree-6.0.2 → otree-6.0.4}/otree/bots/browser_launcher.py +0 -0
  46. {otree-6.0.2 → otree-6.0.4}/otree/bots/runner.py +0 -0
  47. {otree-6.0.2 → otree-6.0.4}/otree/channels/__init__.py +0 -0
  48. {otree-6.0.2 → otree-6.0.4}/otree/channels/consumers.py +0 -0
  49. {otree-6.0.2 → otree-6.0.4}/otree/channels/routing.py +0 -0
  50. {otree-6.0.2 → otree-6.0.4}/otree/channels/utils.py +0 -0
  51. {otree-6.0.2 → otree-6.0.4}/otree/chat.py +0 -0
  52. {otree-6.0.2 → otree-6.0.4}/otree/checks.py +0 -0
  53. {otree-6.0.2 → otree-6.0.4}/otree/cli/__init__.py +0 -0
  54. {otree-6.0.2 → otree-6.0.4}/otree/cli/base.py +0 -0
  55. {otree-6.0.2 → otree-6.0.4}/otree/cli/bots.py +0 -0
  56. {otree-6.0.2 → otree-6.0.4}/otree/cli/browser_bots.py +0 -0
  57. {otree-6.0.2 → otree-6.0.4}/otree/cli/create_session.py +0 -0
  58. {otree-6.0.2 → otree-6.0.4}/otree/cli/devserver.py +0 -0
  59. {otree-6.0.2 → otree-6.0.4}/otree/cli/devserver_inner.py +0 -0
  60. {otree-6.0.2 → otree-6.0.4}/otree/cli/prodserver.py +0 -0
  61. {otree-6.0.2 → otree-6.0.4}/otree/cli/prodserver1of2.py +0 -0
  62. {otree-6.0.2 → otree-6.0.4}/otree/cli/prodserver2of2.py +0 -0
  63. {otree-6.0.2 → otree-6.0.4}/otree/cli/resetdb.py +0 -0
  64. {otree-6.0.2 → otree-6.0.4}/otree/cli/startapp.py +0 -0
  65. {otree-6.0.2 → otree-6.0.4}/otree/cli/startapp_trials.py +0 -0
  66. {otree-6.0.2 → otree-6.0.4}/otree/cli/startproject.py +0 -0
  67. {otree-6.0.2 → otree-6.0.4}/otree/cli/timeoutsubprocess.py +0 -0
  68. {otree-6.0.2 → otree-6.0.4}/otree/cli/unzip.py +0 -0
  69. {otree-6.0.2 → otree-6.0.4}/otree/cli/zip.py +0 -0
  70. {otree-6.0.2 → otree-6.0.4}/otree/cli/zipserver.py +0 -0
  71. {otree-6.0.2 → otree-6.0.4}/otree/common.py +0 -0
  72. {otree-6.0.2 → otree-6.0.4}/otree/common2.py +0 -0
  73. {otree-6.0.2 → otree-6.0.4}/otree/constants.py +0 -0
  74. {otree-6.0.2 → otree-6.0.4}/otree/currency.py +0 -0
  75. {otree-6.0.2 → otree-6.0.4}/otree/database.py +0 -0
  76. {otree-6.0.2 → otree-6.0.4}/otree/decimal.py +0 -0
  77. {otree-6.0.2 → otree-6.0.4}/otree/errorpage.py +0 -0
  78. {otree-6.0.2 → otree-6.0.4}/otree/export.py +0 -0
  79. {otree-6.0.2 → otree-6.0.4}/otree/forms/__init__.py +0 -0
  80. {otree-6.0.2 → otree-6.0.4}/otree/forms/multistring.py +0 -0
  81. {otree-6.0.2 → otree-6.0.4}/otree/i18n.py +0 -0
  82. {otree-6.0.2 → otree-6.0.4}/otree/live.py +0 -0
  83. {otree-6.0.2 → otree-6.0.4}/otree/locale/ar/LC_MESSAGES/django.mo +0 -0
  84. {otree-6.0.2 → otree-6.0.4}/otree/locale/ar/LC_MESSAGES/django.po +0 -0
  85. {otree-6.0.2 → otree-6.0.4}/otree/locale/babel.ini +0 -0
  86. {otree-6.0.2 → otree-6.0.4}/otree/locale/cs/LC_MESSAGES/django.mo +0 -0
  87. {otree-6.0.2 → otree-6.0.4}/otree/locale/cs/LC_MESSAGES/django.po +0 -0
  88. {otree-6.0.2 → otree-6.0.4}/otree/locale/de/LC_MESSAGES/django.mo +0 -0
  89. {otree-6.0.2 → otree-6.0.4}/otree/locale/de/LC_MESSAGES/django.po +0 -0
  90. {otree-6.0.2 → otree-6.0.4}/otree/locale/django.pot +0 -0
  91. {otree-6.0.2 → otree-6.0.4}/otree/locale/es/LC_MESSAGES/django.mo +0 -0
  92. {otree-6.0.2 → otree-6.0.4}/otree/locale/es/LC_MESSAGES/django.po +0 -0
  93. {otree-6.0.2 → otree-6.0.4}/otree/locale/fi/LC_MESSAGES/django.mo +0 -0
  94. {otree-6.0.2 → otree-6.0.4}/otree/locale/fi/LC_MESSAGES/django.po +0 -0
  95. {otree-6.0.2 → otree-6.0.4}/otree/locale/fr/LC_MESSAGES/django.mo +0 -0
  96. {otree-6.0.2 → otree-6.0.4}/otree/locale/fr/LC_MESSAGES/django.po +0 -0
  97. {otree-6.0.2 → otree-6.0.4}/otree/locale/he/LC_MESSAGES/django.mo +0 -0
  98. {otree-6.0.2 → otree-6.0.4}/otree/locale/he/LC_MESSAGES/django.po +0 -0
  99. {otree-6.0.2 → otree-6.0.4}/otree/locale/hi/LC_MESSAGES/django.mo +0 -0
  100. {otree-6.0.2 → otree-6.0.4}/otree/locale/hi/LC_MESSAGES/django.po +0 -0
  101. {otree-6.0.2 → otree-6.0.4}/otree/locale/hu/LC_MESSAGES/django.mo +0 -0
  102. {otree-6.0.2 → otree-6.0.4}/otree/locale/hu/LC_MESSAGES/django.po +0 -0
  103. {otree-6.0.2 → otree-6.0.4}/otree/locale/id/LC_MESSAGES/django.mo +0 -0
  104. {otree-6.0.2 → otree-6.0.4}/otree/locale/id/LC_MESSAGES/django.po +0 -0
  105. {otree-6.0.2 → otree-6.0.4}/otree/locale/it/LC_MESSAGES/django.mo +0 -0
  106. {otree-6.0.2 → otree-6.0.4}/otree/locale/it/LC_MESSAGES/django.po +0 -0
  107. {otree-6.0.2 → otree-6.0.4}/otree/locale/ja/LC_MESSAGES/django.mo +0 -0
  108. {otree-6.0.2 → otree-6.0.4}/otree/locale/ja/LC_MESSAGES/django.po +0 -0
  109. {otree-6.0.2 → otree-6.0.4}/otree/locale/ko/LC_MESSAGES/django.mo +0 -0
  110. {otree-6.0.2 → otree-6.0.4}/otree/locale/ko/LC_MESSAGES/django.po +0 -0
  111. {otree-6.0.2 → otree-6.0.4}/otree/locale/nb/LC_MESSAGES/django.mo +0 -0
  112. {otree-6.0.2 → otree-6.0.4}/otree/locale/nb/LC_MESSAGES/django.po +0 -0
  113. {otree-6.0.2 → otree-6.0.4}/otree/locale/nl/LC_MESSAGES/django.mo +0 -0
  114. {otree-6.0.2 → otree-6.0.4}/otree/locale/nl/LC_MESSAGES/django.po +0 -0
  115. {otree-6.0.2 → otree-6.0.4}/otree/locale/pl/LC_MESSAGES/django.mo +0 -0
  116. {otree-6.0.2 → otree-6.0.4}/otree/locale/pl/LC_MESSAGES/django.po +0 -0
  117. {otree-6.0.2 → otree-6.0.4}/otree/locale/pt/LC_MESSAGES/django.mo +0 -0
  118. {otree-6.0.2 → otree-6.0.4}/otree/locale/pt/LC_MESSAGES/django.po +0 -0
  119. {otree-6.0.2 → otree-6.0.4}/otree/locale/ru/LC_MESSAGES/django.mo +0 -0
  120. {otree-6.0.2 → otree-6.0.4}/otree/locale/ru/LC_MESSAGES/django.po +0 -0
  121. {otree-6.0.2 → otree-6.0.4}/otree/locale/tr/LC_MESSAGES/django.mo +0 -0
  122. {otree-6.0.2 → otree-6.0.4}/otree/locale/tr/LC_MESSAGES/django.po +0 -0
  123. {otree-6.0.2 → otree-6.0.4}/otree/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  124. {otree-6.0.2 → otree-6.0.4}/otree/locale/zh_Hans/LC_MESSAGES/django.po +0 -0
  125. {otree-6.0.2 → otree-6.0.4}/otree/lookup.py +0 -0
  126. {otree-6.0.2 → otree-6.0.4}/otree/main.py +0 -0
  127. {otree-6.0.2 → otree-6.0.4}/otree/middleware.py +0 -0
  128. {otree-6.0.2 → otree-6.0.4}/otree/models/__init__.py +0 -0
  129. {otree-6.0.2 → otree-6.0.4}/otree/models/group.py +0 -0
  130. {otree-6.0.2 → otree-6.0.4}/otree/models/participant.py +0 -0
  131. {otree-6.0.2 → otree-6.0.4}/otree/models/player.py +0 -0
  132. {otree-6.0.2 → otree-6.0.4}/otree/models/session.py +0 -0
  133. {otree-6.0.2 → otree-6.0.4}/otree/models/subsession.py +0 -0
  134. {otree-6.0.2 → otree-6.0.4}/otree/models_concrete.py +0 -0
  135. {otree-6.0.2 → otree-6.0.4}/otree/mturk_client.py +0 -0
  136. {otree-6.0.2 → otree-6.0.4}/otree/patch.py +0 -0
  137. {otree-6.0.2 → otree-6.0.4}/otree/read_csv.py +0 -0
  138. {otree-6.0.2 → otree-6.0.4}/otree/room.py +0 -0
  139. {otree-6.0.2 → otree-6.0.4}/otree/session.py +0 -0
  140. {otree-6.0.2 → otree-6.0.4}/otree/settings.py +0 -0
  141. {otree-6.0.2 → otree-6.0.4}/otree/static/bootstrap5/css/bootstrap.min.css +0 -0
  142. {otree-6.0.2 → otree-6.0.4}/otree/static/bootstrap5/css/bootstrap.min.css.map +0 -0
  143. {otree-6.0.2 → otree-6.0.4}/otree/static/bootstrap5/js/bootstrap.bundle.min.js +0 -0
  144. {otree-6.0.2 → otree-6.0.4}/otree/static/bootstrap5/js/bootstrap.bundle.min.js.map +0 -0
  145. {otree-6.0.2 → otree-6.0.4}/otree/static/favicon.ico +0 -0
  146. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/clock.png +0 -0
  147. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/cloud.png +0 -0
  148. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/cogwheel.png +0 -0
  149. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/delete.png +0 -0
  150. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/download-alt.png +0 -0
  151. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/eye-open.png +0 -0
  152. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/folder-closed.png +0 -0
  153. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/link.png +0 -0
  154. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/list-alt.png +0 -0
  155. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/pencil.png +0 -0
  156. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/plus.png +0 -0
  157. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/pushpin.png +0 -0
  158. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/refresh.png +0 -0
  159. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/stats.png +0 -0
  160. {otree-6.0.2 → otree-6.0.4}/otree/static/glyphicons/usd.png +0 -0
  161. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/css/table.css +0 -0
  162. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/back_button.js +0 -0
  163. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/common_admin.js +0 -0
  164. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/common_user_facing.js +0 -0
  165. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/formInputs.js +0 -0
  166. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/internet-explorer.js +0 -0
  167. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/jquery-3.2.1.min.js +0 -0
  168. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/jquery.color-2.1.2.min.js +0 -0
  169. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/jquery.countdown.min.js +0 -0
  170. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/jquery.timeago.en-short.js +0 -0
  171. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/jquery.timeago.js +0 -0
  172. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/live.js +0 -0
  173. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/page-websocket-redirect.js +0 -0
  174. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/preserve_unsubmitted_inputs.js +0 -0
  175. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/reconnecting-websocket-iife.min.js +0 -0
  176. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/session_data.js +0 -0
  177. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/session_monitor.js +0 -0
  178. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/trials-core.js +0 -0
  179. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/trials-core.js.backup +0 -0
  180. {otree-6.0.2 → otree-6.0.4}/otree/static/otree/js/trials-pre.js +0 -0
  181. {otree-6.0.2 → otree-6.0.4}/otree/static/robots.txt +0 -0
  182. {otree-6.0.2 → otree-6.0.4}/otree/tasks.py +0 -0
  183. {otree-6.0.2 → otree-6.0.4}/otree/templates/global/Base.html +0 -0
  184. {otree-6.0.2 → otree-6.0.4}/otree/templates/global/Page.html +0 -0
  185. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/AdminReport.html +0 -0
  186. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/BaseAdminAll.html +0 -0
  187. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/BaseAdminRegular.html +0 -0
  188. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Base_UserFacing.html +0 -0
  189. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/CreateDemoSession.html +0 -0
  190. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/CreateSession.html +0 -0
  191. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/DemoIndex.html +0 -0
  192. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/ExportIndex.html +0 -0
  193. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/FormPage.html +0 -0
  194. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/GBATInactive.html +0 -0
  195. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Login.html +0 -0
  196. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/MTurkCreateHIT.html +0 -0
  197. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/MTurkHTMLQuestion.html +0 -0
  198. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/MTurkSessionPayments.html +0 -0
  199. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/OutOfRangeNotification.html +0 -0
  200. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Page.html +0 -0
  201. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/RoomWelcomePage.html +0 -0
  202. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/RoomWithSession.html +0 -0
  203. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/RoomWithoutSession.html +0 -0
  204. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Rooms.html +0 -0
  205. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/ServerCheck.html +0 -0
  206. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Session.html +0 -0
  207. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionDemoGridView.html +0 -0
  208. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionDescription.html +0 -0
  209. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionEditProperties.html +0 -0
  210. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionMonitor.html +0 -0
  211. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionPayments.html +0 -0
  212. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionSplitScreen.html +0 -0
  213. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/SessionStartLinks.html +0 -0
  214. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/Sessions.html +0 -0
  215. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/WaitPage.html +0 -0
  216. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/WaitPageGeneric.html +0 -0
  217. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/CreateSessionForm.html +0 -0
  218. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/RoomParticipantLinks.html +0 -0
  219. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/SessionInfo.html +0 -0
  220. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/TimeLimit.html +0 -0
  221. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/TimeLimit.js.html +0 -0
  222. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/debug_info.html +0 -0
  223. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/hidden_form_errors.html +0 -0
  224. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/messages.html +0 -0
  225. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/mturk_payment_table.html +0 -0
  226. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/navbar.html +0 -0
  227. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/includes/participant_code_links_table.html +0 -0
  228. {otree-6.0.2 → otree-6.0.4}/otree/templates/otree/tags/chat.html +0 -0
  229. {otree-6.0.2 → otree-6.0.4}/otree/templating/__init__.py +0 -0
  230. {otree-6.0.2 → otree-6.0.4}/otree/templating/compiler.py +0 -0
  231. {otree-6.0.2 → otree-6.0.4}/otree/templating/context.py +0 -0
  232. {otree-6.0.2 → otree-6.0.4}/otree/templating/errors.py +0 -0
  233. {otree-6.0.2 → otree-6.0.4}/otree/templating/filters.py +0 -0
  234. {otree-6.0.2 → otree-6.0.4}/otree/templating/loader.py +0 -0
  235. {otree-6.0.2 → otree-6.0.4}/otree/templating/nodes.py +0 -0
  236. {otree-6.0.2 → otree-6.0.4}/otree/templating/template.py +0 -0
  237. {otree-6.0.2 → otree-6.0.4}/otree/templating/utils.py +0 -0
  238. {otree-6.0.2 → otree-6.0.4}/otree/test.py +0 -0
  239. {otree-6.0.2 → otree-6.0.4}/otree/trials.py +0 -0
  240. {otree-6.0.2 → otree-6.0.4}/otree/update.py +0 -0
  241. {otree-6.0.2 → otree-6.0.4}/otree/urls.py +0 -0
  242. {otree-6.0.2 → otree-6.0.4}/otree/views/__init__.py +0 -0
  243. {otree-6.0.2 → otree-6.0.4}/otree/views/abstract.py +0 -0
  244. {otree-6.0.2 → otree-6.0.4}/otree/views/admin.py +0 -0
  245. {otree-6.0.2 → otree-6.0.4}/otree/views/cbv.py +0 -0
  246. {otree-6.0.2 → otree-6.0.4}/otree/views/demo.py +0 -0
  247. {otree-6.0.2 → otree-6.0.4}/otree/views/mturk.py +0 -0
  248. {otree-6.0.2 → otree-6.0.4}/otree/views/participant.py +0 -0
  249. {otree-6.0.2 → otree-6.0.4}/otree/views/querystring.py +0 -0
  250. {otree-6.0.2 → otree-6.0.4}/otree/views/rest.py +0 -0
  251. {otree-6.0.2 → otree-6.0.4}/otree/views/room.py +0 -0
  252. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/SOURCES.txt +0 -0
  253. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/dependency_links.txt +0 -0
  254. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/entry_points.txt +0 -0
  255. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/not-zip-safe +0 -0
  256. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/requires.txt +0 -0
  257. {otree-6.0.2 → otree-6.0.4}/otree.egg-info/top_level.txt +0 -0
  258. {otree-6.0.2 → otree-6.0.4}/pyproject.toml +0 -0
  259. {otree-6.0.2 → otree-6.0.4}/requirements.txt +0 -0
  260. {otree-6.0.2 → otree-6.0.4}/setup.cfg +0 -0
  261. {otree-6.0.2 → otree-6.0.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otree
3
- Version: 6.0.2
3
+ Version: 6.0.4
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.2'
1
+ __version__ = '6.0.4'
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:
@@ -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:
@@ -12,11 +12,14 @@
12
12
  /* Input fields should only take up to 400px width and not stretch over the
13
13
  whole screen */
14
14
  .input-group,
15
- input.form-control,
16
- select.form-control {
15
+ input.form-control {
17
16
  max-width: 400px;
18
17
  }
19
18
 
19
+ input[type="number"] {
20
+ max-width: 150px;
21
+ }
22
+
20
23
  .input-group-narrow {
21
24
  /* Choosing a very small value that will always be filled with the input
22
25
  * type and input-group-addon. That way we don't allow a gap between the
@@ -143,8 +143,8 @@
143
143
  <div class="toolbar-group">
144
144
  <small><div>Download:</div></small>
145
145
  <small><div>
146
- <a href="{% url 'ExportWide' session.code %}?token={{ DATA_EXPORT_HASH }}">Regular CSV</a><br>
147
- <a href="{% url 'ExportWide' session.code %}?token={{ DATA_EXPORT_HASH }}&excel=1">Excel CSV</a>
146
+ <a href="{% url 'ExportWideLogin' session.code %}">Regular CSV</a><br>
147
+ <a href="{% url 'ExportWideLogin' session.code %}?format=csv_bom">Excel CSV</a>
148
148
  </div></small>
149
149
  </div>
150
150
  </div>
@@ -156,6 +156,18 @@ class ExportChatLogin(LoginProtectedExport):
156
156
  export.export_chat(buf, session_code=session_code)
157
157
 
158
158
 
159
+ class ExportWideLogin(LoginProtectedExport):
160
+ '''used by 'SessionData' page'''
161
+
162
+ url_pattern = '/ExportWide'
163
+
164
+ def file_name_stem(self):
165
+ return 'all_apps_wide'
166
+
167
+ def write_to_buf(self, buf, session_code, query_params):
168
+ export.export_wide(buf, session_code=session_code)
169
+
170
+
159
171
  class ExportIndex(cbv.AdminView):
160
172
  url_pattern = '/ExportIndex'
161
173
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: otree
3
- Version: 6.0.2
3
+ Version: 6.0.4
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