Merge pull request #6992 from betagouv/admin-deletion

Suppression des AdministrateursProcedure quand un Administrateur est supprimé
This commit is contained in:
Pierre de La Morinerie 2022-03-01 17:04:00 +01:00 committed by GitHub
commit 98d087ab4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 3 deletions

View file

@ -12,8 +12,7 @@ class Administrateur < ApplicationRecord
include ActiveRecord::SecureToken
has_and_belongs_to_many :instructeurs
has_many :administrateurs_procedures
has_many :procedures, through: :administrateurs_procedures
has_and_belongs_to_many :procedures
has_many :services
has_one :user, dependent: :nullify

View file

@ -0,0 +1,15 @@
class AddAdministrateurForeignKeyToAdministrateursProcedure < ActiveRecord::Migration[6.1]
def up
# Sanity check
say_with_time 'Removing AdministrateursProcedures where the associated Administrateur no longer exists ' do
deleted_administrateur_ids = AdministrateursProcedure.where.missing(:administrateur).pluck(:administrateur_id)
AdministrateursProcedure.where(administrateur_id: deleted_administrateur_ids).delete_all
end
add_foreign_key :administrateurs_procedures, :administrateurs
end
def down
remove_foreign_key :administrateurs_procedures, :administrateurs
end
end

View file

@ -3,7 +3,7 @@ describe Administrateur, type: :model do
describe 'associations' do
it { is_expected.to have_and_belong_to_many(:instructeurs) }
it { is_expected.to have_many(:procedures) }
it { is_expected.to have_and_belong_to_many(:procedures) }
end
describe "#renew_api_token" do