from . import models from ._builtin import Page, WaitPage from otree.api import Currency as c, currency_range from .models import Constants from django.conf import settings import time import random # class FirstWaitPage(WaitPage): # pass # group_by_arrival_time = True # # def is_displayed(self): # return self.round_number == 1 class IntroVideo(Page): timeout_seconds = 120 def is_displayed(self): return self.round_number == 1 def vars_for_template(self): return {"image_path": "global/background_sabotage.jpg", 'audio_path': 'global/sabotage1.mp3'} def before_next_page(self): # players = self.subsession.get_players() # for p in players: # if self.participant.vars['male'] is not None: # self.total_num_males= sum(p.particip) # # self. = sum([p.finished for p in players]) # # for p in self.subsession.get_players(): # if self.participant.vars['male'] is not None: # # [1, 'Finans Direktörlüğü'], # [2, 'İK Direktörlüğü'], # [3, 'Merkez Operasyon'], # [4, 'Hasanoğlan Operasyon'], # [5, 'Sivas Operasyon'], # [6, 'Tedarik Zinciri Direktörlüğü'], # [7, 'Ticaret Direktörlüğü'], # [8, 'Yozgat Operasyon'], # [9, 'Hazır Beton'], number_of_departments = 58 random_number = [] for i in range(0, 58): n = random.random() random_number.append(n) print(random_number) print('The size of the array:', len(random_number)) male_percent_dept = [ 1, 0.5, 0.8, 1, 1, 1, 0.62, 0.77, 0.83, 0.95, 0.86, 1, 1, 0.66, 0.5, 0.5, 0.5, 1, 0.86, 0.91, 1, 1, 1, 0.5, 0.5, 0, 0, 0.71, 1, 0.91, 1, 1, 0.75, 0.33, 0.66, 1, 0.5, 1, 0.93, 1, 0.88, 0.5, 1, 1, 1, 1, 1, 0.93, 1, 0.83, 0.5, 0.8, 1, 0, 0.5, 1, 0.83, 1] #print('The percentage of males in department 7 is:', male_percent_dept[6]) #print('Range', range(number_of_departments)) if random_number[self.participant.vars['department']-1] < male_percent_dept[self.participant.vars['department']-1]: self.player.other_male = 1 self.player.other_avatar = 'male' else: self.player.other_male = 0 self.player.other_avatar = 'female' self.participant.vars['other_male'] = self.player.other_male self.participant.vars['other_avatar'] = self.player.other_avatar # for i in range(0,58): # # if self.participant.vars['department'] == i+1 and random_number[i] < male_percent_dept[i]: # self.player.other_male = 1 # self.player.other_avatar = 'male' # else: # self.player.other_male = 0 # self.player.other_avatar = 'female' print('Own department:', self.participant.vars['department']) print('Percentage of males in the department:',self.participant.vars['department'], 'is', male_percent_dept[self.participant.vars['department']-1]) print('Random number:', random_number[self.participant.vars['department']-1]) print('Own gender is:', self.participant.vars['male']) print('Other participant\'s gender is:', self.participant.vars['other_male']) print('Other participant is:', self.participant.vars['other_avatar']) # random_number1 = random.random() # random_number2 = random.random() # random_number3 = random.random() # random_number4 = random.random() # random_number5 = random.random() # random_number6 = random.random() # random_number7 = random.random() # random_number8 = random.random() # random_number9 = random.random() # random_number10 = random.random() # random_number11 = random.random() # random_number12 = random.random() # random_number13 = random.random() # random_number14 = random.random() # random_number15 = random.random() # random_number16 = random.random() # random_number17 = random.random() # random_number18 = random.random() # random_number19 = random.random() # random_number20 = random.random() # random_number21 = random.random() # random_number22 = random.random() # random_number23 = random.random() # random_number24 = random.random() # random_number25 = random.random() # random_number26 = random.random() # random_number27 = random.random() # random_number28 = random.random() # random_number29 = random.random() # random_number30 = random.random() # random_number31 = random.random() # random_number32 = random.random() # random_number33 = random.random() # random_number34 = random.random() # random_number35 = random.random() # random_number36 = random.random() # random_number37 = random.random() # random_number38 = random.random() # random_number39 = random.random() # random_number40 = random.random() # random_number41 = random.random() # random_number42 = random.random() # random_number43 = random.random() # random_number44 = random.random() # random_number45 = random.random() # random_number46 = random.random() # random_number47 = random.random() # random_number48 = random.random() # random_number49 = random.random() # random_number50 = random.random() # random_number51 = random.random() # random_number52 = random.random() # random_number53 = random.random() # random_number54 = random.random() # random_number55 = random.random() # random_number56 = random.random() # random_number57 = random.random() # random_number58 = random.random() # # male_percent_dept1 = 1 # male_percent_dept2 = 0.5 # male_percent_dept3 = 0.8 # male_percent_dept4 = 1 # male_percent_dept5 = 1 # male_percent_dept6 = 1 # male_percent_dept7 = 0.62 # male_percent_dept8 = 0.77 # male_percent_dept9 = 0.83 # male_percent_dept10 = 0.95 # male_percent_dept11 = 0.86 # male_percent_dept12 = 1 # male_percent_dept13 = 1 # male_percent_dept14 = 0.66 # male_percent_dept15 = 0.5 # male_percent_dept16 = 0.5 # male_percent_dept17 = 0.5 # male_percent_dept18 = 1 # male_percent_dept19 = 0.86 # male_percent_dept20 = 0.91 # male_percent_dept21 = 1 # male_percent_dept22 = 1 # male_percent_dept23 = 1 # male_percent_dept24 = 0.5 # male_percent_dept25 = 0.5 # male_percent_dept26 = 0 # male_percent_dept27 = 0 # male_percent_dept28 = 0.71 # male_percent_dept29 = 1 # male_percent_dept30 = 0.91 # male_percent_dept31 = 1 # male_percent_dept32 = 1 # male_percent_dept33 = 0.75 # male_percent_dept34 = 0.33 # male_percent_dept35 = 0.66 # male_percent_dept36 = 1 # male_percent_dept37 = 0.5 # male_percent_dept38 = 1 # male_percent_dept39 = 0.93 # male_percent_dept40 = 1 # male_percent_dept41 = 0.88 # male_percent_dept42 = 0.5 # male_percent_dept43 = 1 # male_percent_dept44 = 1 # male_percent_dept45 = 1 # male_percent_dept46 = 1 # male_percent_dept47 = 1 # male_percent_dept48 = 0.93 # male_percent_dept49 = 1 # male_percent_dept50 = 0.83 # male_percent_dept51 = 0.5 # male_percent_dept52 = 0.8 # male_percent_dept53 = 1 # male_percent_dept54 = 0 # male_percent_dept55 = 0.5 # male_percent_dept56 = 1 # male_percent_dept57 = 0.83 # male_percent_dept58 = 1 # # if self.participant.vars['department'] == 1: # if random_number1 < male_percent_dept1: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 2: # if random_number2 < male_percent_dept2: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 3: # if random_number3 < male_percent_dept3: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 4: # if random_number4 < male_percent_dept4: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 5: # if random_number5 < male_percent_dept5: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 6: # if random_number6 < male_percent_dept6: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 7: # if random_number7 < male_percent_dept7: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 8: # if random_number8 < male_percent_dept8: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 9: # if random_number9 < male_percent_dept9: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # if self.participant.vars['department'] == 10: # if random_number10 < male_percent_dept10: # self.player.other_male = 1 # else: # self.player.other_male = 0 # # # if self.player.other_male==1: # self.player.other_avatar = 'male' # elif self.player.other_male==0: # self.player.other_avatar = 'female' # print('Random number-1:', random_number1) # print('Random number-2:', random_number2) # print('Random number-3:', random_number3) # print('Random number-4:', random_number4) # print('Random number-5:', random_number5) # print('Random number-6:', random_number6) # print('Random number-7:', random_number7) # print('Random number-8:', random_number8) # print('Random number-9:', random_number9) # print('Percentage of males dept-1:', male_percent_dept1) # print('Percentage of males dept-2:', male_percent_dept2) # print('Percentage of males dept-3:', male_percent_dept3) # print('Percentage of males dept-4:', male_percent_dept4) # print('Percentage of males dept-5:', male_percent_dept5) # print('Percentage of males dept-6:', male_percent_dept6) # print('Percentage of males dept-7:', male_percent_dept7) # print('Percentage of males dept-8:', male_percent_dept8) # print('Percentage of males dept-9:', male_percent_dept9) class Start(Page): timeout_seconds = 15 def is_displayed(self): return self.round_number == 1 def before_next_page(self): # user has ret_timer seconds to complete as many pages as possible self.participant.vars['expiry_timestamp'] = time.time() + self.player.task_timer def vars_for_template(self): return { 'debug': settings.DEBUG, } class Task(Page): form_model = models.Player form_fields = ['user_text'] # timeout_seconds = self.player.ret_timer # time? no, only works on specific pages def get_timeout_seconds(self): return self.participant.vars['expiry_timestamp'] - time.time() def is_displayed(self): return self.participant.vars['expiry_timestamp'] - time.time() > 3 def vars_for_template(self): # current number of correctly done tasks total_payoff = 0 for p in self.player.in_all_rounds(): if p.payoff_score != None: total_payoff += p.payoff_score # set up messgaes in transcription task if self.round_number == 1: #on very first task correct_last_round = "
" else: #all subsequent tasks if self.player.in_previous_rounds()[-1].is_correct: correct_last_round = "Son verdiğin cevap doğru" else: correct_last_round = "Son verdiğin cevap yanlış" return { 'total_payoff': round(total_payoff), 'round_count':(self.round_number - 1), 'debug': settings.DEBUG, 'correct_last_round': correct_last_round, } def before_next_page(self): self.player.score_round() # class Belief(Page): # # def is_displayed(self): # return self.round_number == Constants.num_rounds # # form_model = 'player' # form_fields = ['belief'] # class ResultsWaitPage(WaitPage): # # def is_displayed(self): # return self.round_number == Constants.num_rounds # # def after_all_players_arrive(self): # self.group.set_ranks_before_sabotage() class Sabotage(Page): timeout_seconds = 150 def is_displayed(self): return self.round_number == Constants.num_rounds form_model = 'player' form_fields = ['sabotage'] def vars_for_template(self): return { 'own_avatar': 'global/{}.jpg'.format(self.participant.vars['own_avatar']), 'other_avatar': 'global/{}.jpg'.format(self.participant.vars['other_avatar']), 'audio_path': 'global/sabotage2.mp3', } # def before_next_page(self): # self.player.other_male = self.player.get_others_in_group()[0].participant.vars['male'] # self.participant.vars['other_male'] = self.player.other_male # 'other_avatar': 'global/{}.jpg'.format(self.player.get_others_in_group()[0].participant.vars['avatar']), # class SabotageWaitPage(WaitPage): # # def is_displayed(self): # return self.round_number == Constants.num_rounds # # def after_all_players_arrive(self): # self.group.set_payoffs_after_sabotage() class BeliefOther(Page): timeout_seconds = 120 def is_displayed(self): return self.round_number == Constants.num_rounds def vars_for_template(self): return { 'audio_path': 'global/sabotage3.mp3' } form_model = 'player' form_fields = ['sabotage_belief'] # class SabotageBeliefWaitPage(WaitPage): # # def is_displayed(self): # return self.round_number == Constants.num_rounds # def after_all_players_arrive(self): # self.group.set_belief_payoffs() page_sequence = [ IntroVideo, Start, Task, Sabotage, BeliefOther, ]