From 68951c3a5357c12768a4602a30fb9189789f4a0f Mon Sep 17 00:00:00 2001 From: Xavier J Date: Thu, 3 Nov 2016 16:46:26 +0100 Subject: [PATCH 1/7] Add locales dynamics (opensimplif) --- app/models/preference_list_dossier.rb | 4 +- .../admin/accompagnateurs/show.html.haml | 3 +- app/views/admin/procedures/_navbar.html.haml | 2 +- app/views/admin/procedures/index.html.haml | 5 ++- app/views/admin/procedures/new.html.haml | 3 +- app/views/admin/procedures/show.html.haml | 3 +- .../administrateurs/_login_banner.html.haml | 6 ++- .../administrateurs/sessions/new.html.haml | 5 ++- .../dossiers/_follow_action.html.haml | 4 +- .../backoffice/dossiers/_followers.html.haml | 3 +- .../backoffice/dossiers/_onglets.html.haml | 7 ++- .../backoffice/dossiers/_pref_list.html.haml | 5 ++- app/views/backoffice/dossiers/index.html.haml | 5 ++- app/views/backoffice/dossiers/show.html.haml | 2 +- app/views/dossiers/_infos_dossier.html.haml | 14 +++--- app/views/dossiers/_invites.html.haml | 2 +- .../dossiers/_tab_objects_dossier.html.haml | 6 +-- app/views/layouts/_navbar.html.haml | 10 ++--- app/views/layouts/application.html.haml | 2 +- app/views/users/description/_show.html.haml | 23 +++++----- app/views/users/dossiers/index.html.haml | 3 +- app/views/users/recapitulatif/show.html.haml | 2 +- app/views/users/sessions/new.html.haml | 5 ++- config/deploy.rb | 4 ++ config/locales/dynamics/fr.yml | 44 +++++++++++++++++++ config/locales/dynamics/fr_opensimplif.yml | 44 +++++++++++++++++++ spec/models/preference_list_dossier_spec.rb | 4 +- spec/views/layouts/_navbar_spec.rb | 8 ++-- 28 files changed, 169 insertions(+), 59 deletions(-) create mode 100644 config/locales/dynamics/fr.yml create mode 100644 config/locales/dynamics/fr_opensimplif.yml diff --git a/app/models/preference_list_dossier.rb b/app/models/preference_list_dossier.rb index c09ed6682..0fa14f24e 100644 --- a/app/models/preference_list_dossier.rb +++ b/app/models/preference_list_dossier.rb @@ -36,10 +36,10 @@ class PreferenceListDossier < ActiveRecord::Base table = nil { - dossier_id: create_column('ID', table, 'id', 'id', 1), + dossier_id: create_column('N°', table, 'id', 'id', 1), created_at: create_column('Créé le', table, 'created_at', 'first_creation', 2), updated_at: create_column('Mise à jour le', table, 'updated_at', 'last_update', 2), - state: create_column('Statut', table, 'state', 'display_state', 1) + state: create_column('État', table, 'state', 'display_state', 1) } end diff --git a/app/views/admin/accompagnateurs/show.html.haml b/app/views/admin/accompagnateurs/show.html.haml index edcac3188..e12a5e379 100644 --- a/app/views/admin/accompagnateurs/show.html.haml +++ b/app/views/admin/accompagnateurs/show.html.haml @@ -7,7 +7,8 @@ = smart_listing_render :accompagnateurs_not_assign %br - %h3 Ajouter un accompagnateur + %h3 + =t('dynamics.admin.procedure.onglet_accompagnateurs.add.title') #procedure_new.section.section-label = form_for @gestionnaire, url: {controller: 'admin/gestionnaires', action: :create} do |f| .row diff --git a/app/views/admin/procedures/_navbar.html.haml b/app/views/admin/procedures/_navbar.html.haml index f2d67d181..b9a736f4f 100644 --- a/app/views/admin/procedures/_navbar.html.haml +++ b/app/views/admin/procedures/_navbar.html.haml @@ -2,7 +2,7 @@ = link_to('Informations', admin_procedure_path(@procedure)) %li{ class: ('active' if active == 'Accompagnateurs') } - = link_to('Accompagnateurs', admin_procedure_accompagnateurs_path(@procedure)) + = link_to(t('dynamics.admin.procedure.onglets.accompagnateurs'), admin_procedure_accompagnateurs_path(@procedure)) %li{ class: ('disabled' if @procedure.locked?) || ('active' if active == 'Description') } = link_to_unless(@procedure.locked?, 'Description', edit_admin_procedure_path(@procedure)) do diff --git a/app/views/admin/procedures/index.html.haml b/app/views/admin/procedures/index.html.haml index f79272923..825ad5f5e 100644 --- a/app/views/admin/procedures/index.html.haml +++ b/app/views/admin/procedures/index.html.haml @@ -1,5 +1,6 @@ -= link_to("Nouvelle procédure", "/admin/procedures/new", class: 'btn btn-success', style: 'float:right; margin-top:2%;') -%h1 Gestion des procédures += link_to(t('dynamics.admin.dossiers.tableau_de_bord.nouvelle_procedure'), "/admin/procedures/new", class: 'btn btn-success', style: 'float:right; margin-top:2%;') +%h1 + =t('dynamics.admin.dossiers.tableau_de_bord.title') %br = render partial: 'onglets' diff --git a/app/views/admin/procedures/new.html.haml b/app/views/admin/procedures/new.html.haml index d72bed14b..391adde06 100644 --- a/app/views/admin/procedures/new.html.haml +++ b/app/views/admin/procedures/new.html.haml @@ -1,4 +1,5 @@ -%h2 Nouvelle procédure +%h2 + =t('dynamics.admin.dossiers.tableau_de_bord.nouvelle_procedure') #procedure_new.section.section-label = form_for @procedure, url: {controller: 'admin/procedures', action: :create}, multipart: true do |f| diff --git a/app/views/admin/procedures/show.html.haml b/app/views/admin/procedures/show.html.haml index d14ff8065..b250fbda5 100644 --- a/app/views/admin/procedures/show.html.haml +++ b/app/views/admin/procedures/show.html.haml @@ -83,7 +83,8 @@ = piece_justificative.libelle %br %br - %h3 Dossiers + %h3 + =t('dynamics.admin.procedure.stats.title') .row .col-md-6.col-lg-6{style:'margin-left:3%'} diff --git a/app/views/administrateurs/_login_banner.html.haml b/app/views/administrateurs/_login_banner.html.haml index 0d6c464da..90353b334 100644 --- a/app/views/administrateurs/_login_banner.html.haml +++ b/app/views/administrateurs/_login_banner.html.haml @@ -9,11 +9,13 @@ %li = link_to(admin_procedures_path, id: :menu_item_procedure) do %i.fa.fa-list{ style: "background-size: 10px;"} -  Procédures +   + =t('dynamics.admin.menu.procedures') %li = link_to(admin_gestionnaires_path) do %i.fa.fa-user -  Accompagnateur +   + =t('dynamics.admin.menu.accompagnateurs') %li.divider{ role: :separator} %li = link_to(admin_profile_path, id: :profile) do diff --git a/app/views/administrateurs/sessions/new.html.haml b/app/views/administrateurs/sessions/new.html.haml index b560b422d..863389b43 100644 --- a/app/views/administrateurs/sessions/new.html.haml +++ b/app/views/administrateurs/sessions/new.html.haml @@ -2,7 +2,8 @@ %br = image_tag('logo-tps.png') %br - %h2#login_admin Administration + %h2#login_admin + =t('dynamics.admin.connexion_title') %br %br @@ -16,7 +17,7 @@ = f.email_field :email, class: 'form-control' %br %h4 - = f.label :password + = f.label 'Mot de passe' .input-group .input-group-addon %span.glyphicon.glyphicon-asterisk diff --git a/app/views/backoffice/dossiers/_follow_action.html.haml b/app/views/backoffice/dossiers/_follow_action.html.haml index 2a87b49eb..c695c9942 100644 --- a/app/views/backoffice/dossiers/_follow_action.html.haml +++ b/app/views/backoffice/dossiers/_follow_action.html.haml @@ -1,4 +1,4 @@ - if current_gestionnaire.follow?(@facade.dossier.id) - = link_to('Quitter'.html_safe, backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'btn btn-md btn-danger', id: "suivre_dossier_#{@facade.dossier.id}") + = link_to('Se désabonner'.html_safe, backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'btn btn-md btn-danger', id: "suivre_dossier_#{@facade.dossier.id}") -else - = link_to('Suivre', backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'btn btn-md btn-primary', id: "suivre_dossier_#{@facade.dossier.id}") + = link_to("S'abonner", backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'btn btn-md btn-primary', id: "suivre_dossier_#{@facade.dossier.id}") diff --git a/app/views/backoffice/dossiers/_followers.html.haml b/app/views/backoffice/dossiers/_followers.html.haml index 8274055d4..be87860b8 100644 --- a/app/views/backoffice/dossiers/_followers.html.haml +++ b/app/views/backoffice/dossiers/_followers.html.haml @@ -1,4 +1,5 @@ -%h3 Personnes suivant l'activité de ce dossier +%h3 + =t('dynamics.dossiers.followers.title') %br .row diff --git a/app/views/backoffice/dossiers/_onglets.html.haml b/app/views/backoffice/dossiers/_onglets.html.haml index c19dcf170..fa32c51b0 100644 --- a/app/views/backoffice/dossiers/_onglets.html.haml +++ b/app/views/backoffice/dossiers/_onglets.html.haml @@ -1,6 +1,9 @@ -#filter_by_procedure{style:'margin-left: 5%'} +#filter_by_procedure{style:'margin-left: 2%'} + %b.text-info + = t('dynamics.backoffice.filter_procedure.title') %select{onchange: 'location = this.value', style:'margin-top: 10px; margin-bottom: 10px', id: 'filter_by_procedure_select'} %option{value: backoffice_dossiers_path} + = t('dynamics.backoffice.filter_procedure.first') - @dossiers_list_facade.gestionnaire_procedures_name_and_id_list.each do |procedure| %option{value: backoffice_dossiers_procedure_path(procedure[:id]), ('selected' if procedure[:id] == params[:id].to_i) => '' } = truncate(procedure[:libelle], {length: 50}) @@ -55,7 +58,7 @@ %a = form_tag(backoffice_dossiers_search_url, method: :get) do .input-group{style:'width: 300px'} - = text_field_tag('q', "#{@search_terms unless @search_terms.nil? }", id: 'q', placeholder: "Rechercher un dossier ...", class:'form-control') + = text_field_tag('q', "#{@search_terms unless @search_terms.nil? }", id: 'q', placeholder: t('dynamics.backoffice.research.placeholder'), class:'form-control') %span.input-group-btn %button.btn.btn-default{ id:'search_button' } %i.fa.fa-search diff --git a/app/views/backoffice/dossiers/_pref_list.html.haml b/app/views/backoffice/dossiers/_pref_list.html.haml index b45576213..310852807 100644 --- a/app/views/backoffice/dossiers/_pref_list.html.haml +++ b/app/views/backoffice/dossiers/_pref_list.html.haml @@ -1,9 +1,10 @@ %button#pref_list_dossier_close_action.btn.btn-danger.btn-xs{style:'float:right'} %i.fa.fa-close -%h3 Gestion de colonnes affichées +%h3 + =t('dynamics.backoffice.pref_list.title') %p{style:'margin-top: 15px; margin-bottom: 20px'} - Ce menu vous permet de choisir les différentes colonnes que vous souhaitez voir apparaitrent dans votre interface de suivi des dossiers. + =t('dynamics.backoffice.pref_list.description') %h4.text-primary Actuelles diff --git a/app/views/backoffice/dossiers/index.html.haml b/app/views/backoffice/dossiers/index.html.haml index 7a9a68328..2f1f62703 100644 --- a/app/views/backoffice/dossiers/index.html.haml +++ b/app/views/backoffice/dossiers/index.html.haml @@ -2,8 +2,9 @@ #pref_list_menu = render partial: 'backoffice/dossiers/pref_list' - =link_to 'Tous mes dossiers en CSV', backoffice_download_dossiers_tps_path, {class: 'btn btn-success btn-sm', style: 'float: right; margin-right: 4%; margin-top: 7px'} - %h1 Gestion des dossiers + =link_to t('dynamics.backoffice.download_all_dossiers'), backoffice_download_dossiers_tps_path, {class: 'btn btn-success btn-sm', style: 'float: right; margin-right: 4%; margin-top: 7px'} + %h1 + =t('dynamics.backoffice.title') = render partial: 'backoffice/dossiers/onglets' diff --git a/app/views/backoffice/dossiers/show.html.haml b/app/views/backoffice/dossiers/show.html.haml index 9d0288dd9..223c49508 100644 --- a/app/views/backoffice/dossiers/show.html.haml +++ b/app/views/backoffice/dossiers/show.html.haml @@ -1,6 +1,6 @@ #backoffice_dossier_show %h1#dossier_id.text-info{ :style => 'text-align:right'} - = "Dossier n°#{@facade.dossier.id}" + = t('dynamics.dossiers.numéro') + @facade.dossier.id.to_s %div{:style => 'text-align:right'} %h3{:class => 'text-success'} diff --git a/app/views/dossiers/_infos_dossier.html.haml b/app/views/dossiers/_infos_dossier.html.haml index 2a18e98fa..c34efe26c 100644 --- a/app/views/dossiers/_infos_dossier.html.haml +++ b/app/views/dossiers/_infos_dossier.html.haml @@ -7,7 +7,8 @@ - if @facade.procedure.for_individual? %br .individual.text-info - %h4 Dépositaire + %h4 + =t('dynamics.dossiers.depositaite') %table.table{style:'width: 60%'} %tr @@ -25,11 +26,12 @@ Prénom %td.col-md-5.col-lg-5 = @facade.individual.prenom - %tr - %th.col-md-3.col-lg-3 - Date de naissance - %td.col-md-5.col-lg-5 - = @facade.individual.birthdate + - unless Features.opensimplif + %tr + %th.col-md-3.col-lg-3 + Date de naissance + %td.col-md-5.col-lg-5 + = @facade.individual.birthdate - if @facade.dossier.mandataire_social && gestionnaire_signed_in? .mandataire_social.text-success.center diff --git a/app/views/dossiers/_invites.html.haml b/app/views/dossiers/_invites.html.haml index 8328ef5c4..d2fa82d4e 100644 --- a/app/views/dossiers/_invites.html.haml +++ b/app/views/dossiers/_invites.html.haml @@ -9,7 +9,7 @@ %li = invite.email - else - Aucune personne invité + Aucune personne invitée .col-md-3.col-lg-3 =form_tag invites_dossier_path(dossier_id: @facade.dossier.id), method: :post, class: 'form-inline' do diff --git a/app/views/dossiers/_tab_objects_dossier.html.haml b/app/views/dossiers/_tab_objects_dossier.html.haml index 3384c2e26..6e0c684fe 100644 --- a/app/views/dossiers/_tab_objects_dossier.html.haml +++ b/app/views/dossiers/_tab_objects_dossier.html.haml @@ -17,7 +17,7 @@ Abonnés %li{role: "presentation"} %a{href: "#champs_private", 'aria-controls' => "champs_private", role: "tab", 'data-toggle' => "tab"} - Formulaire + Champs privés %div{class: "tab-content"} %div{role: "tabpanel", class: "tab-pane fade in active", id:"commentaires"} @@ -34,11 +34,11 @@ %div{role: "tabpanel", class: "tab-pane fade", id:"followers"} = render partial: 'followers' %div{role: "tabpanel", class: "tab-pane fade", id:"champs_private"} - %h3 Formulaire privé + %h3 Champs privés - if @champs.nil? || @champs.empty? %br %h4.text-primary - Pas de formulaire privé pour ce dossier + Pas de champ privé pour ce dossier - else = form_for @facade.dossier, url: {controller: 'backoffice/private_formulaires', action: :update, dossier_id: @facade.dossier.id}, remote: true do = render partial: '/users/description/champs' diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 47dd43354..4f297d196 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -9,18 +9,18 @@ - if gestionnaire_signed_in? && user_signed_in? %a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'} - Dossiers + =t('dynamics.backoffice.dossiers') %a{href: users_dossiers_path, class: 'btn btn-md'} - Mes Dossiers + =t('dynamics.users.mes_dossiers') - elsif gestionnaire_signed_in? %a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'} - Mes Dossiers + =t('dynamics.users.mes_dossiers') - elsif user_signed_in? %a{href: users_dossiers_path, class: 'btn btn-md'} - Mes Dossiers + =t('dynamics.users.mes_dossiers') - elsif administrateur_signed_in? %a{href: admin_procedures_path, class: 'btn btn-md'} - Mes Procédures + =t('dynamics.admin.menu.title') #sign_out -if user_signed_in? diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index aab4cbe64..d1bda0bb0 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -51,7 +51,7 @@ \- - =link_to 'Contact', "mailto:contact@tps.apientreprise.fr" + =link_to 'Contact', "mailto:"+t('dynamics.contact_email') diff --git a/app/views/users/description/_show.html.haml b/app/views/users/description/_show.html.haml index 7c49b634d..03217cb0e 100644 --- a/app/views/users/description/_show.html.haml +++ b/app/views/users/description/_show.html.haml @@ -14,7 +14,8 @@ %h2.text-info = @dossier.procedure.libelle - %h3 Votre dossier + - unless Features.opensimplif + %h3 Votre dossier -#TODO use form_for = form_tag(url_for({controller: 'users/description', action: :create, dossier_id: @dossier.id}), class: 'form-inline', method: 'POST', multipart: true) do @@ -37,19 +38,19 @@ //TODO a refactorer = render partial: 'users/description/pieces_justificatives' - #state_description.row{style:'width: 50%; margin-left:20px'} - .panel.panel-info - .panel-body.center - .row - .col-md-1.col-lg-1 - .fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'} - .col-md-11.col-lg-11 - Les documents administratifs ne sont pas indispensables afin d'initier votre dossier. - Vous pourrez dans tous les cas les compléter plus tard si vous ne les possédez pas de suite. + - unless Features.opensimplif + #state_description.row{style:'width: 50%; margin-left:20px'} + .panel.panel-info + .panel-body.center + .row + .col-md-1.col-lg-1 + .fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'} + .col-md-11.col-lg-11 + Les documents administratifs ne sont pas indispensables afin d'initier votre dossier. + Vous pourrez dans tous les cas les compléter plus tard si vous ne les possédez pas de suite. - if user_signed_in? - %div{style: 'text-align:right'} %h6 Tous les champs portant un * sont obligatoires. diff --git a/app/views/users/dossiers/index.html.haml b/app/views/users/dossiers/index.html.haml index 46774910d..229fc6008 100644 --- a/app/views/users/dossiers/index.html.haml +++ b/app/views/users/dossiers/index.html.haml @@ -1,5 +1,6 @@ #users_index - %h1 Mes dossiers + %h1 + =t('dynamics.users.mes_dossiers') -unless Features.opensimplif = render partial: 'onglets' diff --git a/app/views/users/recapitulatif/show.html.haml b/app/views/users/recapitulatif/show.html.haml index 253c4f865..355c92446 100644 --- a/app/views/users/recapitulatif/show.html.haml +++ b/app/views/users/recapitulatif/show.html.haml @@ -8,7 +8,7 @@ .col-md-3.col-lg-3 %h2#dossier_id{:class => 'text-info', :style => 'text-align:right; margin-bottom:15px'} - = "Dossier n°#{@facade.dossier.id}" + = t('dynamics.dossiers.numéro') + @facade.dossier.id.to_s - if user_signed_in? && current_user.email == @facade.dossier.user.email -if @facade.dossier.validated? diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index 0cade0fe2..9a0ce150f 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -20,7 +20,8 @@ = image_tag('logo-tps.png', {id: 'logo_tps'}) %br - %h2#login_user Connexion + %h2#login_user + =t('dynamics.users.connexion_title') %a.btn_fc#btn_fcp{href: '/france_connect/particulier'} = image_tag 'franceconnect_logo.png' @@ -39,7 +40,7 @@ = f.email_field :email, class: 'form-control' %br %h4 - = f.label :password + = f.label 'Mot de passe' .input-group .input-group-addon %span.fa.fa-asterisk diff --git a/config/deploy.rb b/config/deploy.rb index 14abbcaa5..cf3617318 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -94,6 +94,7 @@ set :shared_paths, [ "config/initializers/super_admin.rb", "config/unicorn.rb", "config/initializers/raven.rb", + "config/locales/dynamics/fr.yml", 'config/france_connect.yml', 'config/initializers/mailjet.rb', 'config/initializers/storage_url.rb', @@ -138,6 +139,9 @@ task :setup => :environment do queue! %[mkdir -p "#{deploy_to}/shared/app"] queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/app"] + queue! %[mkdir -p "#{deploy_to}/shared/config/locales/dynamics"] + queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config/locales/dynamics"] + queue! %[touch "#{deploy_to}/shared/config/database.yml"] queue %[echo "-----> Be sure to edit 'shared/config/database.yml'."] diff --git a/config/locales/dynamics/fr.yml b/config/locales/dynamics/fr.yml new file mode 100644 index 000000000..0d8e42293 --- /dev/null +++ b/config/locales/dynamics/fr.yml @@ -0,0 +1,44 @@ +fr: + dynamics: + contact_email: contact@tps.apientreprise.fr + users: + connexion_title: Connexion + mes_dossiers: 'Mes dossiers' + + backoffice: + title: Gestion des dossiers + dossiers: Dossiers + pref_list: + title: 'Gestion de colonnes affichées' + description: 'Ce menu vous permet de choisir les différentes colonnes que vous souhaitez voir apparaître dans votre interface de suivi des dossiers.' + download_all_dossiers: 'Tous mes dossiers en CSV' + research: + placeholder: 'Rechercher un dossier ...' + filter_procedure: + title: "Voir qu'une procédure :" + first: '' + + dossiers: + depositaite: "Dépositaire" + numéro: 'Dossier n°' + followers: + title: "Personnes suivant l'activité de ce dossier" + + admin: + connexion_title: Administration + dossiers: + tableau_de_bord: + title: 'Gestion des procédures' + nouvelle_procedure: 'Nouvelle procédure' + menu: + title: Mes procédures + accompagnateurs: Accompagnateurs + procedures: Procédures + procedure: + onglets: + accompagnateurs: Accompagnateurs + stats: + title: Dossiers + onglet_accompagnateurs: + add: + title: 'Ajouter un accompagnateur' \ No newline at end of file diff --git a/config/locales/dynamics/fr_opensimplif.yml b/config/locales/dynamics/fr_opensimplif.yml new file mode 100644 index 000000000..ed8b4c7e0 --- /dev/null +++ b/config/locales/dynamics/fr_opensimplif.yml @@ -0,0 +1,44 @@ +fr_opensimplif: + dynamics: + contact_email: simplification.sgmap@modernisation.gouv.fr + users: + connexion_title: "Connectez-vous en tant qu'utilisateur" + mes_dossiers: 'Mon tableau de bord' + + backoffice: + title: Tableau de bord + dossiers: Tableau de bord + pref_list: + title: 'Affichage du tableau de bord' + description: 'Ce menu vous permet de choisir les différentes colonnes que vous souhaitez voir apparaître dans le tableau de bord.' + download_all_dossiers: 'Exporter' + research: + placeholder: 'Rechercher une simplification ...' + filter_procedure: + title: "Statut des simplifications :" + first: 'Tous' + + dossiers: + depositaite: "Emetteur de la simplification" + numéro: 'Simplification n°' + followers: + title: "Personnes suivant l'activité de cette simplification" + + admin: + connexion_title: Connectez-vous en tant qu'administrateur + dossiers: + tableau_de_bord: + title: 'Tableau de bord' + nouvelle_procedure: 'Nouveau format de fiche' + menu: + title: Tableau de bord + accompagnateurs: Utilisateurs + procedures: Tableau de bord + procedure: + onglets: + accompagnateurs: Utilisateurs + stats: + title: Simplification + onglet_accompagnateurs: + add: + title: 'Ajouter un utilisateur' \ No newline at end of file diff --git a/spec/models/preference_list_dossier_spec.rb b/spec/models/preference_list_dossier_spec.rb index 3558dd699..76abc8441 100644 --- a/spec/models/preference_list_dossier_spec.rb +++ b/spec/models/preference_list_dossier_spec.rb @@ -26,7 +26,7 @@ describe PreferenceListDossier do describe 'dossier_id' do subject { super()[:dossier_id] } - it { expect(subject[:libelle]).to eq 'ID' } + it { expect(subject[:libelle]).to eq 'N°' } it { expect(subject[:table]).to be_nil } it { expect(subject[:attr]).to eq 'id' } it { expect(subject[:attr_decorate]).to eq 'id' } @@ -62,7 +62,7 @@ describe PreferenceListDossier do describe 'state' do subject { super()[:state] } - it { expect(subject[:libelle]).to eq 'Statut' } + it { expect(subject[:libelle]).to eq 'État' } it { expect(subject[:table]).to be_nil } it { expect(subject[:attr]).to eq 'state' } it { expect(subject[:attr_decorate]).to eq 'display_state' } diff --git a/spec/views/layouts/_navbar_spec.rb b/spec/views/layouts/_navbar_spec.rb index dab6e8493..c9e9b887e 100644 --- a/spec/views/layouts/_navbar_spec.rb +++ b/spec/views/layouts/_navbar_spec.rb @@ -33,8 +33,8 @@ describe 'layouts/_navbar.html.haml', type: :view do it { is_expected.not_to match(/href="\/users\/sign_in">Utilisateur/) } it { is_expected.not_to match(/href="\/gestionnaires\/sign_in">Accompagnateur/) } it { is_expected.not_to match(/href="\/administrateurs\/sign_in">Administrateur/) } - it { is_expected.not_to match(/Mes Dossiers/) } - it { is_expected.to match(/Mes Procédures/) } + it { is_expected.not_to match(/Mes dossiers/) } + it { is_expected.to match(/Mes procédures/) } it { is_expected.to match(/Se déconnecter/) } end @@ -50,8 +50,8 @@ describe 'layouts/_navbar.html.haml', type: :view do it { is_expected.not_to match(/href="\/users\/sign_in">Utilisateur/) } it { is_expected.not_to match(/href="\/gestionnaires\/sign_in">Accompagnateur/) } it { is_expected.not_to match(/href="\/administrateurs\/sign_in">Administrateur/) } - it { is_expected.not_to match(/Mes Procédures/) } - it { is_expected.to match(/Mes Dossiers/) } + it { is_expected.not_to match(/Mes procédures/) } + it { is_expected.to match(/Mes dossiers/) } it { is_expected.to match(/Déconnexion/) } end From e10c218d3a20e7e86afd3a4da5e1176772365c3d Mon Sep 17 00:00:00 2001 From: Xavier J Date: Thu, 3 Nov 2016 17:20:56 +0100 Subject: [PATCH 2/7] Add dynamic logo (opensimplif) --- app/assets/images/{ => logos}/logo-tps.png | Bin app/decorators/procedure_decorator.rb | 2 +- app/views/administrateurs/sessions/new.html.haml | 2 +- app/views/gestionnaires/passwords/edit.html.haml | 2 +- app/views/gestionnaires/passwords/new.html.haml | 2 +- app/views/gestionnaires/sessions/new.html.haml | 2 +- app/views/layouts/_navbar.html.haml | 2 +- app/views/users/passwords/edit.html.haml | 2 +- app/views/users/passwords/new.html.haml | 2 +- app/views/users/registrations/new.html.haml | 2 +- app/views/users/sessions/new.html.haml | 2 +- app/views/users/siret/_pro.html.haml | 2 +- config/initializers/logos.rb | 2 ++ spec/decorators/procedure_decorator_spec.rb | 2 +- 14 files changed, 14 insertions(+), 12 deletions(-) rename app/assets/images/{ => logos}/logo-tps.png (100%) create mode 100644 config/initializers/logos.rb diff --git a/app/assets/images/logo-tps.png b/app/assets/images/logos/logo-tps.png similarity index 100% rename from app/assets/images/logo-tps.png rename to app/assets/images/logos/logo-tps.png diff --git a/app/decorators/procedure_decorator.rb b/app/decorators/procedure_decorator.rb index df848570d..05577587b 100644 --- a/app/decorators/procedure_decorator.rb +++ b/app/decorators/procedure_decorator.rb @@ -10,7 +10,7 @@ class ProcedureDecorator < Draper::Decorator end def logo_img - return 'logo-tps.png' if logo.blank? + return LOGO_NAME if logo.blank? File.join(STORAGE_URL, File.basename(logo.path)) end def geographic_information diff --git a/app/views/administrateurs/sessions/new.html.haml b/app/views/administrateurs/sessions/new.html.haml index 863389b43..93a5e0b38 100644 --- a/app/views/administrateurs/sessions/new.html.haml +++ b/app/views/administrateurs/sessions/new.html.haml @@ -1,6 +1,6 @@ #form_login %br - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#login_admin =t('dynamics.admin.connexion_title') diff --git a/app/views/gestionnaires/passwords/edit.html.haml b/app/views/gestionnaires/passwords/edit.html.haml index ff4027fe4..7de92bf83 100644 --- a/app/views/gestionnaires/passwords/edit.html.haml +++ b/app/views/gestionnaires/passwords/edit.html.haml @@ -1,7 +1,7 @@ = devise_error_messages! #form_login - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Changement de mot de passe diff --git a/app/views/gestionnaires/passwords/new.html.haml b/app/views/gestionnaires/passwords/new.html.haml index eed941e40..4fdf9c3a2 100644 --- a/app/views/gestionnaires/passwords/new.html.haml +++ b/app/views/gestionnaires/passwords/new.html.haml @@ -2,7 +2,7 @@ %br #form_login - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Mot de passe oublié diff --git a/app/views/gestionnaires/sessions/new.html.haml b/app/views/gestionnaires/sessions/new.html.haml index a3de3cd1e..18e7a5c65 100644 --- a/app/views/gestionnaires/sessions/new.html.haml +++ b/app/views/gestionnaires/sessions/new.html.haml @@ -1,6 +1,6 @@ #form_login %br - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Accompagnateur diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 4f297d196..38c449b0a 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -5,7 +5,7 @@ Env Test = image_tag('marianne_small.png', class: 'logo') %a{href: '/'} - = image_tag('logo-tps.png', class: 'logo') + = image_tag(LOGO_NAME, class: 'logo') - if gestionnaire_signed_in? && user_signed_in? %a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'} diff --git a/app/views/users/passwords/edit.html.haml b/app/views/users/passwords/edit.html.haml index 60c694678..c13b95e1d 100644 --- a/app/views/users/passwords/edit.html.haml +++ b/app/views/users/passwords/edit.html.haml @@ -29,7 +29,7 @@ = devise_error_messages! #form_login - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Changement de mot de passe diff --git a/app/views/users/passwords/new.html.haml b/app/views/users/passwords/new.html.haml index 6504a7295..2c98c5514 100644 --- a/app/views/users/passwords/new.html.haml +++ b/app/views/users/passwords/new.html.haml @@ -30,7 +30,7 @@ %br #form_login - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Mot de passe oublié diff --git a/app/views/users/registrations/new.html.haml b/app/views/users/registrations/new.html.haml index 17054c523..01d7d7c81 100644 --- a/app/views/users/registrations/new.html.haml +++ b/app/views/users/registrations/new.html.haml @@ -30,7 +30,7 @@ #form_login %br - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#gestionnaire_login Inscription diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index 9a0ce150f..3ea216422 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -17,7 +17,7 @@ - else - = image_tag('logo-tps.png', {id: 'logo_tps'}) + = image_tag(LOGO_NAME, {id: 'logo_tps'}) %br %h2#login_user diff --git a/app/views/users/siret/_pro.html.haml b/app/views/users/siret/_pro.html.haml index 34e119cb8..fb4899a99 100644 --- a/app/views/users/siret/_pro.html.haml +++ b/app/views/users/siret/_pro.html.haml @@ -1,6 +1,6 @@ %p.lead{id: 'pro_section'} - = image_tag('logo-tps.png') + = image_tag(LOGO_NAME) %br %h2#titre_procedure.text-info = @procedure.libelle diff --git a/config/initializers/logos.rb b/config/initializers/logos.rb new file mode 100644 index 000000000..ad429846b --- /dev/null +++ b/config/initializers/logos.rb @@ -0,0 +1,2 @@ +LOGO_NAME = 'logos/logo-tps.png' unless Features.opensimplif +LOGO_NAME = 'logos/logo-opensimplif.jpg' if Features.opensimplif diff --git a/spec/decorators/procedure_decorator_spec.rb b/spec/decorators/procedure_decorator_spec.rb index c730f7c84..45d8e4608 100644 --- a/spec/decorators/procedure_decorator_spec.rb +++ b/spec/decorators/procedure_decorator_spec.rb @@ -16,7 +16,7 @@ describe ProcedureDecorator do describe 'logo_img' do subject { super().logo_img } - it { is_expected.to eq('logo-tps.png') } + it { is_expected.to eq(LOGO_NAME) } end describe 'geographic_information' do From a08ded5322613d00dde69b6baa03aec79fdf797d Mon Sep 17 00:00:00 2001 From: Xavier J Date: Thu, 3 Nov 2016 17:29:59 +0100 Subject: [PATCH 3/7] Fix logo image_url --- app/assets/images/logos/logo-opensimplif.jpg | Bin 0 -> 31009 bytes app/decorators/procedure_decorator.rb | 2 +- .../administrateurs/sessions/new.html.haml | 2 +- .../gestionnaires/passwords/edit.html.haml | 2 +- app/views/gestionnaires/passwords/new.html.haml | 2 +- app/views/gestionnaires/sessions/new.html.haml | 2 +- app/views/layouts/_navbar.html.haml | 2 +- app/views/users/passwords/edit.html.haml | 2 +- app/views/users/passwords/new.html.haml | 2 +- app/views/users/registrations/new.html.haml | 2 +- app/views/users/sessions/new.html.haml | 2 +- app/views/users/siret/_pro.html.haml | 2 +- spec/decorators/procedure_decorator_spec.rb | 2 +- 13 files changed, 12 insertions(+), 12 deletions(-) create mode 100644 app/assets/images/logos/logo-opensimplif.jpg diff --git a/app/assets/images/logos/logo-opensimplif.jpg b/app/assets/images/logos/logo-opensimplif.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d87c8b015236fc84d570fc42bb5dd4cae6428273 GIT binary patch literal 31009 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 literal 0 HcmV?d00001 diff --git a/app/decorators/procedure_decorator.rb b/app/decorators/procedure_decorator.rb index 05577587b..cefb52444 100644 --- a/app/decorators/procedure_decorator.rb +++ b/app/decorators/procedure_decorator.rb @@ -10,7 +10,7 @@ class ProcedureDecorator < Draper::Decorator end def logo_img - return LOGO_NAME if logo.blank? + return image_url(LOGO_NAME) if logo.blank? File.join(STORAGE_URL, File.basename(logo.path)) end def geographic_information diff --git a/app/views/administrateurs/sessions/new.html.haml b/app/views/administrateurs/sessions/new.html.haml index 93a5e0b38..2c2185b9b 100644 --- a/app/views/administrateurs/sessions/new.html.haml +++ b/app/views/administrateurs/sessions/new.html.haml @@ -1,6 +1,6 @@ #form_login %br - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#login_admin =t('dynamics.admin.connexion_title') diff --git a/app/views/gestionnaires/passwords/edit.html.haml b/app/views/gestionnaires/passwords/edit.html.haml index 7de92bf83..7b387b366 100644 --- a/app/views/gestionnaires/passwords/edit.html.haml +++ b/app/views/gestionnaires/passwords/edit.html.haml @@ -1,7 +1,7 @@ = devise_error_messages! #form_login - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Changement de mot de passe diff --git a/app/views/gestionnaires/passwords/new.html.haml b/app/views/gestionnaires/passwords/new.html.haml index 4fdf9c3a2..b0e8cddb9 100644 --- a/app/views/gestionnaires/passwords/new.html.haml +++ b/app/views/gestionnaires/passwords/new.html.haml @@ -2,7 +2,7 @@ %br #form_login - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Mot de passe oublié diff --git a/app/views/gestionnaires/sessions/new.html.haml b/app/views/gestionnaires/sessions/new.html.haml index 18e7a5c65..d6e4dc203 100644 --- a/app/views/gestionnaires/sessions/new.html.haml +++ b/app/views/gestionnaires/sessions/new.html.haml @@ -1,6 +1,6 @@ #form_login %br - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Accompagnateur diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index 38c449b0a..ce9e08d80 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -5,7 +5,7 @@ Env Test = image_tag('marianne_small.png', class: 'logo') %a{href: '/'} - = image_tag(LOGO_NAME, class: 'logo') + = image_tag(image_url(LOGO_NAME), class: 'logo') - if gestionnaire_signed_in? && user_signed_in? %a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'} diff --git a/app/views/users/passwords/edit.html.haml b/app/views/users/passwords/edit.html.haml index c13b95e1d..bcfb616b7 100644 --- a/app/views/users/passwords/edit.html.haml +++ b/app/views/users/passwords/edit.html.haml @@ -29,7 +29,7 @@ = devise_error_messages! #form_login - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Changement de mot de passe diff --git a/app/views/users/passwords/new.html.haml b/app/views/users/passwords/new.html.haml index 2c98c5514..a08703e6a 100644 --- a/app/views/users/passwords/new.html.haml +++ b/app/views/users/passwords/new.html.haml @@ -30,7 +30,7 @@ %br #form_login - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Mot de passe oublié diff --git a/app/views/users/registrations/new.html.haml b/app/views/users/registrations/new.html.haml index 01d7d7c81..b44bc289c 100644 --- a/app/views/users/registrations/new.html.haml +++ b/app/views/users/registrations/new.html.haml @@ -30,7 +30,7 @@ #form_login %br - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#gestionnaire_login Inscription diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index 3ea216422..c82745969 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -17,7 +17,7 @@ - else - = image_tag(LOGO_NAME, {id: 'logo_tps'}) + = image_tag(image_url(LOGO_NAME), {id: 'logo_tps'}) %br %h2#login_user diff --git a/app/views/users/siret/_pro.html.haml b/app/views/users/siret/_pro.html.haml index fb4899a99..c56920d71 100644 --- a/app/views/users/siret/_pro.html.haml +++ b/app/views/users/siret/_pro.html.haml @@ -1,6 +1,6 @@ %p.lead{id: 'pro_section'} - = image_tag(LOGO_NAME) + = image_tag(image_url(LOGO_NAME)) %br %h2#titre_procedure.text-info = @procedure.libelle diff --git a/spec/decorators/procedure_decorator_spec.rb b/spec/decorators/procedure_decorator_spec.rb index 45d8e4608..789257668 100644 --- a/spec/decorators/procedure_decorator_spec.rb +++ b/spec/decorators/procedure_decorator_spec.rb @@ -16,7 +16,7 @@ describe ProcedureDecorator do describe 'logo_img' do subject { super().logo_img } - it { is_expected.to eq(LOGO_NAME) } + it { is_expected.to eq(image_url(LOGO_NAME)) } end describe 'geographic_information' do From 926d705806f595282463abdeaac6a0ccb2e73421 Mon Sep 17 00:00:00 2001 From: JC Date: Mon, 7 Nov 2016 10:30:45 +0100 Subject: [PATCH 4/7] Added js and button, only flushing input value from parent form --- app/assets/javascripts/dossiers_list_filter.js | 5 ++++- app/assets/javascripts/pref_list_dossier.js | 2 +- app/views/backoffice/dossiers/_filter_framed.html.haml | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/dossiers_list_filter.js b/app/assets/javascripts/dossiers_list_filter.js index dee999526..f69d28d97 100644 --- a/app/assets/javascripts/dossiers_list_filter.js +++ b/app/assets/javascripts/dossiers_list_filter.js @@ -7,6 +7,9 @@ function filters_init() { filter_framed_show(event); filter_framed_close_all_excepted(framed_id(event)); }); + $(".erase-filter").on('click', function (event) { + $(this).parent().find(".filter_input").val(""); + }); } function filter_framed_close_all_excepted(id) { @@ -24,4 +27,4 @@ function filter_framed_show(event) { dom_object.css('top', (event.pageY + 7) + 'px'); dom_object.css('left', (event.pageX + 7) + 'px'); -} \ No newline at end of file +} diff --git a/app/assets/javascripts/pref_list_dossier.js b/app/assets/javascripts/pref_list_dossier.js index 70bf1a4dd..977778ff1 100644 --- a/app/assets/javascripts/pref_list_dossier.js +++ b/app/assets/javascripts/pref_list_dossier.js @@ -30,4 +30,4 @@ function pref_list_dossier_close_action() { } ) }); -} \ No newline at end of file +} diff --git a/app/views/backoffice/dossiers/_filter_framed.html.haml b/app/views/backoffice/dossiers/_filter_framed.html.haml index 0c69e2aed..35c60c7f8 100644 --- a/app/views/backoffice/dossiers/_filter_framed.html.haml +++ b/app/views/backoffice/dossiers/_filter_framed.html.haml @@ -3,6 +3,8 @@ = preference.libelle =form_tag @dossiers_list_facade.filter_url, {class: 'panel-body form-inline', method: :post} do - %input.form-control.filter_input{name: "filter_input[#{preference.table_attr}]", style:'width: 84%', value: "#{preference.filter}"} + %input.form-control.filter_input{name: "filter_input[#{preference.table_attr}]", style:'width: 69%', value: "#{preference.filter}"} %button.btn.btn-sm.btn-success - %i.fa.fa-check \ No newline at end of file + %i.fa.fa-check + %div.btn.btn-sm.btn-danger.erase-filter + %i.fa.fa-remove From 2f68d540e37e4b65e0af479c6e747128191bf951 Mon Sep 17 00:00:00 2001 From: Xavier J Date: Mon, 7 Nov 2016 11:23:21 +0100 Subject: [PATCH 5/7] Migrate to ruby 2.3.1 --- .ruby-version | 2 +- Gemfile | 6 ++-- Gemfile.lock | 38 --------------------- app/decorators/procedure_decorator.rb | 3 +- spec/decorators/procedure_decorator_spec.rb | 2 +- 5 files changed, 7 insertions(+), 44 deletions(-) diff --git a/.ruby-version b/.ruby-version index cd57a8b95..2bf1c1ccf 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.1.5 +2.3.1 diff --git a/Gemfile b/Gemfile index 026ba7955..b92fc4cbe 100644 --- a/Gemfile +++ b/Gemfile @@ -104,9 +104,9 @@ group :test do gem 'simplecov', require: false gem 'poltergeist' gem 'timecop' - gem 'guard' - gem 'guard-rspec', require: false - gem 'guard-livereload', '~> 2.4', require: false + # gem 'guard' + # gem 'guard-rspec', require: false + # gem 'guard-livereload', '~> 2.4', require: false gem 'vcr' end diff --git a/Gemfile.lock b/Gemfile.lock index a7599faa6..706c620e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,11 +136,7 @@ GEM activemodel (>= 3.0) activesupport (>= 3.0) request_store (~> 1.0) - em-websocket (0.5.1) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) erubis (2.7.0) - eventmachine (1.0.8) excon (0.49.0) execjs (2.7.0) factory_girl (4.5.0) @@ -283,24 +279,6 @@ GEM formatador (0.2.5) globalid (0.3.7) activesupport (>= 4.1.0) - guard (2.13.0) - formatador (>= 0.2.4) - listen (>= 2.7, <= 4.0) - lumberjack (~> 1.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.9.12) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-compat (1.2.1) - guard-livereload (2.5.1) - em-websocket (~> 0.5) - guard (~> 2.8) - guard-compat (~> 1.0) - multi_json (~> 1.8) - guard-rspec (4.3.1) - guard (~> 2.1) - rspec (>= 2.14, < 4.0) haml (4.0.6) tilt haml-rails (0.9.0) @@ -318,7 +296,6 @@ GEM ruby_parser (~> 3.5) http-cookie (1.0.2) domain_name (~> 0.5) - http_parser.rb (0.6.0) httpclient (2.6.0.1) i18n (0.7.0) inflecto (0.0.2) @@ -346,16 +323,12 @@ GEM railties (>= 3.1) leaflet-rails (0.7.4) libv8 (3.16.14.7) - listen (3.0.4) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9) logstash-event (1.2.02) logstasher (0.6.5) logstash-event (~> 1.2.0) request_store loofah (2.0.3) nokogiri (>= 1.5.9) - lumberjack (1.0.9) mail (2.6.4) mime-types (>= 1.16, < 4) mailjet (1.1.0) @@ -369,14 +342,10 @@ GEM minitest (5.9.0) multi_json (1.11.2) multipart-post (2.0.0) - nenv (0.2.0) netrc (0.10.3) nokogiri (1.6.8) mini_portile2 (~> 2.1.0) pkg-config (~> 1.1.7) - notiffany (0.0.8) - nenv (~> 0.1) - shellany (~> 0.0) nyan-cat-formatter (0.11) rspec (>= 2.99, >= 2.14.2, < 4) open4 (1.3.4) @@ -451,9 +420,6 @@ GEM rainbow (2.0.0) raindrops (0.13.0) rake (11.2.2) - rb-fsevent (0.9.6) - rb-inotify (0.9.5) - ffi (>= 0.5.0) rbvmomi (1.8.2) builder nokogiri (>= 1.4.1) @@ -528,7 +494,6 @@ GEM sentry-raven (0.13.1) faraday (>= 0.7.6) sexp_processor (4.6.0) - shellany (0.0.1) shoulda-matchers (2.8.0) activesupport (>= 3.0.0) simplecov (0.9.1) @@ -643,9 +608,6 @@ DEPENDENCIES fog fog-openstack font-awesome-rails - guard - guard-livereload (~> 2.4) - guard-rspec haml-rails hashie jbuilder (~> 2.0) diff --git a/app/decorators/procedure_decorator.rb b/app/decorators/procedure_decorator.rb index cefb52444..f78a02d88 100644 --- a/app/decorators/procedure_decorator.rb +++ b/app/decorators/procedure_decorator.rb @@ -1,4 +1,5 @@ class ProcedureDecorator < Draper::Decorator + delegate_all def lien @@ -10,7 +11,7 @@ class ProcedureDecorator < Draper::Decorator end def logo_img - return image_url(LOGO_NAME) if logo.blank? + return h.image_url(LOGO_NAME) if logo.blank? File.join(STORAGE_URL, File.basename(logo.path)) end def geographic_information diff --git a/spec/decorators/procedure_decorator_spec.rb b/spec/decorators/procedure_decorator_spec.rb index 789257668..d94025473 100644 --- a/spec/decorators/procedure_decorator_spec.rb +++ b/spec/decorators/procedure_decorator_spec.rb @@ -16,7 +16,7 @@ describe ProcedureDecorator do describe 'logo_img' do subject { super().logo_img } - it { is_expected.to eq(image_url(LOGO_NAME)) } + it { is_expected.to match(/http.*#{ActionController::Base.helpers.image_url(LOGO_NAME)}/) } end describe 'geographic_information' do From 83ad08622f1959d612d02c40d47c308eb00b1deb Mon Sep 17 00:00:00 2001 From: JC Date: Mon, 7 Nov 2016 11:32:51 +0100 Subject: [PATCH 6/7] Adding js that check oustide click from div, adding rescue LOGO_NAME causing 500 --- app/assets/javascripts/dossiers_list_filter.js | 11 ++++++++++- app/views/layouts/_navbar.html.haml | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/dossiers_list_filter.js b/app/assets/javascripts/dossiers_list_filter.js index dee999526..c373bc0e0 100644 --- a/app/assets/javascripts/dossiers_list_filter.js +++ b/app/assets/javascripts/dossiers_list_filter.js @@ -3,9 +3,18 @@ $(document).ready(filters_init); function filters_init() { + $('html').click(function(event) { + var visible_filter = $('.filter_framed:visible') + if(visible_filter.length) { + if (!$(event.target).closest('.filter_framed').is(":visible")) { + visible_filter.hide(); + } + } + }); $(".filter").on('click', function (event) { filter_framed_show(event); filter_framed_close_all_excepted(framed_id(event)); + event.stopPropagation(); }); } @@ -24,4 +33,4 @@ function filter_framed_show(event) { dom_object.css('top', (event.pageY + 7) + 'px'); dom_object.css('left', (event.pageX + 7) + 'px'); -} \ No newline at end of file +} diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml index ce9e08d80..c67a744f2 100644 --- a/app/views/layouts/_navbar.html.haml +++ b/app/views/layouts/_navbar.html.haml @@ -5,7 +5,7 @@ Env Test = image_tag('marianne_small.png', class: 'logo') %a{href: '/'} - = image_tag(image_url(LOGO_NAME), class: 'logo') + = image_tag(image_url(LOGO_NAME), class: 'logo') rescue nil - if gestionnaire_signed_in? && user_signed_in? %a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'} From 5284df5ce0afbd14c6531e1a800fbba868e5c5a5 Mon Sep 17 00:00:00 2001 From: Xavier J Date: Mon, 7 Nov 2016 17:08:33 +0100 Subject: [PATCH 7/7] =?UTF-8?q?Add=20page=20=C2=AB=C2=A0Proc=C3=A9dure=20t?= =?UTF-8?q?ermin=C3=A9e=C2=A0=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/procedures_controller.rb | 7 ++- app/controllers/users/dossiers_controller.rb | 7 +++ app/models/procedure.rb | 1 - app/views/commencer/archived.html.haml | 15 +++++++ .../sessions/_resume_procedure.html.haml | 18 ++++++++ app/views/users/sessions/new.html.haml | 20 +-------- .../admin/procedures_controller_spec.rb | 44 ++++++++++++++----- .../users/dossiers_controller_spec.rb | 10 +++++ spec/models/procedure_spec.rb | 6 +-- 9 files changed, 93 insertions(+), 35 deletions(-) create mode 100644 app/views/commencer/archived.html.haml create mode 100644 app/views/users/sessions/_resume_procedure.html.haml diff --git a/app/controllers/admin/procedures_controller.rb b/app/controllers/admin/procedures_controller.rb index 0e51c2097..4d8e44af3 100644 --- a/app/controllers/admin/procedures_controller.rb +++ b/app/controllers/admin/procedures_controller.rb @@ -179,7 +179,12 @@ class Admin::ProceduresController < AdminController end def path_list - render json: ProcedurePath.where("path LIKE '%#{params[:request]}%'").pluck(:path, :administrateur_id).inject([]) { + render json: ProcedurePath + .joins(', procedures') + .where("procedures.id = procedure_paths.procedure_id AND procedures.archived != true") + .where("path LIKE '%#{params[:request]}%'") + .pluck(:path, :administrateur_id) + .inject([]) { |acc, value| acc.push({label: value.first, mine: value.second == current_administrateur.id}) }.to_json end diff --git a/app/controllers/users/dossiers_controller.rb b/app/controllers/users/dossiers_controller.rb index 8e175d8b2..f5ef2472f 100644 --- a/app/controllers/users/dossiers_controller.rb +++ b/app/controllers/users/dossiers_controller.rb @@ -30,6 +30,13 @@ class Users::DossiersController < UsersController procedure = ProcedurePath.where(path: params[:procedure_path]).first!.procedure end + if procedure.archived? + + @dossier = Dossier.new(procedure: procedure) + + return render 'commencer/archived' + end + redirect_to new_users_dossier_path(procedure_id: procedure.id) rescue ActiveRecord::RecordNotFound error_procedure diff --git a/app/models/procedure.rb b/app/models/procedure.rb index f8d737532..9a81ed2b6 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -103,7 +103,6 @@ class Procedure < ActiveRecord::Base end def archive - self.procedure_path.destroy! if self.path self.update_attributes!({archived: true}) end diff --git a/app/views/commencer/archived.html.haml b/app/views/commencer/archived.html.haml new file mode 100644 index 000000000..5ad9c0f18 --- /dev/null +++ b/app/views/commencer/archived.html.haml @@ -0,0 +1,15 @@ +%br +%div{style: 'text-align: center; max-width:500px; margin-left:auto; margin-right:auto; padding: 20px;'} + = render partial: 'users/sessions/resume_procedure' + +.center{style:'margin-top: -20px'} + %h3 + La campagne de création de nouveau dossier + %br + pour cette démarche en ligne est maintenant terminée. + + %br + %p + Si vous avez déjà déposé un ou plusieurs dossiers : + %a.btn.btn-lg.btn-info{href: new_user_session_path} + Accéder à mon espace en ligne. \ No newline at end of file diff --git a/app/views/users/sessions/_resume_procedure.html.haml b/app/views/users/sessions/_resume_procedure.html.haml new file mode 100644 index 000000000..f99ce8bd8 --- /dev/null +++ b/app/views/users/sessions/_resume_procedure.html.haml @@ -0,0 +1,18 @@ +- if @dossier + = link_to 'X', users_no_procedure_url, class: 'btn btn-xs', style:'float: right' + + - if @dossier.procedure.euro_flag + #euro_flag.flag + =image_tag('drapeau_europe.png') + + #logo_procedure.flag + =image_tag( @dossier.procedure.decorate.logo_img ) + + %h2#titre_procedure.text-info + = @dossier.procedure.libelle + %p + = h @dossier.procedure.description.html_safe + +- else + = image_tag(image_url(LOGO_NAME), {id: 'logo_tps'}) +%br \ No newline at end of file diff --git a/app/views/users/sessions/new.html.haml b/app/views/users/sessions/new.html.haml index c82745969..718da7056 100644 --- a/app/views/users/sessions/new.html.haml +++ b/app/views/users/sessions/new.html.haml @@ -1,24 +1,6 @@ #form_login %br - - if @dossier - = link_to 'X', users_no_procedure_url, class: 'btn btn-xs', style:'float: right' - - - if @dossier.procedure.euro_flag - #euro_flag.flag - =image_tag('drapeau_europe.png') - - #logo_procedure.flag - =image_tag( @dossier.procedure.decorate.logo_img ) - - %h2#titre_procedure.text-info - = @dossier.procedure.libelle - %p - = h @dossier.procedure.description.html_safe - - - - else - = image_tag(image_url(LOGO_NAME), {id: 'logo_tps'}) - %br + = render partial: 'users/sessions/resume_procedure' %h2#login_user =t('dynamics.users.connexion_title') diff --git a/spec/controllers/admin/procedures_controller_spec.rb b/spec/controllers/admin/procedures_controller_spec.rb index c6ddc9462..c72a02d35 100644 --- a/spec/controllers/admin/procedures_controller_spec.rb +++ b/spec/controllers/admin/procedures_controller_spec.rb @@ -299,7 +299,7 @@ describe Admin::ProceduresController, type: :controller do it 'archive previous procedure' do expect(procedure2.published).to be_truthy expect(procedure2.archived).to be_truthy - expect(procedure2.path).to be_nil + expect(procedure2.path).not_to be_nil end end @@ -427,21 +427,31 @@ describe Admin::ProceduresController, type: :controller do let!(:procedure) { create(:procedure, :published, administrateur: admin) } let(:admin2) { create(:administrateur) } let!(:procedure2) { create(:procedure, :published, administrateur: admin2) } + let!(:procedure3) { create(:procedure, :published, administrateur: admin2) } + subject { get :path_list } + let(:body) { JSON.parse(response.body) } - before do - subject + describe 'when no params' do + before do + subject + end + + it { expect(response.status).to eq(200) } + it { expect(body.size).to eq(3) } + it { expect(body.first['label']).to eq(procedure.path) } + it { expect(body.first['mine']).to be_truthy } + it { expect(body.second['label']).to eq(procedure2.path) } + it { expect(body.second['mine']).to be_falsy } + end - it { expect(response.status).to eq(200) } - it { expect(body.size).to eq(2) } - it { expect(body.first['label']).to eq(procedure.path) } - it { expect(body.first['mine']).to be_truthy } - it { expect(body.second['label']).to eq(procedure2.path) } - it { expect(body.second['mine']).to be_falsy } - context 'filtered' do + before do + subject + end + subject { get :path_list, request: procedure2.path } it { expect(response.status).to eq(200) } @@ -449,6 +459,18 @@ describe Admin::ProceduresController, type: :controller do it { expect(body.first['label']).to eq(procedure2.path) } it { expect(body.first['mine']).to be_falsy } end + + context 'when procedure is archived' do + + before do + procedure3.update_attribute :archived, true + subject + end + + it 'do not return on the json' do + expect(body.size).to eq(2) + end + end end describe 'POST transfer' do @@ -467,7 +489,7 @@ describe Admin::ProceduresController, type: :controller do let(:email_admin) { new_admin.email } it { expect(subject.status).to eq 200 } - it { expect {subject}.to change(Procedure, :count).by(1) } + it { expect { subject }.to change(Procedure, :count).by(1) } context { before do diff --git a/spec/controllers/users/dossiers_controller_spec.rb b/spec/controllers/users/dossiers_controller_spec.rb index d88ae049a..9bdb158de 100644 --- a/spec/controllers/users/dossiers_controller_spec.rb +++ b/spec/controllers/users/dossiers_controller_spec.rb @@ -157,6 +157,16 @@ describe Users::DossiersController, type: :controller do it { expect(subject.status).to eq 302 } it { expect(subject).to redirect_to new_users_dossier_path(procedure_id: procedure.id) } + + context 'when procedure is archived' do + let(:procedure) { create(:procedure, :published, archived: true) } + + before do + procedure.update_column :archived, true + end + + it { expect(subject.status).to eq 200 } + end end describe 'POST #siret_informations' do diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 47356f165..db62fda24 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -243,14 +243,14 @@ describe Procedure do end it 'is not available from a valid path anymore' do - expect(procedure.path).to be_nil + expect(procedure.path).to eq procedure_path.path expect(procedure.published).to be_truthy expect(procedure.archived).to be_truthy end it 'is not in ProcedurePath table anymore' do - expect(ProcedurePath.where(path: procedure.path).count).to eq(0) - expect(ProcedurePath.find_by_procedure_id(procedure.id)).to be_nil + expect(ProcedurePath.where(path: procedure.path).count).to eq(1) + expect(ProcedurePath.find_by_procedure_id(procedure.id)).not_to be_nil end end