from otree.api import * c = cu doc = '' class Constants(BaseConstants): name_in_url = 'Noticia_Sesg' players_per_group = None num_rounds = 1 Res_corr = cu(11) premio = cu(5) class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): Numero_de_errores = models.IntegerField(label='¿Cuántos errores de ortografía encontró en el artículo?') RP_SectorPrivado = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_ActivistaDerecha = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_Funcionario = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_Bombero = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_ActivistaIzq = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_ReintegradoIzq = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_Policia = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_ReintegradoDer = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_Reciclador = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) RP_Ejemplo = models.CurrencyField(label='¿Con cuántos puntos se queda usted?', max=10, min=0) plebi = models.IntegerField(choices=[[1, 'Si'], [2, 'No'], [0, 'No voté'], [3, 'Prefiero no contestar'], [4, 'No podía votar']], label='¿Cuál fue su voto en el plebiscito para la refrendación de los Acuerdos de Paz?') emp_uri = models.IntegerField(label='¿Cuántas de las cinco empanadas le asigna a Uribe?', max=5, min=0) emp_pet = models.IntegerField(label='¿Cuántas de las cinco empanadas le asigna a Petro?', max=5, min=0) Nombre = models.StringField() Cedula = models.IntegerField() Madre = models.IntegerField(choices=[[1, 'Primaria'], [2, 'Bachillerato'], [3, 'Técnica-Tecnológica'], [4, 'Universitaria'], [5, 'Ninguna'], [6, 'NS/NR']], label='Nivel de formación escolar de la madre:') Padre = models.IntegerField(choices=[[1, 'Primaria'], [2, 'Bachillerato'], [3, 'Técnica-Tecnológica '], [4, 'Universitaria'], [5, 'Ninguna'], [6, 'NS/NR']], label='Nivel de formación escolar del padre:') Partido = models.IntegerField(choices=[[1, 'Conservador'], [2, 'Liberal'], [3, 'Centro Democrático'], [4, 'Alianza Verde'], [5, 'Otro']], label='¿Con cuál partido político se identifica más?') Partido_2 = models.StringField(blank=True, label='Si respondió otro partido en la pregunta anterior, ¿Cuál partido?') Estrato = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6']], label='¿Cuál es su estrato socio-económico (facturas servicios públicos)?') Seguridad_Uribe = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6']], label='En una escala dónde 1 es en desacuerdo y 6 es muy de acuerdo. ¿Qué tan de acuerdo estaba con las políticas de seguridad de Álvaro Uribe (2002-2010)?') Seguridad_Santos = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6']], label='En una escala dónde 1 es en desacuerdo y 6 es muy de acuerdo. ¿Qué tan de acuerdo estaba con las políticas de seguridad de Juan Manuel Santos (2010-2018)?') Plebi_2 = models.IntegerField(choices=[[1, 'Sí'], [2, 'No'], [3, 'Prefiero no responder']], label='Si hubiese podido votar en el plebiscito ¿por qué opción habría votado? Y si pudo votar, ¿mantendría su voto?') Presid = models.IntegerField(choices=[[0, 'No podía votar'], [1, 'Iván Duque'], [2, 'Gustavo Petro'], [3, 'Prefiero no responder'], [4, 'No voté']], label='¿Por quién voto en la segunda vuelta presidencial de 2018?') Presid_2 = models.IntegerField(choices=[[1, 'Iván Duque'], [2, 'Gustavo Petro'], [3, 'Prefiero no responder'], [4, 'No votaría']], label='Si hubiese podido votar o pudiera votar ahora para la segunda vuelta ¿por quién votaría? ') Altru_1 = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6']], label='En una escala dónde 1 es no dispuesto y 6 es muy dispuesto. ¿Qué disposición tiene de donar a las buenas causas sin esperar nada a cambio?') Altru_2 = models.IntegerField(label='Imagínese la siguiente situación: Hoy, de forma inesperada, usted recibe 280.000 Pesos. ¿Qué cantidad de este monto donaría usted a una buena causa?', max=280000, min=0) Nivel_Formacion = models.IntegerField(choices=[[1, 'Estudiante de Pregrado'], [2, 'Estudiante Posgrado (Especialización o Maestría)'], [3, 'Estudiante de Doctorado'], [4, 'Profesional'], [5, 'Profesional con Posgrado (Especialista o Magister)'], [6, 'Doctor']], label='¿Cuál es su nivel de formación educativa?') Re_Pro = models.IntegerField(choices=[[1, 'Sí'], [2, 'No, no le entregaría ningún obsequio.']], label='Por favor piense en que haría usted en la siguiente situación. Está en un área que no conoce mucho y se da cuenta que se ha perdido. Le pide orientación a un extraño. El extraño le ofrece llevarlo a su destino. Ayudarlo a usted le cuesta al extraño unos 6.000 Pesos en total. Sin embargo, el extraño dice que no desea que usted le de dinero. Usted tiene seis obsequios. El obsequio más económico cuesta 1.500 Pesos y el más costoso cuesta 9.000 Pesos. ¿Le daría al extraño uno de los obsequios como agradecimiento?') Re_Pro2 = models.IntegerField(blank=True, choices=[[1, 'El obsequio que cuesta 1.500 Pesos '], [2, 'El obsequio que cuesta 3.000 Pesos '], [3, 'El obsequio que cuesta 4.500 Pesos '], [4, 'El obsequio que cuesta 6.000 Pesos '], [5, 'El obsequio que cuesta 7.500 Pesos '], [6, 'El obsequio que cuesta 9.000 Pesos '], [7, '(NS/NR) ']], label='Si respondió sí en la pregunta anterior: ¿Qué obsequio le entregaría?') Espectro = models.IntegerField(choices=[[1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6']], label='En política se habla normalmente de izquierda y derecha. En una escala donde 1 es izquierda y 6 derecha. ¿Dónde se ubicaría Usted?') class Bienvenida(Page): form_model = 'player' class Consentimiento(Page): form_model = 'player' form_fields = ['Nombre', 'Cedula'] class Intro_Gen(Page): form_model = 'player' class Noticia(Page): form_model = 'player' form_fields = ['Numero_de_errores'] timeout_seconds = 900 class Intro_Dictadores(Page): form_model = 'player' class Ejemplo(Page): form_model = 'player' form_fields = ['RP_Ejemplo'] timeout_seconds = 60 class Res_Ejemplo(Page): form_model = 'player' @staticmethod def vars_for_template(player): return { "DonoEjemplo": (10 - player.RP_Ejemplo) } class Desmov_Der(Page): form_model = 'player' form_fields = ['RP_ReintegradoDer'] timeout_seconds = 60 class Sector_Privado(Page): form_model = 'player' form_fields = ['RP_SectorPrivado'] timeout_seconds = 60 class Desmov_Farc(Page): form_model = 'player' form_fields = ['RP_ReintegradoIzq'] timeout_seconds = 60 class Reciclador(Page): form_model = 'player' form_fields = ['RP_Reciclador'] timeout_seconds = 60 class Bombero(Page): form_model = 'player' form_fields = ['RP_Bombero'] timeout_seconds = 60 class Activ_Izq(Page): form_model = 'player' form_fields = ['RP_ActivistaIzq'] timeout_seconds = 60 class Funcionario(Page): form_model = 'player' form_fields = ['RP_Funcionario'] timeout_seconds = 60 class Policia(Page): form_model = 'player' form_fields = ['RP_Policia'] timeout_seconds = 60 class Activista_Der(Page): form_model = 'player' form_fields = ['RP_ActivistaDerecha'] timeout_seconds = 60 class Cuestionario_1(Page): form_model = 'player' form_fields = ['plebi', 'emp_uri', 'emp_pet', 'Partido', 'Partido_2', 'Seguridad_Uribe', 'Seguridad_Santos', 'Plebi_2', 'Presid', 'Presid_2', 'Altru_1', 'Altru_2'] timeout_seconds = 660 @staticmethod def error_message(player, values): print('values is', values) if values ["emp_uri"] + values ["emp_pet"] != 5: return 'Tiene que repartir tan solo cinco ' class Cuestionario_2(Page): form_model = 'player' form_fields = ['Madre', 'Padre', 'Estrato', 'Nivel_Formacion', 'Re_Pro', 'Re_Pro2', 'Espectro'] timeout_seconds = 420 class Resultado(Page): form_model = 'player' @staticmethod def before_next_page(player, timeout_happened): participant = player.participant pagos= [player.RP_SectorPrivado,player.RP_ActivistaDerecha,player.RP_Funcionario,player.RP_Bombero,player.RP_ActivistaIzq,player.RP_ActivistaIzq, player.RP_ReintegradoIzq, player.RP_Policia, player.RP_ReintegradoDer, player.RP_Reciclador] import random if player.Numero_de_errores == Constants.Res_corr: participant.payoff = random.choice (pagos) + Constants.premio if player.Numero_de_errores != Constants.Res_corr: participant.payoff = random.choice (pagos) class Pagofinal(Page): form_model = 'player' page_sequence = [Bienvenida, Consentimiento, Intro_Gen, Noticia, Intro_Dictadores, Ejemplo, Res_Ejemplo, Desmov_Der, Sector_Privado, Desmov_Farc, Reciclador, Bombero, Activ_Izq, Funcionario, Policia, Activista_Der, Cuestionario_1, Cuestionario_2, Resultado, Pagofinal]