Add reference to user who upload a cerfa or a piece justificative
This commit is contained in:
parent
5ff7bc0075
commit
eeaefdcc79
18 changed files with 108 additions and 20 deletions
|
@ -34,7 +34,7 @@ class Users::DescriptionController < UsersController
|
|||
|
||||
if @procedure.cerfa_flag?
|
||||
unless params[:cerfa_pdf].nil?
|
||||
cerfa = Cerfa.new(content: params[:cerfa_pdf], dossier: @dossier)
|
||||
cerfa = Cerfa.new(content: params[:cerfa_pdf], dossier: @dossier, user: current_user)
|
||||
unless cerfa.save
|
||||
flash.now.alert = cerfa.errors.full_messages.join('<br />').html_safe
|
||||
return render 'show'
|
||||
|
@ -60,7 +60,8 @@ class Users::DescriptionController < UsersController
|
|||
|
||||
piece_justificative = PieceJustificative.new(content: params["piece_justificative_#{type_de_pieces_justificatives.id}"],
|
||||
dossier: @dossier,
|
||||
type_de_piece_justificative: type_de_pieces_justificatives)
|
||||
type_de_piece_justificative: type_de_pieces_justificatives,
|
||||
user: current_user)
|
||||
|
||||
unless piece_justificative.save
|
||||
flash.now.alert = piece_justificative.errors.full_messages.join('<br />').html_safe
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
class Cerfa < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
belongs_to :user
|
||||
|
||||
mount_uploader :content, CerfaUploader
|
||||
validates :content, :file_size => {:maximum => 3.megabytes}
|
||||
|
|
|
@ -2,6 +2,8 @@ class PieceJustificative < ActiveRecord::Base
|
|||
belongs_to :dossier
|
||||
belongs_to :type_de_piece_justificative
|
||||
|
||||
belongs_to :user
|
||||
|
||||
delegate :api_entreprise, :libelle, to: :type_de_piece_justificative
|
||||
|
||||
alias_attribute :type, :type_de_piece_justificative_id
|
||||
|
|
|
@ -9,6 +9,8 @@ class User < ActiveRecord::Base
|
|||
|
||||
has_many :dossiers, dependent: :destroy
|
||||
has_many :invites, dependent: :destroy
|
||||
has_many :piece_justificative, dependent: :destroy
|
||||
has_many :cerfa, dependent: :destroy
|
||||
has_one :france_connect_information, dependent: :destroy
|
||||
|
||||
delegate :given_name, :family_name, :email_france_connect, :gender, :birthdate, :birthplace, :france_connect_particulier_id, to: :france_connect_information
|
||||
|
|
|
@ -3,5 +3,5 @@ class CerfaSerializer < ActiveModel::Serializer
|
|||
attributes :created_at,
|
||||
:content_url => :url
|
||||
|
||||
|
||||
has_one :user
|
||||
end
|
|
@ -12,5 +12,6 @@ class DossierSerializer < ActiveModel::Serializer
|
|||
has_many :cerfa
|
||||
has_many :commentaires
|
||||
has_many :champs
|
||||
has_many :pieces_justificatives
|
||||
has_many :types_de_piece_justificative
|
||||
end
|
|
@ -1,5 +1,7 @@
|
|||
class PieceJustificativeSerializer < ActiveModel::Serializer
|
||||
attributes :created_at,
|
||||
:type_de_piece_justificative_id,
|
||||
:content_url => :url
|
||||
|
||||
has_one :user
|
||||
end
|
|
@ -3,5 +3,4 @@ class TypeDePieceJustificativeSerializer < ActiveModel::Serializer
|
|||
:libelle,
|
||||
:description
|
||||
|
||||
has_many :pieces_justificatives
|
||||
end
|
3
app/serializers/user_serializer.rb
Normal file
3
app/serializers/user_serializer.rb
Normal file
|
@ -0,0 +1,3 @@
|
|||
class UserSerializer < ActiveModel::Serializer
|
||||
attributes :email
|
||||
end
|
|
@ -22,7 +22,7 @@
|
|||
- @facade.cerfas_ordered.each do |cerfa|
|
||||
%tr
|
||||
%td.col-md-6.col-lg-4
|
||||
= cerfa.dossier.user.email
|
||||
= cerfa.user.email
|
||||
%td.col-md-6.col-lg-4
|
||||
= cerfa.created_at
|
||||
%td.col-md-6.col-lg-4
|
||||
|
@ -32,7 +32,7 @@
|
|||
- @facade.dossier.retrieve_all_piece_justificative_by_type(type_de_piece_justificative.id).each do |piece_justificative|
|
||||
%tr
|
||||
%td.col-md-6.col-lg-4
|
||||
= piece_justificative.dossier.user.email
|
||||
= piece_justificative.user.email
|
||||
%td.col-md-6.col-lg-4
|
||||
= piece_justificative.created_at
|
||||
%td.col-md-6.col-lg-4
|
||||
|
|
22
db/migrate/20160317144949_piece_justificative_have_user.rb
Normal file
22
db/migrate/20160317144949_piece_justificative_have_user.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
class PieceJustificativeHaveUser < ActiveRecord::Migration
|
||||
class PieceJustificative < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
end
|
||||
|
||||
class Dossier < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
end
|
||||
|
||||
class User < ActiveRecord::Base
|
||||
|
||||
end
|
||||
|
||||
def change
|
||||
add_reference :pieces_justificatives, :user, references: :users
|
||||
|
||||
PieceJustificative.all.each do |piece_justificative|
|
||||
piece_justificative.user_id = piece_justificative.dossier.user.id
|
||||
piece_justificative.save
|
||||
end
|
||||
end
|
||||
end
|
22
db/migrate/20160317153115_cerfa_have_user.rb
Normal file
22
db/migrate/20160317153115_cerfa_have_user.rb
Normal file
|
@ -0,0 +1,22 @@
|
|||
class CerfaHaveUser < ActiveRecord::Migration
|
||||
class Cerfa < ActiveRecord::Base
|
||||
belongs_to :dossier
|
||||
end
|
||||
|
||||
class Dossier < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
end
|
||||
|
||||
class User < ActiveRecord::Base
|
||||
|
||||
end
|
||||
|
||||
def change
|
||||
add_reference :cerfas, :user, references: :users
|
||||
|
||||
Cerfa.all.each do |cerfa|
|
||||
cerfa.user_id = cerfa.dossier.user.id
|
||||
cerfa.save
|
||||
end
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20160317135217) do
|
||||
ActiveRecord::Schema.define(version: 20160317153115) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -71,6 +71,7 @@ ActiveRecord::Schema.define(version: 20160317135217) do
|
|||
t.string "content"
|
||||
t.integer "dossier_id"
|
||||
t.datetime "created_at"
|
||||
t.integer "user_id"
|
||||
end
|
||||
|
||||
add_index "cerfas", ["dossier_id"], name: "index_cerfas_on_dossier_id", using: :btree
|
||||
|
@ -200,6 +201,7 @@ ActiveRecord::Schema.define(version: 20160317135217) do
|
|||
t.integer "dossier_id"
|
||||
t.integer "type_de_piece_justificative_id"
|
||||
t.datetime "created_at"
|
||||
t.integer "user_id"
|
||||
end
|
||||
|
||||
add_index "pieces_justificatives", ["type_de_piece_justificative_id"], name: "index_pieces_justificatives_on_type_de_piece_justificative_id", using: :btree
|
||||
|
|
|
@ -116,7 +116,7 @@ describe API::V1::DossiersController do
|
|||
let!(:dossier) { Timecop.freeze(date_creation) { create(:dossier, :with_entreprise, procedure: procedure) } }
|
||||
let(:dossier_id) { dossier.id }
|
||||
let(:body) { JSON.parse(retour.body, symbolize_names: true) }
|
||||
let(:field_list) { [:id, :nom_projet, :created_at, :updated_at, :description, :archived, :mandataire_social, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :champs, :commentaires] }
|
||||
let(:field_list) { [:id, :nom_projet, :created_at, :updated_at, :description, :archived, :mandataire_social, :entreprise, :etablissement, :cerfa, :types_de_piece_justificative, :pieces_justificatives, :champs, :commentaires] }
|
||||
subject { body[:dossier] }
|
||||
|
||||
it 'return REST code 200', :show_in_doc do
|
||||
|
@ -162,10 +162,6 @@ describe API::V1::DossiersController do
|
|||
end
|
||||
|
||||
describe 'types_de_piece_justificative' do
|
||||
before do
|
||||
create :piece_justificative, dossier: dossier, type_de_piece_justificative: dossier.procedure.types_de_piece_justificative.first
|
||||
end
|
||||
|
||||
let(:field_list) { [
|
||||
:id,
|
||||
:libelle,
|
||||
|
@ -180,16 +176,32 @@ describe API::V1::DossiersController do
|
|||
it { expect(subject.keys.include?(:id)).to be_truthy }
|
||||
it { expect(subject[:libelle]).to eq('RIB') }
|
||||
it { expect(subject[:description]).to eq('Releve identité bancaire') }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'piece justificative' do
|
||||
let(:field_list) { [
|
||||
:url, :created_at] }
|
||||
subject {
|
||||
super()[:pieces_justificatives].first }
|
||||
describe 'piece justificative' do
|
||||
before do
|
||||
create :piece_justificative, dossier: dossier, type_de_piece_justificative: dossier.procedure.types_de_piece_justificative.first, user: dossier.user
|
||||
end
|
||||
|
||||
it { expect(subject.keys.include?(:url)).to be_truthy }
|
||||
it { expect(subject[:created_at]).not_to be_nil }
|
||||
end
|
||||
let(:field_list) { [
|
||||
:url, :created_at, :type_de_piece_justificative_id] }
|
||||
subject {
|
||||
super()[:pieces_justificatives].first }
|
||||
|
||||
it { expect(subject.keys.include?(:url)).to be_truthy }
|
||||
it { expect(subject[:created_at]).not_to be_nil }
|
||||
it { expect(subject[:type_de_piece_justificative_id]).not_to be_nil }
|
||||
|
||||
it { expect(subject.keys.include?(:user)).to be_truthy }
|
||||
|
||||
describe 'user' do
|
||||
let(:field_list) { [
|
||||
:url, :created_at, :type_de_piece_justificative_id] }
|
||||
subject {
|
||||
super()[:user] }
|
||||
|
||||
it { expect(subject[:email]).not_to be_nil }
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -244,6 +256,7 @@ describe API::V1::DossiersController do
|
|||
before do
|
||||
tmp_cerfa = dossier.cerfa.first
|
||||
tmp_cerfa.content = content
|
||||
tmp_cerfa.user = dossier.user
|
||||
tmp_cerfa.save
|
||||
end
|
||||
|
||||
|
@ -251,6 +264,15 @@ describe API::V1::DossiersController do
|
|||
|
||||
it { expect(subject[:created_at]).not_to be_nil }
|
||||
it { expect(subject[:url]).to match /^http:\/\/.*downloads.*_CERFA\.pdf$/ }
|
||||
|
||||
describe 'user' do
|
||||
let(:field_list) { [
|
||||
:url, :created_at, :type_de_piece_justificative_id] }
|
||||
subject {
|
||||
super()[:user] }
|
||||
|
||||
it { expect(subject[:email]).not_to be_nil }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'etablissement' do
|
||||
|
|
|
@ -142,6 +142,8 @@ describe Users::DescriptionController, type: :controller do
|
|||
it 'dossier_id' do
|
||||
expect(subject.dossier_id).to eq(dossier_id)
|
||||
end
|
||||
|
||||
it { expect(subject.user).to eq user }
|
||||
end
|
||||
|
||||
context 'les anciens CERFA PDF ne sont pas écrasées' do
|
||||
|
@ -222,10 +224,12 @@ describe Users::DescriptionController, type: :controller do
|
|||
context 'for piece 0' do
|
||||
subject { dossier.retrieve_last_piece_justificative_by_type all_pj_type[0].to_s }
|
||||
it { expect(subject.content).not_to be_nil }
|
||||
it { expect(subject.user).to eq user }
|
||||
end
|
||||
context 'for piece 1' do
|
||||
subject { dossier.retrieve_last_piece_justificative_by_type all_pj_type[1].to_s }
|
||||
it { expect(subject.content).not_to be_nil }
|
||||
it { expect(subject.user).to eq user }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,6 +8,7 @@ describe Cerfa do
|
|||
|
||||
describe 'associations' do
|
||||
it { is_expected.to belong_to(:dossier) }
|
||||
it { is_expected.to belong_to(:user) }
|
||||
end
|
||||
|
||||
describe 'empty?' do
|
||||
|
|
|
@ -9,6 +9,8 @@ describe PieceJustificative do
|
|||
describe 'associations' do
|
||||
it { is_expected.to belong_to(:dossier) }
|
||||
it { is_expected.to belong_to(:type_de_piece_justificative) }
|
||||
it { is_expected.to belong_to(:user) }
|
||||
|
||||
end
|
||||
|
||||
describe 'delegation' do
|
||||
|
|
|
@ -21,6 +21,8 @@ describe User, type: :model do
|
|||
describe 'associations' do
|
||||
it { is_expected.to have_many(:dossiers) }
|
||||
it { is_expected.to have_many(:invites) }
|
||||
it { is_expected.to have_many(:piece_justificative) }
|
||||
it { is_expected.to have_many(:cerfa) }
|
||||
end
|
||||
describe '#find_for_france_connect' do
|
||||
let(:siret) { '00000000000000' }
|
||||
|
|
Loading…
Reference in a new issue