from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Questionnaire(Page): form_model = 'player' def get_form_fields(self): if self.player.participant.vars['treatment'] == 0: return ['instructions', 'instructions_comment', 'hitches', 'fair_play', 'strategy',] else: if self.player.participant.vars['type'] == "A": return ['instructions', 'instructions_comment', 'hitches', 'fair_play', 'strategy', 'worried_A', 'main_belief_A', 'main_belief_A_other', 'further_belief_A_1', 'further_belief_A_2', 'further_belief_A_3', 'further_belief_A_4', 'further_belief_A_5', 'further_belief_A_6', 'further_belief_A_other', 'effect_strategy_A_1', 'effect_strategy_A_2', 'effect_strategy_A_3', 'effect_strategy_A_4', 'effect_strategy_A_5', 'effect_strategy_A_6', 'effect_strategy_A_other', 'effect_strategy_belief_A_1', 'effect_strategy_belief_A_2', 'effect_strategy_belief_A_3', 'effect_strategy_belief_A_4', 'effect_strategy_belief_A_5', 'effect_strategy_belief_A_6', 'effect_strategy_belief_A_other', ] else: return ['instructions', 'instructions_comment', 'hitches', 'fair_play', 'strategy', 'worried_belief_B', 'temptation_B', 'main_motive_B', 'main_motive_B_other', 'further_motive_B_1', 'further_motive_B_2', 'further_motive_B_3', 'further_motive_B_4', 'further_motive_B_5', 'further_motive_B_6', 'further_motive_B_other', 'main_belief_B', 'main_belief_B_other', 'further_belief_B_1', 'further_belief_B_2', 'further_belief_B_3', 'further_belief_B_4', 'further_belief_B_5', 'further_belief_B_6', 'further_belief_B_other', 'effect_strategy_B_1', 'effect_strategy_B_2', 'effect_strategy_B_3', 'effect_strategy_B_4', 'effect_strategy_B_5', 'effect_strategy_B_6', 'effect_strategy_B_other', 'effect_strategy_belief_B_1', 'effect_strategy_belief_B_2', 'effect_strategy_belief_B_3', 'effect_strategy_belief_B_4', 'effect_strategy_belief_B_5', 'effect_strategy_belief_B_6', 'effect_strategy_belief_B_other', ] def is_displayed(self): return not self.player.participant.vars['first_out'] def vars_for_template(self): if self.player.participant.vars['treatment'] == 1: nuclear = True else: nuclear = False if self.player.participant.vars['type'] == "A": a_player = True else: a_player = False return dict( nuclear=nuclear, a_player=a_player, ) def before_next_page(self): self.player.treatment = self.player.participant.vars['treatment'] self.player.mturk_id = self.player.participant.vars['mturk_id'] self.player.paying_round = self.player.participant.vars['paying_round'] self.player.disagreement = self.player.participant.vars['disagreement'] self.player.payment = float(self.player.participant.vars['cumulative_payoff'])/10 if self.player.participant.vars['treatment'] == 0: self.player.nuclear = False else: self.player.nuclear = self.player.participant.vars['nuclear'] class Out(Page): form_model = 'player' form_fields = ['returning'] def is_displayed(self): return self.player.participant.vars['first_out'] def before_next_page(self): self.player.mturk_id = self.player.participant.vars['mturk_id'] self.player.payment = 1 class Results(Page): def vars_for_template(self): return dict( first_out=self.player.participant.vars['first_out'] ) page_sequence = [Questionnaire, Out, Results]