from otree.api import Currency as c, currency_range from ._builtin import Page, WaitPage from .models import Constants class Instrucciones(Page): form_model = 'player' timeout_seconds = 20 def is_displayed(self): return self.round_number == 1 def vars_for_template(self): return dict(rol =self.player.role()) class Contribute1(Page): form_model = 'group' form_fields = ['contribution1'] timeout_seconds = 20 def is_displayed(self): return self.player.id_in_group == 1 class Contribute2(Page): form_model = 'group' form_fields = ['contribution2'] timeout_seconds = 20 def is_displayed(self): return self.player.id_in_group == 2 class Contribute3(Page): form_model = 'group' form_fields = ['contribution3'] timeout_seconds = 20 def is_displayed(self): return self.player.id_in_group == 3 class ResultsWaitPage(WaitPage): body_text = 'Waiting for other participants to contribute.' def after_all_players_arrive(self): self.group.set_payoffs() class Resultspage(Page): form_model = 'player' timeout_seconds = 12 def vars_for_template(self): if self.player.id_in_group == 1: return { "PagoA": self.group.contribution1 * 12, "PagoB": (12 - self.group.contribution1) * 5, "Banco": (12 - self.group.contribution1), "Ext": (self.group.contribution2 + self.group.contribution3), "Costo" : (self.group.contribution2 + self.group.contribution3) * 5 } if self.player.id_in_group == 2: return { "PagoA": self.group.contribution2 * 12, "PagoB": (9 - self.group.contribution2) * 5, "Banco": (9 - self.group.contribution2), "Ext": (self.group.contribution1 + self.group.contribution3), "Costo" : (self.group.contribution1 + self.group.contribution3) * 5 } if self.player.id_in_group == 3: return { "PagoA": self.group.contribution3 * 12, "PagoB": (6 - self.group.contribution3) * 5, "Banco":(6 - self.group.contribution3), "Ext": (self.group.contribution1 + self.group.contribution2), "Costo" : (self.group.contribution1 + self.group.contribution2) * 5 } def before_next_page(self): if self.round_number == 3: self.participant.vars["app7"]= self.player.payoff_app() self.player.payoff_app7 = str (self.participant.vars["app7"]) class Finalpayoff(Page): form_model = 'player' def is_displayed(self): return self.round_number == 3 def before_next_page(self): pagos= [self.participant.vars["app1"],self.participant.vars["app2"],self.participant.vars["app3"],self.participant.vars["app4"],self.participant.vars["app5"],self.participant.vars["app6"],self.participant.vars["app7"]] import random self.participant.payoff = random.choice (pagos) class Ambiental(Page): form_model = 'player' form_fields = ['amb_1', 'amb_2', 'amb_3', 'amb_4', 'amb_5', 'amb_6', 'amb_7', 'amb_8', 'amb_9', 'amb_10', 'amb_11', 'amb_12', 'amb_13', 'amb_14', 'amb_15'] def is_displayed(self): return self.round_number == 3 class Cooperacion(Page): form_model = 'player' form_fields = ['coop_1', 'coop_2', 'coop_3', 'coop_4', 'coop_5', 'coop_6'] def is_displayed(self): return self.round_number == 3 class Cuestionario(Page): form_model = 'player' form_fields = ['Estrato', 'Genero', 'Exp', 'carrera', 'Daviplata'] def is_displayed(self): return self.round_number == 3 class Gananciasfinales(Page): form_model = 'player' def is_displayed(self): return self.round_number == 3 page_sequence = [Instrucciones, Contribute1, Contribute2, Contribute3, ResultsWaitPage, Resultspage, Finalpayoff, Ambiental, Cooperacion, Cuestionario, Gananciasfinales]