diff --git a/app/views/stats/index.html.haml b/app/views/stats/index.html.haml index c8e9d21ec..9d8821a07 100644 --- a/app/views/stats/index.html.haml +++ b/app/views/stats/index.html.haml @@ -104,45 +104,6 @@ .clearfix - if administration_signed_in? - %h2.new-h2 Avis - - .stat-cards - .stat-card.stat-card-half.pull-left - %span.stat-card-title Taux d'utilisation des avis - = line_chart @avis_usage, ytitle: 'dossiers avec avis / total dossiers', xtitle: 'semaines' - - .stat-card.stat-card-half.pull-left - %span.stat-card-title Temps de réponse moyen par avis - = line_chart @avis_average_answer_time, ytitle: 'jours', xtitle: 'semaines' - - .stat-card.stat-card-half.pull-left - %span.stat-card-title Pourcentage d'avis rempli - = line_chart @avis_answer_percentages, ytitle: 'avis avec réponse / total avis', xtitle: 'semaines' - - .clearfix - - %h2.new-h2 Encart motivation - - .stat-cards - .stat-card.stat-card-half.pull-left - %span.stat-card-title Taux d'utilisation des motivations (par dossier) - = column_chart @motivation_usage_dossier, ytitle: 'dossiers avec motivation / total dossiers', xtitle: 'semaines' - - .stat-card.stat-card-half.pull-left - %span.stat-card-title Taux d'utilisation des motivations (par démarche) - = column_chart @motivation_usage_procedure, ytitle: 'démarches avec motivation / total démarches', xtitle: 'semaines' - - .clearfix - - %h2.new-h2 Utilisation de la bibliothèque - - .stat-cards - .stat-card.stat-card-half.pull-left - %span.stat-card-title Taux d'utilisation de la bibliothèque - = column_chart @cloned_from_library_procedures_ratio, ytitle: 'démarches clonées / total démarches', xtitle: 'semaines' - - .clearfix - %h2.new-h2 Téléchargement = link_to "Télécharger les statistiques (CSV)", stats_download_path(format: :csv), class: 'button secondary' diff --git a/spec/controllers/stats_controller_spec.rb b/spec/controllers/stats_controller_spec.rb index ade3ada20..0744ba38c 100644 --- a/spec/controllers/stats_controller_spec.rb +++ b/spec/controllers/stats_controller_spec.rb @@ -262,94 +262,4 @@ describe StatsController, type: :controller do it { expect(subject).to match([[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 33.33]]) } end - - describe "#avis_average_answer_time" do - before do - Timecop.freeze(Time.zone.local(2016, 10, 2)) - - # 1 week ago - create(:avis, answer: "voila ma réponse", created_at: 1.week.ago + 1.day, updated_at: 1.week.ago + 2.days) # 1 day - create(:avis, created_at: 1.week.ago + 2.days) - - # 2 weeks ago - create(:avis, answer: "voila ma réponse", created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days) # 1 day - create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 3.days, updated_at: 1.week.ago + 6.days) # 10 days - create(:avis, answer: "voila ma réponse2", created_at: 2.weeks.ago + 2.days, updated_at: 1.week.ago + 6.days) # 11 days - create(:avis, created_at: 2.weeks.ago + 1.day, updated_at: 2.weeks.ago + 2.days) - - # 3 weeks ago - create(:avis, answer: "voila ma réponse2", created_at: 3.weeks.ago + 1.day, updated_at: 3.weeks.ago + 2.days) # 1 day - create(:avis, answer: "voila ma réponse2", created_at: 3.weeks.ago + 1.day, updated_at: 1.week.ago + 5.days) # 18 day - end - - after { Timecop.return } - - subject { StatsController.new.send(:avis_average_answer_time) } - - it { expect(subject.count).to eq(3) } - it { is_expected.to include [1.week.ago.to_i, 1.0] } - it { is_expected.to include [2.weeks.ago.to_i, 7.33] } - it { is_expected.to include [3.weeks.ago.to_i, 9.5] } - end - - describe '#avis_answer_percentages' do - let!(:avis) { create(:avis, created_at: 2.days.ago) } - let!(:avis2) { create(:avis, answer: 'answer', created_at: 2.days.ago) } - let!(:avis3) { create(:avis, answer: 'answer', created_at: 2.days.ago) } - - subject { StatsController.new.send(:avis_answer_percentages) } - - before { Timecop.freeze(Time.zone.now) } - after { Timecop.return } - - it { is_expected.to match [[3.weeks.ago.to_i, 0], [2.weeks.ago.to_i, 0], [1.week.ago.to_i, 66.67]] } - end - - describe '#motivation_usage_dossier' do - let!(:dossier) { create(:dossier, processed_at: 1.week.ago, motivation: "Motivation") } - let!(:dossier2) { create(:dossier, processed_at: 1.week.ago) } - let!(:dossier3) { create(:dossier, processed_at: 1.week.ago) } - - before { Timecop.freeze(Time.zone.now) } - after { Timecop.return } - - subject { StatsController.new.send(:motivation_usage_dossier) } - - it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } - end - - describe '#motivation_usage_procedure' do - let!(:dossier) { create(:dossier, processed_at: 1.week.ago, motivation: "Motivation") } - let!(:dossier1) { create(:dossier, processed_at: 1.week.ago, motivation: "Motivation", procedure: dossier.procedure) } - let!(:dossier2) { create(:dossier, processed_at: 1.week.ago) } - let!(:dossier3) { create(:dossier, processed_at: 1.week.ago) } - - before { Timecop.freeze(Time.zone.now) } - after { Timecop.return } - - subject { StatsController.new.send(:motivation_usage_procedure) } - - it { expect(subject).to match([[I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 33.33]]) } - end - - describe "#cloned_from_library_procedures_ratio" do - let!(:procedure1) { create(:procedure, created_at: 3.weeks.ago) } - let!(:procedure2) { create(:procedure, created_at: 2.weeks.ago) } - let!(:procedure3) { create(:procedure, created_at: 2.weeks.ago, cloned_from_library: true) } - - before { Timecop.freeze(Time.zone.now) } - after { Timecop.return } - - subject { StatsController.new.send(:cloned_from_library_procedures_ratio) } - - let(:result) do - [ - [I18n.l(3.weeks.ago.end_of_week, format: '%d/%m/%Y'), 0], - [I18n.l(2.weeks.ago.end_of_week, format: '%d/%m/%Y'), 50.0], - [I18n.l(1.week.ago.end_of_week, format: '%d/%m/%Y'), 0] - ] - end - - it { expect(subject).to match(result) } - end end