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 = 'CardsExperiment' players_per_group = None tasks = ['A', 'B'] 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)) if self.round_number == Constants.num_rounds: for player in self.get_players(): player.orden = random.choice(['A', 'B']) print('set player.orden to', player.orden) 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() #Situación 1 Tarjetas S1G1TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G1TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G1TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G1TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G2TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G2TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G2TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G2TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G3TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G3TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G3TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G3TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G4TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G4TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G4TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G4TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G5TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G5TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G5TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G5TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G6TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G6TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G6TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S1G6TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) # Situación 2 Tarjetas S2G1TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G1TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G1TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G1TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G2TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G2TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G2TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G2TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G3TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G3TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G3TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G3TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G4TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G4TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G4TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G4TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G5TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G5TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G5TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G5TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G6TA = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G6TB = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G6TC = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G6TD = models.IntegerField(choices=[[1, "1º Puesto"], [2, "2º Puesto "], [3, "3º Puesto"], [4, "4º Puesto"]]) S2G8P1 = models.IntegerField(choices=[[1, "Tarjeta A"], [2, "Tarjeta B"], [3, "Tarjeta C"], [4, "Tarjeta D"]]) S2G8P2 = models.IntegerField(choices=[[1, "Tarjeta A"], [2, "Tarjeta B"], [3, "Tarjeta C"], [4, "Tarjeta D"]]) S2G8P3 = models.IntegerField(choices=[[1, "Tarjeta A"], [2, "Tarjeta B"], [3, "Tarjeta C"], [4, "Tarjeta D"]]) S2G8P4 = models.IntegerField(choices=[[1, "Tarjeta A"], [2, "Tarjeta B"], [3, "Tarjeta C"], [4, "Tarjeta D"]]) 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"], [2, "Actualmente no estoy estudiando"], ], widget=widgets.RadioSelect ) semestre = models.IntegerField(blank=True) 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, ) orden = models.StringField() orientacion_politica=models.IntegerField( choices=[[1, "Izquierda"], [2, "Centro-izquierda"], [3, "Centro"], [4, "Centro-derecha"], [5, "Derecha"], [6, "No sabe"] ], widget=widgets.RadioSelect, ) preferencias_bienestar = models.IntegerField( choices=[[1, "Totalmente en desacuerdo"], [2, "En desacuerdo"], [3, "De acuerdo"], [4, "Totalmente de acuerdo"], ], widget=widgets.RadioSelectHorizontal) preferencias_distribucionriqueza = models.IntegerField( choices=[[1, "Totalmente en desacuerdo"], [2, "En desacuerdo"], [3, "De acuerdo"], [4, "Totalmente de acuerdo"], ], widget=widgets.RadioSelectHorizontal) afirmacion1 = models.IntegerField( choices=[[1, "Sí"], [0, "No"], ], widget=widgets.RadioSelect) afirmacion2 = models.IntegerField( choices=[[1, "Totalmente en desacuerdo"], [2, "En desacuerdo"], [3, "De acuerdo"], [4, "Totalmente de acuerdo"], ], widget=widgets.RadioSelectHorizontal) afirmacion3 = models.IntegerField( choices=[[1, "Totalmente en desacuerdo"], [2, "En desacuerdo"], [3, "De acuerdo"], [4, "Totalmente de acuerdo"], ], widget=widgets.RadioSelectHorizontal) afirmacion4 = models.IntegerField( choices=[[1, "Totalmente en desacuerdo"], [2, "En desacuerdo"], [3, "De acuerdo"], [4, "Totalmente de acuerdo"], ], widget=widgets.RadioSelectHorizontal) motivacion_tecnico = models.LongStringField() motivacion_altoperf = models.LongStringField() 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) rank1Alto=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]]) rank2Alto=models.IntegerField(choices=[[1, "Carrera"], [2, "Promedio Acumulado"], [3, "Nivel de inglés"], [4, "Semestres faltantes"],[5, "Colegio"], [6, "Lugar de estudios secundarios"], [7, "Puntaje Saber 11"]]) rank3Alto=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]]) rank4Alto=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]]) rank1progra=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]]) rank2progra=models.IntegerField(choices=[[1, "Carrera"], [2, "Promedio Acumulado"], [3, "Nivel de inglés"], [4, "Semestres faltantes"],[5, "Colegio"], [6, "Lugar de estudios secundarios"], [7, "Puntaje Saber 11"]]) rank3progra=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]]) rank4progra=models.IntegerField(choices=[[1,"Carrera"],[2,"Promedio Acumulado"],[3,"Nivel de inglés"],[4,"Semestres faltantes"],[5,"Colegio"],[6,"Lugar de estudios secundarios"],[7,"Puntaje Saber 11"]])