from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants as C import time # PAGES class Start(WaitPage): group_by_arrival_time = True def after_all_players_arrive(self): players = self.group.get_players() i = 0 for p in players: p.name = C.NAMES[i].upper() p.dropout = False i = i + 1 class Decision(Page): timeout_seconds = 60 form_model = 'player' form_fields = ['choice'] def before_next_page(self): if self.player.choice == 'ID1': self.player.ID1 = True if self.player.choice == 'ID2': self.player.ID2 = True if self.player.choice == 'ID3': self.player.ID3 = True if self.player.choice == 'ID4': self.player.ID4 = True if self.player.choice == 'ID5': self.player.ID5 = True if self.player.choice == 'ID6': self.player.ID6 = True if self.player.choice == 'ID7': self.player.ID7 = True if self.player.choice == 'ID8': self.player.ID8 = True if self.player.choice == 'ID9': self.player.ID9 = True if self.player.choice == 'ID10': self.player.ID10 = True if self.player.choice == 'ID11': self.player.ID11 = True if self.player.choice == 'ID12': self.player.ID12 = True self.player.neighbors_history += self.player.choice + ',' class Wait(WaitPage): after_all_players_arrive = 'get_res' class Res(Page): timeout_seconds = 15 form_model = 'player' def vars_for_template(self): nei = self.player.neighbors.split(',') nei = [n for n in nei if n] var = {'n_neighbor':len(nei)} for p in self.group.get_players(): var[p.name] = p.neighbors_history print(var) return var def before_next_page(self): self.player.drop() ROUND = [ Decision, Wait, Res,] page_sequence = [ Start, ] for i in range(5): page_sequence+=ROUND