import os from os import environ 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 DEBUG = False STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') # don't share this with anybody. SECRET_KEY = 'lg1s=a^8=a0_)ubn3lo#+vjub2w@8q#y5ovvrof)hi7$p0fbm=' # 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 = 'sergvart' # for security, best to set admin password in an environment variable ADMIN_PASSWORD = 'Mashamorgan123' # 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 = 'RUB' 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 = 'ru' # 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.
""" ROOM_DEFAULTS = {} ROOMS = [ { 'name': 'econ101', 'display_name': 'Econ 101 class', 'participant_label_file': '_rooms/econ101.txt', }, { 'name': 'live_demo', 'display_name': 'Room for live demo (no participant labels)', }, { 'name': '2017', 'display_name': 'Студенты бакалавриата, 4 курс 2017 года', 'participant_label_file': '_rooms/2017.txt', }, { 'name': '2018', 'display_name': 'Студенты бакалавриата, 4 курс 2018 года', 'participant_label_file': '_rooms/2018.txt', }, { 'name': '2019', 'display_name': 'Студенты бакалавриата, 4 курс 2019 года', 'participant_label_file': '_rooms/2019.txt', }, { 'name': '2020', 'display_name': 'Студенты бакалавриата, 4 курс 2020 года', 'participant_label_file': '_rooms/2020.txt', }, { 'name': '2021', 'display_name': 'Студенты бакалавриата, 4 курс 2021 года', 'participant_label_file': '_rooms/2021.txt', }, { 'name': 'Customs2022', 'display_name': 'Эксперимент Таможня, 14 июня 2022, ДВФУ', 'participant_label_file': '_rooms/FEFU_Customs_14062022.txt', }, { 'name': 'FinUniver', 'display_name': 'Для мастер-класса в Финансовом Университете', 'participant_label_file': '_rooms/fin_univer23052019.txt', }, ] mturk_hit_settings = { 'keywords': ['bonus', 'study'], 'title': 'Title for your experiment', 'description': 'Description for your experiment', 'frame_height': 500, 'preview_template': 'global/MTurkPreview.html', 'minutes_allotted_per_assignment': 60, 'expiration_hours': 7*24, # 7 days #'grant_qualification_id': 'YOUR_QUALIFICATION_ID_HERE',# to prevent retakes 'qualification_requirements': [] } # 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.00, 'doc': "", 'mturk_hit_settings': mturk_hit_settings, } SESSION_CONFIGS = [ { 'name': 'public_goods', 'display_name': "Общественные блага", 'num_demo_participants': 3, 'app_sequence': ['public_goods'], }, { 'name': 'basegame_andrew', 'display_name': "Эксперимент А.А.Волкова", 'num_demo_participants': 2, 'app_sequence': ['Basegame2'], }, { 'name': 'the_game_of_covids', 'display_name': "Ваксеры, антиваксеры и ковид", 'num_demo_participants': 1, 'app_sequence': ['the_game_of_covids'], }, { 'name': 'parks_and_recreation', 'display_name': "Парки и зоны отдыха", 'num_demo_participants': 9, 'app_sequence': ['parks_auction'], }, { 'name': 'mugs_persuasion', 'display_name': "Убеждающее воздействие (кружки)", 'num_demo_participants': 1, 'app_sequence': ['mugs_persuasion'], }, { 'name': 'informative', 'display_name': "Информирующее воздействие", 'num_demo_participants': 1, 'app_sequence': ['informative'], }, { 'name': 'risk_vs_advrtsmnt', 'display_name': "Реклама против риска", 'num_demo_participants': 1, 'app_sequence': ['risk_vs_advrtsmnt'], }, { 'name': 'risk_etc', 'display_name': "Риск и прочее", 'num_demo_participants': 1, 'app_sequence': ['define_risks', 'risky_business'], }, { 'name': 'guess_two_thirds', 'display_name': "Угадай две трети", 'num_demo_participants': 3, 'app_sequence': ['guess_two_thirds', 'payment_info'], }, { 'name': 'my_simple_survey', 'display_name': "Тестовый опрос", 'num_demo_participants': 4, 'app_sequence': ['my_test_survey'], }, { 'name': 'cournot', 'display_name': "Курно", 'num_demo_participants': 5, 'app_sequence': [ 'cournot' ], }, { 'name': 'public_goods_not_anon', 'display_name': "Общественное благо без анонимности", 'num_demo_participants': 3, 'app_sequence': ['public_goods_not_anon'], }, { 'name': 'survey', 'display_name': "Survey", 'num_demo_participants': 1, 'app_sequence': ['survey', 'payment_info'], }, { 'name': 'prisoner', 'display_name': "Prisoner's Dilemma", 'num_demo_participants': 2, 'app_sequence': ['prisoner', 'payment_info'], }, { 'name': 'ultimatum', 'display_name': "Ultimatum (randomized: strategy vs. direct response)", 'num_demo_participants': 2, 'app_sequence': ['ultimatum', 'payment_info'], }, { 'name': 'ultimatum_strategy', 'display_name': "Ultimatum (strategy method treatment)", 'num_demo_participants': 2, 'app_sequence': ['ultimatum', 'payment_info'], 'use_strategy_method': True, }, { 'name': 'ultimatum_non_strategy', 'display_name': "Ultimatum (direct response treatment)", 'num_demo_participants': 2, 'app_sequence': ['ultimatum', 'payment_info'], 'use_strategy_method': False, }, { 'name': 'vickrey_auction', 'display_name': "Vickrey Auction", 'num_demo_participants': 3, 'app_sequence': ['vickrey_auction', 'payment_info'], }, { 'name': 'volunteer_dilemma', 'display_name': "Volunteer's Dilemma", 'num_demo_participants': 3, 'app_sequence': ['volunteer_dilemma', 'payment_info'], }, { 'name': 'principal_agent', 'display_name': "Principal Agent", 'num_demo_participants': 2, 'app_sequence': ['principal_agent', 'payment_info'], }, { 'name': 'dictator', 'display_name': "Dictator Game", 'num_demo_participants': 2, 'app_sequence': ['dictator', 'payment_info'], }, { 'name': 'matching_pennies', 'display_name': "Matching Pennies", 'num_demo_participants': 2, 'app_sequence': [ 'matching_pennies', ], }, { 'name': 'traveler_dilemma', 'display_name': "Traveler's Dilemma", 'num_demo_participants': 2, 'app_sequence': ['traveler_dilemma', 'payment_info'], }, { 'name': 'bargaining', 'display_name': "Bargaining Game", 'num_demo_participants': 2, 'app_sequence': ['bargaining', 'payment_info'], }, { 'name': 'parks_auction', 'display_name': "Аукцион функций предложения", 'num_demo_participants': 5, 'app_sequence': ['parks_auction'], }, { 'name': 'stackelberg', 'display_name': "Stackelberg Competition", 'real_world_currency_per_point': 0.01, 'num_demo_participants': 2, 'app_sequence': [ 'stackelberg', 'payment_info' ], }, { 'name': 'bertrand', 'display_name': "Bertrand Competition", 'num_demo_participants': 2, 'app_sequence': [ 'bertrand', 'payment_info' ], }, { 'name': 'lemon_market', 'display_name': "Lemon Market Game", 'num_demo_participants': 3, 'app_sequence': [ 'lemon_market', 'payment_info' ], }, { 'name': 'battle_of_the_sexes', 'display_name': "Battle of the Sexes", 'num_demo_participants': 2, 'app_sequence': [ 'battle_of_the_sexes', 'payment_info' ], }, { 'name': 'public_goods_simple', 'display_name': "Public Goods (simple version from tutorial)", 'num_demo_participants': 3, 'app_sequence': ['public_goods_simple', 'survey', 'payment_info'], }, ] # anything you put after the below line will override # oTree's default settings. Use with caution.