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'], # 'condition_load': self.participant.vars['condition_load'], # 'every_xth_person_paid': self.session.config['every_xth_person_paid'], # 'memory_payoff': self.participant.vars['memory_payoff'], # 'no_raven_matrices': Constants.no_raven_matrices, # 'raven_incentive': c(self.session.config['raven_incentive']), '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'] class FinishedTasks(Page): def before_next_page(self): self.player.set_payoff() class PayoffandGoodbye(Page): def vars_for_template(self): return { # 'payoff_for_guess': self.player.payoff, 'additional_bonus': self.player.additional_bonus, # 'get_paid': self.player.get_paid, 'total_earnings': self.player.overall_bonus_incl_reward, } # class IntroRaven(Page): # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class AttentionCheck1(Page): form_model = 'player' form_fields = ['attention_check'] def is_displayed(self): return not self.participant.vars['failed_comprehension'] # # class Raven1(Page): # form_model = 'player' # form_fields = ['raven_1'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven2(Page): # form_model = 'player' # form_fields = ['raven_2'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven3(Page): # form_model = 'player' # form_fields = ['raven_3'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven4(Page): # form_model = 'player' # form_fields = ['raven_4'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven5(Page): # form_model = 'player' # form_fields = ['raven_5'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven6(Page): # form_model = 'player' # form_fields = ['raven_6'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven7(Page): # form_model = 'player' # form_fields = ['raven_7'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # class Raven8(Page): # form_model = 'player' # form_fields = ['raven_8'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # # def before_next_page(self): # self.player.set_payoff_raven() # class GenderQn(Page): # form_model = 'player' # form_fields = ['gender_performance_pref'] # # def is_displayed(self): # return not self.participant.vars['failed_comprehension'] # class Sociodemographics_de(Page): # form_model = models.Player # form_fields = ['age', 'gender', 'education', 'study_field'] # # # class FreeForm_de(Page): # form_model = models.Player # form_fields = ['how_comprehensible', 'free_form'] # class FinishedTasks_de(Page): # def before_next_page(self): # self.player.set_payoff() # # class PayoffandGoodbye_de(Page): # def vars_for_template(self): # return { # 'payoff_for_guess': self.player.payoff, # # 'get_paid': self.player.get_paid, # 'total_earnings': c(self.player.total_payoff), # } # # def post(self): # # testing # # return HttpResponseRedirect('https://www.google.com/search?q=' + str(round(self.player.total_payoff, ndigits=2))) # # experiment at Harvard decision lab: SONA study number 513 # return HttpResponseRedirect('https://dashboard.harvarddecisionlab.org/link-receipt/?id=513&payment=' + str(round(self.player.total_payoff, ndigits=2))) page_sequence = [ Sociodemographics, AttentionCheck1, # IntroRaven, # Raven1, # Raven2, # Raven3, # Raven4, # Raven5, # Raven6, # Raven7, # Raven8, # GenderQn, # IncomeDist, # IncomeDistCertainty, FinishedTasks, PayoffandGoodbye, ]