from otree.api import * import random doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'payments' PLAYERS_PER_GROUP = 1 # used to be "None" NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): additional_task_selected = models.IntegerField() show_up_fee = models.FloatField( initial = 0.0 ) bargain_earnings = models.FloatField( initial = 0.0 ) risk_earnings = models.FloatField( initial = 0.0 ) ultimatum_earnings = models.FloatField( initial = 0.0 ) money_to_pay = models.FloatField( initial = 0.0 ) # PAGES class Payments(Page): def vars_for_template(player): if "money_earned_bargain" in player.participant.vars: player.bargain_earnings = player.participant.vars["money_earned_bargain"] if "money_earned_risk" in player.participant.vars: player.risk_earnings = player.participant.vars["money_earned_risk"] if "money_earned_ultimatum" in player.participant.vars: player.ultimatum_earnings = player.participant.vars["money_earned_ultimatum"] player.money_to_pay = round(player.bargain_earnings, 2) player.participant.payoff = player.money_to_pay player.participant.finished = True return dict( prolific_completion_url=player.session.vars.get('prolific_completion_url', ''), ) page_sequence = [Payments] def creating_session(subsession): for player in subsession.get_players(): player.show_up_fee = subsession.session.config['show_up_fee'] player.additional_task_selected = random.randint(2,3)