from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range ) import pandas as pd import random from typing import List from . import widgets as school_choice_widgets author = 'Andrés Felipe Barinas' doc = """ Your app description """ class Constants(BaseConstants): name_in_url = 'AudioExperiment' players_per_group = None tasks = ['A', 'B', 'C', 'D'] num_rounds = len(tasks) class Subsession(BaseSubsession): def creating_session(self): if self.round_number == 1: for p in self.get_players(): round_numbers = list(range(1, Constants.num_rounds+1)) random.shuffle(round_numbers) p.participant.vars['task_rounds'] = dict(zip(Constants.tasks, round_numbers)) class Group(BaseGroup): pass class Player(BasePlayer): day = models.IntegerField(min=1, max=31) month = models.IntegerField(min=1, max=12) year = models.IntegerField(max=2021, min=2021, default=2021) name = models.StringField() signature = models.StringField() phone = models.StringField() email= models.StringField() #Audio 1 Audio1A = models.IntegerField(choices=[[0, "Mujer"], [1, "Hombre"]]) Audio1B = models.IntegerField(choices=[[0, "Fuera de Bogotá"],[1,"Bogotá"]]) Audio1C= models.IntegerField( choices=[[0, "Bajos"], [1, "Medios"], [2, "Altos"] ], widget=widgets.RadioSelect, ) Audio1D= models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) Audio1E= models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) # Audio 2 Audio2A = models.IntegerField(choices=[[0, "Mujer"], [1, "Hombre"]]) Audio2B = models.IntegerField(choices=[[0, "Fuera de Bogotá"], [1, "Bogotá"]]) Audio2C = models.IntegerField( choices=[[0, "Bajos"], [1, "Medios"], [2, "Altos"] ], widget=widgets.RadioSelect, ) Audio2D = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) Audio2E = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) # Audio 3 Audio3A = models.IntegerField(choices=[[0, "Mujer"], [1, "Hombre"]]) Audio3B = models.IntegerField(choices=[[0, "Fuera de Bogotá"], [1, "Bogotá"]]) Audio3C = models.IntegerField( choices=[[0, "Bajos"], [1, "Medios"], [2, "Altos"] ], widget=widgets.RadioSelect, ) Audio3D = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) Audio3E = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) # Audio 4 Audio4A = models.IntegerField(choices=[[0, "Mujer"], [1, "Hombre"]]) Audio4B = models.IntegerField(choices=[[0, "Fuera de Bogotá"], [1, "Bogotá"]]) Audio4C = models.IntegerField( choices=[[0, "Bajos"], [1, "Medios"], [2, "Altos"] ], widget=widgets.RadioSelect, ) Audio4D = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) Audio4E = models.IntegerField( choices=[[0, "Muy baja"], [1, "Baja"], [2, "Alta"], [3, "Muy alta"] ], widget=widgets.RadioSelect, ) ###### Encuesta de salida edad=models.IntegerField(label="") genero=models.IntegerField(choices=[[0,"Masculino"],[1,"Femenino"],[2,"Otro"]], widget=widgets.RadioSelect) ingresos=models.IntegerField(label="") carrera=models.StringField(label="") estudiante=models.IntegerField(choices=[ [0,"Pregrado"], [1,"Posgrado"], ], widget=widgets.RadioSelect ) semestre = models.IntegerField(label="") email2 = models.StringField() phone2 = models.StringField() educ_madre = models.IntegerField( choices=[[0, "Ninguno"], [1, "Primaria"], [2, "Secundaria/Bachillerato"], [3, "Educación universitaria/técnológica"], [4, "Posgrado"], [99, "No sabe"] ], widget=widgets.RadioSelect, ) educ_padre = models.IntegerField( choices=[[0, "Ninguno"], [1, "Primaria"], [2, "Secundaria/Bachillerato"], [3, "Educación universitaria/técnológica"], [4, "Posgrado"], [99, "No sabe"] ], widget=widgets.RadioSelect, ) household_fin=models.IntegerField( choices=[[5, "Tenemos suficiente dinero para comprar un carro o una casa, además de ahorrar"], [4, "Tenemos suficiente dinero para comprar electrodomésticos e irnos de vacaciones, además de ahorrar"], [3, "Tenemos suficiente dinero para comprar comida y distintas necesidades, además de ahorrar"], [2, "Tenemos suficiente dinero para comprar comida y distintas necesidades pero no nos alcanza para ahorrar"], [1, "No nos alcanza para satisfacer algunas necesidades pero podemos manejar la situación económica sin necesidad de pedir prestado"], [0, "No nos alcanza para satisfacer algunas necesidades y nos vemos forzados a pedir prestado"] ], widget=widgets.RadioSelect, ) confusas = models.LongStringField() claras = models.LongStringField() reaccion = models.LongStringField() estrato = models.IntegerField( choices=[[0, "1"], [1, "2"], [2, "3"], [3, "4"], [4, "5"], [5, "6"], [6, "No sabe/No Responde"]], widget=widgets.RadioSelect)