from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import math import random class MyPage1(Page): form_model = "player" form_fields = ["consumption_1"] def vars_for_template(self): self.player.ir_1 = Constants.interest_rate + random.randint(-1,1)/100 return{ "ir_1":self.player.ir_1 } def before_next_page(self): self.player.utility_1 = math.sqrt(self.player.consumption_1) self.player.saving_1 = Constants.wage - self.player.consumption_1 class MyPage2(Page): form_model = "player" form_fields = ["consumption_2"] def vars_for_template(self): self.player.wage_2 = Constants.wage + self.player.saving_1*(1+self.player.ir_1) self.player.ir_2 = Constants.interest_rate + random.randint(-1,1)/100 return{ "wage_2":self.player.wage_2, "ir_2": self.player.ir_2, } def before_next_page(self): self.player.utility_2 = math.sqrt(self.player.consumption_2) self.player.payoff = self.player.utility_1 + Constants.beta*self.player.utility_2 class Results(Page): pass page_sequence = [MyPage1, MyPage2, Results]