Merge pull request #5041 from tchak/cleanup-procedure-expiration-validations
Cleanup procedure duree_conservation_dossiers_dans_ds validations
This commit is contained in:
commit
25e031f8bb
2 changed files with 2 additions and 47 deletions
|
@ -85,11 +85,8 @@ class Procedure < ApplicationRecord
|
||||||
validate :validate_for_publication, on: :publication
|
validate :validate_for_publication, on: :publication
|
||||||
validate :check_juridique
|
validate :check_juridique
|
||||||
validates :path, presence: true, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, uniqueness: { scope: [:path, :closed_at, :hidden_at, :unpublished_at], case_sensitive: false }
|
validates :path, presence: true, format: { with: /\A[a-z0-9_\-]{3,50}\z/ }, uniqueness: { scope: [:path, :closed_at, :hidden_at, :unpublished_at], case_sensitive: false }
|
||||||
# FIXME: remove duree_conservation_required flag once all procedures are converted to the new style
|
validates :duree_conservation_dossiers_dans_ds, allow_nil: false, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: MAX_DUREE_CONSERVATION }
|
||||||
validates :duree_conservation_dossiers_dans_ds, allow_nil: false, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: MAX_DUREE_CONSERVATION }, if: :durees_conservation_required
|
validates :duree_conservation_dossiers_hors_ds, allow_nil: false, numericality: { only_integer: true, greater_than_or_equal_to: 0 }
|
||||||
validates :duree_conservation_dossiers_hors_ds, allow_nil: false, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, if: :durees_conservation_required
|
|
||||||
validates :duree_conservation_dossiers_dans_ds, allow_nil: true, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_than_or_equal_to: MAX_DUREE_CONSERVATION }, unless: :durees_conservation_required
|
|
||||||
validates :duree_conservation_dossiers_hors_ds, allow_nil: true, numericality: { only_integer: true, greater_than_or_equal_to: 0 }, unless: :durees_conservation_required
|
|
||||||
validates_with MonAvisEmbedValidator
|
validates_with MonAvisEmbedValidator
|
||||||
validates :notice, content_type: [
|
validates :notice, content_type: [
|
||||||
"application/msword",
|
"application/msword",
|
||||||
|
@ -112,7 +109,6 @@ class Procedure < ApplicationRecord
|
||||||
|
|
||||||
validates :logo, content_type: ['image/png', 'image/jpg', 'image/jpeg'], size: { less_than: 5.megabytes }
|
validates :logo, content_type: ['image/png', 'image/jpg', 'image/jpeg'], size: { less_than: 5.megabytes }
|
||||||
before_save :update_juridique_required
|
before_save :update_juridique_required
|
||||||
before_save :update_durees_conservation_required
|
|
||||||
after_initialize :ensure_path_exists
|
after_initialize :ensure_path_exists
|
||||||
before_save :ensure_path_exists
|
before_save :ensure_path_exists
|
||||||
after_create :ensure_default_groupe_instructeur
|
after_create :ensure_default_groupe_instructeur
|
||||||
|
@ -597,11 +593,6 @@ class Procedure < ApplicationRecord
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_durees_conservation_required
|
|
||||||
self.durees_conservation_required ||= duree_conservation_dossiers_hors_ds.present? && duree_conservation_dossiers_dans_ds.present?
|
|
||||||
true
|
|
||||||
end
|
|
||||||
|
|
||||||
def percentile_time(start_attribute, end_attribute, p)
|
def percentile_time(start_attribute, end_attribute, p)
|
||||||
times = dossiers
|
times = dossiers
|
||||||
.where.not(start_attribute => nil, end_attribute => nil)
|
.where.not(start_attribute => nil, end_attribute => nil)
|
||||||
|
|
|
@ -252,22 +252,11 @@ describe Procedure do
|
||||||
|
|
||||||
shared_examples 'duree de conservation' do
|
shared_examples 'duree de conservation' do
|
||||||
context 'duree_conservation_required it true, the field gets validated' do
|
context 'duree_conservation_required it true, the field gets validated' do
|
||||||
before { subject.durees_conservation_required = true }
|
|
||||||
|
|
||||||
it { is_expected.not_to allow_value(nil).for(field_name) }
|
it { is_expected.not_to allow_value(nil).for(field_name) }
|
||||||
it { is_expected.not_to allow_value('').for(field_name) }
|
it { is_expected.not_to allow_value('').for(field_name) }
|
||||||
it { is_expected.not_to allow_value('trois').for(field_name) }
|
it { is_expected.not_to allow_value('trois').for(field_name) }
|
||||||
it { is_expected.to allow_value(3).for(field_name) }
|
it { is_expected.to allow_value(3).for(field_name) }
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'duree_conservation_required is false, the field doesn’t get validated' do
|
|
||||||
before { subject.durees_conservation_required = false }
|
|
||||||
|
|
||||||
it { is_expected.to allow_value(nil).for(field_name) }
|
|
||||||
it { is_expected.to allow_value('').for(field_name) }
|
|
||||||
it { is_expected.not_to allow_value('trois').for(field_name) }
|
|
||||||
it { is_expected.to allow_value(3).for(field_name) }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'duree de conservation dans ds' do
|
describe 'duree de conservation dans ds' do
|
||||||
|
@ -283,31 +272,6 @@ describe Procedure do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#duree_de_conservation_required' do
|
|
||||||
it 'automatically jumps to true once both durees de conservation have been set' do
|
|
||||||
p = build(
|
|
||||||
:procedure,
|
|
||||||
durees_conservation_required: false,
|
|
||||||
duree_conservation_dossiers_dans_ds: nil,
|
|
||||||
duree_conservation_dossiers_hors_ds: nil
|
|
||||||
)
|
|
||||||
p.save
|
|
||||||
expect(p.durees_conservation_required).to be_falsey
|
|
||||||
|
|
||||||
p.duree_conservation_dossiers_hors_ds = 3
|
|
||||||
p.save
|
|
||||||
expect(p.durees_conservation_required).to be_falsey
|
|
||||||
|
|
||||||
p.duree_conservation_dossiers_dans_ds = 6
|
|
||||||
p.save
|
|
||||||
expect(p.durees_conservation_required).to be_truthy
|
|
||||||
|
|
||||||
p.duree_conservation_dossiers_dans_ds = nil
|
|
||||||
p.save
|
|
||||||
expect(p.durees_conservation_required).to be_truthy
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#types_de_champ (ordered)' do
|
describe '#types_de_champ (ordered)' do
|
||||||
let(:procedure) { create(:procedure) }
|
let(:procedure) { create(:procedure) }
|
||||||
let!(:type_de_champ_0) { create(:type_de_champ, procedure: procedure, order_place: 1) }
|
let!(:type_de_champ_0) { create(:type_de_champ, procedure: procedure, order_place: 1) }
|
||||||
|
|
Loading…
Reference in a new issue