from ._builtin import Page, WaitPage import random class QuestionnaireA(Page): form_model = 'player' form_fields = ['statement1', 'statement2', 'statement3', 'statement4', 'statement5', 'statement6', 'statement7', 'statement8', 'statement9', 'statement10', 'statement11', 'statement12', 'statement13', 'statement14', 'statement15', 'statement16', 'statement17', 'statement18', 'statement19', 'statement20', 'statement21', 'statement22'] def before_next_page(self): # self.player.treatment = random.randint(1, 2) self.player.treatment = self.player.participant.vars.get('treatment') class InitialWaitPage(WaitPage): pass class QuestionnaireB(Page): pass class QuestionnaireB1(Page): form_model = 'player' form_fields = ['rank1', 'rank2', 'rank3', 'rank4'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class QuestionnaireB2(Page): form_model = 'player' form_fields = ['choice'] class QuestionnaireB3(Page): form_model = 'player' form_fields = ['belief'] class IntermediateWaitPage(WaitPage): def after_all_players_arrive(self): self.subsession.calculate_payoffs() class QuestionnaireC(Page): form_model = 'player' form_fields = ['age', 'gender', 'nationality', 'study', 'year'] class End(Page): pass class FinalWaitPage(WaitPage): pass class Earnings(Page): pass page_sequence = [ QuestionnaireA, InitialWaitPage, QuestionnaireB, QuestionnaireB1, QuestionnaireB2, QuestionnaireB3, IntermediateWaitPage, QuestionnaireC, End, FinalWaitPage, Earnings ]