from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random import json #def progress(p): # curpageindex = page_sequence.index(type(p))+1 # progress = ((p.round_number-1)*pages_per_round+curpageindex)/tot_pages*100 # return progress class AAgreement(Page): form_model = 'player' form_fields = ['agreement'] class AIntroduction(Page): pass class B1PriorBelief(Page): form_model = 'player' form_fields = ['prior1','prior2', 'prior3', 'prior4'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class B2PriorBelief(Page): form_model = 'player' form_fields = ['prior5', 'prior6','prior7'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class B3Concern(Page): form_model = 'player' form_fields = ['concern'] class B4Actions(Page): form_model = 'player' form_fields = ['action1','action2','action3'] class CTPB(Page): form_model = 'player' form_fields = ['efficacy_pre1','efficacy_pre2'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class DCurrentDiet(Page): form_model = 'player' form_fields = ['currentdiet'] class Eagreepre(Page): form_model = 'player' form_fields = ['agreepre'] class Fintervention(Page): form_model = 'player' form_fields = ['read1','read2','readT'] def vars_for_template(self): return{ 'treatment': self.player.treatment } class Gagreepost(Page): form_model = 'player' form_fields = ['agreepost'] class HTPBpost(Page): form_model = 'player' form_fields = ['efficacy_post1','efficacy_post2'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class IDietChange(Page): form_model = 'player' form_fields = ['diet_change'] class JPoliticalParticipation(Page): form_model = 'player' form_fields = ['participation1','participation2','participation3','participation4','participation5'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class K1PostActions(Page): form_model = 'player' form_fields = ['post_action1','post_action2','post_action3'] class K2Recall(Page): form_model = 'player' form_fields = ['recall'] class LMorality(Page): form_model = 'player' form_fields = ['morality'] class MDemographics(Page): form_model = 'player' form_fields = ['age', 'gender','education', 'nationality'] class NPoliticalBelief(Page): form_model = 'player' form_fields = ['political_belief'] class ODisease(Page): form_model = 'player' form_fields = ['disease'] class PDonate(Page): def vars_for_template(self): return{ 'participationfee': self.player.participationfee, 'bonusamount': self.player.bonusamount } form_model = 'player' form_fields = ['donate'] def before_next_page(self): self.player.payoff = self.player.participationfee + self.player.bonusamount*self.player.donate class QEarnings(Page): def vars_for_template(self): return{ 'payoff': self.player.payoff, 'donate': self.player.donate } page_sequence = [ AAgreement, AIntroduction, B1PriorBelief, B2PriorBelief, B3Concern, B4Actions, CTPB, DCurrentDiet, Eagreepre, Fintervention, Gagreepost, HTPBpost, IDietChange, JPoliticalParticipation, K1PostActions, K2Recall, LMorality, MDemographics, NPoliticalBelief, ODisease, PDonate, QEarnings ]