from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Class(Page): form_model = 'player' form_fields = ['Q1', 'Q2', 'college'] class Dept(Page): form_model = 'player' form_fields = ['major_ag', 'major_bz', 'major_hs', 'major_la', 'major_ns', 'major_vm', 'major_eg', 'major_nr', 'major_other'] def get_form_fields(self): if self.player.college == "Agriculture": return ['major_ag'] elif self.player.college == "Business": return ['major_bz'] elif self.player.college == "Health and Human Sciences": return ['major_hs'] elif self.player.college == "Liberal Arts": return ['major_la'] elif self.player.college == "Natural Sciences": return ['major_ns'] elif self.player.college == "Veterinary Medicine and Biomedical Sciences": return ['major_vm'] elif self.player.college == "Engineering": return ['major_eg'] elif self.player.college == "Natural Resources": return ['major_nr'] else: return ["major_other"] class Questions(Page): form_model = 'player' form_fields = ['Q5', 'Q6', 'Q7', 'Q8', 'Q9', 'Q10', 'Q11', 'Q12', 'Q13', 'Q14', 'Q15', 'Q16', 'Q17' ] class Why(Page): form_model = 'player' form_fields = ['Q17_10', 'Q17_10_1', 'Q17_11_1', 'Q17_11_2', 'Q17_11_3', 'Q17_12', 'Q17_13' ] def is_displayed(self): return self.player.Q17 == 'Yes' def error_message(self, values): print('values is', values) if values["Q17_11_1"] + values["Q17_11_2"] + values["Q17_11_3"] != 100: return 'The numbers of "Improvement in final grade", "No change in final grade" and "Decrease in final grade" must add up to 100' class WhyNot(Page): form_model = 'player' form_fields = ['Q17_20', 'Q17_20_1', 'Q17_21_1', 'Q17_21_2', 'Q17_21_3', 'Q17_22' ] def is_displayed(self): return self.player.Q17 == 'No' def error_message(self, values): print('values is', values) if values["Q17_21_1"] + values["Q17_21_2"] + values["Q17_21_3"] != 100: return 'The numbers of "Improvement in final grade", "No change in final grade" and "Decrease in final grade" must add up to 100' class DuringSemester(Page): form_model = 'player' form_fields = ['Q18'] class DuringSemesterWhy(Page): form_model = 'player' form_fields = ['Q18_10', 'Q18_10_1', 'Q18_11_1', 'Q18_11_2', 'Q18_11_3', 'Q18_12', 'Q18_13' ] def is_displayed(self): return self.player.Q18 == 'Yes' def error_message(self, values): print('values is', values) if values["Q18_11_1"] + values["Q18_11_2"] + values["Q18_11_3"] != 100: return 'The numbers of "Improvement in grade", "No change in grade" and "Decrease in grade" must add up to 100' class DuringSemesterWhyNot(Page): form_model = 'player' form_fields = ['Q18_20', 'Q18_20_1', 'Q18_21_1', 'Q18_21_2', 'Q18_21_3', 'Q18_22' ] def is_displayed(self): return self.player.Q18 == 'No' def error_message(self, values): print('values is', values) if values["Q18_21_1"] + values["Q18_21_2"] + values["Q18_21_3"] != 100: return 'The numbers of "Improvement in grade", "No change in grade" and "Decrease in grade" must add up to 100' page_sequence = [ Class, Dept, Questions, Why, WhyNot, DuringSemester, DuringSemesterWhy, DuringSemesterWhyNot, ]