extract NB_DAYS_RECENT_DOSSIERS and PERCENTILE
This commit is contained in:
parent
bdf2f47eb9
commit
a5ae5af56a
4 changed files with 11 additions and 8 deletions
|
@ -1,9 +1,12 @@
|
||||||
module ProcedureStatsConcern
|
module ProcedureStatsConcern
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
NB_DAYS_RECENT_DOSSIERS = 30
|
||||||
|
PERCENTILE = 90
|
||||||
|
|
||||||
def stats_usual_traitement_time
|
def stats_usual_traitement_time
|
||||||
Rails.cache.fetch("#{cache_key_with_version}/stats_usual_traitement_time", expires_in: 12.hours) do
|
Rails.cache.fetch("#{cache_key_with_version}/stats_usual_traitement_time", expires_in: 12.hours) do
|
||||||
usual_traitement_time_for_recent_dossiers(30)
|
usual_traitement_time_for_recent_dossiers(NB_DAYS_RECENT_DOSSIERS)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -63,7 +66,7 @@ module ProcedureStatsConcern
|
||||||
traitement_times(first_processed_at..last_considered_processed_at)
|
traitement_times(first_processed_at..last_considered_processed_at)
|
||||||
.group_by {|t| t[:processed_at].beginning_of_month }
|
.group_by {|t| t[:processed_at].beginning_of_month }
|
||||||
.transform_values{|month| month.map{|h| h[:processed_at] - h[:en_construction_at]}}
|
.transform_values{|month| month.map{|h| h[:processed_at] - h[:en_construction_at]}}
|
||||||
.transform_values{|traitement_times_for_month| traitement_times_for_month.percentile(90).ceil }
|
.transform_values{|traitement_times_for_month| traitement_times_for_month.percentile(PERCENTILE).ceil }
|
||||||
.transform_values{|seconds| convert_seconds_in_days(seconds)}
|
.transform_values{|seconds| convert_seconds_in_days(seconds)}
|
||||||
.transform_keys{|month| pretty_month(month)}
|
.transform_keys{|month| pretty_month(month)}
|
||||||
end
|
end
|
||||||
|
@ -72,7 +75,7 @@ module ProcedureStatsConcern
|
||||||
now = Time.zone.now
|
now = Time.zone.now
|
||||||
traitement_times((now - nb_days.days)..now)
|
traitement_times((now - nb_days.days)..now)
|
||||||
.map{|times| times[:processed_at] - times[:en_construction_at]}
|
.map{|times| times[:processed_at] - times[:en_construction_at]}
|
||||||
.percentile(90)
|
.percentile(PERCENTILE)
|
||||||
.ceil
|
.ceil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
%span.big-number-card-number
|
%span.big-number-card-number
|
||||||
= distance_of_time_in_words(@usual_traitement_time)
|
= distance_of_time_in_words(@usual_traitement_time)
|
||||||
%span.big-number-card-detail
|
%span.big-number-card-detail
|
||||||
90% des demandes du mois dernier ont été traitées en moins de #{distance_of_time_in_words(@usual_traitement_time)}.
|
#{ProcedureStatsConcern::PERCENTILE}% des demandes des #{ProcedureStatsConcern::NB_DAYS_RECENT_DOSSIERS} derniers jours ont été traitées en moins de #{distance_of_time_in_words(@usual_traitement_time)}.
|
||||||
|
|
||||||
.stat-cards
|
.stat-cards
|
||||||
.stat-card.stat-card-half.pull-left
|
.stat-card.stat-card-half.pull-left
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
- show_time_means = procedure.id != procedure_id_for_which_we_hide_the_estimated_delay && procedure.path != procedure_path_for_which_we_hide_the_estimated_delay
|
- show_time_means = procedure.id != procedure_id_for_which_we_hide_the_estimated_delay && procedure.path != procedure_path_for_which_we_hide_the_estimated_delay
|
||||||
|
|
||||||
- cache(procedure.id, expires_in: 1.day) do
|
- cache(procedure.id, expires_in: 1.day) do
|
||||||
- if procedure.usual_traitement_time && show_time_means
|
- if procedure.usual_traitement_time_for_recent_dossiers(ProcedureStatsConcern::NB_DAYS_RECENT_DOSSIERS) && show_time_means
|
||||||
%p
|
%p
|
||||||
Habituellement, les dossiers de cette démarche sont traités dans un délai de #{distance_of_time_in_words(procedure.usual_traitement_time)}.
|
Habituellement, les dossiers de cette démarche sont traités dans un délai de #{distance_of_time_in_words(procedure.usual_traitement_time_for_recent_dossiers(ProcedureStatsConcern::NB_DAYS_RECENT_DOSSIERS))}.
|
||||||
%p
|
%p
|
||||||
Cette estimation est calculée automatiquement à partir des délais d’instruction constatés précédemment. Le délai réel peut être différent, en fonction du type de démarche (par exemple pour un appel à projet avec date de décision fixe).
|
Cette estimation est calculée automatiquement à partir des délais d’instruction constatés sur #{ProcedureStatsConcern::PERCENTILE}% des demandes qui ont été traitées lors des #{ProcedureStatsConcern::NB_DAYS_RECENT_DOSSIERS} derniers jours. Le délai réel peut être différent, en fonction du type de démarche (par exemple pour un appel à projet avec date de décision fixe).
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
describe 'users/dossiers/show/_status_overview.html.haml', type: :view do
|
describe 'users/dossiers/show/_status_overview.html.haml', type: :view do
|
||||||
before { allow(dossier.procedure).to receive(:usual_traitement_time).and_return(1.day) }
|
before { allow(dossier.procedure).to receive(:usual_traitement_time_for_recent_dossiers).and_return(1.day) }
|
||||||
|
|
||||||
subject! { render 'users/dossiers/show/status_overview.html.haml', dossier: dossier }
|
subject! { render 'users/dossiers/show/status_overview.html.haml', dossier: dossier }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue