from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class QuotafullPage(Page): template_name = 'respondi_quotas/Ende.html' def vars_for_template(self): return { 'is_respondi_study': self.session.config.get("is_respondi_study", False), 'screenout': self.player.screenout, 'quotafull': self.player.quotafull, 'participant_label': self.participant.label, 'respondi_url': self.session.config['respondi_url'] } def is_displayed(self): is_respondi_study = self.session.config.get("is_respondi_study", False) return is_respondi_study and (self.player.quotafull or self.player.screenout) class SoziodemosRespondi(Page): form_model = 'player' form_fields = ['gender', 'age', 'householdSize', 'childrenInHousehold', 'householdIncome' ] def is_displayed(self): return self.session.config.get("is_respondi_study", False) def error_message(self, values): household_size = values['householdSize'] children_in_household = values['childrenInHousehold'] if values['age'] < 14: household_size += 1 if children_in_household > household_size: return "Die Anzahl der Kinder in Ihrem Haushalt kann nicht größer sein als die Gesamtanzahl der Personen." def before_next_page(self): net_equivalence_income = self.player.get_net_equivalence_income() self.player.net_equivalence_income = net_equivalence_income self.player.participant.vars['age'] = self.player.age self.player.participant.vars['gender'] = self.player.gender self.player.participant.vars['net_equivalence_income'] = net_equivalence_income if not (self.player.determine_screenout() or self.player.determine_quotafull()): self.player.increment_quotas() page_sequence = [SoziodemosRespondi, QuotafullPage]