from otree.api import * doc = """ Final summary and participant payment information. """ class C(BaseConstants): NAME_IN_URL = "payment" PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 BONUS_ENDOWMENT = cu(5) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): pass def assign_payoff(player: Player): summary = player.participant.vars.get("donation_summary", {}) player.payoff = summary.get("amount_kept", cu(0)) return summary class Summary(Page): @staticmethod def vars_for_template(player: Player): summary = assign_payoff(player) return dict( bonus_endowment=summary.get("bonus_endowment", C.BONUS_ENDOWMENT), total_donated=summary.get("total_donated", cu(0)), amount_kept=summary.get("amount_kept", cu(0)), allocations=summary.get("allocations", []), payoff=player.payoff, ) @staticmethod def before_next_page(player: Player, timeout_happened): assign_payoff(player) page_sequence = [Summary]