from . import models from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import random 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 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 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 instructionpage10(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class transition1(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class Comprehension0(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = models.Player form_fields = ['newcheck', 'newcheck2'] def error_message(self, values): if values["newcheck"] != 'Person A' or values["newcheck2"] != 'Person B': self.player.s1q1attempt += 1 return 'At least one answer is wrong, please try again.' pass class Comprehension1(Page): def is_displayed(self): return self.subsession.round_number == 1 form_model = models.Player form_fields = ['newcheck3', 'newcheck4'] def error_message(self, values): if values["newcheck3"] != 'Remove points from Person A' or values[ "newcheck4"] != 'Remove additional points from Person A': self.player.s1q2attempt += 1 return 'At least one answer is wrong, please try again.' pass class transition2(Page): def is_displayed(self): return self.subsession.round_number == 1 pass class Contribute(Page): form_model = models.Player form_fields = ['decision1'] class Contribute2(Page): form_model = models.Player form_fields = ['decision2'] class Contribute3(Page): form_model = models.Player form_fields = ['decision3'] class Contribute4(Page): form_model = models.Player form_fields = ['decision4'] class Contribute5(Page): form_model = models.Player form_fields = ['decision5'] class Contribute6(Page): form_model = models.Player form_fields = ['decision6'] class Contribute7(Page): form_model = models.Player form_fields = ['decision7'] class Contribute8(Page): form_model = models.Player form_fields = ['decision8'] class Contribute9(Page): form_model = models.Player form_fields = ['decision9'] class transition2b(Page): def vars_for_template(self): return dict(earning1=Constants.endowment - self.player.decision1, earning2=Constants.endowment - self.player.decision2, earning3=Constants.endowment - self.player.decision3, earning4=Constants.endowment - self.player.decision4, earning5=Constants.endowment - self.player.decision5, earning6=Constants.endowment - self.player.decision6, earning7=Constants.endowment - self.player.decision7, earning8=Constants.endowment - self.player.decision8, earning9=Constants.endowment - self.player.decision9,) class ResultsWaitPage(WaitPage): body_text = "Calculating final earnings..." class Results(Page): def vars_for_template(self): return dict(earning1=Constants.endowment - self.player.decision1, earning2=Constants.endowment - self.player.decision2, earning3=Constants.endowment - self.player.decision3, earning4=Constants.endowment - self.player.decision4, earning5=Constants.endowment - self.player.decision5, earning6=Constants.endowment - self.player.decision6, earning7=Constants.endowment - self.player.decision7, earning8=Constants.endowment - self.player.decision8, earning9=Constants.endowment - self.player.decision9,) class transition3(Page): pass page_sequence = [ consent, code, instructionpage0, instructionpage1, instructionpage2, instructionpage3, instructionpage4, instructionpage5, instructionpage6, instructionpage7, instructionpage8, instructionpage9, instructionpage10, transition1, Comprehension0, Comprehension1, transition2, Contribute5, Contribute3, Contribute2, Contribute, Contribute6, Contribute8, Contribute9, Contribute7, Contribute4, transition2b, Results, transition3, ]