from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random import json class InitialSelection(Page): def is_displayed(self): return self.round_number == 1 form_model = 'group' form_fields = ['type', 'treatment', 'subtreatment'] class WaitForInitialSelection(WaitPage): pass class Gender(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['gender'] def before_next_page(self): self.participant.vars['gender'] = self.player.gender class Treatment(Page): def is_displayed(self): return self.round_number == 1 form_model = "player" form_fields = ["enumerator_ID", "practice", "HHID", "person_id", ] class PeopleWatching(Page): def is_displayed(self): return self.round_number == 1 and self.group.treatment == 2 form_model = "player" form_fields = ["nrchildren", "public_schedule", "men1625", "men2550", "menover50", "women1625", "women2550", "womenover50"] # Pages to display always (common pages) class InstructionW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.round_number == 1 class InstructionM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.round_number == 1 # EX ANTE VERSION ###################################################################################################### class EAPracticeW(Page): def is_displayed(self): return self.group.type == 'EA' and self.participant.vars['gender'] == 'W' and self.round_number == 1 class EAPracticeW2(Page): def is_displayed(self): return self.group.type == 'EA' and self.participant.vars['gender'] == 'W' and self.round_number == 1 class EADescriptionW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EA' and self.round_number == 1 class EADescriptionM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == 1 class EAPreScheduleM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == 1 # PAGE RANDOMIZATION FOR EXANTE STARTS HERE class EASchedule1M(Page): def before_next_page(self): self.player.guess_be01a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] class EAConfirmationBe01a(Page): def vars_for_template(self): return {'be01a_stored_m': self.participant.vars['be01a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["confirmation_be01a"] class EASchedule1BisM(Page): def before_next_page(self): self.player.guess_be01a_man() def is_displayed(self): return self.player.confirmation_be01a == 1 and self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] class EASchedule2M(Page): def before_next_page(self): self.player.guess_be01b_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.group.subtreatment == 1 and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] class EAConfirmationBe01b(Page): def vars_for_template(self): return {'be01b_stored_m': self.participant.vars['be01b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.group.subtreatment == 1 and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["confirmation_be01b"] # def before_next_page(self): # self.participant.vars['confirmation_be01b'] = self.player.confirmation_be01b class EASchedule2BisM(Page): def before_next_page(self): self.player.guess_be01b_man() def is_displayed(self): return self.player.confirmation_be01b == 1 and self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.group.subtreatment == 1 and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] class EASchedule3M(Page): def before_next_page(self): self.player.guess_be02a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] class EAConfirmationBe02a(Page): def vars_for_template(self): return {'be02a_stored_m': self.participant.vars['be02a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["confirmation_be02a"] class EASchedule3BisM(Page): def before_next_page(self): self.player.guess_be02a_man() def is_displayed(self): return self.player.confirmation_be02a == 1 and self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] class EASchedule4M(Page): def before_next_page(self): self.player.guess_be02b_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA'and self.group.subtreatment == 1 and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] class EAConfirmationBe02b(Page): def vars_for_template(self): return {'be02b_stored_m': self.participant.vars['be02b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.subtreatment == 1 and self.group.type == 'EA' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["confirmation_be02b"] class EASchedule4BisM(Page): def before_next_page(self): self.player.guess_be02b_man() def is_displayed(self): return self.player.confirmation_be02b == 1 and self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.group.subtreatment == 1 and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] class EAPostScheduleM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == Constants.num_rounds form_model = "player" form_fields = ["punishment_work"] # END RANDOMIZATION EX ANTE ############################################################################################ class ScheduleWaitPage(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EA' and self.round_number == Constants.num_rounds class EAScheduleListenW(Page): def vars_for_template(self): return self.player.vars_for_template() form_model = "group" form_fields = ["be01"] def before_next_page(self): self.participant.vars['be01'] = self.group.be01 def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment != 1 and self.group.type == 'EA' and self.round_number == Constants.num_rounds class EAScheduleListenTransW(Page): def vars_for_template(self): return self.player.vars_for_template() form_model = "group" form_fields = ["be01"] def before_next_page(self): self.participant.vars['be01'] = self.group.be01 def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment == 1 and self.group.type == 'EA' and self.round_number == Constants.num_rounds class EAListenDecideW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EA' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be02"] class EAListenDecideM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == Constants.num_rounds form_model = "player" form_fields = ["sound_decide_m"] class RiceWaitPage(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == Constants.num_rounds class pe_exante_woman_outside(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment == 2 and self.group.type == 'EA' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03_w"] class EASoundListenW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EA' and self.round_number == Constants.num_rounds class EABeadM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EA' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03"] def before_next_page(self): self.participant.vars['be01'] = self.group.be01 class WaitForBead(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EA' and self.round_number == Constants.num_rounds title_text = "Waiting" body_text = "Waiting to know which jar the pan picked EA" class OutsideWaitPage(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.subtreatment == 2 and self.group.type == 'EA' and self.round_number == Constants.num_rounds title_text = "Waiting" body_text = "Waiting to understand if the woman had an outside option EA" ### EX ANTE END ######################################################################################################## # EX POST COLD ####################################################################################################### class EPCDescriptionM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == 1 class EPCPracticeW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == 1 form_model = "group" form_fields = ["riceplate_practice"] class EPCPracticeW2(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == 1 class EPCIntroW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == 1 class EPCDescriptionW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be01"] def before_next_page(self): self.participant.vars['be01'] = self.group.be01 class RiceWaitPage2(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds title_text = "Waiting" body_text = "Waiting for the woman to make her choice EPC constant round" class RiceWaitPage2_round1(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == 1 title_text = "Waiting" body_text = "Waiting for the woman to make her choice EPC round == 1" # fake page only to give the impression to the man that he is actually waiting for smt class EPCPreRandomizationM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == 1 # EX POST COLD RANDOMIZATION START class EPCSchedule1M(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] def before_next_page(self): self.player.guess_be01a_man() class EPCConfirmationBe01a(Page): def vars_for_template(self): return {'be01a_stored_m': self.participant.vars['be01a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["confirmation_be01a"] class EPCSchedule1BisM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] def before_next_page(self): self.player.guess_be01a_man() class EPCSchedule2M(Page): def is_displayed(self): return self.group.type == 'EPC' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] def before_next_page(self): self.player.guess_be01b_man() class EPCConfirmationBe01b(Page): def vars_for_template(self): return {'be01b_stored_m': self.participant.vars['be01b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["confirmation_be01b"] class EPCSchedule2BisM(Page): def is_displayed(self): return self.group.type == 'EPC' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] def before_next_page(self): self.player.guess_be01b_man() class EPCSchedule3M(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] def before_next_page(self): self.player.guess_be02a_man() class EPCConfirmationBe02a(Page): def vars_for_template(self): return {'be02a_stored_m': self.participant.vars['be02a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["confirmation_be02a"] class EPCSchedule3BisM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] class EPCSchedule4M(Page): def is_displayed(self): return self.group.type == 'EPC' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] def before_next_page(self): self.player.guess_be02b_man() class EPCConfirmationBe02b(Page): def vars_for_template(self): return {'be02b_stored_m': self.participant.vars['be02b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["confirmation_be02b"] class EPCSchedule4BisM(Page): def is_displayed(self): return self.group.type == 'EPC' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] def before_next_page(self): self.player.guess_be02b_man() # EX POST COLD RANDOMIZATION END class ScheduleWaitPage2(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class EPCScheduleListenW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment != 1 and self.group.type == 'EPC' and self.round_number == Constants.num_rounds class EPCScheduleListenTransW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment == 1 and self.group.type == 'EPC' and self.round_number == Constants.num_rounds class EPCListenDecideW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be02"] class EPCSoundListenW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds class EPCListenDecideM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds form_model = "player" form_fields = ["sound_decide_m"] class EPCOutsideW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.group.subtreatment == 2 and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03_w"] class EPCBeadM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03"] def before_next_page(self): self.participant.vars['be01'] = self.group.be01 class Waitforjar2(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPC' and self.round_number == Constants.num_rounds class OutsideWaitPage2(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.subtreatment == 2 and self.group.type == 'EPC' and self.round_number == Constants.num_rounds # EX POST COLD END ##################################################################################################### # EX POST HOT START #################################################################################################### class EPHIntroM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == 1 class EPHPracticeW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == 1 form_model = "group" form_fields = ["riceplate_practice"] class EPHPracticeW2(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == 1 class EPHDescriptionW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == 1 form_model = "group" form_fields = ["be01"] # TB: save in participant var player field be01 def before_next_page(self): self.participant.vars['be01'] = self.group.be01 class RiceWaitPage3(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == 1 title_text = "Waiting" body_text = "Waiting for the woman to make her choice EPH constant round" class RiceWaitPage3Round1(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == 1 title_text = "Waiting" body_text = "Waiting for the woman to make her choice" class EPHDescriptionM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == 1 def before_next_page(self): self.participant.vars['be01'] = self.group.be01 # EX POST HOT RANDOMIZATION ############################################################################################ class EPHSchedule1M(Page): def before_next_page(self): self.player.guess_be01a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] class EPHConfirmationBe01a(Page): def vars_for_template(self): return {'be01a_stored_m': self.participant.vars['be01a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["confirmation_be01a"] class EPHSchedule1BisM(Page): def before_next_page(self): self.player.guess_be01a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['1'] form_model = "player" form_fields = ["be01a_man"] class EPHSchedule2M(Page): def before_next_page(self): self.player.guess_be01b_man() def is_displayed(self): return self.group.type == 'EPH' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] class EPHConfirmationBe01b(Page): def vars_for_template(self): return {'be01b_stored_m': self.participant.vars['be01b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["confirmation_be01b"] class EPHSchedule2BisM(Page): def before_next_page(self): self.player.guess_be01b_man() def is_displayed(self): return self.group.type == 'EPH' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['2'] form_model = "player" form_fields = ["be01b_man"] class EPHSchedule3M(Page): def before_next_page(self): self.player.guess_be02a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] class EPHConfirmationBe02a(Page): def vars_for_template(self): return {'be02a_stored_m': self.participant.vars['be02a_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["confirmation_be02a"] class EPHSchedule3BisM(Page): def before_next_page(self): self.player.guess_be02a_man() def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['3'] form_model = "player" form_fields = ["be02a_man"] class EPHSchedule4M(Page): def before_next_page(self): self.player.guess_be02b_man() def is_displayed(self): return self.group.type == 'EPH' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] class EPHConfirmationBe02b(Page): def vars_for_template(self): return {'be02b_stored_m': self.participant.vars['be02b_man_st'] } def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["confirmation_be02b"] class EPHSchedule4BisM(Page): def before_next_page(self): self.player.guess_be02b_man() def is_displayed(self): return self.group.type == 'EPH' and self.group.subtreatment == 1 and self.participant.vars['gender'] == 'M' and self.round_number == self.participant.vars['task_rounds']['4'] form_model = "player" form_fields = ["be02b_man"] class ScheduleWaitPage3(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.round_number == self.round_number == Constants.num_rounds title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class ScheduleWaitPage3Round1(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and (self.round_number == 1 or self.round_number == 2 or self.round_number == 3 or self.round_number == 4) title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class ScheduleWaitPage3Round2(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.round_number == 2 title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class ScheduleWaitPage3Round3(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.round_number == 3 title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class ScheduleWaitPage3Round4(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.round_number == 4 title_text = "Waiting" body_text = "Waiting to get how much you have to listen to the sound" class EPHBeadM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03"] class Waitforjar3(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == Constants.num_rounds class EPHScheduleListenW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment != 1 and self.group.type == 'EPH' and self.round_number == Constants.num_rounds class EPHScheduleListenTransW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment == 1 and self.group.type == 'EPH' and self.round_number == Constants.num_rounds class EPHSoundListenW(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == Constants.num_rounds class EPHListenDecideM(Page): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.type == 'EPH' and self.round_number == Constants.num_rounds form_model = "player" form_fields = ["sound_decide_m"] class EPHOutsideW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.subtreatment == 2 and self.group.type == 'EPH' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be03_w"] class EPHListenDecideW(Page): def is_displayed(self): return self.participant.vars['gender'] == 'W' and self.group.type == 'EPH' and self.round_number == Constants.num_rounds form_model = "group" form_fields = ["be02"] class OutsideWaitPage3(WaitPage): def is_displayed(self): return self.participant.vars['gender'] == 'M' and self.group.subtreatment == 2 and self.group.type == 'EPH' and self.round_number == Constants.num_rounds ### EX POST HOT END #################################################################################################### ### END COMMON PAGES ################################################################################################### class End(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.group.subtreatment != 1 and self.round_number == Constants.num_rounds class EndTransfer(Page): def vars_for_template(self): return self.player.vars_for_template() def is_displayed(self): return self.group.subtreatment == 1 and self.round_number == Constants.num_rounds class ThankYou(Page): def is_displayed(self): return self.round_number == Constants.num_rounds class Feedback1(Page): def is_displayed(self): return self.round_number == Constants.num_rounds form_model = "player" form_fields = ['feedback1'] class Feedback2(Page): def is_displayed(self): return self.round_number == Constants.num_rounds form_model = "player" form_fields = ['feedback2'] class ExtraComments(Page): def is_displayed(self): return self.round_number == Constants.num_rounds form_model = "player" form_fields = ['extra_comment'] page_sequence = [ InitialSelection, WaitForInitialSelection, Gender, Treatment, PeopleWatching, InstructionW, InstructionM, EAPracticeW, EAPracticeW2, EADescriptionW, EADescriptionM, EAPreScheduleM, EASchedule1M, EAConfirmationBe01a, EASchedule1BisM, EASchedule2M, EAConfirmationBe01b, EASchedule2BisM, EASchedule3M, EAConfirmationBe02a, EASchedule3BisM, EASchedule4M, EAConfirmationBe02b, EASchedule4BisM, ScheduleWaitPage, EAPostScheduleM, EAScheduleListenW, EAScheduleListenTransW, RiceWaitPage, pe_exante_woman_outside, OutsideWaitPage, EAListenDecideW, EASoundListenW, EABeadM, WaitForBead, EAListenDecideM, # EPC EPCDescriptionM, EPCPracticeW, EPCPracticeW2, EPCIntroW, EPCDescriptionW, EPCPreRandomizationM, EPCSchedule1M, EPCConfirmationBe01a, EPCSchedule1BisM, EPCSchedule2M, EPCConfirmationBe01b, EPCSchedule2BisM, EPCSchedule3M, EPCConfirmationBe02a, EPCSchedule3BisM, EPCSchedule4M, EPCConfirmationBe02b, EPCSchedule4BisM, RiceWaitPage2, ScheduleWaitPage2, EPCScheduleListenW, EPCScheduleListenTransW, EPCOutsideW, EPCBeadM, OutsideWaitPage2, EPCListenDecideW, EPCSoundListenW, Waitforjar2, EPCListenDecideM, #EPH EPHPracticeW, EPHPracticeW2, EPHIntroM, EPHDescriptionW, RiceWaitPage3Round1, EPHDescriptionM, EPHSchedule1M, EPHConfirmationBe01a, EPHSchedule1BisM, EPHSchedule2M, EPHConfirmationBe01b, EPHSchedule2BisM, EPHSchedule3M, EPHConfirmationBe02a, EPHSchedule3BisM, EPHSchedule4M, EPHConfirmationBe02b, EPHSchedule4BisM, ScheduleWaitPage3, ScheduleWaitPage3Round1, ScheduleWaitPage3Round2, ScheduleWaitPage3Round3, ScheduleWaitPage3Round4, EPHScheduleListenW, EPHScheduleListenTransW, EPHOutsideW, EPHListenDecideW, EPHBeadM, OutsideWaitPage3, EPHSoundListenW, Waitforjar3, EPHListenDecideM, End, EndTransfer, Feedback1, Feedback2, ExtraComments, ThankYou ]