from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants from django.http.response import HttpResponseRedirect def vars_for_all_templates(self): """ get variables from session configs level """ return { 'fee': self.session.config['participation_fee'], 'total_fixed_bonus': c(6 * self.session.config['fixed_round_bonus']), } class Sociodemographics(Page): form_model = models.Player form_fields = ['gender', 'age', 'education', 'income'] def is_displayed(self): return not self.participant.vars['failed_comprehension'] def before_next_page(self): self.player.draw_gender_spec() class FinishedTasks(Page): def before_next_page(self): self.player.set_payoff() class PayoffandGoodbye(Page): def vars_for_template(self): return { 'pay_today': self.player.pay_today, 'pay_later': self.player.pay_later, 'time_span': self.player.pay_date, 'total_earnings': self.player.overall_bonus_incl_reward, 'additional_bonus': self.player.additional_bonus, } class AttentionCheck1(Page): form_model = 'player' form_fields = ['attention_check'] def is_displayed(self): return not self.participant.vars['failed_comprehension'] #def attention_check_error_message(self, value): #if value != ['1', '5']: # self.player.failed_comprehension = True # self.participant.vars['failed_comprehension'] = True class GenderQn(Page): form_model = 'player' form_fields = ['gender_performance_pref'] def is_displayed(self): return not self.participant.vars['failed_comprehension'] page_sequence = [ Sociodemographics, AttentionCheck1, #GenderQn, FinishedTasks, PayoffandGoodbye, ]