from ._builtin import Page, WaitPage from .models import Constants # Teil 1 der Survey: Experiment class Part1_Introduction(Page): pass class Part1_Donation(Page): pass class Part1_Offer(Page): form_model = 'player' form_fields = ['given'] class Part1_Results(Page): def vars_for_template(self): return { 'donation': self.player.given, 'kept': Constants.endowment - self.player.given, } # Teil 2 der Survey: Umfrage class Part2_DonationQuestion(Page): form_model = 'player' form_fields = ['donation'] class Part2_DonationQuestion_no(Page): form_model = 'player' form_fields = ['no_donation'] def is_displayed(self): return self.player.donation == 'No' class Part2_DonationQuestion_Reason(Page): form_model = 'player' form_fields = ['no_donation_reason'] def is_displayed(self): return self.player.no_donation == 'Other reason' class Part2_DonationQuestion_no_event(Page): form_model = 'player' form_fields = ['no_donation_event'] def is_displayed(self): return self.player.donation == 'No' class Part2_DonationQuestion_no_event_other(Page): form_model = 'player' form_fields = ['no_donation_event_other'] def is_displayed(self): return self.player.no_donation_event == 'Other (not specifically named here)' class Part2_DonationQuestion_yes(Page): form_model = 'player' form_fields = ['amount_donation', 'currency', 'trust_organisation'] def is_displayed(self): return self.player.donation == 'Yes' class Part2_Donation_yes_feel1(Page): form_model = 'player' form_fields = ['strongest_influence_event'] def is_displayed(self): return self.player.donation == 'Yes' #and self.player.level_influence == 'Strong influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'Moderate influence') or \ #(self.player.donation == 'Yes' #and self.player.level_influence == 'Little influence') class Part2_Donation_yes_feel2(Page): form_model = 'player' form_fields = ['strongest_influence_event_other'] def is_displayed(self): return self.player.strongest_influence_event == 'Yes, other (not specifically named here)' class Part2_Donation_yes_feel3(Page): form_model = 'player' form_fields = ['strongest_influence_person'] def is_displayed(self): return self.player.donation == 'Yes' #and self.player.level_influence == 'Strong influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'Moderate influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'Little influence') class Part2_Donation_yes_feel4(Page): form_model = 'player' form_fields = ['strongest_influence_person_other'] def is_displayed(self): return self.player.strongest_influence_person == 'Yes, other (not specifically named here)' class Part2_Donation_yes_feel(Page): form_model = 'player' form_fields = ['satisfaction', 'purpose', 'social_acceptance', 'regret', 'change_donation'] def is_displayed(self): return self.player.donation == 'Yes' #and self.player.level_influence == 'Strong influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'Moderate influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'Little influence') or \ #(self.player.donation == 'Yes' and self.player.level_influence == 'No influence') class Part2_Donation_yes_feel_change(Page): form_model = 'player' form_fields = ['specific_change_donation'] def is_displayed(self): return self.player.change_donation == 'Yes' class Part2_Donation_yes_feel_change_other(Page): form_model = 'player' form_fields = ['specific_change_donation_other'] def is_displayed(self): return self.player.specific_change_donation == 'Other reason' class Part3_General_Info(Page): form_model = 'player' form_fields = ['age', 'gender', 'education', 'country'] class Part3_Lottery(Page): form_model = 'player' form_fields = ['lottery'] def vars_for_template(self): return { 'donation': self.player.given, 'kept': Constants.endowment - self.player.given, } class Part3_Lottery_email(Page): form_model = 'player' form_fields = ['email'] def is_displayed(self): return self.player.lottery == 'Yes' class Part3_Ending(Page): pass page_sequence = [ Part1_Introduction, Part1_Donation, Part1_Offer, Part1_Results, Part2_DonationQuestion, Part2_DonationQuestion_no, Part2_DonationQuestion_Reason, Part2_DonationQuestion_no_event, Part2_DonationQuestion_no_event_other, Part2_DonationQuestion_yes, Part2_Donation_yes_feel1, Part2_Donation_yes_feel2, Part2_Donation_yes_feel3, Part2_Donation_yes_feel4, Part2_Donation_yes_feel, Part2_Donation_yes_feel_change, Part2_Donation_yes_feel_change_other, Part3_General_Info, Part3_Lottery, Part3_Lottery_email, Part3_Ending ]