from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants class WelcomePage(Page): form_model = models.Player form_fields = ['phone_number'] def is_displayed(self): return self.subsession.round_number == 1 class SimpleWaitPage(WaitPage): pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class LotteryPage(Page): form_model = models.Player form_fields = ['decision'] def vars_for_template(self): return { 'player_in_all_rounds': self.player.in_previous_rounds(), 'current_round': self.subsession.round_number, 'current_rnd_gen': self.subsession.random_outcome, 'you_now': self.player, 'lottery_template': Constants.lotteries_array[self.subsession.round_number-1], 'determ_prob': self.participant.vars.get('eq_prob_det'), 'determ_prob1': self.participant.vars.get('eq_prob_det')+1, '100_determ_prob': 100-self.participant.vars.get('eq_prob_det'), 'almost_prob': self.participant.vars.get('eq_prob_alm'), 'almost_prob1': self.participant.vars.get('eq_prob_alm')+1, '100_almost_prob': 100 - self.participant.vars.get('eq_prob_alm'), 'avg_det_prob': self.participant.vars.get('avg_prob_det'), 'avg_det_prob1': self.participant.vars.get('avg_prob_det') + 1, '100_avg_det_prob': 100 - self.participant.vars.get('avg_prob_det'), 'avg_alm_prob': self.participant.vars.get('avg_prob_alm'), 'avg_alm_prob1': self.participant.vars.get('avg_prob_alm') + 1, '100_avg_alm_prob': 100 - self.participant.vars.get('avg_prob_alm') } class Results(Page): def vars_for_template(self): return { 'player_in_all_rounds': self.player.in_previous_rounds(), 'current_round': self.subsession.round_number, 'current_rnd_gen': self.subsession.random_outcome, 'you_now': self.player } class TotalResult(Page): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds def vars_for_template(self): return { 'player_in_all_rounds': self.player.in_all_rounds(), 'current_round': self.subsession.round_number, 'current_rnd_gen': self.subsession.random_outcome, 'you_now': self.player, 'you_first': self.player.in_round(1) } page_sequence = [ WelcomePage, SimpleWaitPage, LotteryPage, ResultsWaitPage, Results, TotalResult ]