from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants import random import time class IntroVideo(Page): timeout_seconds = 120 def vars_for_template(self): return {"image_path": "global/background_creativity.jpg", 'audio_path': 'global/tests_creativity.mp3'} def before_next_page(self): self.participant.vars['expiry_timestamp'] = time.time() + Constants.minutes_given * 60 class Introduction(Page): # # timeout_seconds = Constants.minutes_given*60 # # def before_next_page(self): # # user has 5 minutes to complete as many pages as possible # self.participant.vars['expiry_timestamp'] = time.time() + Constants.minutes_given * 60 def before_next_page(self): self.participant.vars['expiry_timestamp'] = time.time() + Constants.minutes_given * 60 class QuestionPage(Page): timer_text = 'Testin bitmesine kalan süre' form_model = 'player' form_fields = ['q1', 'q2', 'q3', 'q4', 'q5', 'q6', 'q7', 'q8', 'q9', 'q10', 'q11', 'q12', 'q13', 'q14', 'q15', 'q16', 'q17', 'q18', 'q19', 'q20'] def get_timeout_seconds(self): return self.participant.vars['expiry_timestamp'] - time.time() def vars_for_template(self): pass # return {'image_path': 'eyes/{}.jpg'.format(self.round_number)} def before_next_page(self): pass # if self.timeout_happened: # self.player.answer = 0 # self.player.ans_correct = self.player.answer == Constants.answer_keys[self.round_number-1] # self.player.participant.vars['payoff_ravens'] += self.player.ans_correct * Constants.payment_per_question # if Constants.payment_in_points > 0: # self.player.payoff = self.player.ans_correct*Constants.payment_in_points # else: # self.player.payoff = (self.player.ans_correct*Constants.payment_per_question / # self.session.config['real_world_currency_per_point']) # to measure in point class Results(Page): pass # timeout_seconds = 60 # # def is_displayed(self): # return self.round_number == Constants.num_rounds # # def vars_for_template(self): # return { # 'total_correct': sum([p.ans_correct for p in self.player.in_all_rounds()]), # 'earnings': sum([p.ans_correct for p in self.player.in_all_rounds()])*Constants.payment_per_question, # } # # def before_next_page(self): # for p in self.subsession.get_players(): # p.participant.vars['payoff_ravens'] = (sum([p.ans_correct for p in self.player.in_all_rounds()]) * # Constants.payment_per_question) class End(Page): timeout_seconds = 30 def before_next_page(self): self.player.set_payoffs() page_sequence = [ IntroVideo, QuestionPage, End ]