from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants # TODO Customizen der Wait Pages So dass Teilnehmer nicht refreshen # TODO Design der einzelnen Seiten (Texte + Anordnung) # Grundlegende Experiment Details werden erklärt # Hier gibt der Nutzer sich einen Namen class Einleitung(Page): # Diese Seite soll nur in Runde 1 angezeigt werden def is_displayed(self): return self.round_number == 1 form_model = 'player' form_fields = ['nickname'] # TODO Abfrage ob Experiment richtig verstanden wurde # Weiter nur wenn, alle Fragen richtig beantwortet wurden class VerstaendnisQuiz(Page): pass # Erste Seite der Fragen # Aufbau der anderen Fragen seiten gleich class FrageSeite1(Page): form_model = 'player' form_fields = ['q1', 'q3'] class FrageSeite2(Page): form_model = 'player' form_fields = ['q2', 'q4'] # Warteseite wenn Personen ihren Fragebogen abgegeben haben class ResultsWaitPage(WaitPage): after_all_players_arrive = 'calculate_score_real' # Ergebnis Übersicht der aktuellen Runde class Results(Page): pass class Feedback(Page): form_model = 'player' form_fields = ['rating_for_p1', 'rating_for_p2', 'rating_for_p3'] def vars_for_template(self): return dict( p1=self.group.get_player_by_id(1), p2=self.group.get_player_by_id(2), p3=self.group.get_player_by_id(3), ) class FeedbackResultsWaitPage(WaitPage): after_all_players_arrive = 'calculate_average' class FeedbackResults(Page): pass class NewRoundWaitPage(WaitPage): pass page_sequence = [ Einleitung, # Erklärung und jeder Spieler gibt sich einen Namen FrageSeite1, # 1. Frage FrageSeite2, ResultsWaitPage, # Warteseite bis alle Teilnehmer Fragebogen ausgefüllt haben Results, # Wer hat wie viele Fragen richtig beantwortet Feedback, # Wie viele Punkte werden an jeden gegeben FeedbackResultsWaitPage, # Warten bis alle Punkte vergeben haben FeedbackResults, # Wer hat wieviele Punkte gegeben NewRoundWaitPage] # Warten bis alle Spieler bereit für die neue Runde sind