from otree.api import * c = cu doc = '' class Constants(BaseConstants): name_in_url = 'FutureValueApp_v2' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass def calculate_delta(player): choices = [player.choice1, player.choice2, player.choice3, player.choice4, player.choice5, player.choice6, player.choice7, player.choice8, player.choice9, player.choice10, player.choice1_2, player.choice1_3, player.choice1_4, player.choice1_5, player.choice1_6, player.choice1_7, player.choice1_8, player.choice1_9, player.choice1_10] first_choice1 = [100 for i in range(19)] second_choice1 = [100 + i for i in range(1,10)] + [100 + 10 * i for i in range(1, 11)] delta_min = -1 j = 0 for val in choices: if str(first_choice1[j]) in val and not str(second_choice1[j]) in val: delta_min_ = second_choice1[j] / first_choice1[j] - 1 if delta_min_ > delta_min: delta_min = delta_min_ j += 1 if delta_min > 0.1: return 'You value future less than other people on average' else: return 'You value future more than other people on average' class Player(BasePlayer): choice1 = models.StringField(choices=[['100 USD today', '100 USD today'], ['101 USD in one month', '101 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['102 USD in one month', '102 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice3 = models.StringField(choices=[['100 USD today', '100 USD today'], ['103 USD in one month', '103 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice4 = models.StringField(choices=[['100 USD today', '100 USD today'], ['104 USD in one month', '104 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice5 = models.StringField(choices=[['100 USD today', '100 USD today'], ['105 USD in one month', '105 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice6 = models.StringField(choices=[['100 USD today', '100 USD today'], ['106 USD in one month', '106 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice7 = models.StringField(choices=[['100 USD today', '100 USD today'], ['107 USD in one month', '107 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice8 = models.StringField(choices=[['100 USD today', '100 USD today'], ['108 USD in one month', '108 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice9 = models.StringField(choices=[['100 USD today', '100 USD today'], ['109 USD in one month', '109 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice10 = models.StringField(choices=[['100 USD today', '100 USD today'], ['110 USD in one month', '110 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['120 USD in one month', '120 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_3 = models.StringField(choices=[['100 USD today', '100 USD today'], ['130 USD in one month', '130 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_4 = models.StringField(choices=[['100 USD today', '100 USD today'], ['140 USD in one month', '140 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_5 = models.StringField(choices=[['100 USD today', '100 USD today'], ['150 USD in one month', '150 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_6 = models.StringField(choices=[['100 USD today', '100 USD today'], ['160 USD in one month', '160 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_7 = models.StringField(choices=[['100 USD today', '100 USD today'], ['170 USD in one month', '170 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_8 = models.StringField(choices=[['100 USD today', '100 USD today'], ['180 USD in one month', '180 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_9 = models.StringField(choices=[['100 USD today', '100 USD today'], ['190 USD in one month', '190 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_10 = models.StringField(choices=[['100 USD today', '100 USD today'], ['200 USD in one month', '200 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['101 USD in one month', '101 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice2_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['102 USD in one month', '102 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice3_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['103 USD in one month', '103 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice4_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['104 USD in one month', '104 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice5_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['105 USD in one month', '105 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice6_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['106 USD in one month', '106 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice7_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['107 USD in one month', '107 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice8_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['108 USD in one month', '108 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice9_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['109 USD in one month', '109 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice10_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['110 USD in one month', '110 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_2_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['120 USD in one month', '120 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_3_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['130 USD in one month', '130 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_4_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['140 USD in one month', '140 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_5_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['150 USD in one month', '150 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_6_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['160 USD in one month', '160 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_7_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['170 USD in one month', '170 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_8_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['180 USD in one month', '180 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_9_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['190 USD in one month', '190 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) choice1_10_v2 = models.StringField(choices=[['100 USD today', '100 USD today'], ['200 USD in one month', '200 USD in one month']], initial='0', label=' ', widget=widgets.RadioSelectHorizontal) class ChoicePage1(Page): form_model = 'player' form_fields = ['choice1', 'choice2', 'choice3', 'choice4', 'choice5', 'choice6', 'choice7', 'choice8', 'choice9'] class ChoicePage2(Page): form_model = 'player' form_fields = ['choice10', 'choice1_2', 'choice1_3', 'choice1_4', 'choice1_5', 'choice1_6', 'choice1_7', 'choice1_8', 'choice1_9', 'choice1_10'] class NewInformationPage(Page): form_model = 'player' @staticmethod def vars_for_template(player): return dict(res = calculate_delta(player)) class ChoicePage3(Page): form_model = 'player' form_fields = ['choice2_v2', 'choice3_v2', 'choice4_v2', 'choice5_v2', 'choice6_v2', 'choice7_v2', 'choice8_v2', 'choice9_v2'] class ChoicePage4(Page): form_model = 'player' form_fields = ['choice10_v2', 'choice1_2_v2', 'choice1_3_v2', 'choice1_4_v2', 'choice1_5_v2', 'choice1_6_v2', 'choice1_7_v2', 'choice1_8_v2', 'choice1_9_v2', 'choice1_10_v2'] class ThankYou(Page): form_model = 'player' page_sequence = [ChoicePage1, ChoicePage2, NewInformationPage, ChoicePage3, ChoicePage4, ThankYou]