from otree.api import * from otree.api import widgets from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants from . import models # CONDITIONS class Aa_Cond(Page): form_model = "player" form_fields = ["agreed_to_conditions"] class Fail_Conditions(Page): form_model = "player" #form_fields = ["rid"] def is_displayed(self): return self.player.agreed_to_conditions # CAPTCHA class Ab_Ca(Page): form_model = "player" form_fields = ["captcha"] def error_message(self, values): if values['captcha'] != "smwm": return "Bitte lösen Sie das Captcha." # ATTENTION CHECK class Ac_At1(Page): form_model = "player" form_fields = ["attention_1a", "attention_1b", "attention_1c", "attention_1d", "attention_1e"] def error_message(self, values): if all(v is None for v in [values['attention_1a'], values['attention_1b'], values['attention_1c'], values['attention_1d'], values['attention_1e']]): return 'Bitte beantworten Sie die Frage.' class Fail_Attention_1(Page): form_model = "player" #form_fields = ["rid"] def is_displayed(self): return not (self.player.attention_1a == "on" and self.player.attention_1e == "on") # PRE DEMOGRAPHICS ARE ELICITED class Ad_Pre(Page): form_model = "player" form_fields = ["gender", "age", "education", "income"] # QUOTAS ARE CALCULATED def before_next_page(self): self.player.count_females = self.group.number_females self.player.count_males = self.group.number_males #self.player.count_diverse = self.group.number_diverse self.player.count_age_group_1 = self.group.age_group_1 self.player.count_age_group_2 = self.group.age_group_2 self.player.count_age_group_3 = self.group.age_group_3 self.player.count_age_group_4 = self.group.age_group_4 self.player.count_uneducated = self.group.uneducated self.player.count_educated = self.group.educated self.player.count_income_group_1 = self.group.income_group_1 self.player.count_income_group_2 = self.group.income_group_2 self.player.count_income_group_3 = self.group.income_group_3 if((self.player.count_females >= 120000 and self.player.gender == "1") or (self.player.count_males >= 116000 and self.player.gender == "0") #or (self.player.count_diverse >= 40 and self.player.gender == "2") or (self.player.count_age_group_1 >= 39500 and self.player.age < 30) or (self.player.count_age_group_2 >= 69000 and self.player.age >= 30 and self.player.age < 50) or (self.player.count_age_group_3 >= 50000 and self.player.age >= 50 and self.player.age < 60) or (self.player.count_age_group_4 >= 80000 and self.player.age >= 60 ) or (self.player.count_uneducated >= 17400 and (self.player.education== "1" or self.player.education == "2" or self.player.education == "3" ) ) or (self.player.count_educated >= 72000 and (self.player.education== "4" or self.player.education == "5" ) ) or (self.player.count_income_group_1 >= 333680 and self.player.income == "1" ) or (self.player.count_income_group_2 >= 333700 and self.player.income == "2" ) or (self.player.count_income_group_3 >= 86000 and self.player.income == "3" ) ): self.player.is_quota_full = True else: self.player.is_quota_full = False if(self.player.gender=="1"): self.group.number_females = self.group.number_females + 1 else: pass if(self.player.gender=="0"): self.group.number_males = self.group.number_males + 1 else: pass # if(self.player.gender=="2"): # self.group.number_diverse = self.group.number_diverse + 1 #else: # pass if(self.player.age < 30): self.group.age_group_1 = self.group.age_group_1 + 1 else: pass if(self.player.age >= 30 and self.player.age < 50): self.group.age_group_2 = self.group.age_group_2 + 1 else: pass if(self.player.age >= 50 and self.player.age < 60): self.group.age_group_3 = self.group.age_group_3 + 1 else: pass if(self.player.age >= 60): self.group.age_group_4 = self.group.age_group_4 + 1 else: pass if(self.player.education == "1" or self.player.education == "2" or self.player.education == "3"): self.group.uneducated= self.group.uneducated + 1 else: pass if(self.player.education == "4" or self.player.education == "5" ): self.group.educated= self.group.educated + 1 else: pass if(self.player.income == "1" ): self.group.income_group_1 = self.group.income_group_1 + 1 else: pass if(self.player.income == "2"): self.group.income_group_2 = self.group.income_group_2 + 1 else: pass if(self.player.income == "3"): self.group.income_group_3 = self.group.income_group_3 + 1 else: pass class Quota_full(Page): form_model = "player" #form_fields = ["rid"] def is_displayed(self): return self.player.is_quota_full # ATTITUDES OF SUBJECTS AND THEIR BELIEFS ABOUT THE ATTITUDES OF OTHER PEOPLE ARE ELICITED. ATTITUDE VARIABLE DIFFERS BY TREATMENT class Aga_BEQ(Page): form_model = 'player' form_fields = ["attitude_immigration", "attitude_immigration_importance", "attitude_immigration_confidence", "belief_fully_agree_immigration_citizens", "belief_agree_immigration_citizens", "belief_neutral_immigration_citizens", "belief_disagree_immigration_citizens", "belief_fully_disagree_immigration_citizens", "belief_fully_agree_immigration_mps", "belief_agree_immigration_mps", "belief_neutral_immigration_mps", "belief_disagree_immigration_mps", "belief_fully_disagree_immigration_mps"] def is_displayed(self): return self.player.color == "treatment_immigration" # Print error message if guesses of participants do not add up to 100 @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_immigration_citizens'] + values['belief_agree_immigration_citizens'] + values['belief_neutral_immigration_citizens'] + values['belief_disagree_immigration_citizens'] + values['belief_fully_disagree_immigration_citizens'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_immigration_mps'] + values['belief_agree_immigration_mps'] + values['belief_neutral_immigration_mps'] + values['belief_disagree_immigration_mps'] + values['belief_fully_disagree_immigration_mps'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' def before_next_page(self): # access the data_signals variable from the subsession.session.vars dictionary data_signal_immi_citizen_median = self.subsession.session.vars["data_signal_immi_citizen_median"] data_subject_citizen_median = list(data_signal_immi_citizen_median.iloc[self.group.subject_numbering]) self.player.signal_immi_citizen_median = int(data_subject_citizen_median[0]) #player.info_donation_percentage = int(round((data_subject[1] - 1) * 100, 0)) data_signal_immi_mp_median = self.subsession.session.vars["data_signal_immi_mp_median"] data_subject_mp_median = list(data_signal_immi_mp_median.iloc[self.group.subject_numbering]) self.player.signal_immi_mp_median = int(data_subject_mp_median[0]) ## Histogram data ### MPs data_signal_immi_mp_hist= self.subsession.session.vars["data_signal_immi_mp_hist"] data_subject_mp_hist = list(data_signal_immi_mp_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_immi_mp_hist_1 = int(data_subject_mp_hist[0]) self.player.signal_immi_mp_hist_2 = int(data_subject_mp_hist[1]) self.player.signal_immi_mp_hist_3 = int(data_subject_mp_hist[2]) self.player.signal_immi_mp_hist_4 = int(data_subject_mp_hist[3]) self.player.signal_immi_mp_hist_5 = int(data_subject_mp_hist[4]) ### Citizens data_signal_immi_citizen_hist= self.subsession.session.vars["data_signal_immi_citizen_hist"] data_subject_citizen_hist = list(data_signal_immi_citizen_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_immi_citizen_hist_1 = int(data_subject_citizen_hist[0]) self.player.signal_immi_citizen_hist_2 = int(data_subject_citizen_hist[1]) self.player.signal_immi_citizen_hist_3 = int(data_subject_citizen_hist[2]) self.player.signal_immi_citizen_hist_4 = int(data_subject_citizen_hist[3]) self.player.signal_immi_citizen_hist_5 = int(data_subject_citizen_hist[4]) self.player.signal_immi_hist_max = max(int(data_subject_citizen_hist[0]), int(data_subject_citizen_hist[1]), int(data_subject_citizen_hist[2]), int(data_subject_citizen_hist[3]), int(data_subject_citizen_hist[4]), int(data_subject_mp_hist[0]), int(data_subject_mp_hist[1]), int(data_subject_mp_hist[2]), int(data_subject_mp_hist[3]), int(data_subject_mp_hist[4])) # Generate string_immis for median signals ## For citizens if(self.player.signal_immi_citizen_median==1): self.player.string_immi_citizen_median = "stark erleichtert" else: if(self.player.signal_immi_citizen_median==2): self.player.string_immi_citizen_median = "erleichtert" else: if(self.player.signal_immi_citizen_median==3): self.player.string_immi_citizen_median = "unverändert gelassen" else: if(self.player.signal_immi_citizen_median==4): self.player.string_immi_citizen_median = "eingeschränkt" else: if(self.player.signal_immi_citizen_median==5): self.player.string_immi_citizen_median = "stark eingeschränkt" else: self.player.string_immi_citizen_median = "NA" # For MPs if(self.player.signal_immi_mp_median==1): self.player.string_immi_mp_median = "stark erleichtert" else: if(self.player.signal_immi_mp_median==2): self.player.string_immi_mp_median = "erleichtert" else: if(self.player.signal_immi_mp_median==3): self.player.string_immi_mp_median = "unverändert gelassen" else: if(self.player.signal_immi_mp_median==4): self.player.string_immi_mp_median = "eingeschränkt" else: if(self.player.signal_immi_mp_median==5): self.player.string_immi_mp_median = "stark eingeschränkt" else: self.player.string_immi_mp_median = "NA" self.group.subject_numbering += 1 class Agb_BEQ(Page): form_model = "player" form_fields = ["attitude_redistribution", "attitude_redistribution_importance", "attitude_redistribution_confidence", "belief_fully_agree_redistribution_citizens", "belief_agree_redistribution_citizens", "belief_neutral_redistribution_citizens", "belief_disagree_redistribution_citizens", "belief_fully_disagree_redistribution_citizens", "belief_fully_agree_redistribution_mps", "belief_agree_redistribution_mps", "belief_neutral_redistribution_mps", "belief_disagree_redistribution_mps", "belief_fully_disagree_redistribution_mps"] def is_displayed(self): return self.player.color == "treatment_redistribution" # Print error message if guesses of participants do not add up to 100 @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_redistribution_citizens'] + values['belief_agree_redistribution_citizens'] + values['belief_neutral_redistribution_citizens'] + values['belief_disagree_redistribution_citizens'] + values['belief_fully_disagree_redistribution_citizens'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_redistribution_mps'] + values['belief_agree_redistribution_mps'] + values['belief_neutral_redistribution_mps'] + values['belief_disagree_redistribution_mps'] + values['belief_fully_disagree_redistribution_mps'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' def before_next_page(self): # access the data_signals variable from the subsession.session.vars dictionary data_signal_red_citizen_median = self.subsession.session.vars["data_signal_red_citizen_median"] data_subject_citizen_median = list(data_signal_red_citizen_median.iloc[self.group.subject_numbering]) self.player.signal_red_citizen_median = int(data_subject_citizen_median[0]) #player.info_donation_percentage = int(round((data_subject[1] - 1) * 100, 0)) data_signal_red_mp_median = self.subsession.session.vars["data_signal_red_mp_median"] data_subject_mp_median = list(data_signal_red_mp_median.iloc[self.group.subject_numbering]) self.player.signal_red_mp_median = int(data_subject_mp_median[0]) ## Histogram data ### MPs data_signal_red_mp_hist= self.subsession.session.vars["data_signal_red_mp_hist"] data_subject_mp_hist = list(data_signal_red_mp_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_red_mp_hist_1 = int(data_subject_mp_hist[0]) self.player.signal_red_mp_hist_2 = int(data_subject_mp_hist[1]) self.player.signal_red_mp_hist_3 = int(data_subject_mp_hist[2]) self.player.signal_red_mp_hist_4 = int(data_subject_mp_hist[3]) self.player.signal_red_mp_hist_5 = int(data_subject_mp_hist[4]) ### Citizens data_signal_red_citizen_hist= self.subsession.session.vars["data_signal_red_citizen_hist"] data_subject_citizen_hist = list(data_signal_red_citizen_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_red_citizen_hist_1 = int(data_subject_citizen_hist[0]) self.player.signal_red_citizen_hist_2 = int(data_subject_citizen_hist[1]) self.player.signal_red_citizen_hist_3 = int(data_subject_citizen_hist[2]) self.player.signal_red_citizen_hist_4 = int(data_subject_citizen_hist[3]) self.player.signal_red_citizen_hist_5 = int(data_subject_citizen_hist[4]) self.player.signal_red_hist_max = max(int(data_subject_citizen_hist[0]), int(data_subject_citizen_hist[1]), int(data_subject_citizen_hist[2]), int(data_subject_citizen_hist[3]), int(data_subject_citizen_hist[4]), int(data_subject_mp_hist[0]), int(data_subject_mp_hist[1]), int(data_subject_mp_hist[2]), int(data_subject_mp_hist[3]), int(data_subject_mp_hist[4])) # Generate string_immis for median signals ## For citizens if(self.player.signal_red_citizen_median==1): self.player.string_red_citizen_median = "voll zu" else: if(self.player.signal_red_citizen_median==2): self.player.string_red_citizen_median = "zu" else: if(self.player.signal_red_citizen_median==3): self.player.string_red_citizen_median = "teilweise zu und teilweise nicht zu" else: if(self.player.signal_red_citizen_median==4): self.player.string_red_citizen_median = "nicht zu" else: if(self.player.signal_red_citizen_median==5): self.player.string_red_citizen_median = "gar nicht zu" else: self.player.string_red_citizen_median = "NA" # For MPs if(self.player.signal_red_mp_median==1): self.player.string_red_mp_median = "voll zu" else: if(self.player.signal_red_mp_median==2): self.player.string_red_mp_median = "zu" else: if(self.player.signal_red_mp_median==3): self.player.string_red_mp_median = "teilweise zu und teilweise nicht zu" else: if(self.player.signal_red_mp_median==4): self.player.string_red_mp_median = "nicht zu" else: if(self.player.signal_red_mp_median==5): self.player.string_red_mp_median = "gar nicht zu" else: self.player.string_red_mp_median = "NA" self.group.subject_numbering += 1 class Agc_BEQ(Page): form_model = "player" form_fields = ["attitude_environment", "attitude_environment_importance", "attitude_environment_confidence", "belief_fully_agree_environment_citizens", "belief_agree_environment_citizens", "belief_neutral_environment_citizens", "belief_disagree_environment_citizens", "belief_fully_disagree_environment_citizens", "belief_fully_agree_environment_mps", "belief_agree_environment_mps", "belief_neutral_environment_mps", "belief_disagree_environment_mps", "belief_fully_disagree_environment_mps"] def is_displayed(self): return self.player.color == "treatment_environment" # Print error message if guesses of participants do not add up to 100 @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_environment_citizens'] + values['belief_agree_environment_citizens'] + values['belief_neutral_environment_citizens'] + values['belief_disagree_environment_citizens'] + values['belief_fully_disagree_environment_citizens'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_environment_mps'] + values['belief_agree_environment_mps'] + values['belief_neutral_environment_mps'] + values['belief_disagree_environment_mps'] + values['belief_fully_disagree_environment_mps'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' def before_next_page(self): # access the data_signals variable from the subsession.session.vars dictionary data_signal_env_citizen_median = self.subsession.session.vars["data_signal_env_citizen_median"] data_subject_citizen_median = list(data_signal_env_citizen_median.iloc[self.group.subject_numbering]) self.player.signal_env_citizen_median = int(data_subject_citizen_median[0]) #player.info_donation_percentage = int(round((data_subject[1] - 1) * 100, 0)) data_signal_env_mp_median = self.subsession.session.vars["data_signal_env_mp_median"] data_subject_mp_median = list(data_signal_env_mp_median.iloc[self.group.subject_numbering]) self.player.signal_env_mp_median = int(data_subject_mp_median[0]) ## Histogram data ### MPs data_signal_env_mp_hist= self.subsession.session.vars["data_signal_env_mp_hist"] data_subject_mp_hist = list(data_signal_env_mp_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_env_mp_hist_1 = int(data_subject_mp_hist[0]) self.player.signal_env_mp_hist_2 = int(data_subject_mp_hist[1]) self.player.signal_env_mp_hist_3 = int(data_subject_mp_hist[2]) self.player.signal_env_mp_hist_4 = int(data_subject_mp_hist[3]) self.player.signal_env_mp_hist_5 = int(data_subject_mp_hist[4]) ### Citizens data_signal_env_citizen_hist= self.subsession.session.vars["data_signal_env_citizen_hist"] data_subject_citizen_hist = list(data_signal_env_citizen_hist.iloc[self.group.subject_numbering]) # Weisen Sie jedem Feld den entsprechenden Wert zu self.player.signal_env_citizen_hist_1 = int(data_subject_citizen_hist[0]) self.player.signal_env_citizen_hist_2 = int(data_subject_citizen_hist[1]) self.player.signal_env_citizen_hist_3 = int(data_subject_citizen_hist[2]) self.player.signal_env_citizen_hist_4 = int(data_subject_citizen_hist[3]) self.player.signal_env_citizen_hist_5 = int(data_subject_citizen_hist[4]) self.player.signal_env_hist_max = max(int(data_subject_citizen_hist[0]), int(data_subject_citizen_hist[1]), int(data_subject_citizen_hist[2]), int(data_subject_citizen_hist[3]), int(data_subject_citizen_hist[4]), int(data_subject_mp_hist[0]), int(data_subject_mp_hist[1]), int(data_subject_mp_hist[2]), int(data_subject_mp_hist[3]), int(data_subject_mp_hist[4])) # Generate string_immis for median signals ## For citizens if(self.player.signal_env_citizen_median==1): self.player.string_env_citizen_median = "voll zu" else: if(self.player.signal_env_citizen_median==2): self.player.string_env_citizen_median = "zu" else: if(self.player.signal_env_citizen_median==3): self.player.string_env_citizen_median = "teilweise zu und teilweise nicht zu" else: if(self.player.signal_env_citizen_median==4): self.player.string_env_citizen_median = "nicht zu" else: if(self.player.signal_env_citizen_median==5): self.player.string_env_citizen_median = "gar nicht zu" else: self.player.string_env_citizen_median = "NA" # For MPs if(self.player.signal_env_mp_median==1): self.player.string_env_mp_median = "voll zu" else: if(self.player.signal_env_mp_median==2): self.player.string_env_mp_median = "zu" else: if(self.player.signal_env_mp_median==3): self.player.string_env_mp_median = "teilweise zu und teilweise nicht zu" else: if(self.player.signal_env_mp_median==4): self.player.string_env_mp_median = "nicht zu" else: if(self.player.signal_env_mp_median==5): self.player.string_env_mp_median = "gar nicht zu" else: self.player.string_env_mp_median = "NA" self.group.subject_numbering += 1 #class Aha_WI(Page): # form_model = "player" # def is_displayed(self): # return self.player.color == "treatment_immigration" #def vars_for_template(self): # return {'info_citizens': self.player.info_citizens, # 'info_mps': self.player.info_mps} #class Ahb_WI(Page): # form_model = "player" # def is_displayed(self): # return self.player.color == "treatment_redistribution" #def vars_for_template(self): # return {'info_citizens': self.player.info_citizens, # 'info_mps': self.player.info_mps} #class Ahc_WI(Page): # form_model = "player" # def is_displayed(self): # return self.player.color == "treatment_environment" #def vars_for_template(self): # return {'info_citizens': self.player.info_citizens, # 'info_mps': self.player.info_mps} # SUBJECTS RECEIVE INFORMATION ABOUT THE ATTITUDES OF OTHERS. ATTITUDE VARIABLE DIFFERS BY TREATMENT class Aia_I(Page): form_model = "player" def is_displayed(self): return self.player.color == "treatment_immigration" class Aib_I(Page): form_model = "player" def is_displayed(self): return self.player.color == "treatment_redistribution" class Aic_I(Page): form_model = "player" def is_displayed(self): return self.player.color == "treatment_environment" # SUBJECTS' POSTERIOR BELIEFS ABOUT THE ATTITUDES OF OTHERS ARE ELICITED class Aja_Pos(Page): form_model = "player" form_fields = ["belief_fully_agree_immigration_citizens_2", "belief_agree_immigration_citizens_2", "belief_neutral_immigration_citizens_2", "belief_disagree_immigration_citizens_2", "belief_fully_disagree_immigration_citizens_2", "belief_fully_agree_immigration_mps_2", "belief_agree_immigration_mps_2", "belief_neutral_immigration_mps_2", "belief_disagree_immigration_mps_2", "belief_fully_disagree_immigration_mps_2"] def is_displayed(self): return self.player.color == "treatment_immigration" # Print error message if guesses of participants do not add up to 100 @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_immigration_citizens_2'] + values['belief_agree_immigration_citizens_2'] + values['belief_neutral_immigration_citizens_2'] + values['belief_disagree_immigration_citizens_2'] + values['belief_fully_disagree_immigration_citizens_2'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_immigration_mps_2'] + values['belief_agree_immigration_mps_2'] + values['belief_neutral_immigration_mps_2'] + values['belief_disagree_immigration_mps_2'] + values['belief_fully_disagree_immigration_mps_2'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' class Ajb_Pos(Page): form_model = "player" form_fields = ["belief_fully_agree_redistribution_citizens_2", "belief_agree_redistribution_citizens_2", "belief_neutral_redistribution_citizens_2", "belief_disagree_redistribution_citizens_2", "belief_fully_disagree_redistribution_citizens_2", "belief_fully_agree_redistribution_mps_2", "belief_agree_redistribution_mps_2", "belief_neutral_redistribution_mps_2", "belief_disagree_redistribution_mps_2", "belief_fully_disagree_redistribution_mps_2"] def is_displayed(self): return self.player.color == "treatment_redistribution" @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_redistribution_citizens_2'] + values['belief_agree_redistribution_citizens_2'] + values['belief_neutral_redistribution_citizens_2'] + values['belief_disagree_redistribution_citizens_2'] + values['belief_fully_disagree_redistribution_citizens_2'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_redistribution_mps_2'] + values['belief_agree_redistribution_mps_2'] + values['belief_neutral_redistribution_mps_2'] + values['belief_disagree_redistribution_mps_2'] + values['belief_fully_disagree_redistribution_mps_2'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' class Ajc_Pos(Page): form_model = "player" form_fields = ["belief_fully_agree_environment_citizens_2", "belief_agree_environment_citizens_2", "belief_neutral_environment_citizens_2", "belief_disagree_environment_citizens_2", "belief_fully_disagree_environment_citizens_2", "belief_fully_agree_environment_mps_2", "belief_agree_environment_mps_2", "belief_neutral_environment_mps_2", "belief_disagree_environment_mps_2", "belief_fully_disagree_environment_mps_2"] def is_displayed(self): return self.player.color == "treatment_environment" @staticmethod def error_message(values): #print('values is', values) if values['belief_fully_agree_environment_citizens_2'] + values['belief_agree_environment_citizens_2'] + values['belief_neutral_environment_citizens_2'] + values['belief_disagree_environment_citizens_2'] + values['belief_fully_disagree_environment_citizens_2'] != 100: return 'Ihre Schätzungen zur zweiten Frage müssen insgesamt 100 ergeben.' if values['belief_fully_agree_environment_mps_2'] + values['belief_agree_environment_mps_2'] + values['belief_neutral_environment_mps_2'] + values['belief_disagree_environment_mps_2'] + values['belief_fully_disagree_environment_mps_2'] != 100: return 'Ihre Schätzungen zur dritten Frage müssen insgesamt 100 ergeben.' page_sequence = [ Aa_Cond, Fail_Conditions, Ab_Ca, Ac_At1, Fail_Attention_1, Ad_Pre, Quota_full, Aga_BEQ, Agb_BEQ, Agc_BEQ, # Aha_WI, Ahb_WI, Ahc_WI, Aia_I, Aib_I, Aic_I, Aja_Pos, Ajb_Pos, Ajc_Pos ]