from os import environ # 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 = { 'real_world_currency_per_point': 1.00, 'participation_fee': 0.00, 'doc': "", # conuntveroes # 'real_world_currency_per_point': 0.05, # 'participation_fee': 0.12 } SESSION_CONFIGS = [ { 'name': 'HawkDovePossessor', 'display_name': "Hawk Dove Possessor", 'num_demo_participants': 2, 'num_rounds': 1, 'app_sequence': ['name', 'HawkDove', 'HawkDovePossessor'], # 'app_sequence': ['HawkDovePossessor'], }, { 'name': 'OneLemonMarket', 'display_name': "Lemons Market", 'app_sequence': ['name', 'OneLemonMarket'], 'num_demo_participants': 4, 'num_rounds': 2, }, # { # 'name': 'AssetMarket', # 'display_name': "Asset Market", # 'num_demo_participants': 3, # 'app_sequence': ['name', 'bubble_market'], # 'time_limit': 90, # 'endowment': 100, # }, # { # 'name': 'Jars', # 'display_name': "Jars", # 'num_demo_participants': 12, # # 'app_sequence': ['name', 'Jars', 'pay_delay'], # # 'app_sequence': ['name', 'Jars', 'JarsBlock2', 'pay_delay'], # 'app_sequence': ['name', 'Jars', 'JarsBlock2of4', 'JarsBlock3of4', 'JarsBlock4of4', 'pay_delay'], # # 'treatment': 'NoRep', # # 'treatment': 'Choice', # # 'treatment': 'Align', # 'treatment': 'Disc', # # 'treatment': 'NoDisc', # 'Base' : .75, # 'Comish' : .50, # 'Flat' : .75, # 'Noise' : 2 # }, # { # 'name': 'GuessJar', # 'display_name': "GuessJar", # 'num_demo_participants': 2, # 'app_sequence': ['name', 'GuessJar', 'pay_delay2'], # 'Alpha' : 2, # 'Beta' : 25, # 'OTREE_PRODUCTION' : 0 # }, # { # 'name': 'Jars4players', # 'display_name': "Jars 1 group", # 'num_demo_participants': 4, # 'app_sequence': ['Jars4players'], # }, # { # 'name': 'double_auction', # 'display_name': "Double auction market", # 'app_sequence': ['name', 'double_auction'], # 'num_demo_participants' :4, # }, # { # 'name': 'decoding_ret', # 'display_name': "RET: decoding", # 'num_demo_participants': 1, # 'app_sequence': ['decoding_ret',], # 'real_world_currency_per_point': 1.00, # }, # { # 'name': 'realefforttask', # 'display_name': 'Real Effort Task - Counting Zeroes', # 'num_demo_participants': 1, # 'app_sequence': ['realefforttask'], # 'task': 'CountZeroes', # 'task_params': {'num_rows': 5, # 'num_columns': 20, # 'value_to_count': 0, # # 'selection_set': [0, 1, 2], # }, # }, # { # 'name': 'dictator', # 'display_name': "Dictator Game", # 'num_demo_participants': 2, # 'app_sequence': ['name', 'dictator', 'payment_info'], # }, { 'name': 'ultimatum_non_strategy', 'display_name': "Ultimatum (direct response treatment)", 'num_demo_participants': 2, 'app_sequence': ['name', 'ultimatum', 'payment_info'], 'use_strategy_method': False, }, { 'name': 'NiederleVesterlund', 'display_name': "NiederleVesterlund", 'num_demo_participants': 4 , 'app_sequence': ['name', 'ret_addingPR', 'ret_addingTourn2', 'ret_addingTourn3', 'ret_addingTourn4'], 'real_world_currency_per_point': 1.00, }, # { # 'name': 'Market', # 'display_name': "Market", # 'num_demo_participants': 3, # 'app_sequence': ['name', 'bubble_market'], # 'time_limit': 40, # 'endowment': 100, # }, # { # 'name': 'real_effort', # 'display_name': "Real-effort transcription task", # 'num_demo_participants': 1, # 'app_sequence': ['name', 'real_effort'], # }, # { # 'name': 'slider_task', # 'display_name': "RET: slider", # 'num_demo_participants': 1, # 'app_sequence': ['slider_task',], # 'real_world_currency_per_point': 1.00, # }, # # { # # 'name': 'Time4', # # 'display_name' : 'Time4', # # 'num_demo_participants' : 1, # # 'app_sequence' : ['name', 'Time4'] # #}, # { # 'name': 'prisoner', # 'display_name': "Prisoners' Dilemma", # 'num_demo_participants': 2, # 'app_sequence': ['prisoner'], # }, # { # 'name': 'public_goods', # 'display_name': "Public Goods", # 'num_demo_participants': 3, # 'app_sequence': ['public_goods', 'payment_info'], # }, # { # 'name': 'guess_two_thirds', # 'display_name': "Guess 2/3 of the Average", # 'num_demo_participants': 3, # 'app_sequence': ['guess_two_thirds', 'payment_info'], # }, # { # 'name': 'quiz', # 'num_demo_participants': 1, # 'app_sequence': ['quiz'], # }, ] # see the end of this file for the inactive session configs # 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 = False ROOMS = [ { 'name': 'econ101', 'display_name': 'Econ 101 class', 'participant_label_file': '_rooms/econ101.txt', }, { 'name': 'live_demo', 'display_name': 'Room for live demo (no participant labels)', }, ] # AUTH_LEVEL: # this setting controls which parts of your site are freely accessible, # and which are password protected: # - If it's not set (the default), then the whole site is freely accessible. # - If you are launching a study and want visitors to only be able to # play your app if you provided them with a start link, set it to STUDY. # - If you would like to put your site online in public demo mode where # anybody can play a demo version of your game, but not access the rest # of the admin interface, set it to DEMO. # for flexibility, you can set it in the environment variable OTREE_AUTH_LEVEL AUTH_LEVEL = environ.get('OTREE_AUTH_LEVEL') ADMIN_USERNAME = 'admin' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') # Consider '', None, and '0' to be empty/false DEBUG = (environ.get('OTREE_PRODUCTION') in {None, '', '0'}) DEMO_PAGE_INTRO_HTML = """ Here are various games implemented with oTree. These games are open source, and you can modify them as you wish. """ # don't share this with anybody. SECRET_KEY = ')71vy9_dwp#8uwqj%0r4399rj)8*9ps9=kq!w90csr7jwj4+hp' # if an app is included in SESSION_CONFIGS, you don't need to list it here INSTALLED_APPS = ['otree'] # inactive session configs ### { ### 'name': 'trust', ### 'display_name': "Trust Game", ### 'num_demo_participants': 2, ### 'app_sequence': ['trust', 'payment_info'], ### }, ### { ### 'name': 'prisoner', ### 'display_name': "Prisoner's Dilemma", ### 'num_demo_participants': 2, ### 'app_sequence': ['prisoner', 'payment_info'], ### }, ### { ### 'name': 'ultimatum', ### 'display_name': "Ultimatum (randomized: strategy vs. direct response)", ### 'num_demo_participants': 2, ### 'app_sequence': ['ultimatum', 'payment_info'], ### }, ### { ### 'name': 'ultimatum_strategy', ### 'display_name': "Ultimatum (strategy method treatment)", ### 'num_demo_participants': 2, ### 'app_sequence': ['ultimatum', 'payment_info'], ### 'use_strategy_method': True, ### }, ### { ### 'name': 'vickrey_auction', ### 'display_name': "Vickrey Auction", ### 'num_demo_participants': 3, ### 'app_sequence': ['vickrey_auction', 'payment_info'], ### }, ### { ### 'name': 'volunteer_dilemma', ### 'display_name': "Volunteer's Dilemma", ### 'num_demo_participants': 3, ### 'app_sequence': ['volunteer_dilemma', 'payment_info'], ### }, ### { ### 'name': 'cournot', ### 'display_name': "Cournot Competition", ### 'num_demo_participants': 2, ### 'app_sequence': [ ### 'cournot', 'payment_info' ### ], ### }, ### { ### 'name': 'principal_agent', ### 'display_name': "Principal Agent", ### 'num_demo_participants': 2, ### 'app_sequence': ['principal_agent', 'payment_info'], ### }, ### { ### 'name': 'dictator', ### 'display_name': "Dictator Game", ### 'num_demo_participants': 2, ### 'app_sequence': ['dictator', 'payment_info'], ### }, ### { ### 'name': 'matching_pennies', ### 'display_name': "Matching Pennies", ### 'num_demo_participants': 2, ### 'app_sequence': [ ### 'matching_pennies', ### ], ### }, ### { ### 'name': 'traveler_dilemma', ### 'display_name': "Traveler's Dilemma", ### 'num_demo_participants': 2, ### 'app_sequence': ['traveler_dilemma', 'payment_info'], ### }, ### { ### 'name': 'bargaining', ### 'display_name': "Bargaining Game", ### 'num_demo_participants': 2, ### 'app_sequence': ['bargaining', 'payment_info'], ### }, ### { ### 'name': 'common_value_auction', ### 'display_name': "Common Value Auction", ### 'num_demo_participants': 3, ### 'app_sequence': ['common_value_auction', 'payment_info'], ### }, ### { ### 'name': 'bertrand', ### 'display_name': "Bertrand Competition", ### 'num_demo_participants': 2, ### 'app_sequence': [ ### 'bertrand', 'payment_info' ### ], ### }, ### { ### 'name': 'public_goods_simple', ### 'display_name': "Public Goods (simple version from tutorial)", ### 'num_demo_participants': 3, ### 'app_sequence': ['public_goods_simple', 'payment_info'], ### }, ### { ### 'name': 'trust_simple', ### 'display_name': "Trust Game (simple version from tutorial)", ### 'num_demo_participants': 2, ### 'app_sequence': ['trust_simple'], ### }, # { # 'name': 'Time_Adaptive', # 'display_name' : 'Time Adaptive', # 'num_demo_participants' : 1, # 'app_sequence' : ['name', 'Time_Adaptive'] # },