from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import time from otree_mturk_utils.views import CustomMturkPage, CustomMturkWaitPage class End(Page): #ONLY SHOWS UP IF YOU WERE REDIRECTED FROM THE WAIT PAGE TIMING OUT #YOU GET THE $2.55 FOR WAITING def is_displayed(self): return self.player.participant.vars.get('go_to_the_end') and self.participant.vars['failed'] is False def vars_for_template(self): #self.session.vars['end_time'] = time.time() #self.session.vars['total_time'] = self.session.vars['end_time'] - self.session.vars['start_time'] #self.participant.vars['wage_payment'] = (self.session.vars['total_time'] / 60) * 0.17 # in dollars #self.participant.vars['wage_points'] = 255 #self.participant.payoff = self.participant.payoff + c(self.participant.vars['wage_points']) if self.participant.payoff > c(0): self.participant.payoff = c(0) return { #'participation_fee': self.session.config['participation_fee'] + self.participant.vars['wage_payment'], # self.wage, #'experiment_payoff': self.participant.payoff - (39 * Constants.betray_payoff) - c( # self.participant.vars['wage_points']), # POINTS #'payment': self.participant.payoff.to_real_world_currency(self.session) - 3.90 - self.participant.vars[ # 'wage_payment'], # self.participant.payoff_plus_participation_fee() - self.session.config['participation_fee'] - 3.90, 'final_payment': self.participant.payoff_plus_participation_fee(), } #self.participant.payoff = self.participant.payoff + c(254) class Final(Page): #VERY LAST PAGE pass class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class Results(Page): pass class FailedSkills(CustomMturkPage): def is_displayed(self): return self.participant.vars['failed'] is True def vars_for_template(self): #self.session.vars['end_time'] = time.time() #self.session.vars['total_time'] = self.session.vars['end_time'] - self.session.vars['start_time'] #self.participant.vars['wage_payment'] = (self.session.vars['total_time'] / 60) * 0.17 #in dollars #self.participant.vars['wage_points'] = round(self.participant.vars['wage_payment']*100) #self.participant.payoff = self.participant.payoff + c(self.participant.vars['wage_points']) #ADD A CERTAIN NUMBER OF C(POINTS) TO TOTAL (39 betray_payoffs) return { #'participation_fee': self.session.config['participation_fee'] + self.participant.vars['wage_payment'], #self.wage, #'experiment_payoff': self.participant.payoff - (39*Constants.betray_payoff) - c(self.participant.vars['wage_points']), #POINTS #'payment': self.participant.payoff.to_real_world_currency(self.session) - 3.90 - self.participant.vars['wage_payment'], #self.participant.payoff_plus_participation_fee() - self.session.config['participation_fee'] - 3.90, 'final_payment': self.participant.payoff_plus_participation_fee(), } page_sequence = [ End, FailedSkills, Final, ]