from . import models from ._builtin import Page, WaitPage from ._builtin import Page from .models import Constants import random class Introduction(Page): pass class UltimatumOffer(Page): form_model = 'player' form_fields = ['UG_offer','UG_kept'] def error_message(self, values): if values["UG_offer"] + values["UG_kept"] != Constants.pie: return 'The sum must be %d.'%Constants.pie def before_next_page(self): if self.timeout_happened: self.player.UG_offer = round(random.random()*Constants.pie) self.player.UG_kept = Constants.pie - self.player.UG_offer class UG_wait(WaitPage): wait_for_all_groups = True class UltimatumMAO(Page): form_model = 'player' form_fields = ['UG_MAO'] def before_next_page(self): if self.timeout_happened: self.player.UG_MAO = round(random.random()*Constants.pie) class FinalWaitPage(WaitPage): # timeout_seconds = 30 def after_all_players_arrive(self): #it only gets executed once self.group.interact() print('players have interacted!') page_sequence = [ Introduction, UltimatumOffer, # UG_wait, UltimatumMAO, FinalWaitPage, ]