from otree.api import * c = cu doc = 'Ky aplikacion përfshin hyrjen, formularin e pëlqimit, testin e reflektimit njohës me 5 pyetje (CRT) dhe informimin për eksperimentin.' class C(BaseConstants): NAME_IN_URL = 'IntroductionAndQuestionnaire' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): consent = models.BooleanField(choices=[[True, 'Pajtohem.'], [False, 'Jo, nuk jam dakord (mos merr pjesë në këtë studim).']], label='A e keni lexuar dhe kuptuar këtë formular pëlqimi dhe a jeni dakord të merrni pjesë në këtë studim kërkimor?') crt_soldiers = models.IntegerField(label='25 ushtarë qëndrojnë në një rresht 3 m larg njëri-tjetrit. Sa është i gjatë rreshti? (në metra)') crt_mark = models.IntegerField(label='Jehona mori notën e 15-të më të lartë dhe të 15-të më të ulët në klasë. Sa nxënës janë në klasë?') redo = models.BooleanField(initial=False) crt_cars = models.IntegerField(label='Një Ferrari dhe një Ford së bashku kushtojnë 190 mijë euro. Ferrari kushton 100,000 € më shumë se Fordi. Sa kushton Fordi? (në €)') crt_snail = models.IntegerField(label='Një kërmill fillon të ngjitet në një mur pesë metra të lartë në mëngjes. Ditën ngjitet 2 metra dhe natën rrëshqet 1 metër prapa. Sa ditë do ti duhen kërmillit për të arritur majën e murit?') crt_run = models.IntegerField(label='Nëse po vraponi një garë dhe kaloni personin në vendin e dytë, në cilin vend jeni?') def back(player: Player): player.redo = True def custom_export(players): yield ['participant_code', 'id_in_group'] for p in players: pp = p.participant yield [pp.code, p.id_in_group] class Welcome(Page): form_model = 'player' class InformedConsent(Page): form_model = 'player' form_fields = ['consent'] class Quit(Page): form_model = 'player' @staticmethod def is_displayed(player: Player): if player.consent == False: return True @staticmethod def js_vars(player: Player): return dict( redo = player.redo ) @staticmethod def before_next_page(player: Player, timeout_happened): player.redo = True class InformedConsent2(Page): form_model = 'player' form_fields = ['consent'] @staticmethod def is_displayed(player: Player): if player.redo == True: return True class Questionnaire(Page): form_model = 'player' form_fields = ['crt_soldiers', 'crt_cars', 'crt_mark', 'crt_snail', 'crt_run'] class Briefing(Page): form_model = 'player' page_sequence = [Welcome, InformedConsent, Quit, InformedConsent2, Questionnaire, Briefing]