Merge pull request #6528 from tchak/fix-discard-dossiers-procedures-jobs
Corrige les jobs de suppression de dossiers et démarches
This commit is contained in:
commit
05bf8bd655
5 changed files with 44 additions and 2 deletions
|
@ -124,7 +124,7 @@ class Dossier < ApplicationRecord
|
|||
has_many :types_de_champ, through: :revision
|
||||
has_many :types_de_champ_private, through: :revision
|
||||
|
||||
belongs_to :transfer, class_name: 'DossierTransfer', foreign_key: 'dossier_transfer_id', optional: true, inverse_of: :dossiers, dependent: :destroy
|
||||
belongs_to :transfer, class_name: 'DossierTransfer', foreign_key: 'dossier_transfer_id', optional: true, inverse_of: :dossiers
|
||||
has_many :transfer_logs, class_name: 'DossierTransferLog', dependent: :destroy
|
||||
|
||||
accepts_nested_attributes_for :champs
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
namespace :after_party do
|
||||
desc 'Deployment task: remove_orphaned_avis'
|
||||
task remove_orphaned_avis: :environment do
|
||||
puts "Running deploy task 'remove_orphaned_avis'"
|
||||
|
||||
avis = Avis.unscope(:joins)
|
||||
.joins('LEFT JOIN dossiers ON dossiers.id = avis.dossier_id')
|
||||
.where(dossiers: { id: nil })
|
||||
progress = ProgressReport.new(avis.count)
|
||||
|
||||
avis.find_each do |avis|
|
||||
avis.destroy
|
||||
progress.inc
|
||||
end
|
||||
progress.finish
|
||||
|
||||
# Update task as completed. If you remove the line below, the task will
|
||||
# run with every deploy (or every time you call after_party:run).
|
||||
AfterParty::TaskRecord
|
||||
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
|
||||
end
|
||||
end
|
5
spec/factories/dossier_transfer.rb
Normal file
5
spec/factories/dossier_transfer.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
FactoryBot.define do
|
||||
factory :dossier_transfer do
|
||||
email { generate(:user_email) }
|
||||
end
|
||||
end
|
|
@ -1439,14 +1439,18 @@ describe Dossier do
|
|||
end
|
||||
|
||||
describe "#destroy" do
|
||||
let(:dossier) { create(:dossier) }
|
||||
let(:transfer) { create(:dossier_transfer) }
|
||||
let(:dossier) { create(:dossier, transfer: transfer) }
|
||||
|
||||
before do
|
||||
create(:dossier, transfer: transfer)
|
||||
create(:attestation, dossier: dossier)
|
||||
create(:attestation, dossier: dossier)
|
||||
end
|
||||
|
||||
it "can destroy dossier with two attestations" do
|
||||
expect(dossier.destroy).to be_truthy
|
||||
expect(transfer.reload).not_to be_nil
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -46,5 +46,16 @@ RSpec.describe DossierTransfer, type: :model do
|
|||
it { expect(DossierTransfer.with_dossiers.count).to eq(0) }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'dossier relationship' do
|
||||
let(:transfer) { create(:dossier_transfer) }
|
||||
let(:dossier) { create(:dossier, user: user, transfer: transfer) }
|
||||
|
||||
it 'nullify transfer relationship on dossier' do
|
||||
expect(dossier.transfer).to eq(transfer)
|
||||
transfer.destroy
|
||||
expect(dossier.reload.transfer).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue