from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Introduction(Page): def is_displayed(self): return self.round_number == 1 class Page0(Page): def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['Q1'] class NoAsk(Page): def is_displayed(self): return self.round_number == 1 and self.player.Q1 is False form_model = 'player' form_fields = [ 'whynot', 'whynot_o', 'Q1_1_1a', 'Q1_1_1b', 'Q1_1_1c', 'Q1_1_2', ] def error_message(self, values): print('values is', values) if values["Q1_1_1a"] + values["Q1_1_1b"] + values["Q1_1_1c"] != 100: return 'The numbers of "Increased", "Stayed the same" and "Decreased" must add up to 100' def before_next_page(self): self.player.assign_num_class() print('num_class', self.player.in_round(1).num_class) class NumClass(Page): def is_displayed(self): return self.round_number == 1 and self.player.Q1 is True form_model = 'player' form_fields = ['num_consider'] def before_next_page(self): self.player.assign_num_class() print('num_class', self.player.in_round(1).num_class) class Class(Page): def is_displayed(self): return self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True form_model = 'player' form_fields = ['Q2', 'Q3', 'college'] def vars_for_template(self): return { 'num_class': self.player.in_round(1).num_class, } class Dept(Page): def is_displayed(self): return self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True form_model = 'player' form_fields = ['dept_ag', 'dept_bz', 'dept_hs', 'dept_la', 'dept_ns', 'dept_vm', 'dept_eg', 'dept_nr', 'dept_other'] def vars_for_template(self): return { 'num_class': self.player.in_round(1).num_class, } def get_form_fields(self): if self.player.college == "Agriculture": return ['dept_ag'] elif self.player.college == "Business": return ['dept_bz'] elif self.player.college == "Health and Human Sciences": return ['dept_hs'] elif self.player.college == "Liberal Arts": return ['dept_la'] elif self.player.college == "Natural Sciences": return ['dept_ns'] elif self.player.college == "Veterinary Medicine and Biomedical Sciences": return ['dept_vm'] elif self.player.college == "Engineering": return ['dept_eg'] elif self.player.college == "Natural Resources": return ['dept_nr'] else: return ["dept_other"] class Questions(Page): def is_displayed(self): return self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True form_model = 'player' form_fields = [ 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17' ] def vars_for_template(self): return { 'num_class': self.player.in_round(1).num_class, } # # class Regrade_End(Page): # def is_displayed(self): # return self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True # form_model = 'player' # form_fields = ['Q17'] # def vars_for_template(self): # return { # 'num_class': self.player.in_round(1).num_class, # } class Why(Page): form_model = 'player' form_fields = ['Q18', 'Q19', 'Q19_o', 'Q19_1a', 'Q19_1b', 'Q19_1c', 'Q19_2', 'Q19_3', 'Q19_4' ] def is_displayed(self): return self.player.Q17 is True and self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True def error_message(self, values): print('values is', values) if values["Q19_1a"] + values["Q19_1b"] + values["Q19_1c"] != 100: return 'The numbers of "Increased", "Stayed the same" and "Decreased" must add up to 100' def vars_for_template(self): return { 'num_class': self.player.in_round(1).num_class, } class WhyNot(Page): form_model = 'player' form_fields = ['Q20', 'Q20_o', 'Q20_1a', 'Q20_1b', 'Q20_1c', 'Q20_2' ] def is_displayed(self): return self.player.Q17 is False and self.player.in_round(1).num_class >= self.round_number and self.player.in_round(1).Q1 is True def error_message(self, values): print('values is', values) if values["Q20_1a"] + values["Q20_1b"] + values["Q20_1c"] != 100: return 'The numbers of "Increased", "Stayed the same" and "Decreased" must add up to 100' def vars_for_template(self): return { 'num_class': self.player.in_round(1).num_class, } page_sequence = [ Page0, NoAsk, NumClass, Class, Dept, Questions, Why, WhyNot, ]