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 # No real 'role' that needs to be matched separately, so just group by time def get_players_for_group(self, waiting_players): mgrs = [p for p in waiting_players] if len(mgrs) > 1: return [mgrs[0], mgrs[1]] class PreTask(Page): def before_next_page(self): # Bring vars forward to this app self.player.condition = self.participant.vars['condition'] self.player.paying_selection = self.participant.vars['paying_selection'] # Get their partner partner = self.player.get_partner() self.player.partner_id = partner.id # Make sure both members of group use P1's pair order if self.player.id_in_group == 1: self.player.pair_order = str(self.participant.vars['pair_order']) else: self.player.pair_order = str(partner.participant.vars['pair_order']) self.participant.vars['pair_order'] = partner.participant.vars['pair_order'] class ProjectSelection1(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][0] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_1'] if self.participant.vars['pair_order'][0] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_1'] if self.participant.vars['pair_order'][0] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_1'] elif self.participant.vars['pair_order'][0] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_1'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][0] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][0] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][0] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][0] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][0] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][0] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][0] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][0] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][0] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][0] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][0] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][0] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][0] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][0] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][0] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_1 = random.randint(1, 100) self.player.implemented_project_outcome_1 = outcome_number_1 outcome_1 = models.Project.objects.filter( project_id=self.player.implemented_project_1, outcome_id=outcome_number_1) for Project in outcome_1: self.player.implemented_project_outcome_1 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_1= self.player.implemented_project_outcome_1) class ProjectSelection2(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][1] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_2'] if self.participant.vars['pair_order'][1] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_2'] if self.participant.vars['pair_order'][1] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_2'] elif self.participant.vars['pair_order'][1] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_2'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][1] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][1] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][1] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][1] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][1] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][1] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][1] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][1] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][1] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][1] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][1] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][1] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][1] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][1] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][1] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_2 = random.randint(1, 100) self.player.implemented_project_outcome_2 = outcome_number_2 outcome_2 = models.Project.objects.filter( project_id=self.player.implemented_project_2, outcome_id=outcome_number_2) for Project in outcome_2: self.player.implemented_project_outcome_2 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_2= self.player.implemented_project_outcome_2) class ProjectSelection3(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][2] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_3'] if self.participant.vars['pair_order'][2] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_3'] if self.participant.vars['pair_order'][2] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_3'] elif self.participant.vars['pair_order'][2] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_3'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][2] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][2] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][2] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][2] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][2] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][2] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][2] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][2] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][2] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][2] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][2] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][2] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][2] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][2] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][2] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_3 = random.randint(1, 100) self.player.implemented_project_outcome_3 = outcome_number_3 outcome_3 = models.Project.objects.filter( project_id=self.player.implemented_project_3, outcome_id=outcome_number_3) for Project in outcome_3: self.player.implemented_project_outcome_3 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_3= self.player.implemented_project_outcome_3) class ProjectSelection4(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][3] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_4'] if self.participant.vars['pair_order'][3] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_4'] if self.participant.vars['pair_order'][3] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_4'] elif self.participant.vars['pair_order'][3] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_4'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][3] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][3] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][3] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][3] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][3] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][3] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][3] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][3] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][3] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][3] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][3] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][3] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][3] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][3] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][3] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_4 = random.randint(1, 100) self.player.implemented_project_outcome_4 = outcome_number_4 outcome_4 = models.Project.objects.filter( project_id=self.player.implemented_project_4, outcome_id=outcome_number_4) for Project in outcome_4: self.player.implemented_project_outcome_4 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_4= self.player.implemented_project_outcome_4) class ProjectSelection5(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][4] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_5'] if self.participant.vars['pair_order'][4] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_5'] if self.participant.vars['pair_order'][4] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_5'] elif self.participant.vars['pair_order'][4] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_5'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][4] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][4] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][4] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][4] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][4] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][4] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][4] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][4] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][4] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][4] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][4] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][4] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][4] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][4] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][4] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_5 = random.randint(1, 100) self.player.implemented_project_outcome_5 = outcome_number_5 outcome_5 = models.Project.objects.filter( project_id=self.player.implemented_project_5, outcome_id=outcome_number_5) for Project in outcome_5: self.player.implemented_project_outcome_5 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_5= self.player.implemented_project_outcome_5) class ProjectSelection6(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][5] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_6'] if self.participant.vars['pair_order'][5] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_6'] if self.participant.vars['pair_order'][5] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_6'] elif self.participant.vars['pair_order'][5] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_6'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][5] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][5] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][5] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][5] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][5] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][5] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][5] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][5] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][5] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][5] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][5] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][5] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][5] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][5] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][5] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_6 = random.randint(1, 100) self.player.implemented_project_outcome_6 = outcome_number_6 outcome_6 = models.Project.objects.filter( project_id=self.player.implemented_project_6, outcome_id=outcome_number_6) for Project in outcome_6: self.player.implemented_project_outcome_6 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_6= self.player.implemented_project_outcome_6) class ProjectSelection7(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][6] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_7'] if self.participant.vars['pair_order'][6] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_7'] if self.participant.vars['pair_order'][6] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_7'] elif self.participant.vars['pair_order'][6] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_7'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][6] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][6] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][6] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][6] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][6] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][6] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][6] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][6] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][6] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][6] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][6] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][6] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][6] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][6] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][6] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_7 = random.randint(1, 100) self.player.implemented_project_outcome_7 = outcome_number_7 outcome_7 = models.Project.objects.filter( project_id=self.player.implemented_project_7, outcome_id=outcome_number_7) for Project in outcome_7: self.player.implemented_project_outcome_7 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_7= self.player.implemented_project_outcome_7) class ProjectSelection8(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][7] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_8'] if self.participant.vars['pair_order'][7] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_8'] if self.participant.vars['pair_order'][7] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_8'] elif self.participant.vars['pair_order'][7] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_8'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][7] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][7] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][7] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][7] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][7] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][7] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][7] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][7] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][7] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][7] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][7] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][7] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][7] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][7] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][7] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_8 = random.randint(1, 100) self.player.implemented_project_outcome_8 = outcome_number_8 outcome_8 = models.Project.objects.filter( project_id=self.player.implemented_project_8, outcome_id=outcome_number_8) for Project in outcome_8: self.player.implemented_project_outcome_8 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_8= self.player.implemented_project_outcome_8) class ProjectSelection9(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][8] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_9'] if self.participant.vars['pair_order'][8] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_9'] if self.participant.vars['pair_order'][8] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_9'] elif self.participant.vars['pair_order'][8] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_9'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][8] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][8] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][8] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][8] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][8] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][8] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][8] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][8] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][8] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][8] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][8] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][8] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][8] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][8] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][8] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_9 = random.randint(1, 100) self.player.implemented_project_outcome_9 = outcome_number_9 outcome_9 = models.Project.objects.filter( project_id=self.player.implemented_project_9, outcome_id=outcome_number_9) for Project in outcome_9: self.player.implemented_project_outcome_9 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_9= self.player.implemented_project_outcome_9) class ProjectSelection10(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][9] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_10'] if self.participant.vars['pair_order'][9] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_10'] if self.participant.vars['pair_order'][9] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_10'] elif self.participant.vars['pair_order'][9] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_10'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][9] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][9] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][9] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][9] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][9] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][9] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][9] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][9] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][9] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][9] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][9] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][9] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][9] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][9] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][9] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_10 = random.randint(1, 100) self.player.implemented_project_outcome_10 = outcome_number_10 outcome_10 = models.Project.objects.filter( project_id=self.player.implemented_project_10, outcome_id=outcome_number_10) for Project in outcome_10: self.player.implemented_project_outcome_10 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_10= self.player.implemented_project_outcome_10) class ProjectSelection11(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][10] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_11'] if self.participant.vars['pair_order'][10] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_11'] if self.participant.vars['pair_order'][10] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_11'] elif self.participant.vars['pair_order'][10] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_11'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][10] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][10] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][10] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][10] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][10] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][10] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][10] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][10] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][10] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][10] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][10] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][10] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][10] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][10] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][10] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_11 = random.randint(1, 100) self.player.implemented_project_outcome_11 = outcome_number_11 outcome_11 = models.Project.objects.filter( project_id=self.player.implemented_project_11, outcome_id=outcome_number_11) for Project in outcome_11: self.player.implemented_project_outcome_11 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_11= self.player.implemented_project_outcome_11) class ProjectSelection12(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][11] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_12'] if self.participant.vars['pair_order'][11] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_12'] if self.participant.vars['pair_order'][11] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_12'] elif self.participant.vars['pair_order'][11] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_12'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][11] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][11] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][11] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][11] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][11] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][11] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][11] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][11] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][11] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][11] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][11] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][11] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][11] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][11] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][11] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_12 = random.randint(1, 100) self.player.implemented_project_outcome_12 = outcome_number_12 outcome_12 = models.Project.objects.filter( project_id=self.player.implemented_project_12, outcome_id=outcome_number_12) for Project in outcome_12: self.player.implemented_project_outcome_12 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_12= self.player.implemented_project_outcome_12) class ProjectSelection13(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][12] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_13'] if self.participant.vars['pair_order'][12] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_13'] if self.participant.vars['pair_order'][12] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_13'] elif self.participant.vars['pair_order'][12] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_13'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][12] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][12] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][12] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][12] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][12] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][12] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][12] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][12] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][12] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][12] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][12] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][12] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][12] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][12] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][12] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_13 = random.randint(1, 100) self.player.implemented_project_outcome_13 = outcome_number_13 outcome_13 = models.Project.objects.filter( project_id=self.player.implemented_project_13, outcome_id=outcome_number_13) for Project in outcome_13: self.player.implemented_project_outcome_13 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_13= self.player.implemented_project_outcome_13) class ProjectSelection14(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][13] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_14'] if self.participant.vars['pair_order'][13] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_14'] if self.participant.vars['pair_order'][13] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_14'] elif self.participant.vars['pair_order'][13] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_14'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][13] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][13] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][13] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][13] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][13] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][13] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][13] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][13] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][13] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][13] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][13] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][13] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][13] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][13] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][13] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_14 = random.randint(1, 100) self.player.implemented_project_outcome_14 = outcome_number_14 outcome_14 = models.Project.objects.filter( project_id=self.player.implemented_project_14, outcome_id=outcome_number_14) for Project in outcome_14: self.player.implemented_project_outcome_14 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_14= self.player.implemented_project_outcome_14) class ProjectSelection15(Page): form_model = models.Player def get_form_fields(self): # pair_list = 1v2, 2v3, etc. # # if self.round_number == 1: if self.participant.vars['pair_order'][14] == 1: return ['p1v2', 'p1v2a', 'p1v2_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 2: return ['p3v4', 'p3v4a', 'p3v4_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 3: return ['p5v6', 'p5v6a', 'p5v6_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 4: return ['p7v8', 'p7v8a', 'p7v8_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 5: return ['p9v10', 'p9v10a', 'p9v10_time', 'implemented_project_15'] if self.participant.vars['pair_order'][14] == 6: return ['p11v12', 'p11v12a', 'p11v12_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 7: return ['p13v14', 'p13v14a', 'p13v14_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 8: return ['p15v16', 'p15v16a', 'p15v16_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 9: return ['p17v18', 'p17v18a', 'p17v18_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 10: return ['p19v20', 'p19v20a', 'p19v20_time', 'implemented_project_15'] if self.participant.vars['pair_order'][14] == 11: return ['p21v22', 'p21v22a', 'p21v22_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 12: return ['p23v24', 'p23v24a', 'p23v24_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 13: return ['p25v26', 'p25v26a', 'p25v26_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 14: return ['p27v28', 'p27v28a', 'p27v28_time', 'implemented_project_15'] elif self.participant.vars['pair_order'][14] == 15: return ['p29v30', 'p29v30a', 'p29v30_time', 'implemented_project_15'] def vars_for_template(self): #proj_order_set = (1, 2) #proj_order = random.choice(proj_order_set) if self.participant.vars['pair_order'][14] == 1: if self.participant.vars['proj_order'] == 1: return {'first': 1, 'second': 2, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=1), 'project_b': models.ProjectDisplay.objects.filter(id=2)} elif self.participant.vars['proj_order'] == 2: return {'first': 2, 'second': 1, 'comparison': 'p1v2', 'comparison_a': 'p1v2a', 'project_a': models.ProjectDisplay.objects.filter(id=2), 'project_b': models.ProjectDisplay.objects.filter(id=1)} elif self.participant.vars['pair_order'][14] == 2: if self.participant.vars['proj_order'] == 1: return {'first': 3, 'second': 4, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=3), 'project_b': models.ProjectDisplay.objects.filter(id=4)} elif self.participant.vars['proj_order'] == 2: return {'first': 4, 'second': 3, 'comparison': 'p3v4', 'comparison_a': 'p3v4a', 'project_a': models.ProjectDisplay.objects.filter(id=4), 'project_b': models.ProjectDisplay.objects.filter(id=3)} elif self.participant.vars['pair_order'][14] == 3: if self.participant.vars['proj_order'] == 1: return {'first': 5, 'second': 6, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=5), 'project_b': models.ProjectDisplay.objects.filter(id=6)} elif self.participant.vars['proj_order'] == 2: return {'first': 6, 'second': 5, 'comparison': 'p5v6', 'comparison_a': 'p5v6a', 'project_a': models.ProjectDisplay.objects.filter(id=6), 'project_b': models.ProjectDisplay.objects.filter(id=5)} elif self.participant.vars['pair_order'][14] == 4: if self.participant.vars['proj_order'] == 1: return {'first': 7, 'second': 8, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=7), 'project_b': models.ProjectDisplay.objects.filter(id=8)} elif self.participant.vars['proj_order'] == 2: return {'first': 8, 'second': 7, 'comparison': 'p7v8', 'comparison_a': 'p7v8a', 'project_a': models.ProjectDisplay.objects.filter(id=8), 'project_b': models.ProjectDisplay.objects.filter(id=7)} elif self.participant.vars['pair_order'][14] == 5: if self.participant.vars['proj_order'] == 1: return {'first': 9, 'second': 10, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=9), 'project_b': models.ProjectDisplay.objects.filter(id=10)} elif self.participant.vars['proj_order'] == 2: return {'first': 10, 'second': 9, 'comparison': 'p9v10', 'comparison_a': 'p9v10a', 'project_a': models.ProjectDisplay.objects.filter(id=10), 'project_b': models.ProjectDisplay.objects.filter(id=9)} elif self.participant.vars['pair_order'][14] == 6: if self.participant.vars['proj_order'] == 1: return {'first': 11, 'second': 12, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=11), 'project_b': models.ProjectDisplay.objects.filter(id=12)} elif self.participant.vars['proj_order'] == 2: return {'first': 12, 'second': 11, 'comparison': 'p11v12', 'comparison_a': 'p11v12a', 'project_a': models.ProjectDisplay.objects.filter(id=12), 'project_b': models.ProjectDisplay.objects.filter(id=11)} elif self.participant.vars['pair_order'][14] == 7: if self.participant.vars['proj_order'] == 1: return {'first': 13, 'second': 14, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=13), 'project_b': models.ProjectDisplay.objects.filter(id=14)} elif self.participant.vars['proj_order'] == 2: return {'first': 14, 'second': 13, 'comparison': 'p13v14', 'comparison_a': 'p13v14a', 'project_a': models.ProjectDisplay.objects.filter(id=14), 'project_b': models.ProjectDisplay.objects.filter(id=13)} elif self.participant.vars['pair_order'][14] == 8: if self.participant.vars['proj_order'] == 1: return {'first': 15, 'second': 16, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=15), 'project_b': models.ProjectDisplay.objects.filter(id=16)} elif self.participant.vars['proj_order'] == 2: return {'first': 16, 'second': 15, 'comparison': 'p15v16', 'comparison_a': 'p15v16a', 'project_a': models.ProjectDisplay.objects.filter(id=16), 'project_b': models.ProjectDisplay.objects.filter(id=15)} elif self.participant.vars['pair_order'][14] == 9: if self.participant.vars['proj_order'] == 1: return {'first': 17, 'second': 18, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=17), 'project_b': models.ProjectDisplay.objects.filter(id=18)} elif self.participant.vars['proj_order'] == 2: return {'first': 18, 'second': 17, 'comparison': 'p17v18', 'comparison_a': 'p17v18a', 'project_a': models.ProjectDisplay.objects.filter(id=18), 'project_b': models.ProjectDisplay.objects.filter(id=17)} elif self.participant.vars['pair_order'][14] == 10: if self.participant.vars['proj_order'] == 1: return {'first': 19, 'second': 20, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=19), 'project_b': models.ProjectDisplay.objects.filter(id=20)} elif self.participant.vars['proj_order'] == 2: return {'first': 20, 'second': 19, 'comparison': 'p19v20', 'comparison_a': 'p19v20a', 'project_a': models.ProjectDisplay.objects.filter(id=20), 'project_b': models.ProjectDisplay.objects.filter(id=19)} elif self.participant.vars['pair_order'][14] == 11: if self.participant.vars['proj_order'] == 1: return {'first': 21, 'second': 22, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=21), 'project_b': models.ProjectDisplay.objects.filter(id=22)} elif self.participant.vars['proj_order'] == 2: return {'first': 22, 'second': 21, 'comparison': 'p21v22', 'comparison_a': 'p21v22a', 'project_a': models.ProjectDisplay.objects.filter(id=22), 'project_b': models.ProjectDisplay.objects.filter(id=21)} elif self.participant.vars['pair_order'][14] == 12: if self.participant.vars['proj_order'] == 1: return {'first': 23, 'second': 24, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=23), 'project_b': models.ProjectDisplay.objects.filter(id=24)} elif self.participant.vars['proj_order'] == 2: return {'first': 24, 'second': 23, 'comparison': 'p23v24', 'comparison_a': 'p23v24a', 'project_a': models.ProjectDisplay.objects.filter(id=24), 'project_b': models.ProjectDisplay.objects.filter(id=23)} elif self.participant.vars['pair_order'][14] == 13: if self.participant.vars['proj_order'] == 1: return {'first': 25, 'second': 26, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=25), 'project_b': models.ProjectDisplay.objects.filter(id=26)} elif self.participant.vars['proj_order'] == 2: return {'first': 26, 'second': 25, 'comparison': 'p25v26', 'comparison_a': 'p25v26a', 'project_a': models.ProjectDisplay.objects.filter(id=26), 'project_b': models.ProjectDisplay.objects.filter(id=25)} elif self.participant.vars['pair_order'][14] == 14: if self.participant.vars['proj_order'] == 1: return {'first': 27, 'second': 28, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=27), 'project_b': models.ProjectDisplay.objects.filter(id=28)} elif self.participant.vars['proj_order'] == 2: return {'first': 28, 'second': 27, 'comparison': 'p27v28', 'comparison_a': 'p27v28a', 'project_a': models.ProjectDisplay.objects.filter(id=28), 'project_b': models.ProjectDisplay.objects.filter(id=27)} elif self.participant.vars['pair_order'][14] == 15: if self.participant.vars['proj_order'] == 1: return {'first': 29, 'second': 30, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=29), 'project_b': models.ProjectDisplay.objects.filter(id=30)} elif self.participant.vars['proj_order'] == 2: return {'first': 30, 'second': 29, 'comparison': 'p29v30', 'comparison_a': 'p29v30a', 'project_a': models.ProjectDisplay.objects.filter(id=30), 'project_b': models.ProjectDisplay.objects.filter(id=29)} def before_next_page(self): # Do the project order ahead of the next selection proj_order_set = (1, 2) proj_order = random.choice(proj_order_set) self.participant.vars['proj_order'] = proj_order # Draw the result of the project choice outcome_number_15 = random.randint(1, 100) self.player.implemented_project_outcome_15 = outcome_number_15 outcome_15 = models.Project.objects.filter( project_id=self.player.implemented_project_15, outcome_id=outcome_number_15) for Project in outcome_15: self.player.implemented_project_outcome_15 = Project.outcome # Update each p's record for their 'partner' models.Player.objects.filter(id=self.player.partner_id).update(partner_outcome_15= self.player.implemented_project_outcome_15) class ResultWaitFirst(WaitPage): template_name = 'cost_allocation_task/CWaitPageFirst.html' body_text = "Please wait briefly while the other Manager finishes making their decision..." title_text = "" class ResultWait(WaitPage): template_name = 'cost_allocation_task/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/CWaitPage3.html' body_text = "Please wait briefly while the other Manager finishes making their decision..." title_text = "" class Results1(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_1 + self.player.partner_outcome_1 participant_share = int(round((self.player.implemented_project_outcome_1 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_1 / (self.player.implemented_project_outcome_1 + self.player.partner_outcome_1))*100, 0)) partner_percent = int(round((self.player.partner_outcome_1 / (self.player.implemented_project_outcome_1 + self.player.partner_outcome_1))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_1 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_1 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_1 + self.player.partner_outcome_1, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_1 + self.player.partner_outcome_1 cost = int(round((self.player.implemented_project_outcome_1 / firm_rev) * 100, 0)) self.player.cost_1 = cost else: self.player.cost_1 = 50 # Calc profit and store for display self.player.profit_1 = self.player.implemented_project_outcome_1 - self.player.cost_1 class Results2(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_2 + self.player.partner_outcome_2 participant_share = int(round((self.player.implemented_project_outcome_2 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_2 / (self.player.implemented_project_outcome_2 + self.player.partner_outcome_2))*100, 0)) partner_percent = int(round((self.player.partner_outcome_2 / (self.player.implemented_project_outcome_2 + self.player.partner_outcome_2))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_2 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_2 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_2 + self.player.partner_outcome_2, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_2 + self.player.partner_outcome_2 cost = int(round((self.player.implemented_project_outcome_2 / firm_rev) * 100, 0)) self.player.cost_2 = cost else: self.player.cost_2 = 50 # Calc profit and store for display self.player.profit_2 = self.player.implemented_project_outcome_2 - self.player.cost_2 class Results3(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_3 + self.player.partner_outcome_3 participant_share = int(round((self.player.implemented_project_outcome_3 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_3 / (self.player.implemented_project_outcome_3 + self.player.partner_outcome_3))*100, 0)) partner_percent = int(round((self.player.partner_outcome_3 / (self.player.implemented_project_outcome_3 + self.player.partner_outcome_3))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_3 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_3 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_3 + self.player.partner_outcome_3, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_3 + self.player.partner_outcome_3 cost = int(round((self.player.implemented_project_outcome_3 / firm_rev) * 100, 0)) self.player.cost_3 = cost else: self.player.cost_3 = 50 # Calc profit and store for display self.player.profit_3 = self.player.implemented_project_outcome_3 - self.player.cost_3 class Results4(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_4 + self.player.partner_outcome_4 participant_share = int(round((self.player.implemented_project_outcome_4 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_4 / (self.player.implemented_project_outcome_4 + self.player.partner_outcome_4))*100, 0)) partner_percent = int(round((self.player.partner_outcome_4 / (self.player.implemented_project_outcome_4 + self.player.partner_outcome_4))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_4 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_4 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_4 + self.player.partner_outcome_4, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_4 + self.player.partner_outcome_4 cost = int(round((self.player.implemented_project_outcome_4 / firm_rev) * 100, 0)) self.player.cost_4 = cost else: self.player.cost_4 = 50 # Calc profit and store for display self.player.profit_4 = self.player.implemented_project_outcome_4 - self.player.cost_4 class Results5(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_5 + self.player.partner_outcome_5 participant_share = int(round((self.player.implemented_project_outcome_5 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_5 / (self.player.implemented_project_outcome_5 + self.player.partner_outcome_5))*100, 0)) partner_percent = int(round((self.player.partner_outcome_5 / (self.player.implemented_project_outcome_5 + self.player.partner_outcome_5))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_5 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_5 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_5 + self.player.partner_outcome_5, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_5 + self.player.partner_outcome_5 cost = int(round((self.player.implemented_project_outcome_5 / firm_rev) * 100, 0)) self.player.cost_5 = cost else: self.player.cost_5 = 50 # Calc profit and store for display self.player.profit_5 = self.player.implemented_project_outcome_5 - self.player.cost_5 class Results6(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_6 + self.player.partner_outcome_6 participant_share = int(round((self.player.implemented_project_outcome_6 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_6 / (self.player.implemented_project_outcome_6 + self.player.partner_outcome_6))*100, 0)) partner_percent = int(round((self.player.partner_outcome_6 / (self.player.implemented_project_outcome_6 + self.player.partner_outcome_6))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_6 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_6 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_6 + self.player.partner_outcome_6, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_6 + self.player.partner_outcome_6 cost = int(round((self.player.implemented_project_outcome_6 / firm_rev) * 100, 0)) self.player.cost_6 = cost else: self.player.cost_6 = 50 # Calc profit and store for display self.player.profit_6 = self.player.implemented_project_outcome_6 - self.player.cost_6 class Results7(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_7 + self.player.partner_outcome_7 participant_share = int(round((self.player.implemented_project_outcome_7 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_7 / (self.player.implemented_project_outcome_7 + self.player.partner_outcome_7))*100, 0)) partner_percent = int(round((self.player.partner_outcome_7 / (self.player.implemented_project_outcome_7 + self.player.partner_outcome_7))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_7 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_7 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_7 + self.player.partner_outcome_7, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_7 + self.player.partner_outcome_7 cost = int(round((self.player.implemented_project_outcome_7 / firm_rev) * 100, 0)) self.player.cost_7 = cost else: self.player.cost_7 = 50 # Calc profit and store for display self.player.profit_7 = self.player.implemented_project_outcome_7 - self.player.cost_7 class Results8(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_8 + self.player.partner_outcome_8 participant_share = int(round((self.player.implemented_project_outcome_8 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_8 / (self.player.implemented_project_outcome_8 + self.player.partner_outcome_8))*100, 0)) partner_percent = int(round((self.player.partner_outcome_8 / (self.player.implemented_project_outcome_8 + self.player.partner_outcome_8))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_8 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_8 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_8 + self.player.partner_outcome_8, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_8 + self.player.partner_outcome_8 cost = int(round((self.player.implemented_project_outcome_8 / firm_rev) * 100, 0)) self.player.cost_8 = cost else: self.player.cost_8 = 50 # Calc profit and store for display self.player.profit_8 = self.player.implemented_project_outcome_8 - self.player.cost_8 class Results9(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_9 + self.player.partner_outcome_9 participant_share = int(round((self.player.implemented_project_outcome_9 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_9 / (self.player.implemented_project_outcome_9 + self.player.partner_outcome_9))*100, 0)) partner_percent = int(round((self.player.partner_outcome_9 / (self.player.implemented_project_outcome_9 + self.player.partner_outcome_9))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_9 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_9 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_9 + self.player.partner_outcome_9, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_9 + self.player.partner_outcome_9 cost = int(round((self.player.implemented_project_outcome_9 / firm_rev) * 100, 0)) self.player.cost_9 = cost else: self.player.cost_9 = 50 # Calc profit and store for display self.player.profit_9 = self.player.implemented_project_outcome_9 - self.player.cost_9 class Results10(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_10 + self.player.partner_outcome_10 participant_share = int(round((self.player.implemented_project_outcome_10 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_10 / (self.player.implemented_project_outcome_10 + self.player.partner_outcome_10))*100, 0)) partner_percent = int(round((self.player.partner_outcome_10 / (self.player.implemented_project_outcome_10 + self.player.partner_outcome_10))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_10 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_10 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_10 + self.player.partner_outcome_10, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_10 + self.player.partner_outcome_10 cost = int(round((self.player.implemented_project_outcome_10 / firm_rev) * 100, 0)) self.player.cost_10 = cost else: self.player.cost_10 = 50 # Calc profit and store for display self.player.profit_10 = self.player.implemented_project_outcome_10 - self.player.cost_10 class Results11(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_11 + self.player.partner_outcome_11 participant_share = int(round((self.player.implemented_project_outcome_11 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_11 / (self.player.implemented_project_outcome_11 + self.player.partner_outcome_11))*100, 0)) partner_percent = int(round((self.player.partner_outcome_11 / (self.player.implemented_project_outcome_11 + self.player.partner_outcome_11))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_11 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_11 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_11 + self.player.partner_outcome_11, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_11 + self.player.partner_outcome_11 cost = int(round((self.player.implemented_project_outcome_11 / firm_rev) * 100, 0)) self.player.cost_11 = cost else: self.player.cost_11 = 50 # Calc profit and store for display self.player.profit_11 = self.player.implemented_project_outcome_11 - self.player.cost_11 class Results12(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_12 + self.player.partner_outcome_12 participant_share = int(round((self.player.implemented_project_outcome_12 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_12 / (self.player.implemented_project_outcome_12 + self.player.partner_outcome_12))*100, 0)) partner_percent = int(round((self.player.partner_outcome_12 / (self.player.implemented_project_outcome_12 + self.player.partner_outcome_12))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_12 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_12 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_12 + self.player.partner_outcome_12, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_12 + self.player.partner_outcome_12 cost = int(round((self.player.implemented_project_outcome_12 / firm_rev) * 100, 0)) self.player.cost_12 = cost else: self.player.cost_12 = 50 # Calc profit and store for display self.player.profit_12 = self.player.implemented_project_outcome_12 - self.player.cost_12 class Results13(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_13 + self.player.partner_outcome_13 participant_share = int(round((self.player.implemented_project_outcome_13 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_13 / (self.player.implemented_project_outcome_13 + self.player.partner_outcome_13))*100, 0)) partner_percent = int(round((self.player.partner_outcome_13 / (self.player.implemented_project_outcome_13 + self.player.partner_outcome_13))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_13 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_13 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_13 + self.player.partner_outcome_13, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_13 + self.player.partner_outcome_13 cost = int(round((self.player.implemented_project_outcome_13 / firm_rev) * 100, 0)) self.player.cost_13 = cost else: self.player.cost_13 = 50 # Calc profit and store for display self.player.profit_13 = self.player.implemented_project_outcome_13 - self.player.cost_13 class Results14(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_14 + self.player.partner_outcome_14 participant_share = int(round((self.player.implemented_project_outcome_14 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_14 / (self.player.implemented_project_outcome_14 + self.player.partner_outcome_14))*100, 0)) partner_percent = int(round((self.player.partner_outcome_14 / (self.player.implemented_project_outcome_14 + self.player.partner_outcome_14))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_14 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_14 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_14 + self.player.partner_outcome_14, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_14 + self.player.partner_outcome_14 cost = int(round((self.player.implemented_project_outcome_14 / firm_rev) * 100, 0)) self.player.cost_14 = cost else: self.player.cost_14 = 50 # Calc profit and store for display self.player.profit_14 = self.player.implemented_project_outcome_14 - self.player.cost_14 class Results15(Page): form_model = models.Player def vars_for_template(self): cost = 0 firm_rev = 0 participant_share = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_15 + self.player.partner_outcome_15 participant_share = int(round((self.player.implemented_project_outcome_15 / firm_rev)*100, 0)) cost = participant_share participant_percent = int(round((self.player.implemented_project_outcome_15 / (self.player.implemented_project_outcome_15 + self.player.partner_outcome_15))*100, 0)) partner_percent = int(round((self.player.partner_outcome_15 / (self.player.implemented_project_outcome_15 + self.player.partner_outcome_15))*100, 0)) else: cost = 50 participant_percent = 50 partner_percent = 50 return {'cost': cost, 'profit': self.player.implemented_project_outcome_15 - cost, 'partner_cost': 100-cost, 'partner_profit': self.player.partner_outcome_15 - (100-cost), 'firm_revenue': self.player.implemented_project_outcome_15 + self.player.partner_outcome_15, 'participant_percent': participant_percent, 'partner_percent': partner_percent} def before_next_page(self): # For storage purposes....Determine cost allocation if non-insulating cost = 0 firm_rev = 0 if self.player.condition == 2 or self.player.condition == 4: firm_rev = self.player.implemented_project_outcome_15 + self.player.partner_outcome_15 cost = int(round((self.player.implemented_project_outcome_15 / firm_rev) * 100, 0)) self.player.cost_15 = cost else: self.player.cost_15 = 50 # Calc profit and store for display self.player.profit_15 = self.player.implemented_project_outcome_15 - self.player.cost_15 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', 'total_wait_time' ] # Store the profit from the paying period for later down the road def before_next_page(self): if self.participant.vars['pay_period'] == 1: self.participant.vars['pay_profit'] = self.player.profit_1 elif self.participant.vars['pay_period'] == 2: self.participant.vars['pay_profit'] = self.player.profit_2 elif self.participant.vars['pay_period'] == 3: self.participant.vars['pay_profit'] = self.player.profit_3 elif self.participant.vars['pay_period'] == 4: self.participant.vars['pay_profit'] = self.player.profit_4 elif self.participant.vars['pay_period'] == 5: self.participant.vars['pay_profit'] = self.player.profit_5 elif self.participant.vars['pay_period'] == 6: self.participant.vars['pay_profit'] = self.player.profit_6 elif self.participant.vars['pay_period'] == 7: self.participant.vars['pay_profit'] = self.player.profit_7 elif self.participant.vars['pay_period'] == 8: self.participant.vars['pay_profit'] = self.player.profit_8 elif self.participant.vars['pay_period'] == 9: self.participant.vars['pay_profit'] = self.player.profit_9 elif self.participant.vars['pay_period'] == 10: self.participant.vars['pay_profit'] = self.player.profit_10 elif self.participant.vars['pay_period'] == 11: self.participant.vars['pay_profit'] = self.player.profit_11 elif self.participant.vars['pay_period'] == 12: self.participant.vars['pay_profit'] = self.player.profit_12 elif self.participant.vars['pay_period'] == 13: self.participant.vars['pay_profit'] = self.player.profit_13 elif self.participant.vars['pay_period'] == 14: self.participant.vars['pay_profit'] = self.player.profit_14 elif self.participant.vars['pay_period'] == 15: self.participant.vars['pay_profit'] = self.player.profit_15 class PEQ2(Page): form_model = models.Player form_fields = ['peq_choice_difficulty', 'peq_expected_bonus', 'peq_compensation_satisfaction', 'peq_allocation_fairness', 'peq_perceived_control' ] def before_next_page(self): self.participant.vars['total_wait_time'] = self.player.total_wait_time page_sequence = [ GroupWait, PreTask, ProjectSelection1, ResultWaitFirst, Results1, ProjectSelection2, ResultWait, Results2, ProjectSelection3, ResultWait, Results3, ProjectSelection4, ResultWait, Results4, ProjectSelection5, ResultWait, Results5, ProjectSelection6, ResultWait, Results6, ProjectSelection7, ResultWait, Results7, ProjectSelection8, ResultWait2, Results8, ProjectSelection9, ResultWait2, Results9, ProjectSelection10, ResultWait2, Results10, ProjectSelection11, ResultWait2, Results11, ProjectSelection12, ResultWait2, Results12, ProjectSelection13, ResultWait2, Results13, ProjectSelection14, ResultWait2, Results14, ProjectSelection15, ResultWait2, Results15, PEQ1, PEQ2 ]