from ._builtin import Page, WaitPage class Introduction(Page): def is_displayed(self): return self.round_number == 1 timeout_seconds = 180 def before_next_page(self): self.player.role() participant = self.participant import time # user has 5 minutes to complete as many pages as possible participant.vars['expiry'] = time.time() + 5 * 60 class Decision(Page): timeout_seconds = 60 form_model = 'player' form_fields = ['decision', 'ADA', 'ANA', 'ADB', 'ANB', 'AD1', 'AN1A', 'AN1B'] def vars_for_template(self): # Set payoffs # Display player = self.player return { 'type': player.in_round(1).rolee, 'autre_type': player.in_round(1).get_partner().rolee, } class Communication(Page): timeout_seconds = 15 form_model = 'player' form_fields = ['Message'] def vars_for_template(self): # Set payoffs # Display player = self.player return { 'type': player.in_round(1).rolee, 'autre_type': player.in_round(1).get_partner().rolee, } class MessageWaitPage(WaitPage): def after_all_players_arrive(self): self.group.Message() title_text = "Please Wait" body_text = "Your partner write your message" class Reception(Page): timeout_seconds = 10 def vars_for_template(self): # Set payoffs # Display player = self.player return { 'type': player.in_round(1).rolee, 'autre_type': player.in_round(1).get_partner().rolee, } class ResultsWaitPage(WaitPage): wait_for_all_groups = True title_text = "Please Wait" body_text = "Your partner make their choices" class Temp2(Page): timeout_seconds = 0.01 def before_next_page(self): self.group.elicitation() self.group.set_payoffs() class Results(Page): timeout_seconds = 10 def vars_for_template(self): # Set payoffs # Display player = self.player return { 'type': player.in_round(1).rolee, 'autre_type': player.in_round(1).get_partner().rolee, } class ShuffleWaitPage(WaitPage): wait_for_all_groups = True def after_all_players_arrive(self): self.subsession.do_my_shuffle() title_text = "Please Wait" body_text = "We wait the members of your group for create new pair" class Temp(Page): timeout_seconds = 0.01 def before_next_page(self): self.group.AorB() def app_after_this_page(self, upcoming_apps): participant = self.participant import time if self.group.STOP == "STOP": return upcoming_apps[0] elif participant.vars['expiry'] - time.time() <= 5: return upcoming_apps[0] page_sequence = [Introduction, ShuffleWaitPage, Temp, Communication, MessageWaitPage, Reception, Decision, ResultsWaitPage, Temp2, Results]