from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from random import * import random import time class pagefin(Page): timeout_seconds = 240 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['b5'] == 1 def before_next_page(self): self.player.eliminated = self.player.participant.vars['eliminated'] self.player.gaineliminated = self.player.participant.vars['gaineliminated'] # if self.player.crt_a == Constants.crt_correct_a: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # if self.player.crt_b == Constants.crt_correct_b: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # if self.player.crt_c == Constants.crt_correct_c: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # if self.player.crt_d == Constants.crt_correct_d: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # if self.player.crt_e == Constants.crt_correct_e: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # if self.player.crt_f == Constants.crt_correct_f: # self.player.gain_crt = self.player.gain_crt + Constants.gaincrtcorrect # # self.participant.vars['gain_crt'] = self.player.gain_crt self.player.treatment = self.player.participant.vars['treatment'] ############################################################## calcul gain final self.player.gain_task1_f = self.player.participant.vars['gain_jeu1'] if self.player.participant.vars['treatment'] == 1: self.player.gain_task2_f = self.player.participant.vars['gain_jeu2'] self.player.gain_task3_f = self.player.participant.vars['gain_jeu3'] self.player.gain_task4_f = self.player.participant.vars['gain_jeu4'] self.player.gain_task5_f = self.player.participant.vars['gain_jeu5'] if self.player.participant.vars['treatment'] == 2: self.player.gain_task3_f = self.player.participant.vars['gain_jeu2'] self.player.gain_task2_f = self.player.participant.vars['gain_jeu3'] self.player.gain_task5_f = self.player.participant.vars['gain_jeu4'] self.player.gain_task4_f = self.player.participant.vars['gain_jeu5'] self.player.gain_task6_f = self.player.participant.vars['gain_jeu6'] self.player.tirageausort = round(randint(1,6),0) if self.player.tirageausort == 1: self.player.gain_final = self.player.gain_task1_f elif self.player.tirageausort == 2: self.player.gain_final = self.player.gain_task2_f elif self.player.tirageausort == 3: self.player.gain_final = self.player.gain_task3_f elif self.player.tirageausort == 4: self.player.gain_final = self.player.gain_task4_f elif self.player.tirageausort == 5: self.player.gain_final = self.player.gain_task5_f elif self.player.tirageausort == 6: self.player.gain_final = self.player.gain_task6_f self.player.gain_final_et_bonus = self.player.gain_final + Constants.bonus1_2 if self.player.gain_final_et_bonus >= 0: self.player.gain_final_eur = round(self.player.gain_final_et_bonus * Constants.taux,1) else: self.player.gain_final_eur = 0 self.player.gain_final_eur_plus_showup = round(self.player.gain_final_eur + Constants.showupfee,1) #self.player.participant.vars['gain_expe1'] = self.player.gain_final_eur_bonus #self.player.gain_expe1 = self.player.gain_final_eur_bonus self.player.payoff = self.player.gain_final_eur_plus_showup * 1000 #-------------------------------------- page resultat class P20Result(Page): timeout_seconds = 120 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['b5'] == 1 class P20Pass(Page): # si le sujet ne réussit pas le screaner timeout_seconds = 0 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['eliminated'] !=0 def before_next_page(self): self.player.eliminated = self.player.participant.vars['eliminated'] self.player.gaineliminated = self.player.participant.vars['gaineliminated'] self.player.gain_final_eur = self.player.participant.vars['gaineliminated'] * Constants.taux #self.player.gain_expe1 = self.player.gain_final_eur_bonus self.player.payoff = self.player.gain_final_eur * 1000 class P20ResultXX(Page): timeout_seconds = 120 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['eliminated'] != 0 page_sequence = [ pagefin, P20Result, P20Pass, P20ResultXX, ]