from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants class Introduction(Page): def is_displayed(self): return self.round_number == 1 class IntroductionA(Page): def is_displayed(self): return self.round_number == 1 and self.player.treatment == 1 class IntroductionB(Page): def is_displayed(self): return self.round_number == 1 and self.player.treatment == 2 class Coin_Decision(Page): form_model = 'player' form_fields = ['player_coin'] def vars_for_template(self): self.player.player_card() self.player.computer_card() class Card_Decision(Page): form_model = 'player' form_fields = ['more_card1'] class More_card1(Page): def is_displayed(self): return self.player.more_card1 == 1 def vars_for_template(self): self.player.more_card_action1() form_model = 'player' form_fields = ['more_card2'] class More_card2(Page): def is_displayed(self): return self.player.more_card2 == 1 def vars_for_template(self): self.player.more_card_action2() form_model = 'player' form_fields = ['more_card3'] class More_card3(Page): def is_displayed(self): return self.player.more_card3 == 1 def vars_for_template(self): self.player.more_card_action3() form_model = 'player' form_fields = ['more_card4'] class More_card4(Page): def is_displayed(self): return self.player.more_card4 == 1 def vars_for_template(self): self.player.more_card_action4() form_model = 'player' form_fields = ['more_card5'] class More_card5(Page): def is_displayed(self): return self.player.more_card5 == 1 def vars_for_template(self): self.player.more_card_action5() form_model = 'player' form_fields = ['more_card6'] class More_card6(Page): def is_displayed(self): return self.player.more_card6 == 1 def vars_for_template(self): self.player.more_card_action6() form_model = 'player' form_fields = ['more_card7'] class Results(Page): def vars_for_template(self): self.player.judge1() self.player.judge2() self.player.judge3() self.player.judge4() self.player.judge5() self.player.judge6() self.player.judge7() self.player.vs_result1() self.player.vs_result2() self.player.vs_result3() self.player.vs_result4() self.player.vs_result5() self.player.vs_result6() self.player.vs_result7() self.player.conversion() self.player.win_num = [p.result_num for p in self.player.in_all_rounds()].count(2) self.player.draw_num = [p.result_num for p in self.player.in_all_rounds()].count(1) self.player.lose_num = [p.result_num for p in self.player.in_all_rounds()].count(0) self.player.burst_num = [p.result_num for p in self.player.in_all_rounds()].count(3) self.player.lose_number() class Results2(Page): pass class Result_summaryA(Page): def is_displayed(self): return self.round_number == Constants.num_rounds and self.player.treatment == 1 def vars_for_template(self): self.player.final_payment() self.player.lose_num = [p.result_num for p in self.player.in_all_rounds()].count(0) self.player.burst_num = [p.result_num for p in self.player.in_all_rounds()].count(3) self.player.lose_number() self.player.win_num = [p.result_num for p in self.player.in_all_rounds()].count(2) self.player.win_rate() player_in_all_rounds = self.player.in_all_rounds() return dict( total_stock = sum([p.player_stock1 for p in player_in_all_rounds]), player_in_all_rounds = player_in_all_rounds, real_stock = sum([p.player_stock1 - p.player_stock for p in player_in_all_rounds]) ) class question(Page): def is_displayed(self): return self.round_number == Constants.num_rounds form_model = 'player' form_fields = ['question1', 'question2', 'question3', 'question4'] page_sequence = [Introduction, Coin_Decision, Card_Decision, More_card1, More_card2, More_card3, More_card4, More_card5, More_card6, Results, Results2, Result_summaryA, question]