From 6cb88a995fdacc8a487b8ac6f23ed1d4eb7a3acb Mon Sep 17 00:00:00 2001 From: Simon Lehericey Date: Tue, 7 Mar 2017 18:09:09 +0100 Subject: [PATCH 1/2] Stats: add adminitrations stats view --- .../stylesheets/administrations/stats.scss | 10 ++++++++ .../administrations/stats_controller.rb | 24 +++++++++++++++++++ app/views/administrations/index.html.haml | 3 +++ .../administrations/stats/index.html.haml | 10 ++++++++ config/routes.rb | 5 +++- 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 app/assets/stylesheets/administrations/stats.scss create mode 100644 app/controllers/administrations/stats_controller.rb create mode 100644 app/views/administrations/stats/index.html.haml diff --git a/app/assets/stylesheets/administrations/stats.scss b/app/assets/stylesheets/administrations/stats.scss new file mode 100644 index 000000000..170a526c2 --- /dev/null +++ b/app/assets/stylesheets/administrations/stats.scss @@ -0,0 +1,10 @@ +.stats { + padding: 15px; + + .stat-card { + background-color: white; + margin: 15px auto; + max-width: 1200px; + padding: 15px; + } +} diff --git a/app/controllers/administrations/stats_controller.rb b/app/controllers/administrations/stats_controller.rb new file mode 100644 index 000000000..ea04c0ebb --- /dev/null +++ b/app/controllers/administrations/stats_controller.rb @@ -0,0 +1,24 @@ +module Administrations + class StatsController < ApplicationController + before_action :authenticate_administration! + + def index + procedures = Procedure.where(created_at: Time.current.all_quarter).group("date_trunc('day', created_at)").count + dossiers = Dossier.where(created_at: Time.current.all_quarter).group("date_trunc('day', created_at)").count + @procedures = clean_hash(procedures) + @dossiers = clean_hash(dossiers) + end + + private + + def clean_hash h + h.keys.each{ |key| h[key.to_date] = h[key]; h.delete(key) } + min_date = h.keys.min + max_date = h.keys.max + (min_date..max_date).each do |date| + h[date] = 0 if h[date].nil? + end + h + end + end +end diff --git a/app/views/administrations/index.html.haml b/app/views/administrations/index.html.haml index b0f2e40b7..bf4e66d9a 100644 --- a/app/views/administrations/index.html.haml +++ b/app/views/administrations/index.html.haml @@ -10,6 +10,9 @@ %br +.center + =link_to 'Stats', administrations_stats_path, style: 'margin-bottom: 50px; display: block', 'data-no-turbolink': true + = smart_listing_render :admins %br diff --git a/app/views/administrations/stats/index.html.haml b/app/views/administrations/stats/index.html.haml new file mode 100644 index 000000000..603438d3d --- /dev/null +++ b/app/views/administrations/stats/index.html.haml @@ -0,0 +1,10 @@ += javascript_include_tag 'https://code.highcharts.com/highcharts.js', 'chartkick' + +.stats + .stat-card + %h1 Procédures crées + = line_chart @procedures + + .stat-card + %h1 Dossiers créés + = line_chart @dossiers diff --git a/config/routes.rb b/config/routes.rb index 2f96e0031..716893f09 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,7 +42,10 @@ Rails.application.routes.draw do get 'admin' => 'admin#index' get 'backoffice' => 'backoffice#index' - resources :administrations + resources :administrations, only: [:index, :create] + namespace :administrations do + resources :stats, only: [:index] + end namespace :france_connect do get 'particulier' => 'particulier#login' From 342a6b239e2e315ab2f070214fa35691d418b803 Mon Sep 17 00:00:00 2001 From: Mathieu Magnin Date: Wed, 8 Mar 2017 10:55:10 +0100 Subject: [PATCH 2/2] Small css changes --- app/assets/stylesheets/_card.scss | 6 ++++++ app/assets/stylesheets/administrations/stats.scss | 7 +++---- app/views/administrations/stats/index.html.haml | 15 ++++++++------- 3 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 app/assets/stylesheets/_card.scss diff --git a/app/assets/stylesheets/_card.scss b/app/assets/stylesheets/_card.scss new file mode 100644 index 000000000..5e1e54578 --- /dev/null +++ b/app/assets/stylesheets/_card.scss @@ -0,0 +1,6 @@ +.card { + background: white; + padding: 15px; + box-shadow: 0 1px 3px rgba(0, 0, 0, .15); + border-radius: 2px; +} \ No newline at end of file diff --git a/app/assets/stylesheets/administrations/stats.scss b/app/assets/stylesheets/administrations/stats.scss index 170a526c2..005075eff 100644 --- a/app/assets/stylesheets/administrations/stats.scss +++ b/app/assets/stylesheets/administrations/stats.scss @@ -1,10 +1,9 @@ -.stats { - padding: 15px; +@import "card"; +.stats { .stat-card { - background-color: white; + @extend .card; margin: 15px auto; max-width: 1200px; - padding: 15px; } } diff --git a/app/views/administrations/stats/index.html.haml b/app/views/administrations/stats/index.html.haml index 603438d3d..7c9a3f696 100644 --- a/app/views/administrations/stats/index.html.haml +++ b/app/views/administrations/stats/index.html.haml @@ -1,10 +1,11 @@ = javascript_include_tag 'https://code.highcharts.com/highcharts.js', 'chartkick' -.stats - .stat-card - %h1 Procédures crées - = line_chart @procedures +.container + .stats + .stat-card + %h1 Procédures crées + = line_chart @procedures - .stat-card - %h1 Dossiers créés - = line_chart @dossiers + .stat-card + %h1 Dossiers créés + = line_chart @dossiers