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, 'participation_fee': 0, 'doc': "", } REAL_WORLD_CURRENCY_DECIMAL_PLACES = 0 SESSION_CONFIGS = [ #{ #'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': 'survey', #'num_demo_participants': 1, #'app_sequence': ['survey', 'payment_info'], #}, #{ # 'name': 'COP_Survey', #'num_demo_participants': 1, #'app_sequence': ['COP_Survey', 'payment_info'], #}, #{ #'name': 'quiz', #'num_demo_participants': 1, #'app_sequence': ['quiz'], #}, #{ # 'name': 'shuffler', # 'display_name': "Shuffling apps", # 'num_demo_participants': 2, #'app_sequence':['StartApp', # 'COP_1', # 'COP_2', # 'COP_3', # ], # 'use_browser_bots': False, # }, { 'name': 'Random1', 'display_name': "Study1", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_1', 'COP_2', 'COP_3', 'COP_Survey', 'payment_info'] }, {'name': 'Random2', 'display_name': "Study2", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_1', 'COP_3', 'COP_2', 'COP_Survey', 'payment_info'] }, {'name': 'Random3', 'display_name': "Study3", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_3', 'COP_2', 'COP_1', 'COP_Survey', 'payment_info'] }, {'name': 'Random4', 'display_name': "Study4", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_2', 'COP_3', 'COP_1', 'COP_Survey', 'payment_info'] }, {'name': 'Random5', 'display_name': "Study5", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_2', 'COP_1', 'COP_3', 'COP_Survey', 'payment_info'] }, {'name': 'Random6', 'display_name': "Study6", 'num_demo_participants': 2, 'app_sequence': ['practice', 'cem', 'COP_3', 'COP_1', 'COP_2', 'COP_Survey', 'payment_info'] }, #{'name': 'COP_2', #'display_name': "COP_2", #'num_demo_participants': 2, #'app_sequence': ['COP_2', 'payment_info'] #}, #{ # 'name': 'COP_Survey', # 'num_demo_participants': 1, # 'app_sequence': ['COP_Survey', 'payment_info'], # }, #{ 'name': 'trust_simple', # 'display_name': "Trust Game (simple version from tutorial)", #'num_demo_participants': 2, #'app_sequence': ['trust_simple'], #}, #{ # '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, #},''' ] # 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 = 'TK.' USE_POINTS = False ROOMS = [ { 'name': 'MSU', 'display_name': 'Testing Page 1', 'participant_label_file': '_rooms/MSU.txt', }, { 'name': 'MSU2', 'display_name': 'Testing Page 2', 'participant_label_file': '_rooms/MSU.txt', }, { 'name': 'MSU3', 'display_name': 'Testing Page 3', 'participant_label_file': '_rooms/MSU.txt', }, { 'name': 'MSU4', 'display_name': 'Testing Page 4', 'participant_label_file': '_rooms/MSU.txt', }, { 'name': 'MSU5', 'display_name': 'Testing Page 5', 'participant_label_file': '_rooms/MSU.txt', }, { 'name': 'MSU6', 'display_name': 'Testing Page 6', 'participant_label_file': '_rooms/MSU.txt', }, # { # 'name': 'live_demo', # 'display_name': 'Room for live demo (no participant labels)', #},''' ] #OTREE_AUTH_LEVEL= environ.get('DEMO') ADMIN_USERNAME = 'Salim' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') #Heroku Password: MSUGames2019 and MSUGames2019 DEMO_PAGE_INTRO_HTML = """ Here are some oTree games. """ # don't share this with anybody. SECRET_KEY = 'wp$oazjyrv(@_xg4ica_h&q_*gp2t#)@egx*!v6-8@$^=d$gxd' # 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': 'ultimatum_non_strategy', ### 'display_name': "Ultimatum (direct response treatment)", ### 'num_demo_participants': 2, ### 'app_sequence': ['ultimatum', 'payment_info'], ### 'use_strategy_method': False, ### }, ### { ### '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': 'real_effort', ### 'display_name': "Real-effort transcription task", ### 'num_demo_participants': 1, ### 'app_sequence': [ ### 'real_effort', ### ], ### }, ### { ### 'name': 'lemon_market', ### 'display_name': "Lemon Market Game", ### 'num_demo_participants': 3, ### 'app_sequence': [ ### 'lemon_market', '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'], ### }, ### {