import os from os import environ import dj_database_url from boto.mturk import qualification import os from os import environ import dj_database_url from boto.mturk import qualification import otree.settings CHANNEL_ROUTING = 'UG.routing.channel_routing' BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # DEBUG = False # 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 = '8%@+@y^16yqy0!y92+^(%gc)37a$17^*0^4hnp6e=fk03ay2bu' 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('STUDY') ADMIN_USERNAME = 'fxu' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = environ.get('password') # setting for integration with AWS Mturk AWS_ACCESS_KEY_ID = 'AKIAJLIROZ43LSUIRLKQ' AWS_SECRET_ACCESS_KEY = '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' # AWS_ACCESS_KEY_ID = environ.get('AKIAICOTEB3IL5JWDDIQ') # AWS_SECRET_ACCESS_KEY = environ.get('Xk99t0cT+Emv05v6tikRtucU5EqpwPZuaPzWxobX') # e.g. EUR, CAD, GBP, CHF, CNY, JPY REAL_WORLD_CURRENCY_CODE = 'ยข ' USE_POINTS = False REAL_WORLD_CURRENCY_DECIMAL_PLACES = 0 # 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'] # SENTRY_DSN = '' DEMO_PAGE_INTRO_TEXT = """
Here are various games implemented with oTree. These games are all open source, and you can modify them as you wish.
""" ROOMS = [ { 'name': 'games', 'display_name': 'Games', }, ] # from here on are qualifications requirements for workers # see description for requirements on Amazon Mechanical Turk website: # http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_QualificationRequirementDataStructureArticle.html # and also in docs for boto: # https://boto.readthedocs.org/en/latest/ref/mturk.html?highlight=mturk#module-boto.mturk.qualification mturk_hit_settings = { 'keywords': ['easy', 'bonus', 'choice', 'study'], 'title': 'Group membership as a signal for trustworthiness', 'description': 'You will participate in two interactive games with other MTurk workers and answer some survey questions after the games. ' 'By playing these games, you will have the opportunity to make extra money.', 'frame_height': 800, 'preview_template': 'Main/MyPage.html', 'minutes_allotted_per_assignment': 60, 'expiration_hours': 7*24, # 7 days 'grant_qualification_id': '38T2WS02O1ZWUN3GDN7PV7FEZ5HUTC',# to prevent retakes 'qualification_requirements': [ { 'QualificationTypeId': '38T2WS02O1ZWUN3GDN7PV7FEZ5HUTC', 'Comparator': "DoesNotExist", } # qualification.LocaleRequirement("EqualTo", "US"), # qualification.PercentAssignmentsApprovedRequirement("GreaterThanOrEqualTo", 50), # qualification.NumberHitsApprovedRequirement("GreaterThanOrEqualTo", 5), # qualification.Requirement('YOUR_QUALIFICATION_ID_HERE', 'DoesNotExist') ] } # 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.00, 'participation_fee': 0.50, 'doc': "", 'mturk_hit_settings': mturk_hit_settings, } SENTRY_DSN = 'http://af7c3a865ca6427b9839220be56104be:4309c57c2a984f2683f683f5c62a3317@sentry.otree.org/188' # Want to have UG game first (Group 1: Player 1, Group 2: Player 2-11), then TG game where player 2 is # a player from Group 2 of the UG game. SESSION_CONFIGS = [ { 'name': 'paradigm', 'display_name': 'paradigm', 'num_demo_participants': 2, 'app_sequence': [ 'Main','UG_quiz', 'TGquiz', 'games', 'Questionnaire'], # 'treatment': True, }, { 'name': 'game', 'display_name': 'game', 'num_demo_participants': 2, 'app_sequence': [ 'games'], 'treatment': True, }, { 'name': 'survey', 'display_name': 'survey', 'num_demo_participants': 1, 'app_sequence': [ 'Questionnaire'] }, { 'name': 'TG_quiz', 'display_name': 'TGquiz', 'num_demo_participants': 2, # 'treatment': False, 'app_sequence': ['TGquiz'] }, ] # anything you put after the below line will override # oTree's default settings. Use with caution. otree.settings.augment_settings(globals())