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,
]