from . import models from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import random class Contribute(Page): """Player: Choose how much to contribute""" form_model = models.Player form_fields = ['contribution'] timeout_submission = {'contribution': c(Constants.endowment / 2)} class Results(Page): def vars_for_template(self): return self.group.set_payoffs() class end1(Page): def is_displayed(self): return self.round_number == Constants.num_rounds def vars_for_template(self): return { 'total_payoff': sum([p.payoff for p in self.player.in_all_rounds()]), 'paying_round1': self.participant.vars['earning1'], 'paying_round2': self.participant.vars['earning2'], 'paying_round3': self.participant.vars['earning3'], 'paying_round4': self.participant.vars['earning4'], } pass class consent(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class code(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = models.Player form_fields = ['subjectid'] pass class instructionpage(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage0(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage1(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage2(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage3(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage4(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage4b(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage5(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage6(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage7(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage8(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpage9(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpagepractice(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpagepractice2(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class instructionpagepractice3(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class resultpractice(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): return self.player.set_payoffs() class Contributepractice(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = models.Player form_fields = ['practice'] class SimpleWaitPage(WaitPage): def vars_for_template(self): self.group.set_payoffs() body_text = "Waiting for other group members." pass class Comprehension1(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = models.Player form_fields = ['newcheck3'] def error_message(self, values): if values["newcheck3"] != 'Green': self.player.s1q2attempt += 1 return 'Incorrect answer, please read the instruction carefully.' pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() body_text = "Waiting for other participants to contribute." class demographic(Page): def is_displayed(self): return self.subsession.round_number ==1 form_model = models.Player form_fields = ['age', 'gender'] pass class MyWaitPage(WaitPage): body_text = "Please wait while other participants are being connected... You will proceed automatically after everyone arrives." pass page_sequence = [ MyWaitPage, consent, code, demographic, Comprehension1, instructionpage, instructionpage0, instructionpage1, instructionpage2, instructionpage3, instructionpage4, instructionpage4b, instructionpage5, instructionpage6, instructionpage7, instructionpage8, instructionpage9, instructionpagepractice, Contributepractice, instructionpagepractice2, #SimpleWaitPage, resultpractice, instructionpagepractice3, Contribute, ResultsWaitPage, Results, end1, ]