add database cleaner

add factory girl
fix tests
rename dossier_pdf into piece_jointe
rename ref_piece_jointe into content
This commit is contained in:
Tanguy PATTE 2015-08-13 15:55:19 +02:00
parent c16d7a12f2
commit 3c57643f76
48 changed files with 338 additions and 174 deletions

View file

@ -5,17 +5,16 @@ class Admin::DossierController < ApplicationController
@dossier = Dossier.find(params[:dossier_id])
@entreprise = @dossier.entreprise.decorate
@etablissement = @dossier.etablissement
@dossier_pdf = @dossier.dossier_pdf
@pieces_jointes = @dossier.pieces_jointes
@commentaires = @dossier.commentaires.order(created_at: :desc)
@commentaires = @commentaires.all.decorate
@commentaire_email = current_user.email
@formulaire = RefFormulaire.find(@dossier.ref_formulaire)
@formulaire = @dossier.ref_formulaire
@liste_pieces_jointes = RefPiecesJointe.get_liste_piece_jointe @dossier.ref_formulaire
@array_id_pj_valides = DossierPdf.get_array_id_pj_valid_for_dossier @dossier.id
@array_id_pj_valides = PieceJointe.get_array_id_pj_valid_for_dossier @dossier.id
@dossier = @dossier.decorate
rescue
rescue ActiveRecord::RecordNotFound
redirect_start
end

View file

@ -6,7 +6,7 @@ class DemandesController < ApplicationController
def choice
@dossier = Dossier.find(params[:dossier_id])
@dossier.update_attributes(ref_formulaire: params[:ref_formulaire])
@dossier.update_attributes(ref_formulaire_id: params[:ref_formulaire])
redirect_to url_for( { controller: :carte, action: :show, :dossier_id => params[:dossier_id] } )
end

View file

@ -3,7 +3,7 @@ class DescriptionController < ApplicationController
@dossier = Dossier.find(params[:dossier_id])
@dossier = @dossier.decorate
@array_id_pj_valides = DossierPdf.get_array_id_pj_valid_for_dossier @dossier.id
@array_id_pj_valides = PieceJointe.get_array_id_pj_valid_for_dossier @dossier.id
@liste_pieces_jointes = get_liste_piece_jointe
rescue
@ -21,23 +21,23 @@ class DescriptionController < ApplicationController
@dossier.update_attributes(create_params)
if params[:cerfa_pdf] != nil
DossierPdf.destroy_all(dossier_id: @dossier.id, ref_pieces_jointes_id: 0)
@dossier_pdf = DossierPdf.new
@dossier_pdf.ref_dossier_pdf = params[:cerfa_pdf]
@dossier_pdf.ref_pieces_jointes_id = 0
@dossier_pdf.dossier = @dossier
@dossier_pdf.save
PieceJointe.destroy_all(dossier_id: @dossier.id, ref_pieces_jointes_id: 0)
@piece_jointe = PieceJointe.new
@piece_jointe.content = params[:cerfa_pdf]
@piece_jointe.ref_pieces_jointes_id = 0
@piece_jointe.dossier = @dossier
@piece_jointe.save
end
get_liste_piece_jointe.each do |pj|
if params["piece_jointe_#{pj.id}"] != nil
DossierPdf.destroy_all(dossier_id: @dossier.id, ref_pieces_jointes_id: pj.id)
PieceJointe.destroy_all(dossier_id: @dossier.id, ref_pieces_jointes_id: pj.id)
@dossier_pdf = DossierPdf.new
@dossier_pdf.ref_dossier_pdf = params["piece_jointe_#{pj.id}"]
@dossier_pdf.ref_pieces_jointes_id = pj.id
@dossier_pdf.dossier = @dossier
@dossier_pdf.save
@piece_jointe = PieceJointe.new
@piece_jointe.content = params["piece_jointe_#{pj.id}"]
@piece_jointe.ref_pieces_jointes_id = pj.id
@piece_jointe.dossier = @dossier
@piece_jointe.save
end
end
@ -73,7 +73,7 @@ class DescriptionController < ApplicationController
end
def get_liste_piece_jointe
@formulaire = RefFormulaire.find(@dossier.ref_formulaire)
@formulaire = @dossier.ref_formulaire
RefPiecesJointe.where ("\"CERFA\" = '#{@formulaire.ref_demarche}'")
end
end

View file

@ -4,7 +4,7 @@ class DossiersController < ApplicationController
@etablissement = @dossier.etablissement
@entreprise = @dossier.entreprise.decorate
rescue
rescue ActiveRecord::RecordNotFound
redirect_to url_for({controller: :start, action: :error_dossier})
end
@ -39,14 +39,16 @@ class DossiersController < ApplicationController
redirect_to url_for({controller: :dossiers, action: :show, id: @dossier.id})
end
# TODO: Remove rescue
rescue
redirect_to url_for({controller: :start, action: @rescue_redirect})
end
def update
@dossier = Dossier.find(params[:id])
@dossier.autorisation_donnees = (params[:autorisation_donnees] == 'on')
@dossier.save
return error if update_params[:autorisation_donnees] == '0'
@dossier.update_attributes(update_params)
if @dossier.autorisation_donnees
redirect_to url_for({controller: :demandes, action: :show, dossier_id: @dossier.id})
@ -66,6 +68,10 @@ class DossiersController < ApplicationController
private
def update_params
params.require(:dossier).permit(:autorisation_donnees)
end
def dossier_id_is_present?
end

View file

@ -5,9 +5,12 @@ class RecapitulatifController < ApplicationController
#mettre dans le modèle
@commentaires = @dossier.commentaires.order(created_at: :desc)
@commentaires = @commentaires.all.decorate
@commentaire_email = @dossier.mail_contact
rescue
rescue => e
redirect_to url_for({controller: :start, action: :error_dossier})
end
end

View file

@ -1,10 +1,14 @@
class Dossier < ActiveRecord::Base
has_one :etablissement
has_one :entreprise
has_many :dossier_pdf
has_many :pieces_jointes
belongs_to :ref_formulaire
has_many :commentaires
delegate :siren, to: :entreprise
delegate :siret, to: :etablissement
def get_pj piece_jointe_id
dossier_pdf.where(ref_pieces_jointes_id: piece_jointe_id).last
pieces_jointes.where(ref_pieces_jointes_id: piece_jointe_id).last
end
end

View file

@ -1,15 +0,0 @@
class DossierPdf < ActiveRecord::Base
belongs_to :dossier
mount_uploader :ref_dossier_pdf, DossierPdfUploader
def self.get_array_id_pj_valid_for_dossier dossier_id
@array_id_pj_valides = Array.new
DossierPdf.where(dossier_id: dossier_id).each do |pj_valide|
@array_id_pj_valides << pj_valide.ref_pieces_jointes_id
end
@array_id_pj_valides
end
end

View file

@ -0,0 +1,14 @@
class PieceJointe < ActiveRecord::Base
belongs_to :dossier
mount_uploader :content, PieceJointeUploader
def self.get_array_id_pj_valid_for_dossier(dossier_id)
@array_id_pj_valides = []
where(dossier_id: dossier_id).each do |pj_valide|
@array_id_pj_valides << pj_valide.ref_pieces_jointes_id
end
@array_id_pj_valides
end
end

View file

@ -1,8 +1,8 @@
class RefPiecesJointe < ActiveRecord::Base
# TODO: test this methods
def self.get_liste_piece_jointe ref_formulaire
@formulaire = RefFormulaire.find(ref_formulaire)
RefPiecesJointe.where ("\"CERFA\" = '#{@formulaire.ref_demarche}'")
RefPiecesJointe.where ("\"CERFA\" = '#{ref_formulaire.ref_demarche}'")
end
end

View file

@ -1,6 +1,6 @@
# encoding: utf-8
class DossierPdfUploader < CarrierWave::Uploader::Base
class PieceJointeUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick

View file

@ -23,7 +23,7 @@
='CERFA'
%td.col-lg-4.col-md-4
- if @array_id_pj_valides.include?(0)
%a{ href: "#{@dossier.get_pj(0).ref_dossier_pdf}", target: '_blank' } Consulter
%a{ href: "#{@dossier.get_pj(0).content}", target: '_blank' } Consulter
- else
= 'Pièce non fournie'
@ -35,7 +35,7 @@
- if pj.api_entreprise
%a{ href: '' } Récupérer
- elsif @array_id_pj_valides.include?(pj.id)
%a{ href: "#{@dossier.get_pj(pj.id).ref_dossier_pdf}", target: '_blank' } Consulter
%a{ href: "#{@dossier.get_pj(pj.id).content}", target: '_blank' } Consulter
- else
= 'Pièce non fournie'

View file

@ -4,12 +4,19 @@
%div{class:'row', style:'margin-left:5%'}
= render partial: 'infos_entreprise'
= form_tag(url_for({controller: :dossiers, action: :update}), class: 'form-inline', method: 'PUT') do
= form_for @dossier do |f|
%label{ style:'font-weight:normal' }
= f.check_box :autorisation_donnees
J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.
%br
= f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right'
= form_tag(url_for({controller: :dossiers, action: :update, id: @dossier.id}), class: 'form-inline', method: 'PUT') do
%br
%div
%label{ style:'font-weight:normal' }
%input{type:'checkbox', name: 'autorisation_donnees', id: 'autorisation_donnees'}
='Jautorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles.'
= "J'autorise les organismes publics à vérifier les informations de mon entreprise auprès des administrations concernées. Ces informations resteront strictement confidentielles."
%br
%br