from pathlib import Path import dj_database_url from os import environ DEBUG = False BASE_DIR = Path(__file__).resolve().parent SESSION_CONFIGS = [ dict( # name='bargain_Barg1_s1_strong', name = 'bargain_Barg1_modified', app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], num_demo_participants=4, # test 2 【2604】test treatment_name="Barg1", treatment_rep=1, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=0, group_order="123", outside_type="Strong", #use_browser_bots=True, ), dict( # name='bargain_ODR1_s1_strong', name='bargain_ODR1_modified', app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], num_demo_participants=4, # test, used to be 6 will wait long treatment_name="ODR1", treatment_rep=1, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=0, group_order="123", outside_type="Strong", #use_browser_bots=True, ), dict( # name='bargain_SeqODR1_s1_strong', name ='bargain_SeqODR1_modified', app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], num_demo_participants=4, treatment_name="SeqODR1", treatment_rep=1, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=0, group_order="123", outside_type="Strong", #use_browser_bots=True, ), dict( name='bargain_OpaODR1_modified', app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], num_demo_participants=4, treatment_name="OpaODR1", treatment_rep=1, # exchange_rate=0.05, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=0, group_order="123", outside_type="Strong", ), dict( ### newnew 250224 AIODR1 # name='bargain_AIODR1_s1_strong', name = 'bargain_AIODR1_modified', app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], num_demo_participants=4, # test, used to be 6 treatment_name="AIODR1", treatment_rep=1, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=0, group_order="123", outside_type="Strong", # use_browser_bots=True, ), # dict( ### newnew 250606 AIODRsoph1 # name='bargain_AIODRsoph1_s1_strong', # name = 'bargain_AIODRsoph1_modified', # app_sequence=['consent', 'instructions', 'bargain', 'risk', 'ultimatum', 'payments'], # num_demo_participants=4, # test, used to be 6 # treatment_name="AIODRsoph1", # treatment_rep=1, # exchange_rate=0.03, # show_up_fee=1.5, # objects_A=100, # objects_B=0, # group_order="123", # outside_type="Strong", # use_browser_bots=True, # ), # dict( # name='bargain_Barg2_s1_strong', # app_sequence=['instructions', 'bargain', 'risk', 'ultimatum', 'payments'], # num_demo_participants=6, # test 4 # treatment_name="Barg2", # treatment_rep=1, # exchange_rate=0.03, # show_up_fee=5.0, # objects_A=100, # objects_B=100, # group_order="123", # outside_type="Strong", # use_browser_bots=True, # ), # dict( # name='bargain_ODR2_s1_strong', # app_sequence=['instructions', 'bargain', 'risk', 'ultimatum', 'payments'], # num_demo_participants=4, # treatment_name="ODR2", # treatment_rep=1, # exchange_rate=0.03, # show_up_fee=5.0, # objects_A=100, # objects_B=100, # group_order="123", # outside_type="Strong", #use_browser_bots=True, # ), # dict( # name='bargain_SeqODR2_s1_strong', # app_sequence=['instructions', 'bargain', 'risk', 'ultimatum', 'payments'], # num_demo_participants=6, # test, used to be 6 # treatment_name="SeqODR2", # treatment_rep=1, # exchange_rate=0.03, # show_up_fee=5.0, # objects_A=100, ## objects_B=100, # group_order="123", # outside_type="Strong", #use_browser_bots=True, # ), dict( name='payments', app_sequence=['risk', 'ultimatum', 'payments'], num_demo_participants=4, treatment_name="SeqODR2", treatment_rep=1, exchange_rate=0.03, show_up_fee=1.5, objects_A=100, objects_B=100, group_order="123", outside_type="Strong", #use_browser_bots=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="", treatment_name="Barg1", treatment_rep=1, ) #PARTICIPANT_FIELDS = ["finished", "identity_code"] ## newnew 240716 use to be PARTICIPANT_FIELDS = ["finished"] PARTICIPANT_FIELDS = ["finished"] SESSION_FIELDS = ['prolific_completion_url'] #use prolific code as identity code # ISO-639 code # for example: de, fr, ja, ko, zh-hans LANGUAGE_CODE = 'en' # e.g. EUR, GBP, CNY, JPY REAL_WORLD_CURRENCY_CODE = 'GBP' USE_POINTS = False Where = "heroku" ## 240616 either "local" or "heroku" DEMO_PAGE_INTRO_HTML = """ """ if Where == "local": SECRET_KEY = '9285930881390' ## 240616 reset with HEROKU OTREE_SECRET_KEY, (original "9285930881390") ##241018 added # change database from sqlite to postgresql DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'otree_db', 'USER': 'otree_user', 'PASSWORD': 'admin', 'HOST': 'localhost', 'PORT': '5432', } } elif Where == "heroku": ADMIN_USERNAME = environ.get('ADMIN_USERNAME', 'default_username') ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD', 'default_password') SECRET_KEY = environ.get('OTREE_SECRET_KEY', 'default_secret_key') OTREE_REST_KEY = environ.get('OTREE_REST_KEY', 'default_rest_key') OTREE_PRODUCTION = (environ.get('OTREE_PRODUCTION', '1')) # 241018 added DATABASES = { 'default': dj_database_url.config(conn_max_age=600, ssl_require=True) } else : #SECRET_KEY = 'default_secret_key' #used to be: pass if SECRET_KEY is None: raise ValueError("SECRET_KEY cannot be None. Please check your environment variables.")