from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import pickle class Welcome(Page): pass class Code(Page): form_model = 'player' form_fields = ['Code'] def is_displayed(self): # zeigt Code Seite nur zu Beginn an return self.round_number == 1 class Decide1coin(Page): def vars_for_template(self): snack1 = Constants.offers[0][0] snack2 = Constants.offers[0][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/withcoin/' + snack1 + '.JPG', 'image_path2': 'img_snacks/withcoin/' + snack2 + '.JPG', # Namen der Snacks 'snack1': snack1, 'snack2': snack2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['offer_1_pre', 'offer_2_pre', 'snackdecision_pre'] def is_displayed(self): return self.player.treat == "coin" def error_message(self,values): if values['snackdecision_pre'] == None: return "Bitte wählen Sie einen der beiden Snacks aus." class Decide1think(Page): def vars_for_template(self): snack1 = Constants.offers[0][0] snack2 = Constants.offers[0][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + snack1 + '.JPG', 'image_path2': 'img_snacks/' + snack2 + '.JPG', # Namen der Snacks 'snack1': snack1, 'snack2': snack2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['offer_1_pre', 'offer_2_pre', 'snackdecision_pre'] def is_displayed(self): return self.player.treat == "think" def error_message(self,values): if values['snackdecision_pre'] == None: return "Bitte wählen Sie einen der beiden Snacks aus." class Decide1(Page): def vars_for_template(self): snack1 = Constants.offers[0][0] snack2 = Constants.offers[0][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + snack1 + '.JPG', 'image_path2': 'img_snacks/' + snack2 + '.JPG', # Namen der Snacks 'snack1': snack1, 'snack2': snack2, # html-tags der radio buttons 'image1': '', 'image2': '', 'snackdecision_pre': self.player.snackdecision_pre, 'offer_1_pre': self.player.offer_1_pre, 'offer_2_pre': self.player.offer_2_pre, } form_model = 'player' form_fields = ['offer_1', 'offer_2', 'snackdecision'] def error_message(self,values): if values['snackdecision'] == None: return "Bitte wählen Sie einen der beiden Snacks aus." class Decide2coin(Page): def vars_for_template(self): charity1 = Constants.offers[1][0] charity2 = Constants.offers[1][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/withcoin/' + charity1 + '.JPG', 'image_path2': 'img_snacks/withcoin/' + charity2 + '.JPG', # Namen der Snacks 'charity1': charity1, 'charity2': charity2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['charityoffer1_pre', 'charityoffer2_pre', 'charitydecision_pre'] def is_displayed(self): return self.player.treat == "coin" def error_message(self,values): if values['charitydecision_pre'] == None: return "Bitte wählen Sie eine der beiden Wohltätigkeitseinrichtungen aus." class Decide2think(Page): def vars_for_template(self): charity1 = Constants.offers[1][0] charity2 = Constants.offers[1][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + charity1 + '.JPG', 'image_path2': 'img_snacks/' + charity2 + '.JPG', # Namen der Snacks 'charity1': charity1, 'charity2': charity2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['charityoffer1_pre', 'charityoffer2_pre', 'charitydecision_pre'] def is_displayed(self): return self.player.treat == "think" def error_message(self,values): if values['charitydecision_pre'] == None: return "Bitte wählen Sie eine der beiden Wohltätigkeitseinrichtungen aus." class Decide2(Page): def vars_for_template(self): charity1 = Constants.offers[1][0] charity2 = Constants.offers[1][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + charity1 + '.JPG', 'image_path2': 'img_snacks/' + charity2 + '.JPG', # Namen der Snacks 'charity1': charity1, 'charity2': charity2, # html-tags der radio buttons 'image1': '', 'image2': '', 'charitydecision_pre' : self.player.charitydecision_pre, 'charityoffer1_pre': self.player.charityoffer1_pre, 'charityoffer2_pre': self.player.charityoffer2_pre, } form_model = 'player' form_fields = ['charityoffer1', 'charityoffer2', 'charitydecision'] def error_message(self,values): if values['charitydecision'] == None: return "Bitte wählen Sie eine der beiden Wohltätigkeitseinrichtungen aus." class Decide3coin(Page): def vars_for_template(self): job1 = Constants.offers[2][0] job2 = Constants.offers[2][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/withcoin/' + job1 + '.JPG', 'image_path2': 'img_snacks/withcoin/' + job2 + '.JPG', # Namen der Snacks 'job1': job1, 'job2': job2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['joboffer1_pre', 'joboffer2_pre', 'jobdecision_pre'] def is_displayed(self): return self.player.treat == "coin" def error_message(self,values): if values['jobdecision_pre'] == None: return "Bitte wählen Sie einen der beiden Jobs aus." class Decide3think(Page): def vars_for_template(self): job1 = Constants.offers[2][0] job2 = Constants.offers[2][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + job1 + '.JPG', 'image_path2': 'img_snacks/' + job2 + '.JPG', # Namen der Snacks 'job1': job1, 'job2': job2, # html-tags der radio buttons 'image1': '', 'image2': '', } form_model = 'player' form_fields = ['joboffer1_pre', 'joboffer2_pre', 'jobdecision_pre'] def is_displayed(self): return self.player.treat == "think" def error_message(self,values): if values['jobdecision_pre'] == None: return "Bitte wählen Sie einen der beiden Jobs aus." class Decide3(Page): def vars_for_template(self): job1 = Constants.offers[2][0] job2 = Constants.offers[2][1] return { # Pfad zu den Bildern der Snacks 'image_path1': 'img_snacks/' + job1 + '.JPG', 'image_path2': 'img_snacks/' + job2 + '.JPG', # Namen der Snacks 'job1': job1, 'job2': job2, # html-tags der radio buttons 'image1': '', 'image2': '', 'jobdecision_pre': self.player.jobdecision_pre, 'joboffer1_pre': self.player.joboffer1_pre, 'joboffer2_pre': self.player.joboffer2_pre, } form_model = 'player' form_fields = ['joboffer1', 'joboffer2', 'jobdecision'] def error_message(self,values): if values['jobdecision'] == None: return "Bitte wählen Sie einen der beiden Jobs aus." class Survey(Page): form_model = 'player' form_fields = ['happysnacks', 'happycharity', 'happyjobs', 'diffsnacks', 'diffcharity', 'diffjobs'] class End(Page): pass page_sequence = [ Code, Welcome, Decide1coin, Decide1think, Decide1, Decide2coin, Decide2think, Decide2, Decide3coin, Decide3think, Decide3, Survey, End, ]