from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import time class WelcomeWait(WaitPage): group_by_arrival_time = True class Video(Page): def vars_for_template(self) -> dict: remainder = self.group.id_in_subsession % 6 video_id = remainder or 6 link = f"mastergame_groups/Video{video_id}.mp4" return dict(videolink=link) class DecisionInfo(Page): form_model = 'player' form_fields = ['answer_to_question1', 'answer_to_question2'] def error_message(self, values): print('values is', values) if values['answer_to_question1'] != '0': return 'The answer to question 1 is not correct.' if values['answer_to_question2'] != '0.2': return 'The answer to question 2 is not correct.' def before_next_page(self): self.player.check_correct() class Decision(Page): form_model = 'player' form_fields = ['numberreport', 'videochat', 'videochat_problems'] def vars_for_template(self) -> dict: link = f"""https://tokbox.com/embed/embed/ot-embed.js?embedId=390f3c2f-946a-4c2a-902d-07cc718d1709&room={self.group.id_in_subsession}&iframe=true""" return dict(video_chat_link=link) class Survey0(Page): form_model = 'player' form_fields = ['videochat', 'videochat_problems'] class Survey1(Page): form_model = 'player' form_fields = ['age', 'gender', 'income'] def before_next_page(self): remainder = self.group.id_in_subsession % 6 video_id = remainder or 6 if video_id == self.player.numberreport: self.player.honest_report = True else: self.player.honest_report = False class Survey2(Page): form_model = 'player' form_fields = ['patience', 'negrecip1', 'negrecip2', 'altruism'] pass class Survey3(Page): form_model = 'player' form_fields = ['risktaking', 'posrecip', 'negrecip3', 'trust'] class Feedback(Page): form_model = 'player' form_fields = ['feedback'] def before_next_page(self): self.group.set_payoffs() pass class Results(Page): pass page_sequence = [ WelcomeWait, Video, DecisionInfo, Decision, Survey1, Survey2, Survey3, Feedback, Results, ]