from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Instructions(Page): def vars_for_template(self): if self.subsession.information_condition == 'complete': show_info = self.subsession.share_distribution else: show_info = '' return { 'show_info': show_info } def is_displayed(self): return self.round_number == 1 class Efficacy(Page): form_model = 'player' form_fields = ['E1', 'E2', 'E3', 'E4', 'E5'] class Decision(Page): form_model = 'player' form_fields = ['invest'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results_Round(Page): def vars_for_template(self): return { 'round_payoff': self.player.payoff, 'num_investors': self.group.num_investors, 'total_shares': self.group.sum_shares, 'good_produced': self.group.good_is_produced() } class End_Sum(Page): def is_displayed(self): return self.round_number == Constants.num_rounds def vars_for_template(self): return { 'total_payoff': sum([p.payoff for p in self.player.in_all_rounds()]), } page_sequence = [ Instructions, Efficacy, Decision, ResultsWaitPage, Results_Round, End_Sum, ]