from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import random import time class Instructions(Page): def is_displayed(self): return self.round_number == 1 def before_next_page(self): self.session.vars['expiry'] = time.time() + 5 * 60 class Effort(Page): form_model = "player" form_fields = ["answer"] def vars_for_template(self): return { 'row1' : self.subsession.row1, 'row2' : self.subsession.row2, 'row3' : self.subsession.row3, 'row4' : self.subsession.row4, 'row5' : self.subsession.row5, 'row6' : self.subsession.row6, 'row7' : self.subsession.row7, } timer_text = 'Insgesamt verbleibende Zeit:' def get_timeout_seconds(self): return self.session.vars['expiry'] - time.time() def is_displayed(self): return self.session.vars['expiry'] - time.time() > 2 def before_next_page(self): self.player.is_correct() player = self.player timeout_happened = self.timeout_happened if timeout_happened: player.participant.vars["timedout_realeffort"] = True else: player.participant.vars["timedout_realeffort"] = False if self.player.round_number == Constants.num_rounds: player_in_all_rounds = self.player.in_all_rounds() self.player.total_answers_correct = sum([p.answer_correct for p in player_in_all_rounds]) self.player.participant.vars["realeffort_correct"] = sum([p.answer_correct for p in player_in_all_rounds]) self.player.participant.vars['realeffort_bonus'] = self.player.participant.vars[ "realeffort_correct"] * Constants.piecerate / 10 self.session.vars['realeffort_possible'] = Constants.num_rounds print(self.player.participant.vars['realeffort_correct']) page_sequence = [ Instructions, Effort, ]