from otree.api import * ##from otree.api import GroupTV c = cu doc = '' class C(BaseConstants): NAME_IN_URL = 'final_payoff' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 THRESHOLD = 24 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): payout_round = models.IntegerField() ##variant = models.IntegerField() def custom_export(players): yield ['participant_code', 'id_in_group'] for p in players: ##p.variant = p.participant.variant pp = p.participant yield [pp.code, p.id_in_group] def calculate_payoffs(group: Group): players = group.get_players() ##import random """for p in players: p.payout_phase = random.randint(1, 3) p.payout_round = random.randint(1, 10) if p.payout_phase == 1: if p.participant.variant == 1: p.payoff = p.participant.earning_t1 elif p.participant.variant == 2: p.payoff = p.participant.earning_t2 elif p.participant.variant == 3: p.payoff = p.participant.earning_c1 elif p.participant.variant == 4: p.payoff = p.participant.earning_c1 elif p.participant.variant == 5: p.payoff = p.participant.earning_t3 elif p.participant.variant == 6: p.payoff = p.participant.earning_t4 elif p.participant.variant == 7: p.payoff = p.participant.earning_c2 elif p.participant.variant == 8: p.payoff = p.participant.earning_c2 elif p.payout_phase == 2: if p.participant.variant == 1: p.payoff = p.participant.earning_t2 elif p.participant.variant == 2: p.payoff = p.participant.earning_t1 elif p.participant.variant == 3: p.payoff = p.participant.earning_t1 elif p.participant.variant == 4: p.payoff = p.participant.earning_t2 elif p.participant.variant == 5: p.payoff = p.participant.earning_t4 elif p.participant.variant == 6: p.payoff = p.participant.earning_t3 elif p.participant.variant == 7: p.payoff = p.participant.earning_t3 elif p.participant.variant == 8: p.payoff = p.participant.earning_t4 else: if p.participant.variant == 1: p.payoff = p.participant.earning_c1 elif p.participant.variant == 2: p.payoff = p.participant.earning_c1 elif p.participant.variant == 3: p.payoff = p.participant.earning_t2 elif p.participant.variant == 4: p.payoff = p.participant.earning_t1 elif p.participant.variant == 5: p.payoff = p.participant.earning_c2 elif p.participant.variant == 6: p.payoff = p.participant.earning_c2 elif p.participant.variant == 7: p.payoff = p.participant.earning_t4 elif p.participant.variant == 8: p.payoff = p.participant.earning_t3 p.participant.payoff = p.payoff""" for p in players: p.payoff = p.participant.earning class ContinueEnd(WaitPage): after_all_players_arrive = calculate_payoffs class EndPage(Page): form_model = 'player' @staticmethod def vars_for_template(player: Player): return dict( gain=int(player.participant.payoff) * 0.01, part=6, sum=int(player.participant.payoff) * 0.01 + 6 ) page_sequence = [ContinueEnd, EndPage]