from otree.api import Currency as c, currency_range from . import models from ._builtin import Page, WaitPage from .models import Constants import random from random import shuffle import itertools from decimal import * import time def vars_for_all_templates(self): return { 'condition': self.participant.vars['condition'] } class GroupWait(WaitPage): template_name = 'cost_allocation_task/CWaitPage.html' body_text = "Please wait briefly while the other Manager arrives..." title_text = "" group_by_arrival_time = True class PreTask(Page): def before_next_page(self): # Bring vars forward to this app self.player.condition = self.participant.vars['condition'] # Pick a pay period and store it in participant vars for stage two app pay_choice = (1, 2, 3, 4, 5, 6) self.player.pay_period = random.choice(pay_choice) self.participant.vars['pay_period'] = self.player.pay_period # Get their partner partner = self.player.get_partner() self.player.partner_id = partner.id class Decision1(Page): form_model = models.Player form_fields = ['joint_project_1', 'individual_project_1'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_1=self.player.joint_project_1, partner_individual_1=self.player.individual_project_1) class Decision2(Page): form_model = models.Player form_fields = ['joint_project_2', 'individual_project_2'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_2=self.player.joint_project_2, partner_individual_2=self.player.individual_project_2) class Decision3(Page): form_model = models.Player form_fields = ['joint_project_3', 'individual_project_3'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_3=self.player.joint_project_3, partner_individual_3=self.player.individual_project_3) class Decision4(Page): form_model = models.Player form_fields = ['joint_project_4', 'individual_project_4'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_4=self.player.joint_project_4, partner_individual_4=self.player.individual_project_4) class Decision5(Page): form_model = models.Player form_fields = ['joint_project_5', 'individual_project_5'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_5=self.player.joint_project_5, partner_individual_5=self.player.individual_project_5) class Decision6(Page): form_model = models.Player form_fields = ['joint_project_6', 'individual_project_6'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_6=self.player.joint_project_6, partner_individual_6=self.player.individual_project_6) class Decision7(Page): form_model = models.Player form_fields = ['joint_project_7', 'individual_project_7'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_7=self.player.joint_project_7, partner_individual_7=self.player.individual_project_7) class Decision8(Page): form_model = models.Player form_fields = ['joint_project_8', 'individual_project_8'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_8=self.player.joint_project_8, partner_individual_8=self.player.individual_project_8) class Decision9(Page): form_model = models.Player form_fields = ['joint_project_9', 'individual_project_9'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_9=self.player.joint_project_9, partner_individual_9=self.player.individual_project_9) class Decision10(Page): form_model = models.Player form_fields = ['joint_project_10', 'individual_project_10'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_10=self.player.joint_project_10, partner_individual_10=self.player.individual_project_10) class Decision11(Page): form_model = models.Player form_fields = ['joint_project_11', 'individual_project_11'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_11=self.player.joint_project_11, partner_individual_11=self.player.individual_project_11) class Decision12(Page): form_model = models.Player form_fields = ['joint_project_12', 'individual_project_12'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_12=self.player.joint_project_12, partner_individual_12=self.player.individual_project_12) class Decision13(Page): form_model = models.Player form_fields = ['joint_project_13', 'individual_project_13'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_13=self.player.joint_project_13, partner_individual_13=self.player.individual_project_13) class Decision14(Page): form_model = models.Player form_fields = ['joint_project_14', 'individual_project_14'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_14=self.player.joint_project_14, partner_individual_14=self.player.individual_project_14) class Decision15(Page): form_model = models.Player form_fields = ['joint_project_15', 'individual_project_15'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_joint_15=self.player.joint_project_15, partner_individual_15=self.player.individual_project_15) class ResultWaitFirst(WaitPage): template_name = 'cost_allocation_task_bsw2/CWaitPage.html' body_text = "Please wait briefly while the other Manager finishes making their decision..." title_text = "" class ResultWait(WaitPage): template_name = 'cost_allocation_task_bsw2/CWaitPage2.html' body_text = "Please wait briefly while the other Manager finishes making their decision..." title_text = "" class ResultWait2(WaitPage): template_name = 'cost_allocation_task_bsw2/CWaitPage3.html' body_text = "Please wait briefly while the other Manager finishes making their decision..." title_text = "" class PreResult1(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_1 == "High": if self.player.partner_joint_1 == "High": self.player.joint_revenue_1 = 700 self.player.individual_revenue_1 = 300 self.player.total_revenue_1 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_1 = 700 self.player.partner_ind_rev_1 = 300 self.player.partner_tot_rev_1 = 1000 self.player.rev_portion_1 = 50 self.player.partner_rev_portion_1 = 50 self.player.cost_1 = 250 self.player.partner_cost_1 = 250 self.player.profit_1 = 750 self.player.partner_profit_1 = 750 else: self.player.joint_revenue_1 = 500 self.player.individual_revenue_1 = 300 self.player.total_revenue_1 = 800 # (500 j + 300 i) self.player.partner_joint_rev_1 = 500 self.player.partner_ind_rev_1 = 600 self.player.partner_tot_rev_1 = 1100 self.player.rev_portion_1 = 42 self.player.partner_rev_portion_1 = 58 if self.player.condition == 1: self.player.cost_1 = 250 self.player.partner_cost_1 = 250 self.player.profit_1 = 550 self.player.partner_profit_1 = 850 else: self.player.cost_1 = 210 self.player.partner_cost_1 = 290 self.player.profit_1 = 590 self.player.partner_profit_1 = 810 else: if self.player.partner_joint_1 == "High": self.player.joint_revenue_1 = 500 self.player.individual_revenue_1 = 600 self.player.total_revenue_1 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_1 = 500 self.player.partner_ind_rev_1 = 300 self.player.partner_tot_rev_1 = 800 self.player.rev_portion_1 = 58 self.player.partner_rev_portion_1 = 42 if self.player.condition == 1: self.player.cost_1 = 250 self.player.partner_cost_1 = 250 self.player.profit_1 = 850 self.player.partner_profit_1 = 550 else: self.player.cost_1 = 290 self.player.partner_cost_1 = 210 self.player.profit_1 = 810 self.player.partner_profit_1 = 590 else: self.player.joint_revenue_1 = 300 self.player.individual_revenue_1 = 600 self.player.total_revenue_1 = 900 # (300 j + 600 i) self.player.partner_joint_rev_1 = 300 self.player.partner_ind_rev_1 = 600 self.player.partner_tot_rev_1 = 900 self.player.rev_portion_1 = 50 self.player.partner_rev_portion_1 = 50 self.player.cost_1 = 250 self.player.partner_cost_1 = 250 self.player.profit_1 = 650 self.player.partner_profit_1 = 650 class PreResult2(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_2 == "High": if self.player.partner_joint_2 == "High": self.player.joint_revenue_2 = 700 self.player.individual_revenue_2 = 300 self.player.total_revenue_2 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_2 = 700 self.player.partner_ind_rev_2 = 300 self.player.partner_tot_rev_2 = 1000 self.player.rev_portion_2 = 50 self.player.partner_rev_portion_2 = 50 self.player.cost_2 = 250 self.player.partner_cost_2 = 250 self.player.profit_2 = 750 self.player.partner_profit_2 = 750 else: self.player.joint_revenue_2 = 500 self.player.individual_revenue_2 = 300 self.player.total_revenue_2 = 800 # (500 j + 300 i) self.player.partner_joint_rev_2 = 500 self.player.partner_ind_rev_2 = 600 self.player.partner_tot_rev_2 = 1100 self.player.rev_portion_2 = 42 self.player.partner_rev_portion_2 = 58 if self.player.condition == 1: self.player.cost_2 = 250 self.player.partner_cost_2 = 250 self.player.profit_2 = 550 self.player.partner_profit_2 = 850 else: self.player.cost_2 = 210 self.player.partner_cost_2 = 290 self.player.profit_2 = 590 self.player.partner_profit_2 = 810 else: if self.player.partner_joint_2 == "High": self.player.joint_revenue_2 = 500 self.player.individual_revenue_2 = 600 self.player.total_revenue_2 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_2 = 500 self.player.partner_ind_rev_2 = 300 self.player.partner_tot_rev_2 = 800 self.player.rev_portion_2 = 58 self.player.partner_rev_portion_2 = 42 if self.player.condition == 1: self.player.cost_2 = 250 self.player.partner_cost_2 = 250 self.player.profit_2 = 850 self.player.partner_profit_2 = 550 else: self.player.cost_2 = 290 self.player.partner_cost_2 = 210 self.player.profit_2 = 810 self.player.partner_profit_2 = 590 else: self.player.joint_revenue_2 = 300 self.player.individual_revenue_2 = 600 self.player.total_revenue_2 = 900 # (300 j + 600 i) self.player.partner_joint_rev_2 = 300 self.player.partner_ind_rev_2 = 600 self.player.partner_tot_rev_2 = 900 self.player.rev_portion_2 = 50 self.player.partner_rev_portion_2 = 50 self.player.cost_2 = 250 self.player.partner_cost_2 = 250 self.player.profit_2 = 650 self.player.partner_profit_2 = 650 class PreResult3(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_3 == "High": if self.player.partner_joint_3 == "High": self.player.joint_revenue_3 = 700 self.player.individual_revenue_3 = 300 self.player.total_revenue_3 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_3 = 700 self.player.partner_ind_rev_3 = 300 self.player.partner_tot_rev_3 = 1000 self.player.rev_portion_3 = 50 self.player.partner_rev_portion_3 = 50 self.player.cost_3 = 250 self.player.partner_cost_3 = 250 self.player.profit_3 = 750 self.player.partner_profit_3 = 750 else: self.player.joint_revenue_3 = 500 self.player.individual_revenue_3 = 300 self.player.total_revenue_3 = 800 # (500 j + 300 i) self.player.partner_joint_rev_3 = 500 self.player.partner_ind_rev_3 = 600 self.player.partner_tot_rev_3 = 1100 self.player.rev_portion_3 = 42 self.player.partner_rev_portion_3 = 58 if self.player.condition == 1: self.player.cost_3 = 250 self.player.partner_cost_3 = 250 self.player.profit_3 = 550 self.player.partner_profit_3 = 850 else: self.player.cost_3 = 210 self.player.partner_cost_3 = 290 self.player.profit_3 = 590 self.player.partner_profit_3 = 810 else: if self.player.partner_joint_3 == "High": self.player.joint_revenue_3 = 500 self.player.individual_revenue_3 = 600 self.player.total_revenue_3 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_3 = 500 self.player.partner_ind_rev_3 = 300 self.player.partner_tot_rev_3 = 800 self.player.rev_portion_3 = 58 self.player.partner_rev_portion_3 = 42 if self.player.condition == 1: self.player.cost_3 = 250 self.player.partner_cost_3 = 250 self.player.profit_3 = 850 self.player.partner_profit_3 = 550 else: self.player.cost_3 = 290 self.player.partner_cost_3 = 210 self.player.profit_3 = 810 self.player.partner_profit_3 = 590 else: self.player.joint_revenue_3 = 300 self.player.individual_revenue_3 = 600 self.player.total_revenue_3 = 900 # (300 j + 600 i) self.player.partner_joint_rev_3 = 300 self.player.partner_ind_rev_3 = 600 self.player.partner_tot_rev_3 = 900 self.player.rev_portion_3 = 50 self.player.partner_rev_portion_3 = 50 self.player.cost_3 = 250 self.player.partner_cost_3 = 250 self.player.profit_3 = 650 self.player.partner_profit_3 = 650 class PreResult4(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_4 == "High": if self.player.partner_joint_4 == "High": self.player.joint_revenue_4 = 700 self.player.individual_revenue_4 = 300 self.player.total_revenue_4 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_4 = 700 self.player.partner_ind_rev_4 = 300 self.player.partner_tot_rev_4 = 1000 self.player.rev_portion_4 = 50 self.player.partner_rev_portion_4 = 50 self.player.cost_4 = 250 self.player.partner_cost_4 = 250 self.player.profit_4 = 750 self.player.partner_profit_4 = 750 else: self.player.joint_revenue_4 = 500 self.player.individual_revenue_4 = 300 self.player.total_revenue_4 = 800 # (500 j + 300 i) self.player.partner_joint_rev_4 = 500 self.player.partner_ind_rev_4 = 600 self.player.partner_tot_rev_4 = 1100 self.player.rev_portion_4 = 42 self.player.partner_rev_portion_4 = 58 if self.player.condition == 1: self.player.cost_4 = 250 self.player.partner_cost_4 = 250 self.player.profit_4 = 550 self.player.partner_profit_4 = 850 else: self.player.cost_4 = 210 self.player.partner_cost_4 = 290 self.player.profit_4 = 590 self.player.partner_profit_4 = 810 else: if self.player.partner_joint_4 == "High": self.player.joint_revenue_4 = 500 self.player.individual_revenue_4 = 600 self.player.total_revenue_4 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_4 = 500 self.player.partner_ind_rev_4 = 300 self.player.partner_tot_rev_4 = 800 self.player.rev_portion_4 = 58 self.player.partner_rev_portion_4 = 42 if self.player.condition == 1: self.player.cost_4 = 250 self.player.partner_cost_4 = 250 self.player.profit_4 = 850 self.player.partner_profit_4 = 550 else: self.player.cost_4 = 290 self.player.partner_cost_4 = 210 self.player.profit_4 = 810 self.player.partner_profit_4 = 590 else: self.player.joint_revenue_4 = 300 self.player.individual_revenue_4 = 600 self.player.total_revenue_4 = 900 # (300 j + 600 i) self.player.partner_joint_rev_4 = 300 self.player.partner_ind_rev_4 = 600 self.player.partner_tot_rev_4 = 900 self.player.rev_portion_4 = 50 self.player.partner_rev_portion_4 = 50 self.player.cost_4 = 250 self.player.partner_cost_4 = 250 self.player.profit_4 = 650 self.player.partner_profit_4 = 650 class PreResult5(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_5 == "High": if self.player.partner_joint_5 == "High": self.player.joint_revenue_5 = 700 self.player.individual_revenue_5 = 300 self.player.total_revenue_5 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_5 = 700 self.player.partner_ind_rev_5 = 300 self.player.partner_tot_rev_5 = 1000 self.player.rev_portion_5 = 50 self.player.partner_rev_portion_5 = 50 self.player.cost_5 = 250 self.player.partner_cost_5 = 250 self.player.profit_5 = 750 self.player.partner_profit_5 = 750 else: self.player.joint_revenue_5 = 500 self.player.individual_revenue_5 = 300 self.player.total_revenue_5 = 800 # (500 j + 300 i) self.player.partner_joint_rev_5 = 500 self.player.partner_ind_rev_5 = 600 self.player.partner_tot_rev_5 = 1100 self.player.rev_portion_5 = 42 self.player.partner_rev_portion_5 = 58 if self.player.condition == 1: self.player.cost_5 = 250 self.player.partner_cost_5 = 250 self.player.profit_5 = 550 self.player.partner_profit_5 = 850 else: self.player.cost_5 = 210 self.player.partner_cost_5 = 290 self.player.profit_5 = 590 self.player.partner_profit_5 = 810 else: if self.player.partner_joint_5 == "High": self.player.joint_revenue_5 = 500 self.player.individual_revenue_5 = 600 self.player.total_revenue_5 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_5 = 500 self.player.partner_ind_rev_5 = 300 self.player.partner_tot_rev_5 = 800 self.player.rev_portion_5 = 58 self.player.partner_rev_portion_5 = 42 if self.player.condition == 1: self.player.cost_5 = 250 self.player.partner_cost_5 = 250 self.player.profit_5 = 850 self.player.partner_profit_5 = 550 else: self.player.cost_5 = 290 self.player.partner_cost_5 = 210 self.player.profit_5 = 810 self.player.partner_profit_5 = 590 else: self.player.joint_revenue_5 = 300 self.player.individual_revenue_5 = 600 self.player.total_revenue_5 = 900 # (300 j + 600 i) self.player.partner_joint_rev_5 = 300 self.player.partner_ind_rev_5 = 600 self.player.partner_tot_rev_5 = 900 self.player.rev_portion_5 = 50 self.player.partner_rev_portion_5 = 50 self.player.cost_5 = 250 self.player.partner_cost_5 = 250 self.player.profit_5 = 650 self.player.partner_profit_5 = 650 class PreResult6(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_6 == "High": if self.player.partner_joint_6 == "High": self.player.joint_revenue_6 = 700 self.player.individual_revenue_6 = 300 self.player.total_revenue_6 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_6 = 700 self.player.partner_ind_rev_6 = 300 self.player.partner_tot_rev_6 = 1000 self.player.rev_portion_6 = 50 self.player.partner_rev_portion_6 = 50 self.player.cost_6 = 250 self.player.partner_cost_6 = 250 self.player.profit_6 = 750 self.player.partner_profit_6 = 750 else: self.player.joint_revenue_6 = 500 self.player.individual_revenue_6 = 300 self.player.total_revenue_6 = 800 # (500 j + 300 i) self.player.partner_joint_rev_6 = 500 self.player.partner_ind_rev_6 = 600 self.player.partner_tot_rev_6 = 1100 self.player.rev_portion_6 = 42 self.player.partner_rev_portion_6 = 58 if self.player.condition == 1: self.player.cost_6 = 250 self.player.partner_cost_6 = 250 self.player.profit_6 = 550 self.player.partner_profit_6 = 850 else: self.player.cost_6 = 210 self.player.partner_cost_6 = 290 self.player.profit_6 = 590 self.player.partner_profit_6 = 810 else: if self.player.partner_joint_6 == "High": self.player.joint_revenue_6 = 500 self.player.individual_revenue_6 = 600 self.player.total_revenue_6 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_6 = 500 self.player.partner_ind_rev_6 = 300 self.player.partner_tot_rev_6 = 800 self.player.rev_portion_6 = 58 self.player.partner_rev_portion_6 = 42 if self.player.condition == 1: self.player.cost_6 = 250 self.player.partner_cost_6 = 250 self.player.profit_6 = 850 self.player.partner_profit_6 = 550 else: self.player.cost_6 = 290 self.player.partner_cost_6 = 210 self.player.profit_6 = 810 self.player.partner_profit_6 = 590 else: self.player.joint_revenue_6 = 300 self.player.individual_revenue_6 = 600 self.player.total_revenue_6 = 900 # (300 j + 600 i) self.player.partner_joint_rev_6 = 300 self.player.partner_ind_rev_6 = 600 self.player.partner_tot_rev_6 = 900 self.player.rev_portion_6 = 50 self.player.partner_rev_portion_6 = 50 self.player.cost_6 = 250 self.player.partner_cost_6 = 250 self.player.profit_6 = 650 self.player.partner_profit_6 = 650 class PreResult7(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_7 == "High": if self.player.partner_joint_7 == "High": self.player.joint_revenue_7 = 700 self.player.individual_revenue_7 = 300 self.player.total_revenue_7 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_7 = 700 self.player.partner_ind_rev_7 = 300 self.player.partner_tot_rev_7 = 1000 self.player.rev_portion_7 = 50 self.player.partner_rev_portion_7 = 50 self.player.cost_7 = 250 self.player.partner_cost_7 = 250 self.player.profit_7 = 750 self.player.partner_profit_7 = 750 else: self.player.joint_revenue_7 = 500 self.player.individual_revenue_7 = 300 self.player.total_revenue_7 = 800 # (500 j + 300 i) self.player.partner_joint_rev_7 = 500 self.player.partner_ind_rev_7 = 600 self.player.partner_tot_rev_7 = 1100 self.player.rev_portion_7 = 42 self.player.partner_rev_portion_7 = 58 if self.player.condition == 1: self.player.cost_7 = 250 self.player.partner_cost_7 = 250 self.player.profit_7 = 550 self.player.partner_profit_7 = 850 else: self.player.cost_7 = 210 self.player.partner_cost_7 = 290 self.player.profit_7 = 590 self.player.partner_profit_7 = 810 else: if self.player.partner_joint_7 == "High": self.player.joint_revenue_7 = 500 self.player.individual_revenue_7 = 600 self.player.total_revenue_7 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_7 = 500 self.player.partner_ind_rev_7 = 300 self.player.partner_tot_rev_7 = 800 self.player.rev_portion_7 = 58 self.player.partner_rev_portion_7 = 42 if self.player.condition == 1: self.player.cost_7 = 250 self.player.partner_cost_7 = 250 self.player.profit_7 = 850 self.player.partner_profit_7 = 550 else: self.player.cost_7 = 290 self.player.partner_cost_7 = 210 self.player.profit_7 = 810 self.player.partner_profit_7 = 590 else: self.player.joint_revenue_7 = 300 self.player.individual_revenue_7 = 600 self.player.total_revenue_7 = 900 # (300 j + 600 i) self.player.partner_joint_rev_7 = 300 self.player.partner_ind_rev_7 = 600 self.player.partner_tot_rev_7 = 900 self.player.rev_portion_7 = 50 self.player.partner_rev_portion_7 = 50 self.player.cost_7 = 250 self.player.partner_cost_7 = 250 self.player.profit_7 = 650 self.player.partner_profit_7 = 650 class PreResult8(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_8 == "High": if self.player.partner_joint_8 == "High": self.player.joint_revenue_8 = 700 self.player.individual_revenue_8 = 300 self.player.total_revenue_8 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_8 = 700 self.player.partner_ind_rev_8 = 300 self.player.partner_tot_rev_8 = 1000 self.player.rev_portion_8 = 50 self.player.partner_rev_portion_8 = 50 self.player.cost_8 = 250 self.player.partner_cost_8 = 250 self.player.profit_8 = 750 self.player.partner_profit_8 = 750 else: self.player.joint_revenue_8 = 500 self.player.individual_revenue_8 = 300 self.player.total_revenue_8 = 800 # (500 j + 300 i) self.player.partner_joint_rev_8 = 500 self.player.partner_ind_rev_8 = 600 self.player.partner_tot_rev_8 = 1100 self.player.rev_portion_8 = 42 self.player.partner_rev_portion_8 = 58 if self.player.condition == 1: self.player.cost_8 = 250 self.player.partner_cost_8 = 250 self.player.profit_8 = 550 self.player.partner_profit_8 = 850 else: self.player.cost_8 = 210 self.player.partner_cost_8 = 290 self.player.profit_8 = 590 self.player.partner_profit_8 = 810 else: if self.player.partner_joint_8 == "High": self.player.joint_revenue_8 = 500 self.player.individual_revenue_8 = 600 self.player.total_revenue_8 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_8 = 500 self.player.partner_ind_rev_8 = 300 self.player.partner_tot_rev_8 = 800 self.player.rev_portion_8 = 58 self.player.partner_rev_portion_8 = 42 if self.player.condition == 1: self.player.cost_8 = 250 self.player.partner_cost_8 = 250 self.player.profit_8 = 850 self.player.partner_profit_8 = 550 else: self.player.cost_8 = 290 self.player.partner_cost_8 = 210 self.player.profit_8 = 810 self.player.partner_profit_8 = 590 else: self.player.joint_revenue_8 = 300 self.player.individual_revenue_8 = 600 self.player.total_revenue_8 = 900 # (300 j + 600 i) self.player.partner_joint_rev_8 = 300 self.player.partner_ind_rev_8 = 600 self.player.partner_tot_rev_8 = 900 self.player.rev_portion_8 = 50 self.player.partner_rev_portion_8 = 50 self.player.cost_8 = 250 self.player.partner_cost_8 = 250 self.player.profit_8 = 650 self.player.partner_profit_8 = 650 class PreResult9(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_9 == "High": if self.player.partner_joint_9 == "High": self.player.joint_revenue_9 = 700 self.player.individual_revenue_9 = 300 self.player.total_revenue_9 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_9 = 700 self.player.partner_ind_rev_9 = 300 self.player.partner_tot_rev_9 = 1000 self.player.rev_portion_9 = 50 self.player.partner_rev_portion_9 = 50 self.player.cost_9 = 250 self.player.partner_cost_9 = 250 self.player.profit_9 = 750 self.player.partner_profit_9 = 750 else: self.player.joint_revenue_9 = 500 self.player.individual_revenue_9 = 300 self.player.total_revenue_9 = 800 # (500 j + 300 i) self.player.partner_joint_rev_9 = 500 self.player.partner_ind_rev_9 = 600 self.player.partner_tot_rev_9 = 1100 self.player.rev_portion_9 = 42 self.player.partner_rev_portion_9 = 58 if self.player.condition == 1: self.player.cost_9 = 250 self.player.partner_cost_9 = 250 self.player.profit_9 = 550 self.player.partner_profit_9 = 850 else: self.player.cost_9 = 210 self.player.partner_cost_9 = 290 self.player.profit_9 = 590 self.player.partner_profit_9 = 810 else: if self.player.partner_joint_9 == "High": self.player.joint_revenue_9 = 500 self.player.individual_revenue_9 = 600 self.player.total_revenue_9 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_9 = 500 self.player.partner_ind_rev_9 = 300 self.player.partner_tot_rev_9 = 800 self.player.rev_portion_9 = 58 self.player.partner_rev_portion_9 = 42 if self.player.condition == 1: self.player.cost_9 = 250 self.player.partner_cost_9 = 250 self.player.profit_9 = 850 self.player.partner_profit_9 = 550 else: self.player.cost_9 = 290 self.player.partner_cost_9 = 210 self.player.profit_9 = 810 self.player.partner_profit_9 = 590 else: self.player.joint_revenue_9 = 300 self.player.individual_revenue_9 = 600 self.player.total_revenue_9 = 900 # (300 j + 600 i) self.player.partner_joint_rev_9 = 300 self.player.partner_ind_rev_9 = 600 self.player.partner_tot_rev_9 = 900 self.player.rev_portion_9 = 50 self.player.partner_rev_portion_9 = 50 self.player.cost_9 = 250 self.player.partner_cost_9 = 250 self.player.profit_9 = 650 self.player.partner_profit_9 = 650 class PreResult10(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_10 == "High": if self.player.partner_joint_10 == "High": self.player.joint_revenue_10 = 700 self.player.individual_revenue_10 = 300 self.player.total_revenue_10 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_10 = 700 self.player.partner_ind_rev_10 = 300 self.player.partner_tot_rev_10 = 1000 self.player.rev_portion_10 = 50 self.player.partner_rev_portion_10 = 50 self.player.cost_10 = 250 self.player.partner_cost_10 = 250 self.player.profit_10 = 750 self.player.partner_profit_10 = 750 else: self.player.joint_revenue_10 = 500 self.player.individual_revenue_10 = 300 self.player.total_revenue_10 = 800 # (500 j + 300 i) self.player.partner_joint_rev_10 = 500 self.player.partner_ind_rev_10 = 600 self.player.partner_tot_rev_10 = 1100 self.player.rev_portion_10 = 42 self.player.partner_rev_portion_10 = 58 if self.player.condition == 1: self.player.cost_10 = 250 self.player.partner_cost_10 = 250 self.player.profit_10 = 550 self.player.partner_profit_10 = 850 else: self.player.cost_10 = 210 self.player.partner_cost_10 = 290 self.player.profit_10 = 590 self.player.partner_profit_10 = 810 else: if self.player.partner_joint_10 == "High": self.player.joint_revenue_10 = 500 self.player.individual_revenue_10 = 600 self.player.total_revenue_10 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_10 = 500 self.player.partner_ind_rev_10 = 300 self.player.partner_tot_rev_10 = 800 self.player.rev_portion_10 = 58 self.player.partner_rev_portion_10 = 42 if self.player.condition == 1: self.player.cost_10 = 250 self.player.partner_cost_10 = 250 self.player.profit_10 = 850 self.player.partner_profit_10 = 550 else: self.player.cost_10 = 290 self.player.partner_cost_10 = 210 self.player.profit_10 = 810 self.player.partner_profit_10 = 590 else: self.player.joint_revenue_10 = 300 self.player.individual_revenue_10 = 600 self.player.total_revenue_10 = 900 # (300 j + 600 i) self.player.partner_joint_rev_10 = 300 self.player.partner_ind_rev_10 = 600 self.player.partner_tot_rev_10 = 900 self.player.rev_portion_10 = 50 self.player.partner_rev_portion_10 = 50 self.player.cost_10 = 250 self.player.partner_cost_10 = 250 self.player.profit_10 = 650 self.player.partner_profit_10 = 650 class PreResult11(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_11 == "High": if self.player.partner_joint_11 == "High": self.player.joint_revenue_11 = 700 self.player.individual_revenue_11 = 300 self.player.total_revenue_11 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_11 = 700 self.player.partner_ind_rev_11 = 300 self.player.partner_tot_rev_11 = 1000 self.player.rev_portion_11 = 50 self.player.partner_rev_portion_11 = 50 self.player.cost_11 = 250 self.player.partner_cost_11 = 250 self.player.profit_11 = 750 self.player.partner_profit_11 = 750 else: self.player.joint_revenue_11 = 500 self.player.individual_revenue_11 = 300 self.player.total_revenue_11 = 800 # (500 j + 300 i) self.player.partner_joint_rev_11 = 500 self.player.partner_ind_rev_11 = 600 self.player.partner_tot_rev_11 = 1100 self.player.rev_portion_11 = 42 self.player.partner_rev_portion_11 = 58 if self.player.condition == 1: self.player.cost_11 = 250 self.player.partner_cost_11 = 250 self.player.profit_11 = 550 self.player.partner_profit_11 = 850 else: self.player.cost_11 = 210 self.player.partner_cost_11 = 290 self.player.profit_11 = 590 self.player.partner_profit_11 = 810 else: if self.player.partner_joint_11 == "High": self.player.joint_revenue_11 = 500 self.player.individual_revenue_11 = 600 self.player.total_revenue_11 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_11 = 500 self.player.partner_ind_rev_11 = 300 self.player.partner_tot_rev_11 = 800 self.player.rev_portion_11 = 58 self.player.partner_rev_portion_11 = 42 if self.player.condition == 1: self.player.cost_11 = 250 self.player.partner_cost_11 = 250 self.player.profit_11 = 850 self.player.partner_profit_11 = 550 else: self.player.cost_11 = 290 self.player.partner_cost_11 = 210 self.player.profit_11 = 810 self.player.partner_profit_11 = 590 else: self.player.joint_revenue_11 = 300 self.player.individual_revenue_11 = 600 self.player.total_revenue_11 = 900 # (300 j + 600 i) self.player.partner_joint_rev_11 = 300 self.player.partner_ind_rev_11 = 600 self.player.partner_tot_rev_11 = 900 self.player.rev_portion_11 = 50 self.player.partner_rev_portion_11 = 50 self.player.cost_11 = 250 self.player.partner_cost_11 = 250 self.player.profit_11 = 650 self.player.partner_profit_11 = 650 class PreResult12(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_12 == "High": if self.player.partner_joint_12 == "High": self.player.joint_revenue_12 = 700 self.player.individual_revenue_12 = 300 self.player.total_revenue_12 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_12 = 700 self.player.partner_ind_rev_12 = 300 self.player.partner_tot_rev_12 = 1000 self.player.rev_portion_12 = 50 self.player.partner_rev_portion_12 = 50 self.player.cost_12 = 250 self.player.partner_cost_12 = 250 self.player.profit_12 = 750 self.player.partner_profit_12 = 750 else: self.player.joint_revenue_12 = 500 self.player.individual_revenue_12 = 300 self.player.total_revenue_12 = 800 # (500 j + 300 i) self.player.partner_joint_rev_12 = 500 self.player.partner_ind_rev_12 = 600 self.player.partner_tot_rev_12 = 1100 self.player.rev_portion_12 = 42 self.player.partner_rev_portion_12 = 58 if self.player.condition == 1: self.player.cost_12 = 250 self.player.partner_cost_12 = 250 self.player.profit_12 = 550 self.player.partner_profit_12 = 850 else: self.player.cost_12 = 210 self.player.partner_cost_12 = 290 self.player.profit_12 = 590 self.player.partner_profit_12 = 810 else: if self.player.partner_joint_12 == "High": self.player.joint_revenue_12 = 500 self.player.individual_revenue_12 = 600 self.player.total_revenue_12 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_12 = 500 self.player.partner_ind_rev_12 = 300 self.player.partner_tot_rev_12 = 800 self.player.rev_portion_12 = 58 self.player.partner_rev_portion_12 = 42 if self.player.condition == 1: self.player.cost_12 = 250 self.player.partner_cost_12 = 250 self.player.profit_12 = 850 self.player.partner_profit_12 = 550 else: self.player.cost_12 = 290 self.player.partner_cost_12 = 210 self.player.profit_12 = 810 self.player.partner_profit_12 = 590 else: self.player.joint_revenue_12 = 300 self.player.individual_revenue_12 = 600 self.player.total_revenue_12 = 900 # (300 j + 600 i) self.player.partner_joint_rev_12 = 300 self.player.partner_ind_rev_12 = 600 self.player.partner_tot_rev_12 = 900 self.player.rev_portion_12 = 50 self.player.partner_rev_portion_12 = 50 self.player.cost_12 = 250 self.player.partner_cost_12 = 250 self.player.profit_12 = 650 self.player.partner_profit_12 = 650 class PreResult13(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_13 == "High": if self.player.partner_joint_13 == "High": self.player.joint_revenue_13 = 700 self.player.individual_revenue_13 = 300 self.player.total_revenue_13 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_13 = 700 self.player.partner_ind_rev_13 = 300 self.player.partner_tot_rev_13 = 1000 self.player.rev_portion_13 = 50 self.player.partner_rev_portion_13 = 50 self.player.cost_13 = 250 self.player.partner_cost_13 = 250 self.player.profit_13 = 750 self.player.partner_profit_13 = 750 else: self.player.joint_revenue_13 = 500 self.player.individual_revenue_13 = 300 self.player.total_revenue_13 = 800 # (500 j + 300 i) self.player.partner_joint_rev_13 = 500 self.player.partner_ind_rev_13 = 600 self.player.partner_tot_rev_13 = 1100 self.player.rev_portion_13 = 42 self.player.partner_rev_portion_13 = 58 if self.player.condition == 1: self.player.cost_13 = 250 self.player.partner_cost_13 = 250 self.player.profit_13 = 550 self.player.partner_profit_13 = 850 else: self.player.cost_13 = 210 self.player.partner_cost_13 = 290 self.player.profit_13 = 590 self.player.partner_profit_13 = 810 else: if self.player.partner_joint_13 == "High": self.player.joint_revenue_13 = 500 self.player.individual_revenue_13 = 600 self.player.total_revenue_13 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_13 = 500 self.player.partner_ind_rev_13 = 300 self.player.partner_tot_rev_13 = 800 self.player.rev_portion_13 = 58 self.player.partner_rev_portion_13 = 42 if self.player.condition == 1: self.player.cost_13 = 250 self.player.partner_cost_13 = 250 self.player.profit_13 = 850 self.player.partner_profit_13 = 550 else: self.player.cost_13 = 290 self.player.partner_cost_13 = 210 self.player.profit_13 = 810 self.player.partner_profit_13 = 590 else: self.player.joint_revenue_13 = 300 self.player.individual_revenue_13 = 600 self.player.total_revenue_13 = 900 # (300 j + 600 i) self.player.partner_joint_rev_13 = 300 self.player.partner_ind_rev_13 = 600 self.player.partner_tot_rev_13 = 900 self.player.rev_portion_13 = 50 self.player.partner_rev_portion_13 = 50 self.player.cost_13 = 250 self.player.partner_cost_13 = 250 self.player.profit_13 = 650 self.player.partner_profit_13 = 650 class PreResult14(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_14 == "High": if self.player.partner_joint_14 == "High": self.player.joint_revenue_14 = 700 self.player.individual_revenue_14 = 300 self.player.total_revenue_14 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_14 = 700 self.player.partner_ind_rev_14 = 300 self.player.partner_tot_rev_14 = 1000 self.player.rev_portion_14 = 50 self.player.partner_rev_portion_14 = 50 self.player.cost_14 = 250 self.player.partner_cost_14 = 250 self.player.profit_14 = 750 self.player.partner_profit_14 = 750 else: self.player.joint_revenue_14 = 500 self.player.individual_revenue_14 = 300 self.player.total_revenue_14 = 800 # (500 j + 300 i) self.player.partner_joint_rev_14 = 500 self.player.partner_ind_rev_14 = 600 self.player.partner_tot_rev_14 = 1100 self.player.rev_portion_14 = 42 self.player.partner_rev_portion_14 = 58 if self.player.condition == 1: self.player.cost_14 = 250 self.player.partner_cost_14 = 250 self.player.profit_14 = 550 self.player.partner_profit_14 = 850 else: self.player.cost_14 = 210 self.player.partner_cost_14 = 290 self.player.profit_14 = 590 self.player.partner_profit_14 = 810 else: if self.player.partner_joint_14 == "High": self.player.joint_revenue_14 = 500 self.player.individual_revenue_14 = 600 self.player.total_revenue_14 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_14 = 500 self.player.partner_ind_rev_14 = 300 self.player.partner_tot_rev_14 = 800 self.player.rev_portion_14 = 58 self.player.partner_rev_portion_14 = 42 if self.player.condition == 1: self.player.cost_14 = 250 self.player.partner_cost_14 = 250 self.player.profit_14 = 850 self.player.partner_profit_14 = 550 else: self.player.cost_14 = 290 self.player.partner_cost_14 = 210 self.player.profit_14 = 810 self.player.partner_profit_14 = 590 else: self.player.joint_revenue_14 = 300 self.player.individual_revenue_14 = 600 self.player.total_revenue_14 = 900 # (300 j + 600 i) self.player.partner_joint_rev_14 = 300 self.player.partner_ind_rev_14 = 600 self.player.partner_tot_rev_14 = 900 self.player.rev_portion_14 = 50 self.player.partner_rev_portion_14 = 50 self.player.cost_14 = 250 self.player.partner_cost_14 = 250 self.player.profit_14 = 650 self.player.partner_profit_14 = 650 class PreResult15(Page): template_name = 'cost_allocation_task_bsw2/PreResult.html' def before_next_page(self): if self.player.joint_project_15 == "High": if self.player.partner_joint_15 == "High": self.player.joint_revenue_15 = 700 self.player.individual_revenue_15 = 300 self.player.total_revenue_15 = 1000 # (700 j + 300 i) If high joint, must be low individual self.player.partner_joint_rev_15 = 700 self.player.partner_ind_rev_15 = 300 self.player.partner_tot_rev_15 = 1000 self.player.rev_portion_15 = 50 self.player.partner_rev_portion_15 = 50 self.player.cost_15 = 250 self.player.partner_cost_15 = 250 self.player.profit_15 = 750 self.player.partner_profit_15 = 750 else: self.player.joint_revenue_15 = 500 self.player.individual_revenue_15 = 300 self.player.total_revenue_15 = 800 # (500 j + 300 i) self.player.partner_joint_rev_15 = 500 self.player.partner_ind_rev_15 = 600 self.player.partner_tot_rev_15 = 1100 self.player.rev_portion_15 = 42 self.player.partner_rev_portion_15 = 58 if self.player.condition == 1: self.player.cost_15 = 250 self.player.partner_cost_15 = 250 self.player.profit_15 = 550 self.player.partner_profit_15 = 850 else: self.player.cost_15 = 210 self.player.partner_cost_15 = 290 self.player.profit_15 = 590 self.player.partner_profit_15 = 810 else: if self.player.partner_joint_15 == "High": self.player.joint_revenue_15 = 500 self.player.individual_revenue_15 = 600 self.player.total_revenue_15 = 1100 # (500 j + 600 i) self.player.partner_joint_rev_15 = 500 self.player.partner_ind_rev_15 = 300 self.player.partner_tot_rev_15 = 800 self.player.rev_portion_15 = 58 self.player.partner_rev_portion_15 = 42 if self.player.condition == 1: self.player.cost_15 = 250 self.player.partner_cost_15 = 250 self.player.profit_15 = 850 self.player.partner_profit_15 = 550 else: self.player.cost_15 = 290 self.player.partner_cost_15 = 210 self.player.profit_15 = 810 self.player.partner_profit_15 = 590 else: self.player.joint_revenue_15 = 300 self.player.individual_revenue_15 = 600 self.player.total_revenue_15 = 900 # (300 j + 600 i) self.player.partner_joint_rev_15 = 300 self.player.partner_ind_rev_15 = 600 self.player.partner_tot_rev_15 = 900 self.player.rev_portion_15 = 50 self.player.partner_rev_portion_15 = 50 self.player.cost_15 = 250 self.player.partner_cost_15 = 250 self.player.profit_15 = 650 self.player.partner_profit_15 = 650 class Results1(Page): form_model = models.Player class Results2(Page): form_model = models.Player class Results3(Page): form_model = models.Player class Results4(Page): form_model = models.Player class Results5(Page): form_model = models.Player class Results6(Page): form_model = models.Player class Results7(Page): form_model = models.Player class Results8(Page): form_model = models.Player class Results9(Page): form_model = models.Player class Results10(Page): form_model = models.Player class Results11(Page): form_model = models.Player class Results12(Page): form_model = models.Player class Results13(Page): form_model = models.Player class Results14(Page): form_model = models.Player class Results15(Page): form_model = models.Player class PEQ1(Page): form_model = models.Player form_fields = ['peq_group_attachment', 'peq_group_exit', 'peq_group_member_similarity', 'peq_group_salience', 'peq_relational_identification', 'peq_group_member_success' ] # Store the profit from the paying period for later down the road def before_next_page(self): if self.player.pay_period == 1: self.player.s1_pay_profit = self.player.profit_1 elif self.player.pay_period == 2: self.player.s1_pay_profit = self.player.profit_2 elif self.player.pay_period == 3: self.player.s1_pay_profit = self.player.profit_3 elif self.player.pay_period == 4: self.player.s1_pay_profit = self.player.profit_4 elif self.player.pay_period == 5: self.player.s1_pay_profit = self.player.profit_5 elif self.player.pay_period == 6: self.player.s1_pay_profit = self.player.profit_6 elif self.player.pay_period == 7: self.player.s1_pay_profit = self.player.profit_7 elif self.player.pay_period == 8: self.player.s1_pay_profit = self.player.profit_8 elif self.player.pay_period == 9: self.player.s1_pay_profit = self.player.profit_9 elif self.player.pay_period == 10: self.player.s1_pay_profit = self.player.profit_10 elif self.player.pay_period == 11: self.player.s1_pay_profit = self.player.profit_11 elif self.player.pay_period == 12: self.player.s1_pay_profit = self.player.profit_12 elif self.player.pay_period == 13: self.player.s1_pay_profit = self.player.profit_13 elif self.player.pay_period == 14: self.player.s1_pay_profit = self.player.profit_14 elif self.player.pay_period == 15: self.player.s1_pay_profit = self.player.profit_15 if self.player.s1_pay_profit < 591: self.player.coop_comp = '1.00' elif self.player.s1_pay_profit < 681: self.player.coop_comp = '2.00' elif self.player.s1_pay_profit < 771: self.player.coop_comp = '3.00' elif self.player.s1_pay_profit < 901: self.player.coop_comp = '4.00' class PEQ2(Page): form_model = models.Player form_fields = ['peq_choice_difficulty', 'peq_expected_bonus', 'peq_compensation_satisfaction', 'peq_allocation_fairness', 'peq_perceived_control' ] class TaskInstructions(Page): pass class KnowledgeCheck(Page): form_model = models.Player form_fields = ['kc2_1', 'kc2_2', 'kc2_3', 'kc2_4'] class StageTwoDecision(Page): form_model = models.Player form_fields = ['tokens_kept', 'tokens_contributed', 'decision_time'] def before_next_page(self): models.Player.objects.filter(id=self.player.partner_id).update(partner_tokens_kept=self.player.tokens_kept, partner_tokens_contributed=self.player.tokens_contributed, partner_decision_done=1 ) class PEQ3(Page): form_model = models.Player form_fields = ['peq_pg_choice_difficulty', 'peq_importance_group_pay', 'peq_importance_individual_pay', 'peq_importance_guilt_avoidance', 'peq_importance_group_letdown', 'peq_importance_others_preference', 'peq_pg_expected_bonus', 'peq_pg_compensation_satisfaction', 'peq_open_ended', 'peq_expected_cooperation', 'peq_turk_income', 'peq_risk_attitude', 'peq_others_risk', 'peq_affect_excited', 'peq_affect_upset', 'peq_affect_proud', 'peq_affect_irritable', 'peq_affect_inspired', 'peq_affect_nervous', 'peq_gender', 'peq_age_range', 'peq_work_experience', 'peq_education' ] class WaitIter(Page): def is_displayed(self): if self.player.partner_decision_done == 0: return True else: return False class PreResults(Page): def before_next_page(self): if self.player.s1_pay_profit < 591: coop_comp = 1.00 elif self.player.s1_pay_profit < 681: coop_comp = 2.00 elif self.player.s1_pay_profit < 771: coop_comp = 3.00 elif self.player.s1_pay_profit < 901: coop_comp = 4.00 if self.player.partner_decision_done == 1: pg_group_contributions = self.player.tokens_contributed + self.player.partner_tokens_contributed pg_comp = round((self.player.tokens_kept * .04), 2) + round(((pg_group_contributions * .06)/2), 2) total_comp = coop_comp + pg_comp self.player.pg_comp = '{0:.2f}'.format(pg_comp) self.player.total_bonus_comp = '{0:.2f}'.format(total_comp) self.participant.vars['total_comp'] = '{0:.2f}'.format(total_comp + 2.00) self.participant.vars['partner_not_done'] = 0 else: self.player.pg_comp = 'TBD' self.player.total_bonus_comp = '{0:.2f}'.format(coop_comp) + '+ additional comp TBD when your partner has finished shortly' min_pg_comp = round((self.player.tokens_kept * .04), 2) + round(((self.player.tokens_contributed * .06)/2), 2) self.participant.vars['total_comp'] = '{0:.2f}'.format(coop_comp + 2.00 + min_pg_comp) + '+ additional comp TBD when your partner has finished shortly' self.participant.vars['partner_not_done'] = 1 class Results(Page): form_model = models.Player def vars_for_template(self): if self.participant.vars['partner_not_done'] == 1: min_pg_comp = '{0:.2f}'.format(round((self.player.tokens_kept * .04), 2) + round(((self.player.tokens_contributed * .06)/2), 2)) else: min_pg_comp = 0 return {'total_comp': self.participant.vars['total_comp'], 'partner_not_done': self.participant.vars['partner_not_done'], 'min_pg_comp': min_pg_comp} page_sequence = [ GroupWait, PreTask, Decision1, ResultWaitFirst, PreResult1, Results1, Decision2, ResultWait, PreResult2, Results2, Decision3, ResultWait, PreResult3, Results3, Decision4, ResultWait, PreResult4, Results4, Decision5, ResultWait, PreResult5, Results5, Decision6, ResultWait, PreResult6, Results6, PEQ1, PEQ2, TaskInstructions, KnowledgeCheck, StageTwoDecision, PEQ3, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, WaitIter, PreResults, Results ]