diff --git a/.gitignore b/.gitignore index d7587c6c6..1cdb725a2 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ uploads/* coverage/**/* .DS_Store .byebug_history +.env diff --git a/Gemfile b/Gemfile index a389a030a..3b1aa7926 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,8 @@ source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' +gem 'dotenv-rails', groups: [:development, :test] + gem 'rails', '5.0.0.1' gem 'actioncable', '5.0.0.1' @@ -98,6 +100,8 @@ gem 'browser' gem 'simple_form' +gem 'newrelic_rpm' + group :test do gem 'capybara' gem 'launchy' diff --git a/Gemfile.lock b/Gemfile.lock index aa235f499..f0e40cf8e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -130,6 +130,10 @@ GEM docile (1.1.5) domain_name (0.5.20161129) unf (>= 0.0.5, < 1.0.0) + dotenv (2.2.0) + dotenv-rails (2.2.0) + dotenv (= 2.2.0) + railties (>= 3.2, < 5.1) draper (3.0.0.pre1) actionpack (~> 5.0) activemodel (~> 5.0) @@ -380,6 +384,7 @@ GEM multipart-post (2.0.0) nenv (0.3.0) netrc (0.11.0) + newrelic_rpm (3.18.1.330) nio4r (1.2.1) nokogiri (1.6.8.1) mini_portile2 (~> 2.1.0) @@ -662,6 +667,7 @@ DEPENDENCIES database_cleaner deep_cloneable (~> 2.2.1) devise + dotenv-rails draper (~> 3.0.0.pre1) factory_girl fog @@ -682,6 +688,7 @@ DEPENDENCIES mailjet maruku mina! + newrelic_rpm openid_connect openstack parallel_tests (~> 2.10) diff --git a/app/views/administrations/_list.html.haml b/app/views/administrations/_list.html.haml index 10d515c57..3af742c9c 100644 --- a/app/views/administrations/_list.html.haml +++ b/app/views/administrations/_list.html.haml @@ -1,30 +1,31 @@ -- unless smart_listing.empty? - %table.table - %thead - %th.col-xs-4= smart_listing.sortable 'Email', :email - %th.col-xs-4= smart_listing.sortable 'Date de dernière connexion', :last_sign_in_at - %th.col-xs-2 Procédure active - %th.col-xs-2 Dossier en cours +.card + - unless smart_listing.empty? + %table.table + %thead + %th.col-xs-4= smart_listing.sortable 'Email', :email + %th.col-xs-4= smart_listing.sortable 'Date de dernière connexion', :last_sign_in_at + %th.col-xs-2 Procédure active + %th.col-xs-2 Dossier en cours - - @admins.each do |admin| - %tr - %td - = admin.email - %td - - unless admin.last_sign_in_at.nil? - = time_ago_in_words(l(admin.last_sign_in_at, format: "%d/%m/%Y %H:%M UTC +02:00")) - ( - = admin.last_sign_in_at.to_date.strftime('%d/%m/%Y') - ) - %td - = admin.procedures.where(published: true).count - %td - - total_dossier = 0 - - admin.procedures.each do |procedure| total_dossier += procedure.dossiers.where.not(state: :draft).count end - = total_dossier - = smart_listing.paginate - = smart_listing.pagination_per_page_links + - @admins.each do |admin| + %tr + %td + = admin.email + %td + - unless admin.last_sign_in_at.nil? + = time_ago_in_words(l(admin.last_sign_in_at, format: "%d/%m/%Y %H:%M UTC +02:00")) + ( + = admin.last_sign_in_at.to_date.strftime('%d/%m/%Y') + ) + %td + = admin.procedures.where(published: true).count + %td + - total_dossier = 0 + - admin.procedures.each do |procedure| total_dossier += procedure.dossiers.where.not(state: :draft).count end + = total_dossier + = smart_listing.paginate + = smart_listing.pagination_per_page_links -- else - %h4.center - Aucun administrateur créé + - else + %h4.center + Aucun administrateur créé diff --git a/app/views/administrations/index.html.haml b/app/views/administrations/index.html.haml index bf4e66d9a..07351a196 100644 --- a/app/views/administrations/index.html.haml +++ b/app/views/administrations/index.html.haml @@ -1,22 +1,19 @@ -%br -%br +.container + .mt-1 + = form_for @admin, url: {controller: 'administrations', action: :create} do |f| + .form-group.form-inline.text-center + = f.text_field :email, placeholder: :email, class: 'form-control' + = f.text_field :password, placeholder: :password, class: 'form-control' -= form_for @admin, url: {controller: 'administrations', action: :create} do |f| - .form-group.form-inline.center - = f.text_field :email, placeholder: :email, class: 'form-control' - = f.text_field :password, placeholder: :password, class: 'form-control' + = f.submit 'Créer un administrateur', class: 'btn btn-success', id: 'submit_new_administrateur' - = f.submit 'Valider', class: 'btn btn-success', id: 'submit_new_administrateur' + .text-center + =link_to 'Stats', administrations_stats_path, style: 'margin-bottom: 50px; display: block', 'data-no-turbolink': true -%br + = smart_listing_render :admins -.center - =link_to 'Stats', administrations_stats_path, style: 'margin-bottom: 50px; display: block', 'data-no-turbolink': true + %br + %br -= smart_listing_render :admins - -%br -%br - -.center - =link_to 'Deconnexion', '/administrations/sign_out', method: :delete \ No newline at end of file + .text-center + =link_to 'Deconnexion', '/administrations/sign_out', method: :delete \ No newline at end of file diff --git a/app/views/administrations/stats/index.html.haml b/app/views/administrations/stats/index.html.haml index 7c9a3f696..e24ecb500 100644 --- a/app/views/administrations/stats/index.html.haml +++ b/app/views/administrations/stats/index.html.haml @@ -3,7 +3,7 @@ .container .stats .stat-card - %h1 Procédures crées + %h1 Procédures créées = line_chart @procedures .stat-card diff --git a/config/deploy.rb b/config/deploy.rb index 8c9306ae9..d6aa94452 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -74,6 +74,7 @@ set :shared_paths, [ 'public/system', 'public/uploads', 'config/database.yml', + "config/newrelic.yml", "config/fog_credentials.yml", 'config/initializers/secret_token.rb', 'config/initializers/features.yml', diff --git a/config/newrelic.yml b/config/newrelic.yml new file mode 100644 index 000000000..be46869da --- /dev/null +++ b/config/newrelic.yml @@ -0,0 +1,49 @@ +# +# This file configures the New Relic Agent. New Relic monitors Ruby, Java, +# .NET, PHP, Python and Node applications with deep visibility and low +# overhead. For more information, visit www.newrelic.com. +# +# Generated March 02, 2017 +# +# This configuration file is custom generated for SGMAP +# +# For full documentation of agent configuration options, please refer to +# https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration + +common: &default_settings + # Required license key associated with your New Relic account. + license_key: <%= ENV['NEWRELIC_LICENSE_KEY'] %> + + # Your application name. Renaming here affects where data displays in New + # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications + app_name: Téléprocédure Simplifiée + + # To disable the agent regardless of other settings, uncomment the following: + # agent_enabled: false + + # Logging level for log/newrelic_agent.log + log_level: info + + +# Environment-specific settings are in this section. +# RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment. +# If your application has other named environments, configure them here. +development: + <<: *default_settings + app_name: Téléprocédure Simplifiée (Development) + + # NOTE: There is substantial overhead when running in developer mode. + # Do not use for production or load testing. + developer_mode: true + +test: + <<: *default_settings + # It doesn't make sense to report to New Relic from automated test runs. + monitor_mode: false + +staging: + <<: *default_settings + app_name: Téléprocédure Simplifiée (Staging) + +production: + <<: *default_settings