from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from random import * # ---------------------------------------- jeu 2 : beauty contest (self selection) class pagenext(Page): form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 def before_next_page(self): self.player.treatment = self.player.participant.vars['treatment'] class P13Task4(Page): form_model = 'player' form_fields = ['decision_t4'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 class P14Task4(Page): form_model = 'player' form_fields = ['number2'] def is_displayed(self): # return self.player.decision_t4 == 1 and self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 # def is_displayed(self): # return self.player.decision_t4== 1 and self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['b5'] == 1 class P14_ResultsWaitPage(Page): timeout_seconds = 5 def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 def before_next_page(self): if self.player.decision_t4 == 1: self.player.number_j1_v2 = Constants.t4[0] self.player.number_j2_v2 = Constants.t4[1] self.player.number_j3_v2 = Constants.t4[2] self.player.number_j4_v2 = Constants.t4[3] self.player.number_j5_v2 = Constants.t4[4] self.player.average_number_v2 = round( (self.player.number_j1_v2 + self.player.number_j2_v2 + self.player.number_j3_v2 + self.player.number_j4_v2 + self.player.number_j5_v2) / 5, 1) self.player.target_v2 = round(self.player.average_number_v2 * 2 / 3) self.player.distance_v2 = abs(self.player.number2 - self.player.target_v2) self.player.gain_task4 = round(1000 - (20 * self.player.distance_v2), 1) class P14Task4Pass(Page): timeout_seconds = 0 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 def before_next_page(self): #self.player.gain_task3_f = self.player.gain_task3 if self.player.decision_t4 == 0: self.player.gain_task4_f = Constants.surepaybc elif self.player.decision_t4 == 1: self.player.gain_task4_f = self.player.gain_task4 #self.player.participant.vars['gain_task3_f'] = self.player.gain_task3_f self.player.participant.vars['gain_task4_f'] = self.player.gain_task4_f # -------------------------------------------# new oct 2022 self.player.participant.vars['gain_jeu5'] = self.player.gain_task4_f # -------------------------------------------# class P15Result(Page): timeout_seconds = 30 form_model = 'player' form_fields = [] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['treatment'] == 2 and self.player.participant.vars['b5'] == 1 page_sequence = [ pagenext, P13Task4, P14Task4, P14_ResultsWaitPage, P14Task4Pass, ]