from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random import math class MyPage_1(Page): form_model = "player" form_fields = ["actual_consumption_1"] def vars_for_template(self): number_1 = random.randint(-1,1) self.player.actual_wage_1 = Constants.wage return { "self.player.actual_wage_1":self.player.actual_wage_1 } def vars_for_template(self): number_1 = random.randint(-1,1) self.player.actual_interest_rate_1 = Constants.base_interest_rate + number_1 / 100 return { "actual_interest_rate_1": self.actual_interest_rate_1 } def before_next_page(self): self.player.utility_1 = math.sqrt(self.player.actual_consumption_1) self.player.saving_1 = 100 - self.player.actual_consumption_1 class MyPage_2(Page): form_model = "player" form_fields = ["actual_consumption_2"] def vars_for_template(self): number_1 = random.randint(-1,1) self.player.actual_wage_2 = Constants.wage + self.player.saving_1*(1 + self.player.actual_interest_rate_1) self.player.actual_interest_rate_2 = Constants.base_interest_rate + number_1 / 100 return { "actual_interest_rate_2": self.actual_interest_rate_2, "self.player.actual_wage_2": self.player.actual_wage_2 } def before_next_page(self): self.player.utility_2 = math.sqrt(self.player.actual_consumption_2) self.player.saving_2 = self.player.actual_wage_2 - self.player.actual_consumption_2 self.player.payoff = self.player.utility_1 + Constants.beta*self.player.utility_2 class Results(Page): pass page_sequence = [MyPage_1, MyPage_2, Results]