refactor description controller
This commit is contained in:
parent
1e385655a1
commit
a265f2e48a
4 changed files with 51 additions and 45 deletions
|
@ -19,26 +19,17 @@ class DescriptionController < ApplicationController
|
||||||
def create
|
def create
|
||||||
@dossier = Dossier.find(params[:dossier_id])
|
@dossier = Dossier.find(params[:dossier_id])
|
||||||
@dossier.update_attributes(create_params)
|
@dossier.update_attributes(create_params)
|
||||||
|
if !params[:cerfa_pdf].nil?
|
||||||
if params[:cerfa_pdf] != nil
|
cerfa = @dossier.cerfa
|
||||||
PieceJointe.destroy_all(dossier_id: @dossier.id, type_piece_jointe_id: 0)
|
cerfa.content = params[:cerfa_pdf]
|
||||||
@piece_jointe = PieceJointe.new
|
cerfa.save
|
||||||
@piece_jointe.content = params[:cerfa_pdf]
|
|
||||||
@piece_jointe.type_piece_jointe_id = 0
|
|
||||||
@piece_jointe.dossier = @dossier
|
|
||||||
@piece_jointe.save
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@dossier.types_piece_jointe.each do |pj|
|
@dossier.pieces_jointes.each do |piece_jointe|
|
||||||
if params["piece_jointe_#{pj.id}"] != nil
|
if params["piece_jointe_#{piece_jointe.type}"] != nil
|
||||||
PieceJointe.destroy_all(dossier_id: @dossier.id, type_piece_jointe_id: pj.id)
|
piece_jointe.content = params["piece_jointe_#{piece_jointe.id}"]
|
||||||
|
piece_jointe.save
|
||||||
@piece_jointe = PieceJointe.new
|
|
||||||
@piece_jointe.content = params["piece_jointe_#{pj.id}"]
|
|
||||||
@piece_jointe.type_piece_jointe_id = pj.id
|
|
||||||
@piece_jointe.dossier = @dossier
|
|
||||||
@piece_jointe.save
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ class Dossier < ActiveRecord::Base
|
||||||
|
|
||||||
before_create :build_default_cerfa
|
before_create :build_default_cerfa
|
||||||
|
|
||||||
def get_pj piece_jointe_id
|
def retrieve_piece_jointe_by_type type
|
||||||
pieces_jointes.where(type_piece_jointe_id: piece_jointe_id).last
|
pieces_jointes.where(type_piece_jointe_id: type).last
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_default_pieces_jointes
|
def build_default_pieces_jointes
|
||||||
|
|
|
@ -111,11 +111,20 @@ describe DescriptionController, type: :controller do
|
||||||
|
|
||||||
context 'Sauvegarde du CERFA PDF' do
|
context 'Sauvegarde du CERFA PDF' do
|
||||||
before 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, :mail_contact => mail_contact, :cerfa_pdf => cerfa_pdf
|
dossier.build_default_pieces_jointes
|
||||||
|
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,
|
||||||
|
:mail_contact => mail_contact,
|
||||||
|
:cerfa_pdf => cerfa_pdf
|
||||||
|
dossier.reload
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'un CERFA PDF est envoyé' do
|
context 'un CERFA PDF est envoyé' do
|
||||||
subject{PieceJointe.last}
|
subject{ dossier.cerfa }
|
||||||
it 'content' do
|
it 'content' do
|
||||||
expect(subject['content']).to eq(name_piece_jointe)
|
expect(subject['content']).to eq(name_piece_jointe)
|
||||||
end
|
end
|
||||||
|
@ -123,10 +132,6 @@ describe DescriptionController, type: :controller do
|
||||||
it 'dossier_id' do
|
it 'dossier_id' do
|
||||||
expect(subject.dossier_id).to eq(dossier_id)
|
expect(subject.dossier_id).to eq(dossier_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'type_piece_jointe_id' do
|
|
||||||
expect(subject.type_piece_jointe_id).to eq(0)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'les anciens CERFA PDF sont écrasées à chaque fois' do
|
context 'les anciens CERFA PDF sont écrasées à chaque fois' do
|
||||||
|
@ -144,28 +149,26 @@ describe DescriptionController, type: :controller do
|
||||||
|
|
||||||
context 'Sauvegarde des pièces jointes' do
|
context 'Sauvegarde des pièces jointes' do
|
||||||
before 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, :mail_contact => mail_contact, :piece_jointe_692 => piece_jointe_692, :piece_jointe_103 => piece_jointe_103
|
dossier.build_default_pieces_jointes
|
||||||
|
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,
|
||||||
|
:mail_contact => mail_contact,
|
||||||
|
:piece_jointe_692 => piece_jointe_692,
|
||||||
|
:piece_jointe_103 => piece_jointe_103
|
||||||
|
dossier.reload
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'sauvegarde de 2 pieces jointes' do
|
context 'for piece 692' do
|
||||||
subject { dossier.pieces_jointes.pluck(:type_piece_jointe_id) }
|
subject { dossier.retrieve_piece_jointe_by_type 692 }
|
||||||
it 'les deux pièces sont présentes en base' do
|
it { expect(subject.content).not_to be_nil }
|
||||||
expect(subject).to include(103)
|
|
||||||
expect(subject).to include(692)
|
|
||||||
end
|
|
||||||
|
|
||||||
# TODO: refactor
|
|
||||||
context 'les pièces sont ecrasées à chaque fois' do
|
|
||||||
it 'il n\'y a qu\'une pièce jointe par type par dossier' 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, :mail_contact => mail_contact, :piece_jointe_692 => piece_jointe_692, :piece_jointe_103 => piece_jointe_103
|
|
||||||
|
|
||||||
piece_jointe_1 = PieceJointe.where(type_piece_jointe_id: '103', dossier_id: dossier_id)
|
|
||||||
piece_jointe_2 = PieceJointe.where(type_piece_jointe_id: '692', dossier_id: dossier_id)
|
|
||||||
|
|
||||||
expect(piece_jointe_1.many?).to eq(false)
|
|
||||||
expect(piece_jointe_2.many?).to eq(false)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
context 'for piece 103' do
|
||||||
|
subject { dossier.retrieve_piece_jointe_by_type 103 }
|
||||||
|
it { expect(subject.content).not_to be_nil }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -58,6 +58,18 @@ describe Dossier do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#retrieve_piece_jointe_by_type' do
|
||||||
|
let(:type) { 93 }
|
||||||
|
subject { dossier.retrieve_piece_jointe_by_type type }
|
||||||
|
before do
|
||||||
|
dossier.build_default_pieces_jointes
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns piece jointe with given type' do
|
||||||
|
expect(subject.type).to eq(93)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#build_default_pieces_jointes' do
|
describe '#build_default_pieces_jointes' do
|
||||||
context 'when dossier is linked to a formualire' do
|
context 'when dossier is linked to a formualire' do
|
||||||
let(:dossier) { create(:dossier) }
|
let(:dossier) { create(:dossier) }
|
||||||
|
|
Loading…
Add table
Reference in a new issue