from otree.api import * c = Currency doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'results' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): payoff_in_real_currency = models.FloatField() # PAGES class TimedOut(Page): @staticmethod def is_displayed(player: Player): return player.participant.dropout class Results(Page): @staticmethod def vars_for_template(player: Player): participant = player.participant participant.payoff = participant.vars.get('payoff_part_1', 0) + \ participant.vars.get('payoff_part_2', 0) + \ participant.vars.get('payoff_part_3', 0) + \ participant.vars.get('payoff_part_4', 0) payoff_in_real_currency = cu(participant.payoff).to_real_world_currency(player.session) player.payoff_in_real_currency = float(payoff_in_real_currency) session = player.session return dict( payoff_in_real_currency=payoff_in_real_currency, link=session.config.get('prolific_link', '') ) @staticmethod def is_displayed(player: Player): return not player.participant.dropout page_sequence = [TimedOut, Results]