from otree.api import * c = cu doc = 'Declaracion del Impuesto, control y grupos tratados' class C(BaseConstants): # built-in constants NAME_IN_URL = 'SocioDemog' PLAYERS_PER_GROUP = None NUM_ROUNDS = 1 class Subsession(BaseSubsession): pass class Group(BaseGroup): pass class Player(BasePlayer): Income = models.IntegerField(label='¿Cuál fue el ingreso ganado?') Voluntario = models.IntegerField(blank=True, label='¿Cuánto desea aportar de impuesto voluntario?') edad = models.IntegerField(label='¿Cuál es su edad?', min=15) Genero = models.StringField(choices=[['Mujer', 'Mujer'], ['Hombre', 'Hombre'], ['Otro', 'Otro']], label='¿Cuál es su género?', widget=widgets.RadioSelect) Civil = models.StringField(choices=[['Soltero', 'Soltero'], ['Casado', 'Casado'], ['Separado', 'Separado'], ['Viudo', 'Viudo']], label='¿Cuál es su estado civil?', widget=widgets.RadioSelect) Financiera = models.StringField(choices=[['Baja', 'Baja'], ['Media', 'Media'], ['Media Alta', 'Media Alta'], ['Alta', 'Alta']], label='¿Cuál es la situación financiera de su hogar?', widget=widgets.RadioSelect) PBS = models.StringField(choices=[['Contributivo', 'Contributivo'], ['Subsidiado (Sisben)', 'Subsidiado (Sisben)'], ['Regimenes Especiales (FFMM, Magisterio, etc)', 'Regimenes Especiales (FFMM, Magisterio, etc)'], ['No Afiliado', 'No Afiliado']], label='¿Cuál es su afiliación al Sistema de Salud?', widget=widgets.RadioSelect) Prepagada = models.StringField(choices=[['Prepagada', 'Prepagada'], ['Plan Complementario', 'Plan Complementario'], ['No tengo', 'No tengo']], label='¿Tiene afiliación a un seguro de salud adional al plan obligatorio/ básico?', widget=widgets.RadioSelect) Income2 = models.IntegerField(label='¿Cuál fue el ingreso ganado?') Voluntario2 = models.IntegerField(blank=True, label='¿Cuánto desea aportar de impuesto voluntario?') class Encuesta(Page): form_model = 'player' form_fields = ['edad', 'Genero', 'Civil', 'Financiera', 'PBS', 'Prepagada'] @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant participant.pago_experimento= int(participant.Pago_total+participant.pago3+5000) class Pago_Primera_parte(Page): form_model = 'player' class Pago_Segunda_Parte(Page): form_model = 'player' @staticmethod def before_next_page(player: Player, timeout_happened): participant = player.participant if participant.Pago_total==participant.Pago1: participant.impuesto_p1 = participant.TX1 elif participant.Pago_total==participant.Pago2: participant.impuesto_p1 = participant.TX2 else: participant.impuesto_p1 = participant.TX3 if participant.pago3== participant.pago3R1: participant.impuesto_p2 = participant.pagoTX3R1 elif participant.pago3== participant.pago3R2: participant.impuesto_p2 = participant.pagoTX3R2 elif participant.pago3== participant.pago3R3: participant.impuesto_p2 = participant.pagoTX3R3 elif participant.pago3== participant.pago3R4: participant.impuesto_p2 = participant.pagoTX3R4 elif participant.pago3== participant.pago3R5: participant.impuesto_p2 = participant.pagoTX3R5 elif participant.pago3== participant.pago3R6: participant.impuesto_p2 = participant.pagoTX3R6 elif participant.pago3== participant.pago3R7: participant.impuesto_p2 = participant.pagoTX3R7 elif participant.pago3== participant.pago3R8: participant.impuesto_p2 = participant.pagoTX3R8 elif participant.pago3== participant.pago3R9: participant.impuesto_p2 = participant.pagoTX3R9 elif participant.pago3== participant.pago3R10: participant.impuesto_p2 = participant.pagoTX3R10 else: participant.impuesto_p2 = participant.pagoTX3R11 participant.impuesto_total = participant.impuesto_p1 + participant.impuesto_p2 class PagoFinal(Page): form_model = 'player' page_sequence = [Encuesta, Pago_Primera_parte, Pago_Segunda_Parte, PagoFinal]