from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Intro(Page): def vars_for_template(self): return { 'show_up': Constants.show_up, } class Intro2(Page): def vars_for_template(self): return { 'show_up': Constants.show_up, } class Intro3(Page): def vars_for_template(self): return { 'show_up': Constants.show_up, } class Intro4(Page): def vars_for_template(self): return { 'show_up': Constants.show_up, } class Intro5(Page): def vars_for_template(self): return { 'show_up': Constants.show_up, } class Intro6(Page): form_model = 'player' form_fields = ['ex_sum_a', 'ex_sum_b', 'ex_back_a', 'ex_back_b', 'ex_sum'] def vars_for_template(self): return { 'show_up': Constants.show_up, } def ex_sum_a_error_message(self, value): print('value is', value) if value > 15 or value < 15: return 'Die richtige Antwort ist 15 €.' def ex_sum_b_error_message(self, value): print('value is', value) if value > 15 or value < 15: return 'Die richtige Antwort ist 15 €.' def ex_back_a_error_message(self, value): print( 'value is', value ) if value > 7.5 or value < 7.5: return 'Die richtige Antwort ist 15*0,50=7,50 €.' def ex_back_b_error_message(self, value): print( 'value is', value ) if value > 7.5 or value < 7.5: return 'Die richtige Antwort ist 15*0,50=7,50 €.' def ex_sum_error_message(self, value): print( 'value is', value ) if value > 15 or value < 15: return 'Die richtige Antwort ist 7,50 + 7,50 = 15 €.' class Intro7(Page): form_model = 'player' form_fields = ['ex_sum_a1', 'ex_sum_b1', 'ex_minus1', 'ex_minus', 'ex_final' ] def vars_for_template(self): return { 'show_up': Constants.show_up, } def ex_sum_b1_error_message(self, value): print('value is', value) if value > 15 or value < 15: return 'Die richtige Antwort ist 15 €.' #def ex_sum_a1_error_message(self, value): #print('value is', value) #if value > 15 or value < 15: #return 'Die richtige Antwort ist 15 €.' def ex_final_error_message(self, value): print( 'value is', value ) if value > 7.5 or value < 7.5: return 'Die richtige Antwort ist 15-7,50=7,50 €.' #def ex_minus_error_message(self, value): #print( 'value is', value ) #if value > 7.5 or value < 7.5: #return 'Die richtige Antwort ist 15*0,50=7,50 €.' #def ex_minus1_error_message(self, value): # print( 'value is', value ) #if value > 7.5 or value < 7.5: #return 'Die richtige Antwort ist 15*0,50=7,50 €.' class Choice(Page): form_model = 'player' form_fields = ['contribution_within', 'contribution_between', 'keep'] def error_message(self, values): print('values is', values) if values["contribution_within"] +values["contribution_between"] +values["keep"]> 10 or values["contribution_within"] +values["contribution_between"] +values["keep"]<10 : return 'Die Summe muss 10 € ergeben.' class Choice_2( Page ): form_model = 'player' form_fields = ['contribution_within_0', 'contribution_between_0', 'keep_0' , 'contribution_within_2', 'contribution_between_2', 'keep_2' , 'contribution_within_4', 'contribution_between_4', 'keep_4' , 'contribution_within_6', 'contribution_between_6', 'keep_6' , 'contribution_within_8', 'contribution_between_8', 'keep_8' , 'contribution_within_10', 'contribution_between_10', 'keep_10' , 'contribution_within_12', 'contribution_between_12', 'keep_12' , 'contribution_within_14', 'contribution_between_14', 'keep_14' , 'contribution_within_16', 'contribution_between_16', 'keep_16' , 'contribution_within_18', 'contribution_between_18', 'keep_18' , 'contribution_within_20', 'contribution_between_20', 'keep_20' , 'contribution_within_22', 'contribution_between_22', 'keep_22' , 'contribution_within_24', 'contribution_between_24', 'keep_24' , 'contribution_within_26', 'contribution_between_26', 'keep_26' , 'contribution_within_28', 'contribution_between_28', 'keep_28' , 'contribution_within_30', 'contribution_between_30', 'keep_30'] def error_message(self, values): print( 'values is', values ) if values["contribution_within_0"] + values["contribution_between_0"] + values["keep_0"] > 10 or values[ "contribution_within_0"] + values["contribution_between_0"] + values["keep_0"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_2"] + values["contribution_between_2"] + values["keep_2"] > 10 or values[ "contribution_within"] + values["contribution_between"] + values["keep"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_4"] + values["contribution_between_4"] + values["keep_4"] > 10 or values[ "contribution_within_4"] + values["contribution_between_4"] + values["keep_4"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_6"] + values["contribution_between_6"] + values["keep_6"] > 10 or values[ "contribution_within_6"] + values["contribution_between_6"] + values["keep_6"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_8"] + values["contribution_between_8"] + values["keep_8"] > 10 or values[ "contribution_within_8"] + values["contribution_between_8"] + values["keep_8"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_10"] + values["contribution_between_10"] + values["keep_10"] > 10 or values[ "contribution_within_10"] + values["contribution_between_10"] + values["keep_10"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_12"] + values["contribution_between_12"] + values["keep_12"] > 10 or values[ "contribution_within_12"] + values["contribution_between_12"] + values["keep_12"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_14"] + values["contribution_between_14"] + values["keep_14"] > 10 or values[ "contribution_within_14"] + values["contribution_between_14"] + values["keep_14"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_16"] + values["contribution_between_16"] + values["keep_16"] > 10 or values[ "contribution_within_16"] + values["contribution_between_16"] + values["keep_16"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_18"] + values["contribution_between_18"] + values["keep_18"] > 10 or values[ "contribution_within_18"] + values["contribution_between_18"] + values["keep_18"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_20"] + values["contribution_between_20"] + values["keep_20"] > 10 or values[ "contribution_within_20"] + values["contribution_between_20"] + values["keep_20"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_22"] + values["contribution_between_22"] + values["keep_22"] > 10 or values[ "contribution_within_22"] + values["contribution_between_22"] + values["keep_22"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_24"] + values["contribution_between_24"] + values["keep_24"] > 10 or values[ "contribution_within_24"] + values["contribution_between_24"] + values["keep_24"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_26"] + values["contribution_between_26"] + values["keep_26"] > 10 or values[ "contribution_within_26"] + values["contribution_between_26"] + values["keep_26"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_28"] + values["contribution_between_28"] + values["keep_28"] > 10 or values[ "contribution_within_28"] + values["contribution_between_28"] + values["keep_28"] < 10: return 'Die Summe muss 10 € ergeben.' if values["contribution_within_30"] + values["contribution_between_30"] + values["keep_30"] > 10 or values[ "contribution_within_30"] + values["contribution_between_30"] + values["keep_30"] < 10: return 'Die Summe muss 10 € ergeben.' class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): def vars_for_template(self): return { 'contribution_within': self.player.contribution_within, 'contribution_between': self.player.contribution_between, 'keep': self.player.keep, 'contribution_within_0': self.player.contribution_within_0, 'contribution_between_0': self.player.contribution_between_0, 'keep_0': self.player.keep_0, 'contribution_within_2': self.player.contribution_within_2, 'contribution_between_2': self.player.contribution_between_2, 'keep_2': self.player.keep_2, 'contribution_within_4': self.player.contribution_within_4, 'contribution_between_4': self.player.contribution_between_4, 'keep_4': self.player.keep_4, 'contribution_within_6': self.player.contribution_within_6, 'contribution_between_6': self.player.contribution_between_6, 'keep_6': self.player.keep_6, 'contribution_within_8': self.player.contribution_within_8, 'contribution_between_8': self.player.contribution_between_8, 'keep_8': self.player.keep_8, 'contribution_within_10': self.player.contribution_within_10, 'contribution_between_10': self.player.contribution_between_10, 'keep_10': self.player.keep_10, 'contribution_within_12': self.player.contribution_within_12, 'contribution_between_12': self.player.contribution_between_12, 'keep_12': self.player.keep_12, 'contribution_within_14': self.player.contribution_within_14, 'contribution_between_14': self.player.contribution_between_14, 'keep_14': self.player.keep_14, 'contribution_within_16': self.player.contribution_within_16, 'contribution_between_16': self.player.contribution_between_16, 'keep_16': self.player.keep_16, 'contribution_within_18': self.player.contribution_within_18, 'contribution_between_18': self.player.contribution_between_18, 'keep_18': self.player.keep_18, 'contribution_within_20': self.player.contribution_within_20, 'contribution_between_20': self.player.contribution_between_20, 'keep_20': self.player.keep_20, 'contribution_within_22': self.player.contribution_within_22, 'contribution_between_22': self.player.contribution_between_22, 'keep_22': self.player.keep_22, 'contribution_within_24': self.player.contribution_within_24, 'contribution_between_24': self.player.contribution_between_24, 'keep_24': self.player.keep_24, 'contribution_within_26': self.player.contribution_within_26, 'contribution_between_26': self.player.contribution_between_26, 'keep_26': self.player.keep_26, 'contribution_within_28': self.player.contribution_within_28, 'contribution_between_28': self.player.contribution_between_28, 'keep_28': self.player.keep_28, 'contribution_within_30': self.player.contribution_within_30, 'contribution_between_30': self.player.contribution_between_30, 'keep_30': self.player.keep_30, } def before_next_page(self): #first mover self.participant.vars['contribution_within'] = self.player.contribution_within self.participant.vars['contribution_between'] = self.player.contribution_between self.participant.vars['keep'] = self.player.keep #second mover self.participant.vars['contribution_within_0'] = self.player.contribution_within_0 self.participant.vars['contribution_between_0'] = self.player.contribution_between_0 self.participant.vars['keep_0'] = self.player.keep_0 self.participant.vars['contribution_within_2'] = self.player.contribution_within_2 self.participant.vars['contribution_between_2'] = self.player.contribution_between_2 self.participant.vars['keep_2'] = self.player.keep_2 self.participant.vars['contribution_within_4'] = self.player.contribution_within_4 self.participant.vars['contribution_between_4'] = self.player.contribution_between_4 self.participant.vars['keep_4'] = self.player.keep_4 self.participant.vars['contribution_within_6'] = self.player.contribution_within_6 self.participant.vars['contribution_between_6'] = self.player.contribution_between_6 self.participant.vars['keep_6'] = self.player.keep_6 self.participant.vars['contribution_within_8'] = self.player.contribution_within_8 self.participant.vars['contribution_between_8'] = self.player.contribution_between_8 self.participant.vars['keep_8'] = self.player.keep_8 self.participant.vars['contribution_within_10'] = self.player.contribution_within_10 self.participant.vars['contribution_between_10'] = self.player.contribution_between_10 self.participant.vars['keep_10'] = self.player.keep_10 self.participant.vars['contribution_within_12'] = self.player.contribution_within_12 self.participant.vars['contribution_between_12'] = self.player.contribution_between_12 self.participant.vars['keep_12'] = self.player.keep_12 self.participant.vars['contribution_within_14'] = self.player.contribution_within_14 self.participant.vars['contribution_between_14'] = self.player.contribution_between_14 self.participant.vars['keep_14'] = self.player.keep_14 self.participant.vars['contribution_within_16'] = self.player.contribution_within_16 self.participant.vars['contribution_between_16'] = self.player.contribution_between_16 self.participant.vars['keep_16'] = self.player.keep_16 self.participant.vars['contribution_within_18'] = self.player.contribution_within_18 self.participant.vars['contribution_between_18'] = self.player.contribution_between_18 self.participant.vars['keep_18'] = self.player.keep_18 self.participant.vars['contribution_within_20'] = self.player.contribution_within_20 self.participant.vars['contribution_between_20'] = self.player.contribution_between_20 self.participant.vars['keep_20'] = self.player.keep_20 self.participant.vars['contribution_within_22'] = self.player.contribution_within_22 self.participant.vars['contribution_between_22'] = self.player.contribution_between_22 self.participant.vars['keep_22'] = self.player.keep_22 self.participant.vars['contribution_within_24'] = self.player.contribution_within_24 self.participant.vars['contribution_between_24'] = self.player.contribution_between_24 self.participant.vars['keep_24'] = self.player.keep_24 self.participant.vars['contribution_within_26'] = self.player.contribution_within_26 self.participant.vars['contribution_between_26'] = self.player.contribution_between_26 self.participant.vars['keep_26'] = self.player.keep_26 self.participant.vars['contribution_within_28'] = self.player.contribution_within_28 self.participant.vars['contribution_between_28'] = self.player.contribution_between_28 self.participant.vars['keep_28'] = self.player.keep_28 self.participant.vars['contribution_within_30'] = self.player.contribution_within_30 self.participant.vars['contribution_between_30'] = self.player.contribution_between_30 self.participant.vars['keep_30'] = self.player.keep_30 class Expectations(Page): form_model = 'player' form_fields = ['exp_own_a', 'exp_own_b', 'exp_other_a', 'exp_other_b'] def before_next_page(self): self.participant.vars['exp_own_a'] = self.player.exp_own_a self.participant.vars['exp_own_b'] = self.player.exp_own_b self.participant.vars['exp_other_a'] = self.player.exp_other_a self.participant.vars['exp_other_b'] = self.player.exp_other_b page_sequence = [ Intro, Intro2, Intro3, Intro4, Intro6, Intro7, Intro5, Choice, Results, Expectations, Choice_2 ]