from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants class Introduction(Page): timeout_seconds = 100 class Understanding_question(Page): form_model = 'player' form_fields = ['answer1', 'answer2', 'answer3'] def error_message(self, values): solutions = dict(answer1=0, answer2=200, answer3=100) if values != solutions: return 'One or more answers were incorrect.' def is_displayed(player): return player.round_number == 1 class Decision(Page): form_model = 'player' form_fields = ['cooperate'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): for p in self.group.get_players(): p.set_payoff() class Results(Page): def vars_for_template(self): opponent = self.player.other_player() return { 'my_decision': self.player.decision_label(), 'other_player_decision': opponent.decision_label(), 'same_choice': self.player.cooperate == opponent.cooperate, } class Survey(Page): form_model = 'player' form_fields = ['age', 'gender', 'place', 'education', 'comment'] def is_displayed(player): return player.round_number == 5 page_sequence = [ Introduction, Understanding_question, Decision, ResultsWaitPage, Results, Survey ]