from ._builtin import Page, WaitPage import time, random from .models import Constants from django.utils.translation import ugettext as _ def vars_for_all_templates(self): return { 'fixed_payoff': Constants.fixed_payoff, 'completion_url': Constants.completion_url, 'piece_rate': Constants.piece_rate, } # ******************************************************************************************************************** # # *** Instructions *** # # ******************************************************************************************************************** # class ExplanationTask(Page): #template_name = 'transcription_task/ExplanationTask.html' def is_displayed(self): return self.player.round_number == 1 def vars_for_template(self): round_number = self.player.round_number print(round_number) print(Constants.letter_table_study[round_number]) return {'letters_table': list(Constants.letter_table)[round_number], 'round_number': self.player.round_number, 'total_correct': self.player.round_number - 1} # start measuring time of a paid task # ---------------------------------------------------------------------------------------------------------------- def before_next_page(self): import time # remember to add 'expiry' to PARTICIPANT_FIELDS. self.participant.vars['expiry'] = time.time() + self.player.task_timer # ******************************************************************************************************************** # # *** TASK PAGE *** # # ******************************************************************************************************************** # class EnterSolution(Page): # form model # ---------------------------------------------------------------------------------------------------------------- form_model = 'player' # time text # ---------------------------------------------------------------------------------------------------------------- timer_text = 'Time left to complete as many tasks as possible:' def get_timeout_seconds(self): return self.participant.vars['expiry'] - time.time() def is_displayed(self): return self.participant.vars['expiry'] - time.time() > 0 def vars_for_template(self): return {'letters_table': Constants.letter_table_study[self.player.round_number], 'code_table': Constants.code_table_study[self.player.round_number], 'round_number': self.player.round_number, 'solved_sofar': self.player.round_number - 1} def before_next_page(self): self.player.total_correct = self.player.round_number - 1 self.player.total_payment = (self.player.total_correct*Constants.piece_rate) + Constants.fixed_payoff self.player.total_piecerate = self.player.total_correct*Constants.piece_rate class ResultsPaid(Page): def is_displayed(self): return self.participant.vars['expiry'] - time.time() < 0 def vars_for_template(self): return {'total_correct': self.player.total_correct, 'total_payment': self.player.total_payment, 'total_piecerate': self.player.total_piecerate, } class FinalScreen(Page): def is_displayed(self): return self.participant.vars['expiry'] - time.time() < 0 def vars_for_template(self): return {'total_correct': self.player.total_correct, 'total_payment': self.player.total_payment, 'total_piecerate': self.player.total_piecerate, } page_sequence = [ ExplanationTask, EnterSolution, ResultsPaid, FinalScreen, ]