101 lines
3.5 KiB
Python
101 lines
3.5 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.participant.vars['versionexp'] == 2
|
|
|
|
def is_displayed(self):
|
|
return self.round_number == 1
|
|
|
|
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']
|
|
|
|
########################################################################################### Jeu 5 : Risk - Gneezy Potters- Questionnaire compréhension
|
|
class L_risk11_qc(Page):
|
|
form_model = 'player'
|
|
form_fields = ['risk11_qc_a', 'risk11_qc_b', 'risk11_qc_c']
|
|
|
|
# def is_displayed(self):
|
|
# return self.player.id_in_group % 2 == 1 and self.participant.vars['versionexp'] == 2
|
|
#
|
|
|
|
def vars_for_template(self):
|
|
self.player.task_start_19 = round(time.time(),2) ###### get_time
|
|
|
|
return {
|
|
'page': self.subsession.round_number + 10,
|
|
}
|
|
|
|
|
|
def error_message(self, values):
|
|
print('values is', values)
|
|
if values['risk11_qc_a'] != 2:
|
|
return 'Please correct your answer 1 !!'
|
|
elif values['risk11_qc_b'] != 4:
|
|
return 'Please correct your answer 2 !!'
|
|
elif values['risk11_qc_c'] != 1:
|
|
return 'Please correct your answer 3 !!'
|
|
|
|
def before_next_page(self):
|
|
self.player.task_time_19 = round(time.time() - self.player.task_start_19,2) ######### count_time
|
|
#self.player.treatment = self.player.participant.vars['treatment']
|
|
|
|
class M_risk11(Page):
|
|
# timeout_seconds = 1 # WB
|
|
|
|
form_model = 'player'
|
|
form_fields = ['risk11_a', 'risk11_b', 'risk_assessment_gp', 'confidence_level_gp', 'memory_recall_gp']
|
|
|
|
# def is_displayed(self):
|
|
# return self.player.id_in_group % 2 == 1 and self.participant.vars['versionexp'] == 2
|
|
|
|
def vars_for_template(self):
|
|
self.player.task_start_20 = round(time.time(),2) ###### get_time
|
|
|
|
return {
|
|
'page': self.subsession.round_number + 11,
|
|
}
|
|
|
|
def error_message(self, values):
|
|
print('values is', values)
|
|
if values['risk11_a'] + values['risk11_b'] != 10:
|
|
return 'The sum must be equal to 10 !!'
|
|
|
|
def before_next_page(self):
|
|
self.player.task_time_20 = round(time.time() - self.player.task_start_20,2) ######### count_time
|
|
|
|
self.player.tiragerisk = round(random.random(), 2) ##
|
|
if self.player.tiragerisk < 0.5:
|
|
self.player.gainrisk = (self.player.risk11_a * 3) + self.player.risk11_b
|
|
self.player.tirageriskresult = "Succès"
|
|
else:
|
|
self.player.gainrisk = self.player.risk11_b
|
|
self.player.tirageriskresult = "Echec"
|
|
|
|
|
|
self.participant.vars['tirageriskresult_j1'] = self.player.tirageriskresult
|
|
self.participant.vars['risk11_a_j1'] = self.player.risk11_a
|
|
self.participant.vars['risk11_b_j1'] = self.player.risk11_b
|
|
self.participant.vars['gainrisk_j1'] = self.player.gainrisk
|
|
|
|
page_sequence = [
|
|
Bienvenue,
|
|
L_risk11_qc,
|
|
M_risk11,
|
|
|
|
]
|