from otree.api import * c = Currency doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'hwork2' players_per_group = None num_rounds = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): P_CB_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="du pain et/ou des biscottes (pain blanc, complet ou aux céréales et biscottes classiques, complètes ou multicéréales)",widget=widgets.RadioSelectHorizontal) CER_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="des céréales du petit-déjeuner (corn-flakes, flocons d’avoine, grains de riz soufflés, muesli, etc.)",widget=widgets.RadioSelect) P_CB_2_1=models.IntegerField(label="",min=1,max=5) P_CB_2_2=models.IntegerField(label="",min=1,max=35) P_CB_2_3=models.IntegerField(label="",min=1,max=150) P_CB_3=models.IntegerField(label="",min=1,max=10) CER_2_1=models.IntegerField(label="",min=1,max=3) CER_2_2=models.IntegerField(label="",min=1,max=21) CER_2_3=models.IntegerField(label="",min=1,max=90) CER_3=models.IntegerField(label="",choices=[1,2],widget=widgets.RadioSelect) # question3 PAT_CB_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="de pâtes, riz, semoule, blé « blancs » ou « complets/bruns », boulghour, quinoa, tapioca",widget=widgets.RadioSelect) LEG_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="des légumineuses (consommées chaudes ou en salade : lentilles, haricots rouges, flageolets, pois cassés, pois chiches etc.))",widget=widgets.RadioSelect) FRIT_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="des frites et/ou des tubercules frits (pommes de terre, igname, manioc, patate douce)",widget=widgets.RadioSelect) PDT_1=models.IntegerField(choices=[[1,"Tous les jours"],[2,"Toutes les semaines"],[3,"Tous les mois"],[4,"Plus rarement voire jamais"]], label="de pommes de terre et autres tubercules cuits à l’eau, en purée, en gratin (pommes de terre, igname, manioc, patate douce, etc.)",widget=widgets.RadioSelect) ### PAT_CB_2_1=models.IntegerField(label="",min=1,max=2) PAT_CB_2_2=models.IntegerField(label="",min=1,max=14) PAT_CB_2_3=models.IntegerField(label="",min=1,max=60) PAT_CB_3=models.IntegerField(label="",choices=[1,2,3],widget=widgets.RadioSelect) PAT_CB_4=models.IntegerField(label="",choices=[[1,"Blancs"],[2,"Complets"],[3,"Autant les blancs que les complets"]],widget=widgets.RadioSelect) ### LEG_2_1=models.IntegerField(label="",min=1,max=2) LEG_2_2=models.IntegerField(label="",min=1,max=14) LEG_2_3=models.IntegerField(label="",min=1,max=60) LEG_3=models.IntegerField(label="",choices=[1,2,3],widget=widgets.RadioSelect) ### FRIT_2_1=models.IntegerField(label="",min=1,max=2) FRIT_2_2=models.IntegerField(label="",min=1,max=14) FRIT_2_3=models.IntegerField(label="",min=1,max=60) FRIT_3=models.IntegerField(label="",choices=[1,2,3],widget=widgets.RadioSelect) ### PDT_2_1=models.IntegerField(label="",min=1,max=2) PDT_2_2=models.IntegerField(label="",min=1,max=14) PDT_2_3=models.IntegerField(label="",min=1,max=60) PDT_3=models.IntegerField(label="",choices=[1,2,3],widget=widgets.RadioSelect) # PAGES class Page1(Page): form_model = "player" form_fields = ["P_CB_1","CER_1"] class Page2(Page): form_model = "player" #form_fields = ["P_CB_2_1","P_CB_2_2","P_CB_2_3","P_CB_3"] def get_form_fields(player): if player.P_CB_1 == 1: return ['P_CB_2_1', 'P_CB_3'] else: if player.P_CB_1 ==2 : return ['P_CB_2_2', 'P_CB_3'] else: if player.P_CB_1 ==3 : return ['P_CB_2_3', 'P_CB_3'] else: return ['P_CB_3'] class Page3(Page): form_model = "player" def get_form_fields(player): if player.CER_1 == 1: return ['CER_2_1', 'CER_3'] else: if player.CER_1 ==2 : return ['CER_2_2', 'CER_3'] else: if player.CER_1 ==3 : return ['CER_2_3', 'CER_3'] else: return ['CER_3'] class Page4(Page): form_model = "player" form_fields = ["PAT_CB_1","LEG_1","FRIT_1","PDT_1"] class Page5(Page): form_model = "player" def get_form_fields(player): if player.PAT_CB_1 == 1: return ['PAT_CB_2_1', 'PAT_CB_3', 'PAT_CB_4'] else: if player.PAT_CB_1 ==2 : return ['PAT_CB_2_2', 'PAT_CB_3', 'PAT_CB_4'] else: if player.PAT_CB_1 ==3 : return ['PAT_CB_2_3', 'PAT_CB_3', 'PAT_CB_4'] else: return ['PAT_CB_3', 'PAT_CB_4'] class Page6(Page): form_model = "player" def get_form_fields(player): if player.LEG_1 == 1: return ['LEG_2_1', 'LEG_3'] else: if player.LEG_1 ==2 : return ['LEG_2_2', 'LEG_3'] else: if player.LEG_1 ==3 : return ['LEG_2_3', 'LEG_3'] else: return ['LEG_3'] class Page7(Page): form_model = "player" def get_form_fields(player): if player.FRIT_1 == 1: return ['FRIT_2_1', 'FRIT_3'] else: if player.FRIT_1 ==2 : return ['FRIT_2_2', 'FRIT_3'] else: if player.FRIT_1 ==3 : return ['FRIT_2_3', 'FRIT_3'] else: return ['FRIT_3'] class Page8(Page): form_model = "player" def get_form_fields(player): if player.PDT_1 == 1: return ['PDT_2_1', 'PDT_3'] else: if player.PDT_1 ==2 : return ['PDT_2_2', 'PDT_3'] else: if player.PDT_1 ==3 : return ['PDT_2_3', 'PDT_3'] else: return ['PDT_3'] class ResultsWaitPage(WaitPage): pass class Results(Page): pass #,Page3,Page4,Page5,Page6,Page7,Page8 page_sequence = [Page1,Page2,Page3,Page4,Page5,Page6,Page7,Page8,Results]