from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants from .models import Group class Quiz_Intro(Page): def is_displayed(self): return self.player.all_correct == 0 and self.round_number == 1 class Quiz_Page_1(Page): def is_displayed(self): return self.player.all_correct == 0 and self.round_number == 1 form_model = models.Player form_fields = ['know_strategy', 'different_price', 'vintner_revenue', 'vintner_payoff'] def before_next_page(self): self.player.check_answers() return self.player.all_correct class Quiz_Page_2(Page): def is_displayed(self): return self.player.all_correct == 0 and self.round_number != 1 form_model = models.Player form_fields = ['know_strategy', 'different_price', 'vintner_revenue', 'vintner_payoff' ] def before_next_page(self): self.player.check_answers() return self.player.all_correct class Quiz_Result_Page(Page): def is_displayed(self): return self.player.all_correct == 1 class Introduction2S(Page): def is_displayed(self): return self.round_number == 1 class GetStrategy1(Page): def is_displayed(self): return self.player.id_in_group == 2 form_model = models.Player form_fields = ['strategy_accept'] class GetStrategy2(Page): def is_displayed(self): return self.player.id_in_group == 3 form_model = models.Player form_fields = ['strategy_accept'] class Offer1(Page): def is_displayed(self): return self.player.id_in_group == 1 form_model = models.Group form_fields = ['offer1'] class AcceptOffer1(Page): def is_displayed(self): return self.player.id_in_group == 2 form_model = models.Group form_fields = ['actual_accept_1'] class Offer2(Page): def is_displayed(self): return self.player.id_in_group == 1 and self.group.actual_accept_1 == 0 form_model = models.Group form_fields = ['offer2'] class AcceptOffer2(Page): def is_displayed(self): return self.player.id_in_group == 3 and self.group.actual_accept_1 == 0 form_model = models.Group form_fields = ['actual_accept_2'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): def vars_for_template(self): return { 'total_payoff': sum([p.payoff for p in self.player.in_all_rounds()]), 'paying_round': self.session.vars['paying_round'], 'player_in_all_rounds': self.player.in_all_rounds(), } page_sequence = [ Introduction2S, GetStrategy1, GetStrategy2, Offer1, WaitPage, AcceptOffer1, WaitPage, Offer2, WaitPage, AcceptOffer2, ResultsWaitPage, Results ]