import os from os import environ import dj_database_url import otree.settings BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # the environment variable OTREE_PRODUCTION controls whether Django runs in # DEBUG mode. If OTREE_PRODUCTION==1, then DEBUG=False if environ.get('OTREE_PRODUCTION') not in {None, '', '0'}: DEBUG = False else: DEBUG = True # don't share this with anybody. SECRET_KEY = 'abns_cihg4_6xd1&or8hmc%2+qdf3(g9f16=nga^o_t6cmhlt-' DATABASES = { 'default': dj_database_url.config( # Rather than hardcoding the DB parameters here, # it's recommended to set the DATABASE_URL environment variable. # This will allow you to use SQLite locally, and postgres/mysql # on the server # Examples: # export DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME # export DATABASE_URL=mysql://USER:PASSWORD@HOST:PORT/NAME # fall back to SQLite if the DATABASE_URL env var is missing default='sqlite:///' + os.path.join(BASE_DIR, 'db.sqlite3') ) } # AUTH_LEVEL: # this setting controls which parts of your site are freely accessible, # and which are password protected: # - If it's not set (the default), then the whole site is freely accessible. # - If you are launching a study and want visitors to only be able to # play your app if you provided them with a start link, set it to STUDY. # - If you would like to put your site online in public demo mode where # anybody can play a demo version of your game, but not access the rest # of the admin interface, set it to DEMO. # for flexibility, you can set it in the environment variable OTREE_AUTH_LEVEL AUTH_LEVEL = environ.get('OTREE_AUTH_LEVEL') ADMIN_USERNAME = 'admin' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = environ.get('OTREE_ADMIN_PASSWORD') # setting for integration with AWS Mturk AWS_ACCESS_KEY_ID = environ.get('AWS_ACCESS_KEY_ID') AWS_SECRET_ACCESS_KEY = environ.get('AWS_SECRET_ACCESS_KEY') # e.g. EUR, CAD, GBP, CHF, CNY, JPY REAL_WORLD_CURRENCY_CODE = 'INR' USE_POINTS = False # e.g. en, de, fr, it, ja, zh-hans # see: https://docs.djangoproject.com/en/1.9/topics/i18n/#term-language-code LANGUAGE_CODE = 'en' # if an app is included in SESSION_CONFIGS, you don't need to list it here INSTALLED_APPS = ['otree','otreeutils'] # SENTRY_DSN = '' DEMO_PAGE_INTRO_HTML = """

Here are various games implemented with oTree. These games are all open source, and you can modify them as you wish.

""" ROOMS = [ { 'name': 'Study', 'display_name': 'Study', 'participant_label_file': '_rooms/Study.txt', }, ] mturk_hit_settings = { 'keywords': ['Survey','Study','Research'], 'title': 'Survey', 'description': 'Answer some simple questions (~10min, earn $0.50.)', 'frame_height': 500, 'preview_template': 'global/MTurkPreview.html', 'minutes_allotted_per_assignment': 200, 'expiration_hours': 1*8, # first digit is the day, second digit is the number of hours 'grant_qualification_id': '3XDG4EZRX3T8G8O1D3KOZ1BNU6BPT3', # to prevent retakes 'qualification_requirements': [ { 'QualificationTypeId': '3XDG4EZRX3T8G8O1D3KOZ1BNU6BPT3', 'Comparator': "DoesNotExist", }, { 'QualificationTypeId': "00000000000000000071", # workers from India 'Comparator': "EqualTo", 'LocaleValues': [{'Country': "IN"}] }, ] } # qualification requirement main experiment (Game1) 33FIQMFNPA7RF5LO3NC3117STF1EN67 # Trust Game -- Alessandro & Sebastiano # qualification requirement Resesearch1 33M535XUSVG7BO2KLX7P0T2NTZXK0V # Workers from specific countries only #{ # 'QualificationTypeId': "00000000000000000071", # workers from India # 'Comparator': "EqualTo", # 'LocaleValues': [{'Country': "IN"}] #}, #{ # 'QualificationTypeId': "00000000000000000071", # workers from U.S. # 'Comparator': "EqualTo", # 'LocaleValues': [{'Country': "US"}] #}, # 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 = { 'real_world_currency_per_point': 0.000, 'participation_fee': 0.00, 'doc': "", 'mturk_hit_settings': mturk_hit_settings, } #SESSION_CONFIGS = [ # { # 'name': 'otreeutils_example1', # 'display_name': 'oTree Utils Example 1 (Understanding questions, timeout warnings)', # 'num_demo_participants': 1, # doesn't matter # 'app_sequence': ['otreeutils_example1'], # }, #] SESSION_CONFIGS = [ { 'name': 'Ex_mainexperiment_demo', 'display_name': 'Study', 'num_demo_participants': 4, # doesn't matter 'app_sequence': ['Ex_mainexperiment_welcome','Ex_mainexperiment_instructions1','Ex_mainexperiment_A1','Ex_mainexperiment_A2','Ex_mainexperiment_A3','Ex_mainexperiment_A4', 'Ex_mainexperiment_A5','Ex_mainexperiment_A6','Ex_mainexperiment_A7','Ex_mainexperiment_A8','Ex_mainexperiment_A9', 'Mturk_inbetweentasks_agent','Ex_mainexperiment_instructions2','Ex_mainexperiment_B1','Ex_mainexperiment_B2','Ex_mainexperiment_B3','Ex_mainexperiment_B4','Ex_mainexperiment_B5', 'Ex_mainexperiment_B6','Ex_mainexperiment_B7','Ex_mainexperiment_B8','Ex_mainexperiment_B9', 'MTurk_debriefing'] }, ] #SESSION_CONFIGS = [ # { # 'name': 'Ex_mainexperiment_demo', # 'display_name': 'Study', # 'num_demo_participants': 4, # doesn't matter # 'app_sequence': ['Ex_mainexperiment_welcome','Ex_mainexperiment_instructions1','Ex_mainexperiment_A1','Ex_mainexperiment_A2','Ex_mainexperiment_A3','Ex_mainexperiment_A4','Ex_mainexperiment_A5', # 'Ex_mainexperiment_A6','Ex_mainexperiment_A7','Ex_mainexperiment_A8','Ex_mainexperiment_A9','Ex_mainexperiment_A10','Mturk_inbetweentasks_agent', # 'Ex_mainexperiment_instructions2','Ex_mainexperiment_B1','Ex_mainexperiment_B2','Ex_mainexperiment_B3','Ex_mainexperiment_B4','Ex_mainexperiment_B5','Ex_mainexperiment_B6', # 'Ex_mainexperiment_B7','Ex_mainexperiment_B8','Ex_mainexperiment_B9','Ex_mainexperiment_B10','MTurk_debriefing'] # }, #] #{ # 'name': 'Ex_mainexperiment_demo', # 'display_name': 'Study', # 'num_demo_participants': 4, # doesn't matter # 'app_sequence': ['Ex_mainexperiment_welcome', 'Ex_mainexperiment_instructions1'], #}, # anything you put after the below line will override # oTree's default settings. Use with caution. otree.settings.augment_settings(globals())