Test_Johanne/trust/pages.py
2025-03-06 10:33:03 +01:00

65 lines
1.4 KiB
Python

from otree.api import Currency as c, currency_range
from ._builtin import Page, WaitPage
from .models import Constants
class Introduction(Page):
pass
class Send(Page):
"""This page is only for P1
P1 sends amount (all, some, or none) to P2
This amount is tripled by experimenter,
i.e if sent amount by P1 is 5, amount received by P2 is 15"""
form_model = 'group'
form_fields = ['sent_amount']
def is_displayed(self):
return self.player.id_in_group == 1
class SendBackWaitPage(WaitPage):
pass
class SendBack(Page):
"""This page is only for P2
P2 sends back some amount (of the tripled amount received) to P1"""
form_model = 'group'
form_fields = ['sent_back_amount']
def is_displayed(self):
return self.player.id_in_group == 2
def vars_for_template(self):
tripled_amount = self.group.sent_amount * Constants.multiplier
return dict(
tripled_amount=tripled_amount,
prompt='Please an amount from 0 to {}'.format(tripled_amount),
)
class ResultsWaitPage(WaitPage):
after_all_players_arrive = 'set_payoffs'
class Results(Page):
"""This page displays the earnings of each player"""
def vars_for_template(self):
return dict(tripled_amount=self.group.sent_amount * Constants.multiplier)
page_sequence = [
Introduction,
Send,
SendBackWaitPage,
SendBack,
ResultsWaitPage,
Results,
]