from os import environ SESSION_CONFIG_DEFAULTS = dict( real_world_currency_per_point=1.0, participation_fee=0.0, prolific_completion_code=environ.get('PROLIFIC_COMPLETION_CODE', ''), # Toggle Prolific ID requirement here (True = required, False = optional) require_prolific_pid=True, # Patch-mode replay from patch_assignments.csv is_patch_session=False, # Dynamic matching assignment controls use_dynamic_condition_assignment=True, hold_wait_minutes=int(environ.get('HOLD_WAIT_MINUTES', 10)), debug_matching_state=False, ) SESSION_CONFIGS = [ dict( name='hiring_funnel_demo', num_demo_participants=1, app_sequence=['hiring_funnel'], # Small test values for local validation of dynamic assignment/hold behavior. require_prolific_pid=True, hold_wait_minutes=10, ), ] LANGUAGE_CODE = 'en' REAL_WORLD_CURRENCY_CODE = 'USD' USE_POINTS = False DEMO_PAGE_INTRO_HTML = '' PARTICIPANT_FIELDS = ['condition', 'practice_data_json', 'main_data_json', 'history_json', 'selected_round', 'selected_candidate', 'selected_true_quality', 'selected_reward_string', 'weight_resume', 'weight_zoom', 'weight_inperson', 'gender', 'age', 'education', 'prolific_pid', 'dataset_unique_id'] SESSION_FIELDS = [] THOUSAND_SEPARATOR = '' ROOMS = [] ADMIN_USERNAME = 'admin' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') SECRET_KEY = 'blahblah' # if an app is included in SESSION_CONFIGS, you don't need to list it here INSTALLED_APPS = ['otree']