from otree.api import * c = cu doc = '' class Constants(BaseConstants): name_in_url = 'VotacionAlease' players_per_group = 3 num_rounds = 1 Endowment1 = 12 Endowment2 = 9 Endowment3 = 12 def creating_session(subsession): session = subsession.session import random if subsession.round_number == 1: for group in subsession.get_groups(): subsession.Tratamiento = random.choice (["igualdad","Aricos", "Apobres", "Amedia"]) session.vars["Tratamiento"]=subsession.Tratamiento def my_method(subsession): pass class Subsession(BaseSubsession): Tratamiento = models.StringField() creating_session = creating_session my_method = my_method def cuota(group): session = group.session subsession = group.subsession votos = [group.Voto1,group.Voto2,group.Voto3] votosR = [group.Voto1,group.Voto1,group.Voto1,group.Voto1,group.Voto1,group.Voto1,group.Voto1,group.Voto2,group.Voto3] votosP = [group.Voto3,group.Voto3,group.Voto3,group.Voto3,group.Voto3,group.Voto3,group.Voto3, group.Voto1,group.Voto2] votosM = [group.Voto2,group.Voto2,group.Voto2,group.Voto2,group.Voto2,group.Voto2,group.Voto2, group.Voto1,group.Voto3] import random if subsession.Tratamiento == "igualdad": return random.choice(votos) elif subsession.Tratamiento == "Aricos": return random.choice(votosR) elif subsession.Tratamiento == "Apobres": return random.choice(votosP) elif subsession.Tratamiento == "Amedia": return random.choice(votosM) def cuota_esc(group): session = group.session session.vars["Resultado"]= group.cuota() group.cuota_grupo = str (session.vars["Resultado"]) class Group(BaseGroup): Voto1 = models.IntegerField(choices=[[5, '5'], [8, '8'], [11, '11']], label='¿Cuál deberá ser la cuota de máxima inversión posible en el proyecto extractivo?', widget=widgets.RadioSelect) Voto2 = models.IntegerField(choices=[[5, '5'], [8, '8'], [11, '11']], label='¿Cuál deberá ser la cuota de máxima inversión posible en el proyecto extractivo?', widget=widgets.RadioSelect) Voto3 = models.IntegerField(choices=[[5, '5'], [8, '8'], [11, '11']], label='¿Cuál deberá ser la cuota de máxima inversión posible en el proyecto extractivo?', widget=widgets.RadioSelect) cuota_grupo = models.LongStringField() cuota = cuota cuota_esc = cuota_esc def role(player): group = player.group if player.id_in_group == 1: return "rol1" if player.id_in_group == 2: return "rol2" if player.id_in_group == 3: return "rol3" def cuota(player): session = player.session group = player.group session.config["cuota"] = group.Resultado class Player(BasePlayer): role = role cuota = cuota class Instruccionesvotacion(Page): form_model = 'player' @staticmethod def vars_for_template(player): return dict(rol =player.role()) class Votacion1(Page): form_model = 'group' form_fields = ['Voto1'] @staticmethod def is_displayed(player): group = player.group return player.id_in_group == 1 class Votacion2(Page): form_model = 'group' form_fields = ['Voto2'] @staticmethod def is_displayed(player): group = player.group return player.id_in_group == 2 class Votacion3(Page): form_model = 'group' form_fields = ['Voto3'] @staticmethod def is_displayed(player): return player.role() == "rol3" class MyWaitPage(WaitPage): after_all_players_arrive = 'cuota' class MyWaitPage2(WaitPage): after_all_players_arrive = 'cuota_esc' class Resultado(Page): form_model = 'player' page_sequence = [Instruccionesvotacion, Votacion1, Votacion2, Votacion3, MyWaitPage, MyWaitPage2, Resultado]