from os import environ SESSION_CONFIGS = [ dict(name='sp_helping_choice', display_name="(Single Period) Helping Behavior - Employee - No bonus/Unobservable", app_sequence=['helping_choice_employee_sp', 'helping_choice_employee_task_sp'], num_demo_participants=4, condition=1 ), dict(name='sp_helping_choice2', display_name="(Single Period) Helping Behavior - Employee - No bonus/Observable", app_sequence=['helping_choice_employee_sp', 'helping_choice_employee_task_sp'], num_demo_participants=4, condition=2 ), dict(name='sp_helping_choice3', display_name="(Single Period) Helping Behavior - Employee - Bonus/Unobservable", app_sequence=['helping_choice_employee_sp', 'helping_choice_employee_task_sp'], num_demo_participants=4, condition=3 ), dict(name='sp_helping_choice4', display_name="(Single Period) Helping Behavior - Employee - Bonus/Observable", app_sequence=['helping_choice_employee_sp', 'helping_choice_employee_task_sp'], num_demo_participants=4, condition=4 ), dict(name='sp_helping_choice_mgr', display_name="(Single Period) Helping Behavior - Manager - No bonus/Unobservable", app_sequence=['helping_choice_manager_sp'], num_demo_participants=1, condition=1 ), dict(name='sp_helping_choice_mgr2', display_name="(Single Period) Helping Behavior - Manager - No bonus/Observable", app_sequence=['helping_choice_manager_sp'], num_demo_participants=1, condition=2 ), dict(name='sp_helping_choice_mgr3', display_name="(Single Period) Helping Behavior - Manager - Bonus/Unobservable", app_sequence=['helping_choice_manager_sp'], num_demo_participants=1, condition=3 ), dict(name='sp_helping_choice_mgr4', display_name="(Single Period) Helping Behavior - Manager - Bonus/Observable", app_sequence=['helping_choice_manager_sp'], num_demo_participants=1, condition=4 ), dict(name='koce1', display_name="Knowledge of Coworker Effort - Employee - No Info/Low C.E./High C.E.", app_sequence=['knowledge_of_effort_employee', 'knowledge_of_effort_employee_s2_lh'], num_demo_participants=18, condition=1 ), dict(name='koce2', display_name="Knowledge of Coworker Effort - Employee - Total Team Effort", app_sequence=['knowledge_of_effort_employee', 'knowledge_of_effort_employee_s2'], num_demo_participants=18, condition=2 ), dict(name='koce3', display_name="Knowledge of Coworker Effort - Employee - Full Coworker Effort", app_sequence=['knowledge_of_effort_employee', 'knowledge_of_effort_employee_s2'], num_demo_participants=18, condition=3 ), dict(name='koce4', display_name="Knowledge of Coworker Effort - Manager", app_sequence=['knowledge_of_effort_manager'], num_demo_participants=18, condition=1 ), dict(name='koce5', display_name="Knowledge of Coworker Effort - **RESET**", app_sequence=['knowledge_of_effort_reset'], num_demo_participants=1, condition=1 ), dict(name='clevf1', display_name="Control Levels - Division Director - Firm-imposed", app_sequence=['control_levels_owner'], num_demo_participants=1, condition=1 ), dict(name='clevf2', display_name="Control Levels - Division Director - Manager-imposed", app_sequence=['control_levels_owner'], num_demo_participants=1, condition=2 ), dict(name='clevf3', display_name="Control Levels - Division Director - Employee-imposed", app_sequence=['control_levels_owner'], num_demo_participants=1, condition=3 ), dict(name='cleve1', display_name="Control Levels - Employee/Manager - Firm-imposed (MASTER)", app_sequence=['control_levels_employee', 'control_levels_employee_s2'], num_demo_participants=18, condition=1, control=9 ), dict(name='cleve1a', display_name="Control Levels - Employee/Manager - Firm-imposed (CONTROL IN PLACE)", app_sequence=['control_levels_employee', 'control_levels_employee_s2'], num_demo_participants=18, condition=1, control=1 ), dict(name='cleve1b', display_name="Control Levels - Employee/Manager - Firm-imposed (NO CONTROL)", app_sequence=['control_levels_employee', 'control_levels_employee_s2'], num_demo_participants=18, condition=1, control=0 ), dict(name='cleve2', display_name="Control Levels - Employee/Manager - Manager-imposed", app_sequence=['control_levels_employee', 'control_levels_employee_s2'], num_demo_participants=18, condition=2 ), dict(name='cleve3', display_name="Control Levels - Employee/Manager - Employee-imposed", app_sequence=['control_levels_employee', 'control_levels_employee_s2'], num_demo_participants=18, condition=3 ), dict(name='gcf1', display_name="Group Contract Frame - Bonus - Single-Task", app_sequence=['group_contract'], num_demo_participants=4, condition=1 ), dict(name='gcf2', display_name="Group Contract Frame - Penalty - Single-Task", app_sequence=['group_contract'], num_demo_participants=4, condition=2 ), dict(name='gcf3', display_name="Group Contract Frame - Bonus - Multi-Task", app_sequence=['group_contract'], num_demo_participants=4, condition=3 ), dict(name='gcf4', display_name="Group Contract Frame - Penalty - Multi-Task", app_sequence=['group_contract'], num_demo_participants=4, condition=4 ), dict( name='effort_choice1', display_name="Effort/Contract Frame (Bonus)", app_sequence=['effort_choice'], num_demo_participants=1, condition=1 ), dict( name='effort_choice2', display_name="Effort/Contract Frame (Penalty)", app_sequence=['effort_choice'], num_demo_participants=1, condition=2 ), dict( name='effort_choice3', display_name="Effort/Contract Frame (Combined)", app_sequence=['effort_choice'], num_demo_participants=1, condition=3 ), dict( name='effort_choice_ind_1', display_name="Effort/Contract Frame - Uncertain End (Bonus)", app_sequence=['effort_choice_indefinite'], num_demo_participants=1, condition=1 ), dict( name='effort_choice_ind_2', display_name="Effort/Contract Frame - Uncertain End (Penalty)", app_sequence=['effort_choice_indefinite'], num_demo_participants=1, condition=2 ), dict( name='effort_choice_ind_3', display_name="Effort/Contract Frame - Uncertain End (Combined)", app_sequence=['effort_choice_indefinite'], num_demo_participants=1, condition=3 ) ] # 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 = ['practice_num_decoded', 'wait_page_arrival', 's1_contribution', 's1_decision_time', 's1_pay', 'participant_number', 'manager_id', 'control_decision', 'e_role'] 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)'), ] 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 = '1510785788078' INSTALLED_APPS = ['otree']