Skip to content

Commit

Permalink
🐛 Corrige le score de la place du marché
Browse files Browse the repository at this point in the history
  • Loading branch information
cprodhomme committed Jan 7, 2025
1 parent 00a6efc commit 06776c9
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 29 deletions.
17 changes: 0 additions & 17 deletions app/models/restitution/evacob/score_module.rb
Original file line number Diff line number Diff line change
Expand Up @@ -83,23 +83,6 @@ def recupere_score_max(score_totaux)
[question, NUMERATIE_METRIQUES[question]].max_by { |metrique| score_totaux[metrique] }
end
end

def filtre_evenements_reponses(evenements)
evenements_par_module(evenements, :N1)
evenements_par_module(evenements, :N2)
evenements_par_module(evenements, :N3)
evenements
end

def evenements_par_module(evenements, nom_module)
module_rattrapage = "#{nom_module}R"
a_fait_un_rattrapage = evenements.any? do |e|
e.donnees['question'].start_with?(module_rattrapage)
end
return evenements if a_fait_un_rattrapage

evenements.reject! { |e| e.donnees['question'].start_with?(module_rattrapage) }
end
end
end
end
25 changes: 21 additions & 4 deletions app/models/restitution/place_du_marche.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require_relative '../../decorators/evenement_place_du_marche'

module Restitution
class PlaceDuMarche < Base
class PlaceDuMarche < Base # rubocop:disable Metrics/ClassLength
SCORES_NIVEAUX = {
N1: {
'type' => :nombre,
Expand Down Expand Up @@ -49,11 +49,12 @@ def calcule_pourcentage_reussite_competence_clea
SCORES_CLEA.each_key do |code|
next unless evenements_groupes_cleas[code]

evenements = evenements_groupes_cleas[code].values.flatten
evenements = filtre_evenements_reponses(evenements)

SCORES_CLEA[code][:pourcentage_reussite] =
Evacob::ScoreMetacompetence.new
.calcule_pourcentage_reussite(
evenements_groupes_cleas[code].values.flatten
)
.calcule_pourcentage_reussite(evenements)
end
end

Expand Down Expand Up @@ -124,5 +125,21 @@ def evenements_groupes_cleas
@evenements.regroupe_par_codes_clea(questionnaire, %w[N1R N2R N3R])
end
end

def filtre_evenements_reponses(evenements)
evenements = evenements_par_module(evenements, :N1)
evenements = evenements_par_module(evenements, :N2)
evenements_par_module(evenements, :N3)
end

def evenements_par_module(evenements, nom_module)
module_rattrapage = "#{nom_module}R"
a_fait_un_rattrapage = evenements.any? do |e|
e.donnees['question'].start_with?(module_rattrapage) && e.donnees['score'].present?
end
return evenements if a_fait_un_rattrapage

evenements.reject { |e| e['question'].start_with?(module_rattrapage) }
end
end
end
11 changes: 3 additions & 8 deletions app/models/restitution/positionnement/export_numeratie.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,15 +100,10 @@ def tri_par_ordre_croissant(groupes_clea)
end.to_h
end

def question_rattrapage(nom_technique)
nom_technique.start_with?('N1R', 'N2R', 'N3R')
end

def filtre_evenements_reponses(evenements)
evenements_par_module(evenements, :N1)
evenements_par_module(evenements, :N2)
evenements = evenements_par_module(evenements, :N1)
evenements = evenements_par_module(evenements, :N2)
evenements_par_module(evenements, :N3)
evenements
end

def evenements_par_module(evenements, nom_module)
Expand All @@ -118,7 +113,7 @@ def evenements_par_module(evenements, nom_module)
end
return evenements if a_fait_un_rattrapage

evenements.reject! { |e| e['question'].start_with?(module_rattrapage) }
evenements.reject { |e| e['question'].start_with?(module_rattrapage) }
end

def pourcentage_reussite(reponses)
Expand Down

0 comments on commit 06776c9

Please sign in to comment.