from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants class Wait(WaitPage): def after_all_players_arrive(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p3 = self.group.get_player_by_id(3) p1.role_saved = 'Person1' p2.role_saved = 'Person2' p3.role_saved = 'Person3' #class Name(Page): # # def is_displayed(self): # return self.subsession.round_number == 1 # form_model = models.Player # form_fields = ['ppnr', 'name', 'age', 'gender', 'study'] #class Wait2(WaitPage): # def is_displayed(self): # return self.subsession.round_number ==1 class Introduction(Page): def is_displayed(self): return self.subsession.round_number == 1 def vars_for_template(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p3 = self.group.get_player_by_id(3) p1_name = p1.name p2_name = p2.name p3_name = p3.name if self.player.role_saved == "Person1": role = "Person 1" elif self.player.role_saved == "Person2": role = "Person 2" else: role = "Person 3" return {'role': role, 'p1_name': p1_name, 'p2_name': p2_name, 'p3_name': p3_name} class Decision(Page): form_model = models.Player form_fields = ['volunteer'] def vars_for_template(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p3 = self.group.get_player_by_id(3) if p1.volunteer == True: p1_choice = 'gave up points for the group' else: p1_choice = 'did not give up points for the group' if p2.volunteer == True: p2_choice = 'gave up points for the group' else: p2_choice = 'did not give up points for the group' if p3.volunteer == True: p3_choice = 'gave up points for the group' else: p3_choice = 'did not give up points for the group' if self.player.role_saved == "Person1": role = "Person 1" elif self.player.role_saved == "Person2": role = "Person 2" else: role = "Person 3" return {'role': role, 'p1_choice': p1_choice, 'p2_choice': p2_choice, 'p3_choice': p3_choice, 'num_volunteers': len([ p for p in self.group.get_players() if p.volunteer])} def before_next_page(self): self.player.name = "anonymous" class ResultsWaitPage(WaitPage): def after_all_players_arrive(self): self.group.set_payoffs() class Results(Page): def is_displayed(self): return self.subsession.round_number < Constants.num_rounds def vars_for_template(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p3 = self.group.get_player_by_id(3) if p1.volunteer == True: p1_choice = 'gave up points for the group' else: p1_choice = 'did not give up points for the group' if p2.volunteer == True: p2_choice = 'gave up points for the group' else: p2_choice = 'did not give up points for the group' if p3.volunteer == True: p3_choice = 'gave up points for the group' else: p3_choice = 'did not give up points for the group' if self.player.role_saved == "Person1": role = "Person 1" elif self.player.role_saved == "Person2": role = "Person 2" else: role = "Person 3" return {'role': role, 'p1_choice': p1_choice, 'p2_choice': p2_choice, 'p3_choice': p3_choice, 'num_volunteers': len([ p for p in self.group.get_players() if p.volunteer])} class Results2(Page): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds def vars_for_template(self): p1 = self.group.get_player_by_id(1) p2 = self.group.get_player_by_id(2) p3 = self.group.get_player_by_id(3) if p1.volunteer == True: p1_choice = 'gave up points for the group' else: p1_choice = 'did not give up points for the group' if p2.volunteer == True: p2_choice = 'gave up points for the group' else: p2_choice = 'did not give up points for the group' if p3.volunteer == True: p3_choice = 'gave up points for the group' else: p3_choice = 'did not give up points for the group' if self.player.role_saved == "Person1": role = "Person 1" elif self.player.role_saved == "Person2": role = "Person 2" else: role = "Person 3" return {'role': role, 'p1_choice': p1_choice, 'p2_choice': p2_choice, 'p3_choice': p3_choice, 'num_volunteers': len([ p for p in self.group.get_players() if p.volunteer])} class Manipulationcheck(Page): def is_displayed(self): return self.subsession.round_number == Constants.num_rounds form_model = models.Player form_fields = ['checkbinary', 'checklikert', 'checklong'] page_sequence = [Wait, #Name, #Wait2, Introduction, Decision, ResultsWaitPage, Results, Results2, Manipulationcheck]