from os import environ SESSION_CONFIGS = [ dict( name='study', display_name='Study', app_sequence=['intro', 'risk_eg', 'svo', 'ret_slider', 'tax_instr', 'tax_game', 'lastquestions', 'results'], num_demo_participants=16, ret_slider_num=10, # 10, ret_slider_ncols=2, bonus_per_slider=10 ), dict( name='study_countletters', display_name='Study with count letters ret', app_sequence=['intro', 'risk_eg', 'svo', 'count_letters', 'tax_instr', 'tax_game', 'lastquestions', 'results'], num_demo_participants=16, ret_slider_num=10, # 10, ret_slider_ncols=2, bonus_per_slider=10 ), dict( name='study_no_ret_no_lastquestions', display_name='Study (No RET no last questions)', app_sequence=['intro', 'risk_eg', 'svo', 'tax_instr', 'tax_game', 'results'], num_demo_participants=16 ), dict( name='intro', display_name='General instructions', app_sequence=['intro'], num_demo_participants=1 ), dict( name='risk_eg', display_name='Risk - Eckel and Grossman 2002', app_sequence=['intro', 'risk_eg', 'results'], num_demo_participants=1 ), dict( name='svo', display_name='Social Value Orientation', app_sequence=['intro', 'svo', 'results'], num_demo_participants=2 ), dict( name='ret_slider', display_name='Slider Task', app_sequence=['intro', 'ret_slider', 'results'], num_demo_participants=1, ret_slider_num=10, ret_slider_ncols=2, bonus_per_slider=10 ), dict( name='tax_instr', display_name='Tax game instructions', app_sequence=['intro', 'svo', 'tax_instr', 'results'], num_demo_participants=8 ), dict( name='pgg_tax', display_name='Tax Game', app_sequence=['intro', 'svo', 'tax_instr', 'tax_game', 'results'], num_demo_participants=4 ), dict( name='invitation', display_name='Invitation to the study', app_sequence=['invitation'], num_demo_participants=1 ), dict( name='count_letters', display_name='count_letters', app_sequence=['intro', 'count_letters', 'results'], num_demo_participants=4 ) ] ROOMS = [ dict( name='virtual_lab', display_name='Virtual Lab', # participant_label_file='_rooms/virtual_lab.txt' ) ] # 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=0.02, participation_fee=2.00, doc="" ) PARTICIPANT_FIELDS = [ 'lottery_payoff', 'svo_partner', 'svo_ego_selected', 'svo_question_selected', 'svo_payoff', 'info', 'multiplier', 'ge_label', 'excluded', 'dropout', 'audited', 'ee_payoff', 'ne_payoff', 'cc_payoff', 'ee_ne_cc_payoff', 'tax_game_payoff', 'payoff_real' ] SESSION_FIELDS = ['round_to_pay'] # ISO-639 code # for example: de, fr, ja, ko, zh-hans LANGUAGE_CODE = 'it' # e.g. EUR, GBP, CNY, JPY REAL_WORLD_CURRENCY_CODE = 'EUR' USE_POINTS = True POINTS_CUSTOM_NAME = 'punti' 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 = """ """ SECRET_KEY = '4221376580418'