Spaces:
Paused
Paused
| from os import environ | |
| SESSION_CONFIGS = [ | |
| # Built-in simple demos | |
| dict( | |
| name='guess_two_thirds', | |
| display_name="Guess 2/3 of the Average", | |
| app_sequence=['guess_two_thirds', 'payment_info'], | |
| num_demo_participants=3, | |
| ), | |
| dict( | |
| name='survey', app_sequence=['survey', 'payment_info'], num_demo_participants=1 | |
| ), | |
| # Class demo sequences (approved scaffold) | |
| dict( | |
| name='classic_baseline', | |
| display_name='Demo: Classical Baseline', | |
| app_sequence=['sequence_welcome', 'prisoner', 'trust_simple', 'public_goods_simple', 'payment_info'], | |
| num_demo_participants=6, # even; multiple of 3 recommended for public goods | |
| # Optional: override prisoner.Introduction timeout (seconds) | |
| # prisoner_intro_timeout=100, | |
| doc='Welcome → PD → Trust (simple) → Public Goods (groups of 3)' | |
| ), | |
| dict( | |
| name='policy_nudges', | |
| display_name='Demo: Policy Framing Tweaks', | |
| app_sequence=['policy_dictator_norms', 'policy_trust_framed', 'policy_public_goods_defaults', 'payment_info'], | |
| num_demo_participants=6, # multiple of 6 for 2/2/3 grouping | |
| doc='Instruction framing and light norm/default cues; no logic changes' | |
| ), | |
| dict( | |
| name='guessing_game_demo', | |
| display_name='Demo: Guessing Game with Reference Point', | |
| app_sequence=['policy_guess_anchoring', 'payment_info'], | |
| num_demo_participants=3, | |
| doc='Guess 2/3 with a randomly assigned reference point; flexible group size' | |
| ), | |
| dict( | |
| name='survey_biases', | |
| display_name='Demo: Survey Tasks', | |
| app_sequence=['policy_survey_biases', 'payment_info'], | |
| num_demo_participants=1, | |
| doc='Estimation intervals, self-assessment, and information-based survey items.' | |
| ), | |
| dict( | |
| name='survey_biases_full', | |
| display_name='Survey: Estimation, Information, and Recall', | |
| app_sequence=['policy_survey_biases', 'payment_info'], | |
| num_demo_participants=1, | |
| doc='One-player survey combining estimation, information, and recall tasks.' | |
| ), | |
| ] | |
| # if you set a property in SESSION_CONFIG_DEFAULTS, it will be inherited by all configs | |
| # in SESSION_CONFIGS, except those that explicitly override it. | |
| # the session config can be accessed from methods in your apps as self.session.config, | |
| # e.g. self.session.config['participation_fee'] | |
| SESSION_CONFIG_DEFAULTS = dict( | |
| real_world_currency_per_point=1.00, participation_fee=0.00, doc="" | |
| ) | |
| PARTICIPANT_FIELDS = ['show_anchor', 'anchor_value'] | |
| SESSION_FIELDS = [] | |
| # ISO-639 code | |
| # for example: de, fr, ja, ko, zh-hans | |
| LANGUAGE_CODE = 'en' | |
| # e.g. EUR, GBP, CNY, JPY | |
| REAL_WORLD_CURRENCY_CODE = 'USD' | |
| USE_POINTS = True | |
| ROOMS = [ | |
| dict( | |
| name='econ101', | |
| display_name='Econ 101 class', | |
| participant_label_file='_rooms/econ101.txt', | |
| ), | |
| dict(name='live_demo', display_name='Room for live demo (no participant labels)'), | |
| dict(name='lab_demo', display_name='Behavioral Policy Lab Demo', participant_label_file='_rooms/lab_demo.txt'), | |
| ] | |
| ADMIN_USERNAME = 'admin' | |
| # for security, best to set admin password in an environment variable | |
| ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') | |
| DEMO_PAGE_INTRO_HTML = """ | |
| Here are some oTree games. | |
| """ | |
| SECRET_KEY = '5788694860356' | |
| INSTALLED_APPS = ['otree'] | |