from os import environ def env_flag(name): return environ.get(name, '').strip().lower() in {'1', 'true', 'yes', 'on'} SESSION_CONFIGS = [ dict( name='shaping_social_norms', display_name='Shaping Social Norms (chemin de fer 2.0)', app_sequence=['shaping_social_norms'], num_demo_participants=24, debug=False, condition_picker=True, ), ] # 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 = [] SESSION_FIELDS = [] # ISO-639 code # for example: de, fr, ja, ko, zh-hans LANGUAGE_CODE = 'fr' # e.g. EUR, GBP, CNY, JPY REAL_WORLD_CURRENCY_CODE = 'EUR' USE_POINTS = True ROOMS = [] ADMIN_USERNAME = 'admin' # Local dev fallback to unblock /admin; production must still define OTREE_ADMIN_PASSWORD. IS_PRODUCTION = env_flag('OTREE_PRODUCTION') ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') or ('admin' if not IS_PRODUCTION else None) AUTH_LEVEL = environ.get('SHAPING_SOCIAL_AUTH_LEVEL') or environ.get('OTREE_AUTH_LEVEL', 'STUDY') # Force study-only access because oTree Hub's configure screen can overwrite # OTREE_AUTH_LEVEL back to DEMO on Heroku. DEMO_PAGE_INTRO_HTML = """ Shaping Social Norms """ SECRET_KEY = '6890358652733' INSTALLED_APPS = ['otree']