from otree.api import * doc = """ Your app description """ class C(BaseConstants): NAME_IN_URL = 'quiz_hom5_v2' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 NUMQUESTIONS = 5 INSTRUCTION_SUMMARY_TEMPLATE = 'quiz_hom5_v2/instructions_summary.html' INSTRUCTION_TEMPLATE_1 = 'quiz_hom5_v2/instructions1.html' INSTRUCTION_TEMPLATE_2 = 'quiz_hom5_v2/instructions2.html' INSTRUCTION_TEMPLATE_3 = 'quiz_hom5_v2/instructions3.html' POINT_PER_Q = cu(2) QUESTION_4 = 'Grup Hesabı’nda toplam 607 puan varsa, bölüm kazancınız kaç puan olur?' Q4_ANSWER = 201 QUESTION_3 = "Bu durumda, Grup Hesabı’nda kaç puan bulunur?" Q3_ANSWER = 505 QUESTION_5 = '4. kişinin bölüm kazancı kaç puandır?' Q5_ANSWER = 162 QUESTION_2 = ' ' Q2_CHOICES = [ 'Doğru', 'Yanlış'] Q2_ANSWER = 'Yanlış' QUESTION_1 = '' Q1_CHOICES = [ 'Doğru', 'Yanlış'] Q1_ANSWER = 'Doğru' class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): q4 = models.IntegerField(label=C.QUESTION_4) q4_is_correct = models.BooleanField() q4_is_correct_int = models.IntegerField() q4_dogru = models.StringField() q3 = models.IntegerField(label=C.QUESTION_3) q3_is_correct = models.BooleanField() q3_is_correct_int = models.IntegerField() q3_dogru = models.StringField() q5 = models.IntegerField(label=C.QUESTION_5) q5_is_correct = models.BooleanField() q5_is_correct_int = models.IntegerField() q5_dogru = models.StringField() q2 = models.StringField( label=C.QUESTION_2, choices=C.Q2_CHOICES, widgets=widgets.RadioSelect) q2_is_correct = models.BooleanField() q2_is_correct_int = models.IntegerField() q2_dogru = models.StringField() q1 = models.StringField( label=C.QUESTION_1, choices=C.Q1_CHOICES, widgets=widgets.RadioSelect) q1_is_correct = models.BooleanField() q1_is_correct_int = models.IntegerField() q1_dogru = models.StringField() questions_correct = models.IntegerField() # FUNCTIONS def check_correct_q1(player): player.q1_is_correct = (player.q1 == C.Q1_ANSWER) if player.q1_is_correct: player.q1_dogru = "Evet" player.q1_is_correct_int = int(1) else: player.q1_dogru = "Hayır" player.q1_is_correct_int = int(0) def check_correct_q2(player): player.q2_is_correct = (player.q2 == C.Q2_ANSWER) if player.q2_is_correct: player.q2_dogru = "Evet" player.q2_is_correct_int = int(1) else: player.q2_dogru = "Hayır" player.q2_is_correct_int = int(0) def check_correct_q3(player): player.q3_is_correct = (player.q3 == C.Q3_ANSWER) if player.q3_is_correct: player.q3_dogru = "Evet" player.q3_is_correct_int = int(1) else: player.q3_dogru = "Hayır" player.q3_is_correct_int = int(0) def check_correct_q4(player): player.q4_is_correct = (player.q4 == C.Q4_ANSWER) if player.q4_is_correct: player.q4_dogru = "Evet" player.q4_is_correct_int = int(1) else: player.q4_dogru = "Hayır" player.q4_is_correct_int = int(0) def check_correct_q5(player): player.q5_is_correct = (player.q5 == C.Q5_ANSWER) if player.q5_is_correct: player.q5_dogru = "Evet" player.q5_is_correct_int = 1 else: player.q5_dogru = "Hayır" player.q5_is_correct_int = int(0) def q_correct(player): player.questions_correct = player.q1_is_correct_int + player.q2_is_correct_int + player.q3_is_correct_int + player.q4_is_correct_int + player.q5_is_correct_int player.payoff = C.POINT_PER_Q * player.questions_correct # PAGES class Introduction(Page): form_model = 'player' class Introduction2(Page): form_model = 'player' class Introduction3(Page): form_model = 'player' class QuizDescription(Page): form_model = 'player' class Question1(Page): form_model = 'player' form_fields = ['q1'] timeout_seconds = 120 def before_next_page(player, timeout_happened): player.check_correct_q1() class Question1_Ans(Page): form_model = 'player' #timeout_seconds = 180 class Question2(Page): form_model = 'player' form_fields = ['q2'] timeout_seconds = 120 def before_next_page(player, timeout_happened): player.check_correct_q2() class Question2_Ans(Page): form_model = 'player' #timeout_seconds = 180 class Question3(Page): form_model = 'player' form_fields = ['q3'] timeout_seconds = 120 def before_next_page(player, timeout_happened): player.check_correct_q3() class Question3_Ans(Page): form_model = 'player' #timeout_seconds = 180 class Question4(Page): form_model = 'player' form_fields = ['q4'] timeout_seconds = 120 def before_next_page(player, timeout_happened): player.check_correct_q4() class Question4_Ans(Page): form_model = 'player' #timeout_seconds = 180 class Question5(Page): form_model = 'player' form_fields = ['q5'] timeout_seconds = 120 def before_next_page(player, timeout_happened): player.check_correct_q5() class Question5_Ans(Page): form_model = 'player' #timeout_seconds = 180 class ResultsWaitPage(WaitPage): def after_all_players_arrive(group): for p in group.get_players(): p.q_correct() class Results(Page): timeout_seconds = 30 """def error_message(self, values): import time if time.time <= 120: return 'Süre bitene kadar soruları inceleyin' """ page_sequence = [Introduction, Introduction2, Introduction3, QuizDescription, Question1, Question1_Ans, Question2, Question2_Ans,Question3, Question3_Ans, Question4, Question4_Ans, Question5, Question5_Ans, ResultsWaitPage, Results]