from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class ResultsWaitPage(WaitPage): pass # Seiten für klassische Projektplanung # class Planungsphase_klassisch(Page): form_model = 'player' form_fields = ['dauer_phase_1', 'dauer_phase_2', 'dauer_phase_3', 'dauer_phase_4','zuordnung_modul_1','zuordnung_modul_2','zuordnung_modul_3','zuordnung_modul_4'] # Überprüfung, ob 9 Minuten und alle Module verteilt wurden def error_message(self, values): print('values is', values) char_seen = [values['zuordnung_modul_1'], values['zuordnung_modul_2'], values['zuordnung_modul_3'], values['zuordnung_modul_4']] print("The original list is : " + str(char_seen)) if len(char_seen) > len(set(char_seen)): return 'Du musst alle Module bearbeiten und alle Phasen nutzen' if values['dauer_phase_1'] + values['dauer_phase_2'] + values['dauer_phase_3'] + values['dauer_phase_4'] != 9: return 'Du musst genau 9 Minuten verteilen' def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == 1 timeout_seconds = 180 def before_next_page(self): self.participant.vars['reihenfolge_klassisch'] = dict(zip(Constants.tasks_klassisch, [self.player.zuordnung_modul_1, self.player.zuordnung_modul_2, self.player.zuordnung_modul_3, self.player.zuordnung_modul_4])) self.participant.vars['klassisch_dauer_phase_1'] = self.player.dauer_phase_1 self.participant.vars['klassisch_dauer_phase_2'] = self.player.dauer_phase_2 self.participant.vars['klassisch_dauer_phase_3'] = self.player.dauer_phase_3 self.participant.vars['klassisch_dauer_phase_4'] = self.player.dauer_phase_4 print('vars sind', self.participant.vars) class Umsetzung_klassisch_1(Page): form_model = 'player' form_fields = ['payoffs_phase_1', 'h_payoff_1', 'changes_phase_1'] def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == self.participant.vars['reihenfolge_klassisch']['M1'] def get_timeout_seconds(self): return self.participant.vars['klassisch_dauer_phase_1']*60 class Umsetzung_klassisch_2(Page): form_model = 'player' form_fields = ['payoffs_phase_2', 'h_payoff_2', 'changes_phase_2'] def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == self.participant.vars['reihenfolge_klassisch']['M2'] def get_timeout_seconds(self): return self.participant.vars['klassisch_dauer_phase_2']*60 class Umsetzung_klassisch_3(Page): form_model = 'player' form_fields = ['payoffs_phase_3', 'h_payoff_3', 'changes_phase_3'] def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == self.participant.vars['reihenfolge_klassisch']['M3'] def get_timeout_seconds(self): return self.participant.vars['klassisch_dauer_phase_3']*60 class Umsetzung_klassisch_4(Page): form_model = 'player' form_fields = ['payoffs_phase_4', 'h_payoff_4', 'changes_phase_4'] def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == self.participant.vars['reihenfolge_klassisch']['M4'] def get_timeout_seconds(self): return self.participant.vars['klassisch_dauer_phase_4']*60 class Results(Page): def is_displayed(self): return self.participant.vars['Zuordnung'] == 'klassisch' and self.round_number == 4 page_sequence = [ Planungsphase_klassisch, Umsetzung_klassisch_1, Umsetzung_klassisch_2, Umsetzung_klassisch_3, Umsetzung_klassisch_4, Results ]