from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants, Group import random class Contribute(Page): form_model = 'player' form_fields = ['contribution'] class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): # pass def vars_for_template(self): # subgroup_1_payoff_list= [] subgroup_2_payoff_list= [] subgroup_3_payoff_list= [] sum_payoff_subgroup_1 = c(0) sum_payoff_subgroup_2 = c(0) sum_payoff_subgroup_3 = c(0) # subgroup_1_payoff_list = [ p.payoff for p in self.group.get_players() if p.player_role == 1 ] for p in self.group.get_players(): if p.player_role == 1: # subgroup_1_payoff_list += [p.payoff] sum_payoff_subgroup_1 += p.payoff if p.player_role == 2: subgroup_2_payoff_list += [p.payoff] sum_payoff_subgroup_2 += p.payoff if p.player_role == 3: subgroup_3_payoff_list += [p.payoff] sum_payoff_subgroup_3 += p.payoff subgroup_1_payoff_list =[ p.payoff for p in self.group.get_players() if p.player_role == 1 ] if self.round_number > 1: payoff_last_round = self.player.in_round(self.round_number - 1 ).payoff else: payoff_last_round =c(0) return dict( subgroup_1_payoff_list = subgroup_1_payoff_list, subgroup_2_payoff_list = subgroup_2_payoff_list, subgroup_3_payoff_list = subgroup_3_payoff_list, aver_payoff_subgroup_1 = sum_payoff_subgroup_1 / 2, aver_payoff_subgroup_2 = sum_payoff_subgroup_2 / 2, aver_payoff_subgroup_3 = sum_payoff_subgroup_3 / 2, payoff_last_round = payoff_last_round ) # def vars_for_template(self): # subgroup_1_payoff_list = list() # subgroup_2_payoff_list = list() # subgroup_3_payoff_list = list() # for p in self.group.get_players(): # if self.player.player_role == 1: # subgroup_1_payoff_list = subgroup_1_payoff_list.append(p.payoff) # if self.player.player_role == 2: # subgroup_2_payoff_list = subgroup_2_payoff_list.append(p.payoff) # if self.player.player_role == 3: # subgroup_3_payoff_list = subgroup_3_payoff_list.append(p.payoff) # return dict( # subgroup_1_payoff_list = subgroup_1_payoff_list, # subgroup_2_payoff_list = subgroup_2_payoff_list, # subgroup_3_payoff_list = subgroup_3_payoff_list, # ) # sorted_contributions = [p.contribution for p in self.group.get_players()] # return dict( # sorted_contributions = sorted_contributions, # ) page_sequence = [Contribute, ResultsWaitPage, Results]