from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): def is_displayed(self): return self.round_number == 1 class problem(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['Answer'] def error_message(self, values): if values['Answer'] != 12800: return '回答に誤りがあります。' class problem_next(Page): def is_displayed(self): return self.round_number == 1 class Investment(Page): form_model = 'player' form_fields = ['Choice_A','Choice_B'] def error_message(self, values): print('values is', values) if values['Choice_A'] + values['Choice_B'] > self.player.income/1000 and self.player.cash==1: return '合計投資額が固定収入額を超えています。再度、入力しなおしてください。' elif values['Choice_A'] + values['Choice_B'] > self.player.income/1000 and self.player.cash==0: return '合計投資額が限度額を超えています。再度、入力しなおしてください。' def vars_for_template(self): self.player.Atarikuji() return dict( KakurituHazureA= int(round(1-self.player.CKakuritu_A,2)*100), KakurituHazureB= int(round(1-self.player.CKakuritu_B,2)*100), KakurituA= int(round(self.player.CKakuritu_A,2)*100), KakurituB= int(round(self.player.CKakuritu_B,2)*100) ) class Results(Page): def vars_for_template(self): self.player.kujibiki() class ResultsSummary(Page): def is_displayed(self): return self.round_number == Constants.num_rounds def vars_for_template(self): self.player.final_payment() player_in_all_rounds = self.player.in_all_rounds() return dict( total_payoff = sum([p.total_payment for p in player_in_all_rounds]), player_in_all_rounds = player_in_all_rounds, real_gain = sum([p.total_payment - self.player.income for p in player_in_all_rounds]) ) page_sequence = [Introduction, problem,problem_next,Investment, Results, ResultsSummary]