extract estimate_weight

and rename nb_dossiers by nb_dossiers_termines
This commit is contained in:
Christophe Robillard 2021-06-01 09:42:07 +02:00
parent b8f01d06d7
commit 41569efe9d
4 changed files with 14 additions and 13 deletions

View file

@ -7,8 +7,7 @@ module Instructeurs
@average_dossier_weight = procedure.average_dossier_weight
@count_dossiers_termines_by_month = Traitement.count_dossiers_termines_by_month(groupe_instructeurs)
@nb_dossiers = @count_dossiers_termines_by_month.sum { |count_by_month| count_by_month["count"] }
@poids_total = @nb_dossiers * @average_dossier_weight
@nb_dossiers_termines = @count_dossiers_termines_by_month.sum { |count_by_month| count_by_month["count"] }
@archives = Archive
.for_groupe_instructeur(groupe_instructeurs)

View file

@ -2,4 +2,12 @@ module ArchiveHelper
def can_generate_archive?(dossiers_termines, poids_total)
dossiers_termines.count < 100 && poids_total < 1.gigabyte
end
def estimate_weight(archive, nb_dossiers_termines, average_dossier_weight)
if archive.present? && archive.available?
archive.file.byte_size
else
nb_dossiers_termines * average_dossier_weight
end
end
end

View file

@ -32,14 +32,11 @@
%tbody
%tr
- matching_archive = @archives.find { |archive| archive.time_span_type == 'everything' }
- if matching_archive.present? && matching_archive.available?
- weight = matching_archive.file.byte_size
- else
- weight = @poids_total
- weight = estimate_weight(matching_archive, @nb_dossiers_termines, @average_dossier_weight)
%td
Tous les dossiers
%td.text-right
= @nb_dossiers
= @nb_dossiers_termines
%td.text-right
= number_to_human_size(weight)
%td.center
@ -50,7 +47,7 @@
- elsif matching_archive.try(&:pending?)
%span.icon.retry
= t(:archive_pending_html, created_period: time_ago_in_words(matching_archive.created_at), scope: [:instructeurs, :procedure])
- elsif @nb_dossiers == 0
- elsif @nb_dossiers_termines == 0
Rien à télécharger !
- elsif weight < 1.gigabyte
= link_to instructeur_archives_path(@procedure, type: 'everything'), method: :post, class: "button" do
@ -62,10 +59,7 @@
- month = count_by_month["month"].to_date
- nb_dossiers_termines = count_by_month["count"]
- matching_archive = @archives.find { |archive| archive.time_span_type == 'monthly' && archive.month == month }
- if matching_archive.present? && matching_archive.available?
- weight = matching_archive.file.byte_size
- else
- weight = nb_dossiers_termines * @average_dossier_weight
- weight = estimate_weight(matching_archive, nb_dossiers_termines, @average_dossier_weight)
%tr
%td

View file

@ -25,7 +25,7 @@ describe Instructeurs::ArchivesController, type: :controller do
it 'displays archives' do
get :index, { params: { procedure_id: procedure1.id } }
expect(assigns(:dossiers_termines).size).to eq(3)
expect(assigns(:nb_dossiers_termines).size).to eq(8)
expect(assigns(:archives)).to eq([archive1])
end
end