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
|
||||
@dossier = Dossier.find(params[:dossier_id])
|
||||
@dossier.update_attributes(create_params)
|
||||
|
||||
if params[:cerfa_pdf] != nil
|
||||
PieceJointe.destroy_all(dossier_id: @dossier.id, type_piece_jointe_id: 0)
|
||||
@piece_jointe = PieceJointe.new
|
||||
@piece_jointe.content = params[:cerfa_pdf]
|
||||
@piece_jointe.type_piece_jointe_id = 0
|
||||
@piece_jointe.dossier = @dossier
|
||||
@piece_jointe.save
|
||||
if !params[:cerfa_pdf].nil?
|
||||
cerfa = @dossier.cerfa
|
||||
cerfa.content = params[:cerfa_pdf]
|
||||
cerfa.save
|
||||
end
|
||||
|
||||
|
||||
@dossier.types_piece_jointe.each do |pj|
|
||||
if params["piece_jointe_#{pj.id}"] != nil
|
||||
PieceJointe.destroy_all(dossier_id: @dossier.id, type_piece_jointe_id: pj.id)
|
||||
|
||||
@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
|
||||
@dossier.pieces_jointes.each do |piece_jointe|
|
||||
if params["piece_jointe_#{piece_jointe.type}"] != nil
|
||||
piece_jointe.content = params["piece_jointe_#{piece_jointe.id}"]
|
||||
piece_jointe.save
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ class Dossier < ActiveRecord::Base
|
|||
|
||||
before_create :build_default_cerfa
|
||||
|
||||
def get_pj piece_jointe_id
|
||||
pieces_jointes.where(type_piece_jointe_id: piece_jointe_id).last
|
||||
def retrieve_piece_jointe_by_type type
|
||||
pieces_jointes.where(type_piece_jointe_id: type).last
|
||||
end
|
||||
|
||||
def build_default_pieces_jointes
|
||||
|
|
|
@ -111,11 +111,20 @@ describe DescriptionController, type: :controller do
|
|||
|
||||
context 'Sauvegarde du CERFA PDF' 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
|
||||
|
||||
context 'un CERFA PDF est envoyé' do
|
||||
subject{PieceJointe.last}
|
||||
subject{ dossier.cerfa }
|
||||
it 'content' do
|
||||
expect(subject['content']).to eq(name_piece_jointe)
|
||||
end
|
||||
|
@ -123,10 +132,6 @@ describe DescriptionController, type: :controller do
|
|||
it 'dossier_id' do
|
||||
expect(subject.dossier_id).to eq(dossier_id)
|
||||
end
|
||||
|
||||
it 'type_piece_jointe_id' do
|
||||
expect(subject.type_piece_jointe_id).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
context 'sauvegarde de 2 pieces jointes' do
|
||||
subject { dossier.pieces_jointes.pluck(:type_piece_jointe_id) }
|
||||
it 'les deux pièces sont présentes en base' do
|
||||
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
|
||||
context 'for piece 692' do
|
||||
subject { dossier.retrieve_piece_jointe_by_type 692 }
|
||||
it { expect(subject.content).not_to be_nil }
|
||||
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
|
||||
|
|
|
@ -58,6 +58,18 @@ describe Dossier do
|
|||
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
|
||||
context 'when dossier is linked to a formualire' do
|
||||
let(:dossier) { create(:dossier) }
|
||||
|
|
Loading…
Add table
Reference in a new issue