mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 03:02:14 +01:00 
			
		
		
		
	Fix notation sheets when we change the order of pools
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
		@@ -1675,32 +1675,6 @@ class PoolNotesTemplateView(VolunteerMixin, DetailView):
 | 
			
		||||
        rank_tc.addElement(P(text="Rang"))
 | 
			
		||||
        scores_header.addElement(rank_tc)
 | 
			
		||||
 | 
			
		||||
        # For each line of the matrix P, the ith team is defender on the passage number Pi0,
 | 
			
		||||
        # opponent on the passage number Pi1, reporter on the passage number Pi2
 | 
			
		||||
        passage_matrix = []
 | 
			
		||||
        match pool_size:
 | 
			
		||||
            case 3:
 | 
			
		||||
                passage_matrix = [
 | 
			
		||||
                    [0, 2, 1],
 | 
			
		||||
                    [1, 0, 2],
 | 
			
		||||
                    [2, 1, 0],
 | 
			
		||||
                ]
 | 
			
		||||
            case 4:
 | 
			
		||||
                passage_matrix = [
 | 
			
		||||
                    [0, 3, 2],
 | 
			
		||||
                    [1, 0, 3],
 | 
			
		||||
                    [2, 1, 0],
 | 
			
		||||
                    [3, 2, 1],
 | 
			
		||||
                ]
 | 
			
		||||
            case 5:
 | 
			
		||||
                passage_matrix = [
 | 
			
		||||
                    [0, 2, 3],
 | 
			
		||||
                    [1, 4, 2],
 | 
			
		||||
                    [2, 0, 4],
 | 
			
		||||
                    [3, 1, 0],
 | 
			
		||||
                    [4, 3, 1],
 | 
			
		||||
                ]
 | 
			
		||||
 | 
			
		||||
        sorted_participations = sorted(self.object.participations.all(), key=lambda p: -self.object.average(p))
 | 
			
		||||
        for passage in self.object.passages.all():
 | 
			
		||||
            team_row = TableRow()
 | 
			
		||||
@@ -1717,14 +1691,17 @@ class PoolNotesTemplateView(VolunteerMixin, DetailView):
 | 
			
		||||
            problem_tc.addElement(P(text=f"Problème {passage.solution_number}"))
 | 
			
		||||
            team_row.addElement(problem_tc)
 | 
			
		||||
 | 
			
		||||
            passage_line = passage_matrix[passage.position - 1]
 | 
			
		||||
            defender_pos = passage.position - 1
 | 
			
		||||
            opponent_pos = self.object.passages.get(opponent=passage.defender).position - 1
 | 
			
		||||
            reporter_pos = self.object.passages.get(reporter=passage.defender).position - 1
 | 
			
		||||
 | 
			
		||||
            score_tc = TableCell(valuetype="float", value=self.object.average(passage.defender),
 | 
			
		||||
                                 stylename=style_bot if passage.position == pool_size else style)
 | 
			
		||||
            score_tc.addElement(P(text=self.object.average(passage.defender)))
 | 
			
		||||
            formula = "of:="
 | 
			
		||||
            formula += getcol(min_column + passage_line[0] * passage_width) + str(max_row + 3)  # Defender
 | 
			
		||||
            formula += " + " + getcol(min_column + passage_line[1] * passage_width + 2) + str(max_row + 3)  # Opponent
 | 
			
		||||
            formula += " + " + getcol(min_column + passage_line[2] * passage_width + 4) + str(max_row + 3)  # Reporter
 | 
			
		||||
            formula += getcol(min_column + defender_pos * passage_width) + str(max_row + 3)  # Defender
 | 
			
		||||
            formula += " + " + getcol(min_column + opponent_pos * passage_width + 2) + str(max_row + 3)  # Opponent
 | 
			
		||||
            formula += " + " + getcol(min_column + reporter_pos * passage_width + 4) + str(max_row + 3)  # Reporter
 | 
			
		||||
            score_tc.setAttribute("formula", formula)
 | 
			
		||||
            team_row.addElement(score_tc)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user