from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Questionnaire(Page): form_model = 'player' form_fields = [ 'q_gender', 'q_age', 'q_nationality', 'q_year_of_study', 'q_major', 'q_activity1', 'q_activity2', 'q_activity3', 'q_religion', 'q_religion_importance', 'q_lost_wallet', 'q_HOTA', 'q_understand_exp', 'q_understand_ins', 'q_donation_reason', ] def error_message(self, values): if values["q_gender"] is None or values["q_age"] is None or values["q_nationality"] is None or \ values["q_year_of_study"] is None or values["q_major"] is None or values["q_activity1"] is None \ or values["q_activity2"] is None or values["q_activity3"] is None or values["q_religion_importance"] is \ None or values["q_lost_wallet"] is None or values["q_HOTA"] is None or values["q_understand_exp"] is None or \ values["q_understand_ins"] is None or values["q_donation_reason"] is None: return "Please answer all the questions before proceed." class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): pass class PaymentInfo(Page): def vars_for_template(self): my_label = self.participant.label return { 'game1_payoff': self.participant.vars['game1_payoff'], 'game2_payoff': self.participant.vars['game2_payoff'], 'game3_payoff': self.participant.vars['game3_payoff'], 'all_stage_payoff': self.participant.payoff, 'total_payoff': self.participant.payoff + self.session.config['participation_fee'], 'label': my_label[1:], 'show_up_fee': self.session.config['participation_fee'], 'picked_r1': self.participant.vars['picked_r1'], 'picked_r2': self.participant.vars['picked_r2'], 'picked_p1': self.participant.vars['picked_p1'], 'picked_p2': self.participant.vars['picked_p2'], 'sec_picked_r1': self.participant.vars['sec_picked_r1'], 'sec_picked_r2': self.participant.vars['sec_picked_r2'], 'sec_picked_p1': self.participant.vars['sec_picked_p1'], 'sec_picked_p2': self.participant.vars['sec_picked_p2'], } class ACTION_questionnaire_wait(Page): def before_next_page(self): self.player.manual_payoff() self.player.set_payoff() page_sequence = [ ACTION_questionnaire_wait, Questionnaire, #ResultsWaitPage, PaymentInfo, ]