108 lines
3.8 KiB
Python
108 lines
3.8 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', 'risk_assessment_bw', 'confidence_level_bw', 'memory_recall_bw']
|
||
|
|
||
|
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,
|
||
|
]
|