from otree.api import * doc = """ Ontwikkeld door Lobke Weijers, Tilburg University. Voor vragen kunt u contact opnemen via L.T.Weijers@tilburguniversity.edu """ class C(BaseConstants): NAME_IN_URL = 'thesis' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 smalltalk = [1,3,5] #small talk nosmalltalk = [2,4,6] #no small talk SITinfo = [1, 2] PSinfo = [3,4] unrelated = [5,6] StandardChoices=[ [1, 'Helemaal oneens'], [2, 'Oneens'], [3, 'Noch mee oneens, noch mee eens'], [4, 'Eens'], [5, 'Helemaal eens'], ] class Subsession(BaseSubsession): pass def creating_session(subsession): import itertools con = itertools.cycle([1, 2, 3, 4, 5, 6]) for player in subsession.get_players(): player.condition = next(con) # 1 is small talk, SIT info # 2 is niet small talk, SIT info # 3 is small talk, professional salience # 4 is niet small talk, professional salience # 5 is small talk, unrelated # 6 is niet small talk, unrelated class Group(BaseGroup): pass class Player(BasePlayer): name_PO = models.StringField(label='Vul hier je voornaam in:', blank=False) accept_conditions = models.BooleanField(blank=False, widget=widgets.CheckboxInput) condition = models.IntegerField() #Judgement variables add_evidence = models.FloatField() request_evidence = models.TextField( label="Maak in het onderstaande tekstvak een lijst met specifieke documenten die je zou willen opvragen bij de k" "lant en andere opvallendheden (e.g., herrubriceringen, onjuistheden in de debiteurenlijst).", blank=False) add_auditwork = models.FloatField() #cues = models.TextField( #label="Maak in het onderstaande tekstvak een lijst met mogelijke herrubriceringen, onjuistheden in de debiteuren" #"lijst of andere opvallendheden.", blank=False) risk = models.FloatField() trust = models.FloatField() communication_mode = models.IntegerField( label="Hoe zou je de CFO willen benaderen over eventuele opvallendheden en de extra op te vragen documenten voor aanvang van de controle op locatie?", choices=[ [1, 'Per telefoon'], [2, 'Per e-mail'], ], widget=widgets.RadioSelect ) #Demographics Age = models.IntegerField(label="Wat is je leeftijd?", min=17, max=67, blank=True) Gender = models.IntegerField( label="Wat is je geslacht?", choices=[ [1, 'Man'], [2, 'Vrouw'], [3, 'Anders'], [4, 'Wil liever niet zeggen.'], ] ) WorkExp = models.IntegerField(label="Hoeveel maanden werkervaring als auditor heb je?", min=0, max=480, blank=True) Big4_question = models.IntegerField( label="Voor welk type accountantskantoor werk je?", choices=[ [1, 'Een Big-4 kantoor'], [2, 'Een Niet-Big-4 kantoor'], [3, 'Ik werk niet voor een accountantskantoor.'] ] ) DebExp = models.IntegerField(label = 'Heb je al eens eerder de controle van de debiteuren uitgevoerd?', choices = [[0, 'Nee'], [1, 'Ja']]) # Payment #SNR = models.StringField(label='Vul hier je SNR nummer in en je zult een e-mail ontvangen omtrent de betaalprocedure:') feedback = models.TextField( label="Mocht je feedback over deze studie hebben, laat deze dan achter in het tekstvak.", blank=True) #manipulation chekcs IOS_measure = models.IntegerField(label="Onder klantteam verstaan we in deze vraag de groep bestaande uit het audit " "team (o.a. audit partner en controleleider) en de klant (o.a. CEO, CFO en financiële administratie). " "Kies het paar cirkels welke het beste de mate waarin jij je identificeert " "met het klantteam weergeeft. X staat hier voor het eerder beschreven klantteam.", min=1, max=7, blank=False) Pidentity_measure = models.IntegerField( label="Kies het paar cirkels welke het beste de mate waarin jij je identificeert " "met het beroep van accountant weergeeft. X staat hier voor het beroep van accountant.", min=1, max=7, blank=False) edu_measure = models.IntegerField(label = "Ik ben mij bewust van het effect dat group identity zou kunnen hebben op mijn beslissingen tijdens de audit.", choices = C.StandardChoices) smalltalk_measure = models.IntegerField(label = "Tijdens de meeting met de senior auditors en het management van de klant was er sprake van small talk.", choices = C.StandardChoices) social_bond = models.IntegerField(label = "Er is sprake van een sociale band tussen de senior auditors en het management van de klant.", choices = C.StandardChoices) time_pressure = models.IntegerField(label = "Toen ik de audit taak uitvoerde, ervaarde ik tijdsdruk.", choices = C.StandardChoices) #comprehension checks cq1 = models.IntegerField( label = "Een group identity kan ontstaan:", choices=[ [1, 'na een paar maanden.'], [2, 'tijdens de eerste ontmoeting.'], [3, 'na minstens een jaar.'] ], widget = widgets.RadioSelect ) cq2 = models.IntegerField( label = "Het ontstaan van een group identity kan zorgen voor:", choices=[ [1, 'een minder objectieve instelling en daardoor het accepteren van hogere risicos.'], [2, 'een objectievere instelling en daardoor het accepteren van hogere risicos.'], [3, 'een objectievere instelling en daardoor het niet rapporteren van fouten.'] ], widget = widgets.RadioSelect ) cq3 = models.IntegerField( label = "Fair value estimates zijn:", choices=[ [1, 'onbelangrijk voor de financiële rapportage van een bedrijf.'], [2, 'belangrijk voor de financiële rapportage van een bedrijf.'], [3, 'niet de verantwoordelijkheid van de auditor.'] ], widget = widgets.RadioSelect ) cq4 = models.IntegerField( label = "Voor het evalueren van fair value estimates:", choices=[ [1, 'is het niet nodig om extra documentatie op te vragen bij de klant.'], [2, 'hoeft enkel de fair value berekening doorgenomen te worden.'], [3, 'moet een grondige analyse van de veronderstellingen en gebruikte methode worden gedaan.'] ], widget = widgets.RadioSelect ) cq5 = models.IntegerField( label = "Door de vitamine A in tomaten helpen ze bij:", choices=[ [1, 'de groei en het herstel van weefsels in het lichaam.'], [2, 'het handhaven van een gezonde bloeddruk.'], [3, 'het behoud van gezonde ogen en huid.'] ], widget = widgets.RadioSelect ) cq6 = models.IntegerField( label = "Tomaten moeten niet samen bewaard worden met:", choices=[ [1, 'komkommers en prei.'], [2, 'appels en peren.'], [3, 'paprika en witlof.'] ], widget = widgets.RadioSelect ) #SD3 ma_1 = models.IntegerField( label = "Het is niet verstandig om je geheimen te vertellen.", choices = C.StandardChoices ) ma_2 = models.IntegerField( label = "Ik gebruik graag slimme manipulatie om mijn zin te krijgen.", choices = C.StandardChoices ) ma_3 = models.IntegerField( label = "Wat er ook voor nodig is, je moet de belangrijke mensen aan jouw kant krijgen.", choices = C.StandardChoices ) ma_4 = models.IntegerField( label = "Vermijd directe conflicten met anderen, omdat ze in de toekomst nuttig kunnen zijn.", choices = C.StandardChoices ) ma_5 = models.IntegerField( label = "Het is verstandig om informatie bij te houden die je ooit tegen mensen zou kunnen gebruiken.", choices = C.StandardChoices ) ma_6 = models.IntegerField( label = "Je moet wachten op het juiste moment om op mensen terug te komen.", choices = C.StandardChoices ) ma_7 = models.IntegerField( label = "Er zijn dingen die je voor andere mensen moet verbergen om je reputatie te beschermen.", choices = C.StandardChoices ) ma_8 = models.IntegerField( label = "Zorg ervoor dat je plannen jezelf ten goede komen, niet anderen.", choices = C.StandardChoices ) ma_9 = models.IntegerField( label = "De meeste mensen zijn te manipuleren.", choices = C.StandardChoices ) na_1 = models.IntegerField( label = "Mensen zien mij als een natuurlijke leider.", choices = C.StandardChoices ) na_2 = models.IntegerField( label = "Ik haat het om in het middelpunt van de belangstelling te staan.", ##reverse coded choices = C.StandardChoices ) na_3 = models.IntegerField( label = "Veel groepsactiviteiten zijn saai zonder mij.", choices = C.StandardChoices ) na_4 = models.IntegerField( label = "Ik weet dat ik speciaal ben omdat iedereen me dat blijft vertellen.", choices = C.StandardChoices ) na_5 = models.IntegerField( label = "Ik maak graag kennis met belangrijke mensen.", choices = C.StandardChoices ) na_6 = models.IntegerField( label = "Ik schaam me als iemand me complimenteert.", ##reverse coded choices = C.StandardChoices ) na_7 = models.IntegerField( label = "Ik ben vergeleken met beroemde mensen.", choices = C.StandardChoices ) na_8 = models.IntegerField( label = "Ik ben een gemiddeld persoon.", ##reverse coded choices = C.StandardChoices ) na_9 = models.IntegerField( label = "Ik sta erop het respect te krijgen dat ik verdien.", choices = C.StandardChoices ) ps_1 = models.IntegerField( label = "Ik neem graag wraak op autoriteiten.", choices = C.StandardChoices ) ps_2 = models.IntegerField( label = "Ik vermijd gevaarlijke situaties", ##reverse coded choices = C.StandardChoices ) ps_3 = models.IntegerField( label = "Wraak moet snel en smerig zijn.", choices = C.StandardChoices ) ps_4 = models.IntegerField( label = "Mensen zeggen vaak dat ik de controle kwijt ben.", choices = C.StandardChoices ) ps_5 = models.IntegerField( label = "Het is waar dat ik gemeen kan zijn tegen anderen.", choices = C.StandardChoices ) ps_6 = models.IntegerField( label = "Mensen die met me rotzooien hebben er altijd spijt van.", choices = C.StandardChoices ) #TIPI TIPI_1 = models.IntegerField( label="Extravert, enthousiast", min=1, max=7, blank=False) TIPI_2 = models.IntegerField( label="Kritisch, ruziezoekend", min=1, max=7, blank=False) TIPI_3 = models.IntegerField( label="Grondig, gedisciplineerd", min=1, max=7, blank=False) TIPI_4 = models.IntegerField( label="Angstig, makkelijk van streek te brengen", min=1, max=7, blank=False) TIPI_5 = models.IntegerField( label="Open voor nieuwe ervaringen, levendige fantasie", min=1, max=7, blank=False) TIPI_6 = models.IntegerField( label="Gereserveerd, stil", min=1, max=7, blank=False) TIPI_7 = models.IntegerField( label="Sympathiek, vriendelijk", min=1, max=7, blank=False) TIPI_8 = models.IntegerField( label="Lui, gemakzuchtig", min=1, max=7, blank=False) TIPI_9 = models.IntegerField( label="Kalm, emotioneel stabiel", min=1, max=7, blank=False) TIPI_10 = models.IntegerField( label="Weinig artistieke interesse, weinig creatief", min=1, max=7, blank=False) # PAGES class Intro(Page): form_model = 'player' form_fields = [ 'accept_conditions' ] pass class Education(Page): #form_model = 'player' #form_fields =['cq1', 'cq2', 'cq3', 'cq4', 'cq5', 'cq6',] #@staticmethod #def get_form_fields(player): # if player.condition in C.SITinfo: # return ['cq1', 'cq2'] # elif player.condition in C.PSinfo: # return ['cq3', 'cq4'] # else: # return ['cq5', 'cq6'] pass class Scenario(Page): pass class Meeting(Page): pass class Debiteuren(Page): form_model = 'player' form_fields = ['add_evidence','add_auditwork','request_evidence','risk', 'trust', 'communication_mode'] pass class IOS (Page): form_model = 'player' form_fields = ['IOS_measure', 'Pidentity_measure'] pass class manipulation(Page): form_model = 'player' form_fields = ['edu_measure', 'smalltalk_measure', 'social_bond', 'time_pressure'] pass class Demographics1(Page): form_model = 'player' form_fields= [ 'Age', 'Gender', 'WorkExp', 'DebExp', 'Big4_question'] pass class SD3(Page): form_model = 'player' form_fields = ['ma_1', 'ma_2', 'ma_3', 'ma_4','ma_5','ma_6','ma_7','ma_8', 'ma_9', 'na_1', 'na_2', 'na_3', 'na_4', 'na_5', 'na_6', 'na_7', 'na_8', 'na_9', 'ps_1', 'ps_2', 'ps_3', 'ps_4', 'ps_5', 'ps_6'] pass class TIPI(Page): form_model = 'player' form_fields = [ 'TIPI_1','TIPI_2','TIPI_3','TIPI_4','TIPI_5','TIPI_6','TIPI_7','TIPI_8','TIPI_9','TIPI_10',] pass class ResultsWaitPage(WaitPage): pass class Thanks(Page): form_model = 'player' form_fields = ['feedback'] pass class Results(Page): pass page_sequence = [Intro, Scenario, Education, Meeting, Debiteuren, IOS, manipulation, Demographics1, SD3, TIPI, Thanks]