from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from random import * import random class P16InstructionsT5(Page): form_model = 'player' form_fields = ['qc_a', 'qc_b', 'qc_c'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['b5'] == 1 def error_message(self, values): print('values is', values) if values['qc_a'] != 400: return 'Please correct your answer A!!' elif values['qc_b'] != 1900 : return 'Please correct your answer B!!' elif values['qc_c'] != 400 : return 'Please correct your answer C!!' class P17Invest(Page): form_model = 'player' form_fields = ['invest_risk', 'invest_riskfree'] def is_displayed(self): return self.player.participant.vars['nextq0'] != 1 and self.player.participant.vars['b5'] == 1 def error_message(self, values): print('values is', values) if values['invest_risk'] + values['invest_riskfree'] != 1000: return 'the sum must be equal to 1000 !!!' if values['invest_risk'] % 100 != 0: return 'please choose a multiple of 100 !!!' if values['invest_riskfree'] % 100 != 0: return 'please choose a multiple of 100 !!!' def before_next_page(self): self.player.tirage1 = random.randint(0, 1) if self.player.tirage1 == 0: self.player.gain_task5_f = self.player.invest_riskfree + (self.player.invest_risk * Constants.multiple) else: self.player.gain_task5_f = self.player.invest_riskfree self.player.participant.vars['gain_task5_f'] = self.player.gain_task5_f page_sequence = [ P16InstructionsT5, P17Invest, ]