from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class ChooseA(Page): form_model = 'group' form_fields = ['trust'] def is_displayed(self): return self.session.vars['player_id'] == 0 def vars_for_template(self): return{ 'choice': self.session.vars['choice'], 'player': self.session.vars['player_id'], 'endowment': self.session.vars['endowment'], 'reciprocity_return': self.session.vars['reciprocity_return'], 'betrayal': self.session.vars['betrayal'], } def before_next_page(self): self.group.reciprocity = self.session.vars['choice'] if self.group.trust == True and self.session.vars['choice'] == True: self.player.payoff = self.session.vars['reciprocity_return'] self.group.outcome = "Reciprocity" elif self.group.trust == True and self.session.vars['choice'] == False: self.player.payoff = 0 self.group.outcome = "Betrayal" elif self.group.trust == False: self.player.payoff = self.session.vars['endowment'] self.group.outcome = "Status Quo" class ChooseB(Page): form_model = 'group' form_fields = ['reciprocity'] def is_displayed(self): return self.session.vars['player_id'] == 1 def vars_for_template(self): return{ 'choice': self.session.vars['choice'], 'player': self.session.vars['player_id'], 'endowment': self.session.vars['endowment'], 'reciprocity_return': self.session.vars['reciprocity_return'], 'betrayal': self.session.vars['betrayal'], } def before_next_page(self): self.group.reciprocity = self.session.vars['choice'] if self.group.reciprocity == True: self.player.payoff = self.session.vars['reciprocity_return'] self.group.outcome = "Reciprocity" elif self.group.reciprocity == False: self.player.payoff = 0 self.group.outcome = "Betrayal" class ResultsA(Page): def is_displayed(self): return self.session.vars['player_id'] == 0 def vars_for_template(self): return{ 'payoff': self.player.payoff, 'trust': self.group.trust, 'reciprocity': self.group.reciprocity, 'outcome': self.group.outcome, 'endowment': self.session.vars['endowment'], 'reciprocity_return': self.session.vars['reciprocity_return'], 'betrayal': self.session.vars['betrayal'], } class ResultsB(Page): def is_displayed(self): return self.session.vars['player_id'] == 1 def vars_for_template(self): return{ 'payoff': self.player.payoff, 'trust': self.group.trust, 'reciprocity': self.group.reciprocity, 'outcome': self.group.outcome, 'endowment': self.session.vars['endowment'], 'reciprocity_return': self.session.vars['reciprocity_return'], 'betrayal': self.session.vars['betrayal'], } page_sequence = [ ChooseA, ChooseB, ResultsA, ResultsB, ]