Test_Johanne/v2_exp_e4c_en_p3_risk_binswanger/pages.py

175 lines
5.3 KiB
Python
Raw Permalink Normal View History

2025-03-06 10:28:01 +01:00
from otree.api import Currency as c, currency_range
from ._builtin import Page, WaitPage
from .models import Constants
import random
import time
def vars_for_all_templates(self):
return {
'id_in_group_nn': self.player.participant.vars['role_nn'],
}
###### traitement 1 risk au début
class Risk_BinsWanger_qc(Page):
form_model = 'player'
form_fields = []
def is_displayed(self):
return self.participant.vars['versionexp'] == 2
def before_next_page(self): ########### new V2 epx
self.player.id_in_group_nn = self.player.participant.vars['role_nn']
class Risk_BinsWanger_qc2(Page):
form_model = 'player'
form_fields = ['riskqc_a', 'riskqc_b', 'riskqc_c']
def is_displayed(self):
return self.participant.vars['versionexp'] == 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.participant.vars['versionexp'] == 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"
else:
self.player.choicerisknn = "E"
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
####################################################### elle n'est pas active !!! c'est le programme (exp_e4c_en_p5_questfin)
class Risk_BinsWanger_color(Page):
form_model = 'player'
form_fields = ['tc3']
def is_displayed(self):
return self.participant.vars['versionexp'] == 2
def before_next_page(self):
###########################
self.participant.vars['list_modif'] = self.player.tc3.split(';;')
self.player.tiragecolor = float(self.participant.vars['list_modif'][1])
self.player.colorbutton = int(self.participant.vars['list_modif'][0])
if self.player.colorbutton == 1:
if self.player.tiragecolor >= 0.5:
self.player.colorselect = 1
self.player.colorselectnn = "Vert"
elif self.player.tiragecolor < 0.5:
self.player.colorselect = 0
self.player.colorselectnn = "Rouge"
elif self.player.colorbutton == 2:
if self.player.tiragecolor <= 0.5:
self.player.colorselect = 1
self.player.colorselectnn = "Vert"
elif self.player.tiragecolor > 0.5:
self.player.colorselect = 0
self.player.colorselectnn = "Rouge"
if self.player.colorselect == 0:
if self.player.choicerisk == 1:
self.player.gainrisk = Constants.gainriskAred
elif self.player.choicerisk == 2:
self.player.gainrisk = Constants.gainriskBred
elif self.player.choicerisk == 3:
self.player.gainrisk = Constants.gainriskCred
elif self.player.choicerisk == 4:
self.player.gainrisk = Constants.gainriskDred
elif self.player.choicerisk == 5:
self.player.gainrisk = Constants.gainriskEred
elif self.player.colorselect == 1:
if self.player.choicerisk == 1:
self.player.gainrisk = Constants.gainriskAgreen
elif self.player.choicerisk == 2:
self.player.gainrisk = Constants.gainriskBgreen
elif self.player.choicerisk == 3:
self.player.gainrisk = Constants.gainriskCgreen
elif self.player.choicerisk == 4:
self.player.gainrisk = Constants.gainriskDgreen
elif self.player.choicerisk == 5:
self.player.gainrisk = Constants.gainriskEgreen
self.player.gainriskeur = self.player.gainrisk
# self.player.payoff = self.player.gainriskeurfinal * 1000
self.participant.vars['choicerisknn'] = self.player.choicerisknn
self.participant.vars['colorselectnn'] = self.player.colorselectnn
self.participant.vars['gainrisk'] = self.player.gainrisk
self.participant.vars['gainriskeur'] = self.player.gainriskeur
#######################################################
class Risk_BinsWanger_result(Page):
form_model = 'player'
form_fields = []
def is_displayed(self):
return self.participant.vars['versionexp'] == 2
class Jeu2End(Page):
def is_displayed(self):
return self.participant.vars['versionexp'] == 2
page_sequence = [
Risk_BinsWanger_qc,
Risk_BinsWanger_qc2,
Risk_BinsWanger,
Jeu2End,
###### Risk_BinsWanger_color,
###### Risk_BinsWanger_result,
]