from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants import time import random class FormGroups(WaitPage): title_text = "Please wait" body_text = "We are currently assigning you to a group." group_by_arrival_time = True class Instructions1(Page): form_model = 'player' form_fields = ['finished_1'] timeout_seconds = 90 class Instructions2(Page): form_model = 'player' form_fields = ['finished_2'] timeout_seconds = 180 class Instructions3(Page): form_model = 'player' form_fields = ['finished_3'] timeout_seconds = 180 class Instructions4(Page): form_model = 'player' form_fields = ['finished_4'] timeout_seconds = 240 class Instructions5Emp(Page): form_model = 'player' form_fields = ['comprehension_emp1', 'comprehension_emp2', 'comprehension_emp3'] timeout_seconds = 180 def is_displayed(self): return self.player.role() == 'worker' class Instructions5Sup(Page): form_model = 'player' form_fields = ['comprehension_sup1', 'comprehension_sup2'] timeout_seconds = 120 def is_displayed(self): return self.player.role() == 'supervisor' class IntroScreenshots(Page): pass timeout_seconds = 90 class ScreenshotPhase1(Page): pass timeout_seconds = 180 class WarningScreen(Page): pass timeout_seconds = 120 class WaitTillReady(WaitPage): title_text = "Please wait until everyone is ready" body_text = "Please wait until the other two participants in this group are ready to start. " class ProblemStatement(Page): timeout_seconds = 45 pass class WorkerPage(Page): def get_template_names(self): if self.player.role() == 'worker': return ['livepages/WorkerPage.html'] else: return ['livepages/SupervisorPage.html'] live_method = 'live_solution' timeout_seconds = 615 class SolutionSelection1(Page): form_model = 'player' form_fields = ['finished_5'] timeout_seconds = 120 class SolutionSelection2(Page): form_model = 'player' form_fields = ['final_submission'] timeout_seconds = 120 def is_displayed(self): return self.player.role() == 'worker' class WaitForGroup(WaitPage): title_text = "Please wait" body_text = "Please wait until both employees have submitted their creative solution. This takes maximally 2 " \ "minutes." class SolutionSelection3(Page): def is_displayed(self): return self.player.role() == 'worker' class SelectionSupervisor(Page): form_model = 'group' form_fields = ['selection_supervisor'] def is_displayed(self): return self.player.role() == 'supervisor' timeout_seconds = 180 class Survey1Emp(Page): form_model = 'player' form_fields = ['interest_1', 'interest_2', 'interest_3', 'competence_1', 'competence_2', 'competence_3', 'effort_1', 'effort_2', 'effort_3', 'pressure_1', 'pressure_2', 'value_1'] def is_displayed(self): return self.player.role() == 'worker' class Survey1Sup(Page): form_model = 'player' form_fields = ['interest_1', 'interest_2', 'interest_3', 'competence_1', 'competence_2', 'competence_3', 'effort_1', 'effort_2', 'effort_3', 'pressure_1', 'pressure_2', 'value_1'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey2Emp(Page): form_model = 'player' form_fields = ['autonomy_1', 'autonomy_2', 'decision_aut_1', 'decision_aut_2', 'decision_aut_3', 'methods_aut_1', 'methods_aut_2', 'methods_aut_3'] def is_displayed(self): return self.player.role() == 'worker' class Survey2Sup(Page): form_model = 'player' form_fields = ['decision_aut_sup1', 'decision_aut_sup2', 'decision_aut_sup3', 'methods_aut_sup1', 'methods_aut_sup2', 'methods_aut_sup3'] def is_displayed(self): return self.player.role() == 'supervisor' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey3Emp(Page): form_model = 'player' form_fields = ['related_1', 'related_2', 'related_3', 'identification_1', 'identification_2', 'identification_3', 'identification_4'] def is_displayed(self): return self.player.role() == 'worker' class Survey3Sup(Page): form_model = 'player' form_fields = ['distraction_1', 'distraction_2', 'distraction_3', 'distraction_4', 'distraction_5', 'distraction_6'] def is_displayed(self): return self.player.role() == 'supervisor' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey4Emp(Page): form_model = 'player' form_fields = ['distraction_1', 'distraction_2', 'distraction_3', 'distraction_4', 'distraction_5', 'distraction_6'] def is_displayed(self): return self.player.role() == 'worker' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey4Sup(Page): form_model = 'player' form_fields = ['connected_11', 'connected_12', 'connected_13', 'connected_21', 'connected_22', 'connected_23'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey5Emp(Page): form_model = 'player' form_fields = ['engage_1', 'engage_2', 'engage_3', 'expectation_emp'] def is_displayed(self): return self.player.role() == 'worker' class Survey5Sup(Page): form_model = 'player' form_fields = ['rating_1', 'rating_2'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey6Emp(Page): form_model = 'player' form_fields = ['monitoring_1', 'monitoring_2', 'monitoring_3', 'extrinsic_mot_1', 'extrinsic_mot_2', 'extrinsic_mot_3', 'extrinsic_mot_4'] def is_displayed(self): return self.player.role() == 'worker' class Survey6Sup(Page): form_model = 'player' form_fields = ['feedback_1', 'feedback_2', 'feedback_3', 'feedback_4', 'feedback_5', 'feedback_6', 'feedback_7', 'feedback_8', 'feedback_9', 'feedback_10'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey7Emp(Page): form_model = 'player' form_fields = ['alternative_emp1', 'alternative_emp2', 'alternative_emp3', 'alternative_emp4', 'alternative_emp5', 'alternative_emp6', 'FB_value_1', 'FB_value_2', 'FB_value_3', 'FB_value_4'] def is_displayed(self): return self.player.role() == 'worker' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey7Sup(Page): form_model = 'player' form_fields = ['alternative_sup1', 'alternative_sup2', 'alternative_sup3', 'alternative_sup4', 'alternative_sup5', 'alternative_sup6'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey8Emp(Page): form_model = 'player' form_fields = ['credibility_1', 'credibility_2', 'credibility_3', 'ask_feedback', 'reasons_feedback', 'understand_1', 'understand_2', 'understand_3'] def is_displayed(self): return self.player.role() == 'worker' class Survey8Sup(Page): form_model = 'player' form_fields = ['FB_value_sup1', 'FB_value_sup2', 'FB_value_sup3', 'FB_value_sup4', 'understand_1', 'understand_2', 'understand_3'] def is_displayed(self): return self.player.role() == 'supervisor' class Survey9(Page): form_model = 'player' form_fields = ['experience_1', 'experience_2', 'experience_3', 'experience_4', 'experience_5', 'experience_6', 'experience_7'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey10(Page): form_model = 'player' form_fields = ['creativity_1', 'creativity_2', 'creativity_3', 'creativity_4', 'creativity_5', 'creativity_6', 'creativity_7', 'efficacy_1', 'efficacy_2', 'efficacy_3', 'risk_pref'] class Survey11(Page): form_model = 'player' form_fields = ['mindset_q1', 'mindset_q2', 'mindset_q3', 'mindset_q4', 'mindset_q5', 'mindset_q6', 'mindset_q7', 'mindset_q8', 'mindset_q9', 'mindset_q10'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey12(Page): form_model = 'player' form_fields = ['trait_1', 'trait_2', 'trait_3', 'trait_4', 'trait_5', 'trait_6', 'trait_7', 'trait_8', 'trait_9', 'trait_10'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey13(Page): form_model = 'player' form_fields = ['confidence_1', 'confidence_2', 'confidence_3', 'confidence_4'] def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey14Emp(Page): form_model = 'player' form_fields = ['processing_1', 'processing_2', 'processing_3', 'processing_4'] def is_displayed(self): return self.player.role() == 'worker' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey14Sup(Page): form_model = 'player' form_fields = ['processing_1', 'processing_2', 'processing_3', 'processing_4', 'transparency_1', 'transparency_2', 'transparency_3', 'transparency_4'] def is_displayed(self): return self.player.role() == 'supervisor' def get_form_fields(self): fields = self.form_fields random.shuffle(fields) return fields class Survey15(Page): form_model = 'player' form_fields = ['familiarity_1', 'familiarity_2', 'familiarity_3', 'familiarity_4', 'familiarity_5', 'familiarity_6', 'familiarity_7'] class ResultsEmployee(Page): def is_displayed(self): return self.player.role() == 'worker' class Demographics(Page): form_model = 'player' form_fields = ['nationality', 'mother_tongue', 'educational_level', 'educational_track', 'work_experience', 'english', 'gender', 'age', 'newspaper', 'course_credit'] class PersonalCode1(Page): form_model = 'player' form_fields = ['personalcode'] def error_message(self, values): if len(values["personalcode"]) != 6: return 'You have not entered 6 characters. Please try again.' class PersonalCode2(Page): pass class Debriefing(Page): pass page_sequence = [ FormGroups, # BeginningExperiment, # Motivation, Instructions1, Instructions2, Instructions3, Instructions4, Instructions5Emp, Instructions5Sup, IntroScreenshots, ScreenshotPhase1, WarningScreen, WaitTillReady, ProblemStatement, WorkerPage, SolutionSelection1, SolutionSelection2, WaitForGroup, SolutionSelection3, SelectionSupervisor, Survey1Emp, Survey1Sup, Survey2Emp, Survey2Sup, Survey3Emp, Survey3Sup, Survey4Emp, Survey4Sup, Survey5Emp, Survey5Sup, Survey6Emp, Survey6Sup, Survey7Emp, Survey7Sup, Survey8Emp, Survey8Sup, Survey9, Survey10, Survey11, Survey12, Survey13, Survey14Emp, Survey14Sup, Survey15, ResultsEmployee, Demographics, PersonalCode1, PersonalCode2, Debriefing ]