from . import models from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants import math import settings import time class EndInfo(Page): def vars_for_template(self): self.player.experiment_duration = round((self.participant.vars.get('experiment_ending_time',time.time()) - self.participant.vars.get('experiment_starting_time',time.time())) * 10) / 10 self.player.dropout = self.participant.vars.get('dropout', 0) # set the playser variable "dropout" self.player.qualified = self.participant.vars.get('qualified', 0) # set the playser variable "dropout" self.player.matched = self.participant.vars.get('matched', 0) # set the playser variable "dropout" mturk = self.session.config.get('mturk',False) exchange_rate = self.session.config.get('real_world_currency_per_point', 1) participation_fee = self.session.config['participation_fee'] # quiz_payment = self.session.config.get('quiz_payment', 2) self.player.final_payment = float(self.participant.payoff_plus_participation_fee()) if self.player.qualified and (not self.player.matched): # qualified but unmatched participants receive quiz_payment self.player.final_payment = float(participation_fee) # self.player.payoff -= round((participation_fee - quiz_payment)/exchange_rate) self.player.bonus = round((self.player.final_payment - float(participation_fee))*100)/100 if self.player.dropout or (not self.player.qualified): # dropouts and unqualified participants receive 0 self.player.final_payment = 0 self.player.bonus = 0 # self.player.payoff -= round(participation_fee/exchange_rate) game_payoff = self.participant.vars.get('game_payoff',0) return { 'participation_fee': participation_fee, 'mturk': mturk, 'payoff_in_points': self.participant.payoff, 'final_payment': self.player.final_payment, 'bonus_payment': self.player.final_payment - participation_fee, 'matched': self.player.matched, 'qualified': self.player.qualified, 'dropout': self.player.dropout, 'real_currency': getattr(settings, 'REAL_WORLD_CURRENCY_CODE', '$'), } page_sequence = [ EndInfo, ]