Merge branch 'develop' into staging

This commit is contained in:
Xavier J 2015-09-28 11:02:43 +02:00
commit 464f68977a
9 changed files with 191 additions and 154 deletions

View file

@ -38,16 +38,18 @@ class Users::DescriptionController < ApplicationController
end
end
if params[:back_url] == 'recapitulatif'
commentaire = Commentaire.create
commentaire.email = 'Modification détails'
commentaire.body = 'Les informations détaillées de la demande ont été modifiées. Merci de le prendre en compte.'
commentaire.dossier = @dossier
commentaire.save
end
if !@dossier.draft?
commentaire = Commentaire.create
commentaire.email = 'Modification détails'
commentaire.body = 'Les informations détaillées de la demande ont été modifiées. Merci de le prendre en compte.'
commentaire.dossier = @dossier
commentaire.save
else
@dossier.proposed!
end
flash.notice = 'Félicitation, votre demande a bien été enregistrée.'
redirect_to url_for(controller: :recapitulatif, action: :show, dossier_id: @dossier.id)
flash.notice = 'Félicitation, votre demande a bien été enregistrée.'
redirect_to url_for(controller: :recapitulatif, action: :show, dossier_id: @dossier.id)
end

View file

@ -3,8 +3,6 @@
%br
= form_tag(url_for({controller: :description, action: :create, dossier_id: @dossier.id}), class: 'form-inline', method: 'POST', multipart: true) do
%input{type: 'hidden', value: request.parameters[:back_url], name: 'back_url', id: 'back_url'}
%div
.row
@ -73,10 +71,10 @@
%div{style: 'text-align:right'}
%h6 Tous les champs portant un * sont obligatoires.
-if request.parameters[:back_url] == 'recapitulatif'
-if !@dossier.draft?
=render partial: '/layouts/modifications_terminees'
-else
= submit_tag 'Terminer la procédure', id: 'suivant', class: %w(btn btn btn-success), style: 'float:right', data: { disable_with: 'Terminé la procédure', submit: true}
= submit_tag 'Soumettre mon dossier', id: 'suivant', class: %w(btn btn btn-success), style: 'float:right', data: { disable_with: 'Soumettre votre dossier', submit: true}
%br
%br

View file

@ -3,9 +3,11 @@
%table.table
%thead
%th Nom du Projet
%th Etat
%th Mise à jour
- @dossiers.each do |dossier|
%tr
%td
= link_to(dossier.nom_projet, users_dossier_recapitulatif_path(dossier))
%td{id: "dossier_#{dossier.id}_state"}= dossier.state_fr
%td= dossier.last_update

View file

@ -36,15 +36,28 @@ describe Users::DescriptionController, type: :controller do
context 'Tous les attributs sont bons' do
# TODO separer en deux tests : check donnees et check redirect
it 'Premier enregistrement des données' do
post :create, dossier_id: dossier_id, nom_projet: nom_projet, description: description, montant_projet: montant_projet, montant_aide_demande: montant_aide_demande, date_previsionnelle: date_previsionnelle
expect(response).to redirect_to("/users/dossiers/#{dossier_id}/recapitulatif")
describe 'Premier enregistrement des données' do
before do
dossier.draft!
post :create, dossier_id: dossier_id, nom_projet: nom_projet, description: description, montant_projet: montant_projet, montant_aide_demande: montant_aide_demande, date_previsionnelle: date_previsionnelle
dossier.reload
end
it "redirection vers la page recapitulative" do
expect(response).to redirect_to("/users/dossiers/#{dossier_id}/recapitulatif")
end
it 'etat du dossier est soumis' do
expect(dossier.state).to eq('proposed')
end
end
# TODO changer les valeurs des champs et check in bdd
context 'En train de modifier les données de description du projet' do
context 'En train de manipuler un dossier non brouillon' do
before do
post :create, dossier_id: dossier_id, nom_projet: nom_projet, description: description, montant_projet: montant_projet, montant_aide_demande: montant_aide_demande, date_previsionnelle: date_previsionnelle, back_url: 'recapitulatif'
dossier.proposed!
post :create, dossier_id: dossier_id, nom_projet: nom_projet, description: description, montant_projet: montant_projet, montant_aide_demande: montant_aide_demande, date_previsionnelle: date_previsionnelle
dossier.reload
end
context 'Enregistrement d\'un commentaire informant la modification' do
@ -66,6 +79,10 @@ describe Users::DescriptionController, type: :controller do
it 'Redirection vers la page récapitulatif' do
expect(response).to redirect_to("/users/dossiers/#{dossier_id}/recapitulatif")
end
it 'etat du dossier n\'est pas soumis' do
expect(dossier.state).not_to eq('draft')
end
end
end

View file

@ -1,133 +0,0 @@
require 'spec_helper'
feature 'Description#Show Page' do
let(:user) { create(:user) }
let(:dossier) { create(:dossier, :with_procedure, user: user) }
let(:dossier_id) { dossier.id }
before do
visit users_dossier_description_path(dossier_id: dossier_id)
end
context 'tous les attributs sont présents sur la page' do
scenario 'Le formulaire envoie vers /users/dossiers/:dossier_id/description en #POST' do
expect(page).to have_selector("form[action='/users/dossiers/#{dossier_id}/description'][method=post]")
end
scenario 'Nom du projet' do
expect(page).to have_selector('input[id=nom_projet][name=nom_projet]')
end
scenario 'Description du projet' do
expect(page).to have_selector('textarea[id=description][name=description]')
end
scenario 'Montant du projet' do
expect(page).to have_selector('input[id=montant_projet][name=montant_projet]')
end
scenario 'Montant du projet est de type number' do
expect(page).to have_selector('input[type=number][id=montant_projet]')
end
scenario 'Montant des aides du projet' do
expect(page).to have_selector('input[id=montant_aide_demande][name=montant_aide_demande]')
end
scenario 'Montant des aides du projet est de type number' do
expect(page).to have_selector('input[type=number][id=montant_aide_demande]')
end
scenario 'Date prévisionnelle du projet' do
expect(page).to have_selector('input[id=date_previsionnelle][name=date_previsionnelle]')
end
scenario 'Date prévisionnelle du projet est de type text avec un data-provide=datepicker' do
expect(page).to have_selector('input[type=text][id=date_previsionnelle][data-provide=datepicker]')
end
scenario 'Charger votre CERFA (PDF)' do
expect(page).to have_selector('input[type=file][name=cerfa_pdf][id=cerfa_pdf]')
end
scenario 'Lien CERFA' do
expect(page).to have_selector('#lien_cerfa')
end
end
context 'si la page précédente n\'est pas recapitulatif' do
scenario 'le bouton "Terminer" est présent' do
expect(page).to have_selector('#suivant')
end
end
context 'si la page précédente est recapitularif' do
before do
visit "/users/dossiers/#{dossier_id}/description?back_url=recapitulatif"
end
scenario 'le bouton "Terminer" n\'est pas présent' do
expect(page).to_not have_selector('#suivant')
end
scenario 'input hidden back_url a pour valeur le params GET' do
expect(page).to have_selector('input[type=hidden][id=back_url][value=recapitulatif]')
end
scenario 'le bouton "Modification terminé" est présent' do
expect(page).to have_selector('#modification_terminee')
end
scenario 'le lien de retour au récapitulatif est présent' do
expect(page).to have_selector("a[href='/users/dossiers/#{dossier_id}/recapitulatif']")
end
end
context 'les valeurs sont réaffichées si elles sont présentes dans la BDD' do
let!(:dossier) do
create(:dossier, :with_procedure,
nom_projet: 'Projet de test',
description: 'Description de test',
montant_projet: 12_000,
montant_aide_demande: 3000,
date_previsionnelle: '20/01/2016',
user: user)
end
scenario 'Nom du projet' do
expect(page).to have_selector("input[id=nom_projet][value='#{dossier.nom_projet}']")
end
scenario 'Description du projet' do
expect(page).to have_content("#{dossier.description}")
end
scenario 'Montant du projet' do
expect(page).to have_selector("input[id=montant_projet][value='#{dossier.montant_projet}']")
end
scenario 'Montant des aides du projet' do
expect(page).to have_selector("input[id=montant_aide_demande][value='#{dossier.montant_aide_demande}']")
end
scenario 'Date prévisionnelle du projet' do
expect(page).to have_selector("input[id=date_previsionnelle][value='#{dossier.date_previsionnelle}']")
end
end
context 'Pièces justificatives' do
let(:all_type_pj_procedure_id) { dossier.procedure.type_de_piece_justificative_ids }
context 'la liste des pièces justificatives a envoyé est affichée' do
it 'RIB' do
expect(page).to have_selector("input[type=file][name=piece_justificative_#{all_type_pj_procedure_id[0]}][id=piece_justificative_#{all_type_pj_procedure_id[0]}]")
end
end
context 'la liste des pièces récupérées automatiquement est signaliée' do
it 'Attestation MSA' do
expect(page.find_by_id("piece_justificative_#{all_type_pj_procedure_id[1]}")).to have_content('Nous l\'avons récupéré pour vous.')
end
end
end
end

View file

@ -28,7 +28,7 @@ feature 'user is on description page' do
context 'he adds cerfa' do
before do
attach_file('cerfa_pdf', File.path('spec/support/files/dossierPDF.pdf'))
click_on("Terminer la procédure")
click_on("Soumettre mon dossier")
dossier.reload
end
it 'fills dossier cerfa' do
@ -39,7 +39,7 @@ feature 'user is on description page' do
before do
file_input_id = 'piece_justificative_' + dossier.pieces_justificatives.first.type.to_s
attach_file(file_input_id, File.path('spec/support/files/dossierPDF.pdf'))
click_on('Terminer la procédure')
click_on('Soumettre mon dossier')
dossier.reload
end
scenario 'fills the given piece_justificative' do

View file

@ -50,7 +50,7 @@ feature 'user path for dossier creation' do
page.find_by_id('montant_projet').set 10_000
page.find_by_id('montant_aide_demande').set 1_000
page.find_by_id('date_previsionnelle').set '09/09/2015'
page.click_on 'Terminer la procédure'
page.click_on 'Soumettre mon dossier'
end
scenario 'user is on recap page' do
expect(page).to have_css('#recap_dossier')

View file

@ -22,6 +22,10 @@ feature 'user access to the list of his dossier' do
expect(page.body).to match(/#{last_updated_dossier.nom_projet}.*#{dossier1.nom_projet}/m)
end
scenario 'the state of dossier is displayed' do
expect(page).to have_css("#dossier_#{dossier1.id}_state")
end
context 'when user clicks on a projet in list' do
before do
page.click_on dossier1.nom_projet

View file

@ -0,0 +1,147 @@
require 'spec_helper'
describe 'users/description/show.html.haml', type: :view do
let(:user) { create(:user) }
let(:dossier) { create(:dossier, :with_procedure, user: user) }
let(:dossier_id) { dossier.id }
before do
assign(:dossier, dossier)
assign(:procedure, dossier.procedure)
end
context 'tous les attributs sont présents sur la page' do
before do
render
end
it 'Le formulaire envoie vers /users/dossiers/:dossier_id/description en #POST' do
expect(rendered).to have_selector("form[action='/users/dossiers/#{dossier_id}/description'][method=post]")
end
it 'Nom du projet' do
expect(rendered).to have_selector('input[id=nom_projet][name=nom_projet]')
end
it 'Description du projet' do
expect(rendered).to have_selector('textarea[id=description][name=description]')
end
it 'Montant du projet' do
expect(rendered).to have_selector('input[id=montant_projet][name=montant_projet]')
end
it 'Montant du projet est de type number' do
expect(rendered).to have_selector('input[type=number][id=montant_projet]')
end
it 'Montant des aides du projet' do
expect(rendered).to have_selector('input[id=montant_aide_demande][name=montant_aide_demande]')
end
it 'Montant des aides du projet est de type number' do
expect(rendered).to have_selector('input[type=number][id=montant_aide_demande]')
end
it 'Date prévisionnelle du projet' do
expect(rendered).to have_selector('input[id=date_previsionnelle][name=date_previsionnelle]')
end
it 'Date prévisionnelle du projet est de type text avec un data-provide=datepicker' do
expect(rendered).to have_selector('input[type=text][id=date_previsionnelle][data-provide=datepicker]')
end
it 'Charger votre CERFA (PDF)' do
expect(rendered).to have_selector('input[type=file][name=cerfa_pdf][id=cerfa_pdf]')
end
it 'Lien CERFA' do
expect(rendered).to have_selector('#lien_cerfa')
end
end
context 'si la page précédente n\'est pas recapitulatif' do
before do
render
end
it 'le bouton "Terminer" est présent' do
expect(rendered).to have_selector('#suivant')
end
end
context 'si la page précédente est recapitularif' do
before do
dossier.proposed!
dossier.reload
render
end
it 'le bouton "Terminer" n\'est pas présent' do
expect(rendered).to_not have_selector('#suivant')
end
it 'le bouton "Modification terminé" est présent' do
expect(rendered).to have_selector('#modification_terminee')
end
it 'le lien de retour au récapitulatif est présent' do
expect(rendered).to have_selector("a[href='/users/dossiers/#{dossier_id}/recapitulatif']")
end
end
context 'les valeurs sont réaffichées si elles sont présentes dans la BDD' do
let!(:dossier) do
create(:dossier, :with_procedure,
nom_projet: 'Projet de test',
description: 'Description de test',
montant_projet: 12_000,
montant_aide_demande: 3000,
date_previsionnelle: '20/01/2016',
user: user)
end
before do
render
end
it 'Nom du projet' do
expect(rendered).to have_selector("input[id=nom_projet][value='#{dossier.nom_projet}']")
end
it 'Description du projet' do
expect(rendered).to have_content("#{dossier.description}")
end
it 'Montant du projet' do
expect(rendered).to have_selector("input[id=montant_projet][value='#{dossier.montant_projet}']")
end
it 'Montant des aides du projet' do
expect(rendered).to have_selector("input[id=montant_aide_demande][value='#{dossier.montant_aide_demande}']")
end
it 'Date prévisionnelle du projet' do
expect(rendered).to have_selector("#date_previsionnelle", dossier.date_previsionnelle)
end
end
context 'Pièces justificatives' do
let(:all_type_pj_procedure_id) { dossier.procedure.type_de_piece_justificative_ids }
before do
render
end
context 'la liste des pièces justificatives a envoyé est affichée' do
it 'RIB' do
expect(rendered).to have_css("#piece_justificative_#{all_type_pj_procedure_id[0]}")
end
end
context 'la liste des pièces récupérées automatiquement est signaliée' do
it 'Attestation MSA' do
expect(rendered).to have_selector("#piece_justificative_#{all_type_pj_procedure_id[1]}","Nous l'avons récupéré pour vous.")
end
end
end
end