Test_Johanne/b3_bw/pages.py
2025-03-06 10:33:03 +01:00

108 lines
3.7 KiB
Python

from otree.api import Currency as c, currency_range
from ._builtin import Page, WaitPage
from .models import Constants
import random
import time
class Bienvenue(Page):
form_model = 'player'
form_fields = []
def is_displayed(self):
return self.round_number == 1 and self.player.participant.vars['app_sequence_select'] < 3
def before_next_page(self):
self.player.game_num = self.player.participant.vars['game_num'] + 1
self.player.participant.vars['game_num'] = self.player.game_num
self.player.app_sequence_select = self.player.participant.vars['app_sequence_select']
self.player.app_sequence_select_n = self.player.participant.vars['app_sequence_select_n']
self.player.questionnaire_before = self.player.participant.vars['questionnaire_before']
class Risk_BinsWanger_qc(Page):
form_model = 'player'
form_fields = []
def is_displayed(self):
return self.player.participant.vars['app_sequence_select'] < 3 # 1 ou 2
def before_next_page(self):
self.player.tirage_color = random.randint(0, 1)
if self.player.tirage_color == 0:
self.player.tirage_color_n = 'red'
else:
self.player.tirage_color_n = 'green'
class Risk_BinsWanger_qc2(Page):
form_model = 'player'
form_fields = ['riskqc_a', 'riskqc_b', 'riskqc_c']
def is_displayed(self):
return self.player.participant.vars['app_sequence_select'] < 3 # 1 ou 2
def error_message(self, values):
print('values is', values)
if values['riskqc_a'] != 1:
return 'Please correct your answer 1!!'
elif values['riskqc_b'] != 3:
return 'Please correct your answer 2!!'
elif values['riskqc_c'] != 1:
return 'Please correct your answer 3!!'
class Risk_BinsWanger(Page):
form_model = 'player'
form_fields = ['choicerisk']
def is_displayed(self):
return self.player.participant.vars['app_sequence_select'] < 3 # 1 ou 2
def vars_for_template(self):
self.player.task_start_risk = time.time() ###### get_time
def before_next_page(self):
if self.player.choicerisk == 1:
self.player.choicerisknn = "A"
elif self.player.choicerisk == 2:
self.player.choicerisknn = "B"
elif self.player.choicerisk == 3:
self.player.choicerisknn = "C"
elif self.player.choicerisk == 4:
self.player.choicerisknn = "D"
elif self.player.choicerisk == 5:
self.player.choicerisknn = "E"
elif self.player.choicerisk == 6:
self.player.choicerisknn = "F"
elif self.player.choicerisk == 7:
self.player.choicerisknn = "G"
elif self.player.choicerisk == 8:
self.player.choicerisknn = "H"
elif self.player.choicerisk == 9:
self.player.choicerisknn = "I"
self.player.task_time_risk = time.time() - self.player.task_start_risk ######### count_time
self.participant.vars['choicerisk'] = self.player.choicerisk
self.participant.vars['choicerisknn'] = self.player.choicerisknn
if self.player.tirage_color == 0:
self.player.gain_bw = Constants.gainrisk_red[self.player.choicerisk-1]
else:
self.player.gain_bw = Constants.gainrisk_green[self.player.choicerisk-1]
self.player.gain_bw_eur = round(self.player.gain_bw * Constants.tauxchange,1)
self.participant.vars['tirage_color_n'] = self.player.tirage_color_n
self.participant.vars['gain_bw'] = self.player.gain_bw
self.participant.vars['gain_bw_eur'] = self.player.gain_bw_eur
page_sequence = [
Bienvenue,
Risk_BinsWanger_qc,
Risk_BinsWanger_qc2,
Risk_BinsWanger,
]