Merge pull request #7209 from betagouv/rename_revision_type_de_champ
types_de_champ -> types_de_champs_public
This commit is contained in:
commit
50f798f54a
18 changed files with 84 additions and 83 deletions
|
@ -8,7 +8,7 @@ module Types
|
||||||
field :annotation_descriptors, [Types::ChampDescriptorType], null: false
|
field :annotation_descriptors, [Types::ChampDescriptorType], null: false
|
||||||
|
|
||||||
def champ_descriptors
|
def champ_descriptors
|
||||||
Loaders::Association.for(object.class, :types_de_champ).load(object)
|
Loaders::Association.for(object.class, :types_de_champ_public).load(object)
|
||||||
end
|
end
|
||||||
|
|
||||||
def annotation_descriptors
|
def annotation_descriptors
|
||||||
|
|
|
@ -34,7 +34,7 @@ module ProcedureHelper
|
||||||
{
|
{
|
||||||
isAnnotation: false,
|
isAnnotation: false,
|
||||||
typeDeChampsTypes: TypeDeChamp.type_de_champ_types_for(procedure, current_user),
|
typeDeChampsTypes: TypeDeChamp.type_de_champ_types_for(procedure, current_user),
|
||||||
typeDeChamps: (procedure.draft_revision ? procedure.draft_revision : procedure).types_de_champ.as_json_for_editor,
|
typeDeChamps: (procedure.draft_revision ? procedure.draft_revision : procedure).types_de_champ_public.as_json_for_editor,
|
||||||
baseUrl: admin_procedure_types_de_champ_path(procedure),
|
baseUrl: admin_procedure_types_de_champ_path(procedure),
|
||||||
directUploadUrl: rails_direct_uploads_url,
|
directUploadUrl: rails_direct_uploads_url,
|
||||||
continuerUrl: admin_procedure_path(procedure)
|
continuerUrl: admin_procedure_path(procedure)
|
||||||
|
|
|
@ -56,7 +56,7 @@ class Champ < ApplicationRecord
|
||||||
scope :public_only, -> { where(private: false) }
|
scope :public_only, -> { where(private: false) }
|
||||||
scope :private_only, -> { where(private: true) }
|
scope :private_only, -> { where(private: true) }
|
||||||
scope :ordered, -> { includes(:type_de_champ).order(:row, 'types_de_champ.order_place') }
|
scope :ordered, -> { includes(:type_de_champ).order(:row, 'types_de_champ.order_place') }
|
||||||
scope :public_ordered, -> { public_only.joins(dossier: { revision: :revision_types_de_champ }).where('procedure_revision_types_de_champ.type_de_champ_id = champs.type_de_champ_id').order(:position) }
|
scope :public_ordered, -> { public_only.joins(dossier: { revision: :revision_types_de_champ_public }).where('procedure_revision_types_de_champ.type_de_champ_id = champs.type_de_champ_id').order(:position) }
|
||||||
# we need to do private champs order as manual join to avoid conflicting join names
|
# we need to do private champs order as manual join to avoid conflicting join names
|
||||||
scope :private_ordered, -> do
|
scope :private_ordered, -> do
|
||||||
private_only.joins('
|
private_only.joins('
|
||||||
|
|
|
@ -141,7 +141,7 @@ module DossierRebaseConcern
|
||||||
|
|
||||||
def flattened_all_types_de_champ(published: false)
|
def flattened_all_types_de_champ(published: false)
|
||||||
revision = published ? procedure.published_revision : self.revision
|
revision = published ? procedure.published_revision : self.revision
|
||||||
types_de_champ = revision.types_de_champ + revision.types_de_champ_private
|
types_de_champ = revision.types_de_champ_public + revision.types_de_champ_private
|
||||||
(types_de_champ + types_de_champ.filter(&:repetition?).flat_map(&:types_de_champ))
|
(types_de_champ + types_de_champ.filter(&:repetition?).flat_map(&:types_de_champ))
|
||||||
.index_by(&:stable_id)
|
.index_by(&:stable_id)
|
||||||
end
|
end
|
||||||
|
|
|
@ -197,7 +197,7 @@ module TagsSubstitutionConcern
|
||||||
end
|
end
|
||||||
|
|
||||||
def champ_public_tags(dossier: nil)
|
def champ_public_tags(dossier: nil)
|
||||||
types_de_champ = (dossier || procedure.active_revision).types_de_champ
|
types_de_champ = dossier&.types_de_champ || procedure.active_revision.types_de_champ_public
|
||||||
types_de_champ_tags(types_de_champ, Dossier::SOUMIS)
|
types_de_champ_tags(types_de_champ, Dossier::SOUMIS)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -134,7 +134,7 @@ class Dossier < ApplicationRecord
|
||||||
|
|
||||||
has_one :attestation_template, through: :revision
|
has_one :attestation_template, through: :revision
|
||||||
has_one :procedure, through: :revision
|
has_one :procedure, through: :revision
|
||||||
has_many :types_de_champ, through: :revision
|
has_many :types_de_champ, through: :revision, source: :types_de_champ_public
|
||||||
has_many :types_de_champ_private, 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
|
belongs_to :transfer, class_name: 'DossierTransfer', foreign_key: 'dossier_transfer_id', optional: true, inverse_of: :dossiers
|
||||||
|
|
|
@ -73,9 +73,9 @@ class Procedure < ApplicationRecord
|
||||||
belongs_to :published_revision, class_name: 'ProcedureRevision', optional: true
|
belongs_to :published_revision, class_name: 'ProcedureRevision', optional: true
|
||||||
has_many :deleted_dossiers, dependent: :destroy
|
has_many :deleted_dossiers, dependent: :destroy
|
||||||
|
|
||||||
has_many :published_types_de_champ, through: :published_revision, source: :types_de_champ
|
has_many :published_types_de_champ, through: :published_revision, source: :types_de_champ_public
|
||||||
has_many :published_types_de_champ_private, through: :published_revision, source: :types_de_champ_private
|
has_many :published_types_de_champ_private, through: :published_revision, source: :types_de_champ_private
|
||||||
has_many :draft_types_de_champ, through: :draft_revision, source: :types_de_champ
|
has_many :draft_types_de_champ, through: :draft_revision, source: :types_de_champ_public
|
||||||
has_many :draft_types_de_champ_private, through: :draft_revision, source: :types_de_champ_private
|
has_many :draft_types_de_champ_private, through: :draft_revision, source: :types_de_champ_private
|
||||||
has_one :draft_attestation_template, through: :draft_revision, source: :attestation_template
|
has_one :draft_attestation_template, through: :draft_revision, source: :attestation_template
|
||||||
has_one :published_attestation_template, through: :published_revision, source: :attestation_template
|
has_one :published_attestation_template, through: :published_revision, source: :attestation_template
|
||||||
|
@ -220,11 +220,11 @@ class Procedure < ApplicationRecord
|
||||||
:module_api_carto,
|
:module_api_carto,
|
||||||
published_revision: [
|
published_revision: [
|
||||||
:types_de_champ_private,
|
:types_de_champ_private,
|
||||||
:types_de_champ
|
:types_de_champ_public
|
||||||
],
|
],
|
||||||
draft_revision: [
|
draft_revision: [
|
||||||
:types_de_champ_private,
|
:types_de_champ_private,
|
||||||
:types_de_champ
|
:types_de_champ_public
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -444,7 +444,7 @@ class Procedure < ApplicationRecord
|
||||||
populate_champ_stable_ids
|
populate_champ_stable_ids
|
||||||
include_list = {
|
include_list = {
|
||||||
draft_revision: {
|
draft_revision: {
|
||||||
revision_types_de_champ: {
|
revision_types_de_champ_public: {
|
||||||
type_de_champ: :types_de_champ
|
type_de_champ: :types_de_champ
|
||||||
},
|
},
|
||||||
revision_types_de_champ_private: {
|
revision_types_de_champ_private: {
|
||||||
|
@ -714,7 +714,7 @@ class Procedure < ApplicationRecord
|
||||||
|
|
||||||
def create_new_revision
|
def create_new_revision
|
||||||
draft_revision
|
draft_revision
|
||||||
.deep_clone(include: [:revision_types_de_champ, :revision_types_de_champ_private])
|
.deep_clone(include: [:revision_types_de_champ_public, :revision_types_de_champ_private])
|
||||||
.tap(&:save!)
|
.tap(&:save!)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ class ProcedureRevision < ApplicationRecord
|
||||||
|
|
||||||
has_many :dossiers, inverse_of: :revision, foreign_key: :revision_id
|
has_many :dossiers, inverse_of: :revision, foreign_key: :revision_id
|
||||||
|
|
||||||
has_many :revision_types_de_champ, -> { root.public_only.ordered }, class_name: 'ProcedureRevisionTypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
has_many :revision_types_de_champ_public, -> { root.public_only.ordered }, class_name: 'ProcedureRevisionTypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
||||||
has_many :revision_types_de_champ_private, -> { root.private_only.ordered }, class_name: 'ProcedureRevisionTypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
has_many :revision_types_de_champ_private, -> { root.private_only.ordered }, class_name: 'ProcedureRevisionTypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
||||||
has_many :types_de_champ, through: :revision_types_de_champ, source: :type_de_champ
|
has_many :types_de_champ_public, through: :revision_types_de_champ_public, source: :type_de_champ
|
||||||
has_many :types_de_champ_private, through: :revision_types_de_champ_private, source: :type_de_champ
|
has_many :types_de_champ_private, through: :revision_types_de_champ_private, source: :type_de_champ
|
||||||
|
|
||||||
has_many :owned_types_de_champ, class_name: 'TypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
has_many :owned_types_de_champ, class_name: 'TypeDeChamp', foreign_key: :revision_id, dependent: :destroy, inverse_of: :revision
|
||||||
|
@ -30,7 +30,7 @@ class ProcedureRevision < ApplicationRecord
|
||||||
scope :ordered, -> { order(:created_at) }
|
scope :ordered, -> { order(:created_at) }
|
||||||
|
|
||||||
def build_champs
|
def build_champs
|
||||||
types_de_champ.map(&:build_champ)
|
types_de_champ_public.map(&:build_champ)
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_champs_private
|
def build_champs_private
|
||||||
|
@ -49,7 +49,7 @@ class ProcedureRevision < ApplicationRecord
|
||||||
elsif params[:private]
|
elsif params[:private]
|
||||||
types_de_champ_private.create(params)
|
types_de_champ_private.create(params)
|
||||||
else
|
else
|
||||||
types_de_champ.create(params)
|
types_de_champ_public.create(params)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,8 +81,8 @@ class ProcedureRevision < ApplicationRecord
|
||||||
revision_types_de_champ_private.find_by!(type_de_champ_id: id).update!(position: position)
|
revision_types_de_champ_private.find_by!(type_de_champ_id: id).update!(position: position)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
move_type_de_champ_hash(types_de_champ.to_a, type_de_champ, position).each do |(id, position)|
|
move_type_de_champ_hash(types_de_champ_public.to_a, type_de_champ, position).each do |(id, position)|
|
||||||
revision_types_de_champ.find_by!(type_de_champ_id: id).update!(position: position)
|
revision_types_de_champ_public.find_by!(type_de_champ_id: id).update!(position: position)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -97,7 +97,7 @@ class ProcedureRevision < ApplicationRecord
|
||||||
elsif type_de_champ.private?
|
elsif type_de_champ.private?
|
||||||
types_de_champ_private.delete(type_de_champ)
|
types_de_champ_private.delete(type_de_champ)
|
||||||
else
|
else
|
||||||
types_de_champ.delete(type_de_champ)
|
types_de_champ_public.delete(type_de_champ)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -110,14 +110,14 @@ class ProcedureRevision < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def different_from?(revision)
|
def different_from?(revision)
|
||||||
types_de_champ != revision.types_de_champ ||
|
types_de_champ_public != revision.types_de_champ_public ||
|
||||||
types_de_champ_private != revision.types_de_champ_private ||
|
types_de_champ_private != revision.types_de_champ_private ||
|
||||||
attestation_template != revision.attestation_template
|
attestation_template != revision.attestation_template
|
||||||
end
|
end
|
||||||
|
|
||||||
def compare(revision)
|
def compare(revision)
|
||||||
changes = []
|
changes = []
|
||||||
changes += compare_types_de_champ(types_de_champ, revision.types_de_champ)
|
changes += compare_types_de_champ(types_de_champ_public, revision.types_de_champ_public)
|
||||||
changes += compare_types_de_champ(types_de_champ_private, revision.types_de_champ_private)
|
changes += compare_types_de_champ(types_de_champ_private, revision.types_de_champ_private)
|
||||||
changes += compare_attestation_template(attestation_template, revision.attestation_template)
|
changes += compare_attestation_template(attestation_template, revision.attestation_template)
|
||||||
changes
|
changes
|
||||||
|
@ -378,7 +378,7 @@ class ProcedureRevision < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def revise_type_de_champ(type_de_champ)
|
def revise_type_de_champ(type_de_champ)
|
||||||
types_de_champ_association = type_de_champ.private? ? :revision_types_de_champ_private : :revision_types_de_champ
|
types_de_champ_association = type_de_champ.private? ? :revision_types_de_champ_private : :revision_types_de_champ_public
|
||||||
association = send(types_de_champ_association).find_by!(type_de_champ: type_de_champ)
|
association = send(types_de_champ_association).find_by!(type_de_champ: type_de_champ)
|
||||||
cloned_type_de_champ = type_de_champ.deep_clone(include: [:types_de_champ]) do |original, kopy|
|
cloned_type_de_champ = type_de_champ.deep_clone(include: [:types_de_champ]) do |original, kopy|
|
||||||
PiecesJustificativesService.clone_attachments(original, kopy)
|
PiecesJustificativesService.clone_attachments(original, kopy)
|
||||||
|
@ -390,13 +390,13 @@ class ProcedureRevision < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_type_de_champ_by_id(id)
|
def find_type_de_champ_by_id(id)
|
||||||
types_de_champ.find_by(stable_id: id) ||
|
types_de_champ_public.find_by(stable_id: id) ||
|
||||||
types_de_champ_private.find_by(stable_id: id) ||
|
types_de_champ_private.find_by(stable_id: id) ||
|
||||||
types_de_champ_in_repetition.find_by!(stable_id: id)
|
types_de_champ_in_repetition.find_by!(stable_id: id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def types_de_champ_in_repetition
|
def types_de_champ_in_repetition
|
||||||
parent_ids = types_de_champ.repetition.ids + types_de_champ_private.repetition.ids
|
parent_ids = types_de_champ_public.repetition.ids + types_de_champ_private.repetition.ids
|
||||||
TypeDeChamp.where(parent_id: parent_ids)
|
TypeDeChamp.where(parent_id: parent_ids)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ class ProcedureRevisionTypeDeChamp < ApplicationRecord
|
||||||
|
|
||||||
def set_position
|
def set_position
|
||||||
self.position ||= begin
|
self.position ||= begin
|
||||||
types_de_champ = (private? ? revision.revision_types_de_champ_private : revision.revision_types_de_champ).filter(&:persisted?)
|
types_de_champ = (private? ? revision.revision_types_de_champ_private : revision.revision_types_de_champ_public).filter(&:persisted?)
|
||||||
|
|
||||||
if types_de_champ.present?
|
if types_de_champ.present?
|
||||||
types_de_champ.last.position + 1
|
types_de_champ.last.position + 1
|
||||||
|
|
|
@ -28,7 +28,7 @@ class PiecesJustificativesService
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.serialize_types_de_champ_as_type_pj(revision)
|
def self.serialize_types_de_champ_as_type_pj(revision)
|
||||||
tdcs = revision.types_de_champ.filter { |type_champ| type_champ.old_pj.present? }
|
tdcs = revision.types_de_champ_public.filter { |type_champ| type_champ.old_pj.present? }
|
||||||
tdcs.map.with_index do |type_champ, order_place|
|
tdcs.map.with_index do |type_champ, order_place|
|
||||||
description = type_champ.description
|
description = type_champ.description
|
||||||
if /^(?<original_description>.*?)(?:[\r\n]+)Récupérer le formulaire vierge pour mon dossier : (?<lien_demarche>http.*)$/m =~ description
|
if /^(?<original_description>.*?)(?:[\r\n]+)Récupérer le formulaire vierge pour mon dossier : (?<lien_demarche>http.*)$/m =~ description
|
||||||
|
|
|
@ -18,6 +18,7 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
|
||||||
inflect.irregular 'type_de_champ_private', 'types_de_champ_private'
|
inflect.irregular 'type_de_champ_private', 'types_de_champ_private'
|
||||||
inflect.irregular 'procedure_revision_type_de_champ', 'procedure_revision_types_de_champ'
|
inflect.irregular 'procedure_revision_type_de_champ', 'procedure_revision_types_de_champ'
|
||||||
inflect.irregular 'revision_type_de_champ', 'revision_types_de_champ'
|
inflect.irregular 'revision_type_de_champ', 'revision_types_de_champ'
|
||||||
|
inflect.irregular 'revision_type_de_champ_public', 'revision_types_de_champ_public'
|
||||||
inflect.irregular 'revision_type_de_champ_private', 'revision_types_de_champ_private'
|
inflect.irregular 'revision_type_de_champ_private', 'revision_types_de_champ_private'
|
||||||
inflect.irregular 'assign_to', 'assign_tos'
|
inflect.irregular 'assign_to', 'assign_tos'
|
||||||
inflect.uncountable(['avis', 'pays'])
|
inflect.uncountable(['avis', 'pays'])
|
||||||
|
|
|
@ -333,7 +333,7 @@ end
|
||||||
|
|
||||||
def add_types_de_champs(types_de_champ, to: nil, scope: :public)
|
def add_types_de_champs(types_de_champ, to: nil, scope: :public)
|
||||||
revision = to
|
revision = to
|
||||||
association_name = scope == :private ? :revision_types_de_champ_private : :revision_types_de_champ
|
association_name = scope == :private ? :revision_types_de_champ_private : :revision_types_de_champ_public
|
||||||
|
|
||||||
types_de_champ.each do |type_de_champ|
|
types_de_champ.each do |type_de_champ|
|
||||||
type_de_champ.revision = revision
|
type_de_champ.revision = revision
|
||||||
|
|
|
@ -10,8 +10,8 @@ FactoryBot.define do
|
||||||
|
|
||||||
revision.procedure = original.procedure
|
revision.procedure = original.procedure
|
||||||
revision.attestation_template_id = original.attestation_template_id
|
revision.attestation_template_id = original.attestation_template_id
|
||||||
original.revision_types_de_champ.each do |r_tdc|
|
original.revision_types_de_champ_public.each do |r_tdc|
|
||||||
revision.revision_types_de_champ << build(:procedure_revision_type_de_champ, from_original: r_tdc)
|
revision.revision_types_de_champ_public << build(:procedure_revision_type_de_champ, from_original: r_tdc)
|
||||||
end
|
end
|
||||||
original.revision_types_de_champ_private.each do |r_tdc|
|
original.revision_types_de_champ_private.each do |r_tdc|
|
||||||
revision.revision_types_de_champ_private << build(:procedure_revision_type_de_champ, from_original: r_tdc)
|
revision.revision_types_de_champ_private << build(:procedure_revision_type_de_champ, from_original: r_tdc)
|
||||||
|
|
|
@ -25,7 +25,7 @@ FactoryBot.define do
|
||||||
if type_de_champ.private?
|
if type_de_champ.private?
|
||||||
type_de_champ.revision.types_de_champ_private << type_de_champ
|
type_de_champ.revision.types_de_champ_private << type_de_champ
|
||||||
else
|
else
|
||||||
type_de_champ.revision.types_de_champ << type_de_champ
|
type_de_champ.revision.types_de_champ_public << type_de_champ
|
||||||
end
|
end
|
||||||
elsif evaluator.parent
|
elsif evaluator.parent
|
||||||
type_de_champ.revision = evaluator.parent.revision
|
type_de_champ.revision = evaluator.parent.revision
|
||||||
|
|
|
@ -48,7 +48,7 @@ describe ProcedurePresentation do
|
||||||
it { is_expected.to match(['libelle 2', 'libelle 1']) }
|
it { is_expected.to match(['libelle 2', 'libelle 1']) }
|
||||||
|
|
||||||
context 'and finally, when this tdc is removed' do
|
context 'and finally, when this tdc is removed' do
|
||||||
let!(:previous_tdc2) { procedure.published_revision.types_de_champ.find_by(libelle: 'libelle 2') }
|
let!(:previous_tdc2) { procedure.published_revision.types_de_champ_public.find_by(libelle: 'libelle 2') }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
procedure.draft_revision.remove_type_de_champ(previous_tdc2.stable_id)
|
procedure.draft_revision.remove_type_de_champ(previous_tdc2.stable_id)
|
||||||
|
@ -61,7 +61,7 @@ describe ProcedurePresentation do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when there is another published revision with a renamed tdc' do
|
context 'when there is another published revision with a renamed tdc' do
|
||||||
let!(:previous_tdc) { procedure.published_revision.types_de_champ.first }
|
let!(:previous_tdc) { procedure.published_revision.types_de_champ_public.first }
|
||||||
let!(:changed_tdc) { { type_champ: :number, libelle: 'changed libelle 1' } }
|
let!(:changed_tdc) { { type_champ: :number, libelle: 'changed libelle 1' } }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
@ -75,7 +75,7 @@ describe ProcedurePresentation do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when there is another published which removes a previous tdc' do
|
context 'when there is another published which removes a previous tdc' do
|
||||||
let!(:previous_tdc) { procedure.published_revision.types_de_champ.first }
|
let!(:previous_tdc) { procedure.published_revision.types_de_champ_public.first }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
type_de_champ = procedure.draft_revision.remove_type_de_champ(previous_tdc.id)
|
type_de_champ = procedure.draft_revision.remove_type_de_champ(previous_tdc.id)
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
describe ProcedureRevision do
|
describe ProcedureRevision do
|
||||||
let(:procedure) { create(:procedure, :with_type_de_champ, :with_type_de_champ_private, :with_repetition) }
|
let(:procedure) { create(:procedure, :with_type_de_champ, :with_type_de_champ_private, :with_repetition) }
|
||||||
let(:revision) { procedure.active_revision }
|
let(:revision) { procedure.active_revision }
|
||||||
let(:type_de_champ) { revision.types_de_champ.first }
|
let(:type_de_champ) { revision.types_de_champ_public.first }
|
||||||
let(:type_de_champ_private) { revision.types_de_champ_private.first }
|
let(:type_de_champ_private) { revision.types_de_champ_private.first }
|
||||||
let(:type_de_champ_repetition) do
|
let(:type_de_champ_repetition) do
|
||||||
type_de_champ = revision.types_de_champ.repetition.first
|
type_de_champ = revision.types_de_champ_public.repetition.first
|
||||||
type_de_champ.update(stable_id: 3333)
|
type_de_champ.update(stable_id: 3333)
|
||||||
type_de_champ
|
type_de_champ
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#add_type_de_champ' do
|
describe '#add_type_de_champ' do
|
||||||
it 'type_de_champ' do
|
it 'type_de_champ' do
|
||||||
expect(revision.types_de_champ.size).to eq(2)
|
expect(revision.types_de_champ_public.size).to eq(2)
|
||||||
new_type_de_champ = revision.add_type_de_champ({
|
new_type_de_champ = revision.add_type_de_champ({
|
||||||
type_champ: TypeDeChamp.type_champs.fetch(:text),
|
type_champ: TypeDeChamp.type_champs.fetch(:text),
|
||||||
libelle: "Un champ text"
|
libelle: "Un champ text"
|
||||||
})
|
})
|
||||||
revision.reload
|
revision.reload
|
||||||
expect(revision.types_de_champ.size).to eq(3)
|
expect(revision.types_de_champ_public.size).to eq(3)
|
||||||
expect(revision.types_de_champ.last).to eq(new_type_de_champ)
|
expect(revision.types_de_champ_public.last).to eq(new_type_de_champ)
|
||||||
expect(revision.revision_types_de_champ.last.position).to eq(2)
|
expect(revision.revision_types_de_champ_public.last.position).to eq(2)
|
||||||
expect(revision.revision_types_de_champ.last.type_de_champ).to eq(new_type_de_champ)
|
expect(revision.revision_types_de_champ_public.last.type_de_champ).to eq(new_type_de_champ)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'type_de_champ_private' do
|
it 'type_de_champ_private' do
|
||||||
|
@ -47,24 +47,24 @@ describe ProcedureRevision do
|
||||||
|
|
||||||
describe '#move_type_de_champ' do
|
describe '#move_type_de_champ' do
|
||||||
let(:procedure) { create(:procedure, :with_type_de_champ, types_de_champ_count: 4) }
|
let(:procedure) { create(:procedure, :with_type_de_champ, types_de_champ_count: 4) }
|
||||||
let(:last_type_de_champ) { revision.types_de_champ.last }
|
let(:last_type_de_champ) { revision.types_de_champ_public.last }
|
||||||
|
|
||||||
it 'move down' do
|
it 'move down' do
|
||||||
expect(revision.types_de_champ.index(type_de_champ)).to eq(0)
|
expect(revision.types_de_champ_public.index(type_de_champ)).to eq(0)
|
||||||
type_de_champ.update(order_place: nil)
|
type_de_champ.update(order_place: nil)
|
||||||
revision.move_type_de_champ(type_de_champ.stable_id, 2)
|
revision.move_type_de_champ(type_de_champ.stable_id, 2)
|
||||||
revision.reload
|
revision.reload
|
||||||
expect(revision.types_de_champ.index(type_de_champ)).to eq(2)
|
expect(revision.types_de_champ_public.index(type_de_champ)).to eq(2)
|
||||||
expect(revision.procedure.types_de_champ.index(type_de_champ)).to eq(2)
|
expect(revision.procedure.types_de_champ.index(type_de_champ)).to eq(2)
|
||||||
expect(revision.procedure.types_de_champ_for_procedure_presentation.not_repetition.index(type_de_champ)).to eq(2)
|
expect(revision.procedure.types_de_champ_for_procedure_presentation.not_repetition.index(type_de_champ)).to eq(2)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'move up' do
|
it 'move up' do
|
||||||
expect(revision.types_de_champ.index(last_type_de_champ)).to eq(3)
|
expect(revision.types_de_champ_public.index(last_type_de_champ)).to eq(3)
|
||||||
last_type_de_champ.update(order_place: nil)
|
last_type_de_champ.update(order_place: nil)
|
||||||
revision.move_type_de_champ(last_type_de_champ.stable_id, 0)
|
revision.move_type_de_champ(last_type_de_champ.stable_id, 0)
|
||||||
revision.reload
|
revision.reload
|
||||||
expect(revision.types_de_champ.index(last_type_de_champ)).to eq(0)
|
expect(revision.types_de_champ_public.index(last_type_de_champ)).to eq(0)
|
||||||
expect(revision.procedure.types_de_champ.index(last_type_de_champ)).to eq(0)
|
expect(revision.procedure.types_de_champ.index(last_type_de_champ)).to eq(0)
|
||||||
expect(revision.procedure.types_de_champ_for_procedure_presentation.not_repetition.index(last_type_de_champ)).to eq(0)
|
expect(revision.procedure.types_de_champ_for_procedure_presentation.not_repetition.index(last_type_de_champ)).to eq(0)
|
||||||
end
|
end
|
||||||
|
@ -106,10 +106,10 @@ describe ProcedureRevision do
|
||||||
|
|
||||||
describe '#remove_type_de_champ' do
|
describe '#remove_type_de_champ' do
|
||||||
it 'type_de_champ' do
|
it 'type_de_champ' do
|
||||||
expect(revision.types_de_champ.size).to eq(2)
|
expect(revision.types_de_champ_public.size).to eq(2)
|
||||||
revision.remove_type_de_champ(type_de_champ.stable_id)
|
revision.remove_type_de_champ(type_de_champ.stable_id)
|
||||||
procedure.reload
|
procedure.reload
|
||||||
expect(revision.types_de_champ.size).to eq(1)
|
expect(revision.types_de_champ_public.size).to eq(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'type_de_champ_private' do
|
it 'type_de_champ_private' do
|
||||||
|
@ -120,11 +120,11 @@ describe ProcedureRevision do
|
||||||
|
|
||||||
it 'type_de_champ_repetition' do
|
it 'type_de_champ_repetition' do
|
||||||
expect(type_de_champ_repetition.types_de_champ.size).to eq(1)
|
expect(type_de_champ_repetition.types_de_champ.size).to eq(1)
|
||||||
expect(revision.types_de_champ.size).to eq(2)
|
expect(revision.types_de_champ_public.size).to eq(2)
|
||||||
revision.remove_type_de_champ(type_de_champ_repetition.types_de_champ.first.stable_id)
|
revision.remove_type_de_champ(type_de_champ_repetition.types_de_champ.first.stable_id)
|
||||||
type_de_champ_repetition.reload
|
type_de_champ_repetition.reload
|
||||||
expect(type_de_champ_repetition.types_de_champ.size).to eq(0)
|
expect(type_de_champ_repetition.types_de_champ.size).to eq(0)
|
||||||
expect(revision.types_de_champ.size).to eq(2)
|
expect(revision.types_de_champ_public.size).to eq(2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -140,35 +140,35 @@ describe ProcedureRevision do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should have types_de_champ' do
|
it 'should have types_de_champ' do
|
||||||
expect(new_revision.types_de_champ.count).to eq(2)
|
expect(new_revision.types_de_champ_public.count).to eq(2)
|
||||||
expect(new_revision.types_de_champ_private.count).to eq(1)
|
expect(new_revision.types_de_champ_private.count).to eq(1)
|
||||||
expect(new_revision.types_de_champ).to eq(revision.types_de_champ)
|
expect(new_revision.types_de_champ_public).to eq(revision.types_de_champ_public)
|
||||||
expect(new_revision.types_de_champ_private).to eq(revision.types_de_champ_private)
|
expect(new_revision.types_de_champ_private).to eq(revision.types_de_champ_private)
|
||||||
|
|
||||||
expect(new_revision.revision_types_de_champ.count).to eq(2)
|
expect(new_revision.revision_types_de_champ_public.count).to eq(2)
|
||||||
expect(new_revision.revision_types_de_champ_private.count).to eq(1)
|
expect(new_revision.revision_types_de_champ_private.count).to eq(1)
|
||||||
expect(new_revision.revision_types_de_champ.count).to eq(revision.revision_types_de_champ.count)
|
expect(new_revision.revision_types_de_champ_public.count).to eq(revision.revision_types_de_champ_public.count)
|
||||||
expect(new_revision.revision_types_de_champ_private.count).to eq(revision.revision_types_de_champ_private.count)
|
expect(new_revision.revision_types_de_champ_private.count).to eq(revision.revision_types_de_champ_private.count)
|
||||||
expect(new_revision.revision_types_de_champ).not_to eq(revision.revision_types_de_champ)
|
expect(new_revision.revision_types_de_champ_public).not_to eq(revision.revision_types_de_champ_public)
|
||||||
expect(new_revision.revision_types_de_champ_private).not_to eq(revision.revision_types_de_champ_private)
|
expect(new_revision.revision_types_de_champ_private).not_to eq(revision.revision_types_de_champ_private)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#compare' do
|
describe '#compare' do
|
||||||
let(:type_de_champ_first) { revision.types_de_champ.first }
|
let(:type_de_champ_first) { revision.types_de_champ_public.first }
|
||||||
let(:type_de_champ_second) { revision.types_de_champ.second }
|
let(:type_de_champ_second) { revision.types_de_champ_public.second }
|
||||||
|
|
||||||
it 'type_de_champ' do
|
it 'type_de_champ' do
|
||||||
expect(new_revision.types_de_champ.size).to eq(2)
|
expect(new_revision.types_de_champ_public.size).to eq(2)
|
||||||
new_type_de_champ = new_revision.add_type_de_champ({
|
new_type_de_champ = new_revision.add_type_de_champ({
|
||||||
type_champ: TypeDeChamp.type_champs.fetch(:text),
|
type_champ: TypeDeChamp.type_champs.fetch(:text),
|
||||||
libelle: "Un champ text"
|
libelle: "Un champ text"
|
||||||
})
|
})
|
||||||
revision.reload
|
revision.reload
|
||||||
expect(new_revision.types_de_champ.size).to eq(3)
|
expect(new_revision.types_de_champ_public.size).to eq(3)
|
||||||
expect(new_revision.types_de_champ.last).to eq(new_type_de_champ)
|
expect(new_revision.types_de_champ_public.last).to eq(new_type_de_champ)
|
||||||
expect(new_revision.revision_types_de_champ.last.position).to eq(2)
|
expect(new_revision.revision_types_de_champ_public.last.position).to eq(2)
|
||||||
expect(new_revision.revision_types_de_champ.last.type_de_champ).to eq(new_type_de_champ)
|
expect(new_revision.revision_types_de_champ_public.last.type_de_champ).to eq(new_type_de_champ)
|
||||||
expect(new_revision.revision_types_de_champ.last.type_de_champ.revision).to eq(new_revision)
|
expect(new_revision.revision_types_de_champ_public.last.type_de_champ.revision).to eq(new_revision)
|
||||||
expect(procedure.active_revision.different_from?(new_revision)).to be_truthy
|
expect(procedure.active_revision.different_from?(new_revision)).to be_truthy
|
||||||
expect(procedure.active_revision.compare(new_revision)).to eq([
|
expect(procedure.active_revision.compare(new_revision)).to eq([
|
||||||
{
|
{
|
||||||
|
@ -180,7 +180,7 @@ describe ProcedureRevision do
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.first.stable_id).update(libelle: 'modifier le libelle')
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.first.stable_id).update(libelle: 'modifier le libelle')
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -200,9 +200,9 @@ describe ProcedureRevision do
|
||||||
stable_id: new_type_de_champ.stable_id
|
stable_id: new_type_de_champ.stable_id
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
expect(new_revision.types_de_champ.first.revision).to eq(new_revision)
|
expect(new_revision.types_de_champ_public.first.revision).to eq(new_revision)
|
||||||
|
|
||||||
new_revision.move_type_de_champ(new_revision.types_de_champ.second.stable_id, 2)
|
new_revision.move_type_de_champ(new_revision.types_de_champ_public.second.stable_id, 2)
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -231,9 +231,9 @@ describe ProcedureRevision do
|
||||||
stable_id: type_de_champ_second.stable_id
|
stable_id: type_de_champ_second.stable_id
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
expect(new_revision.types_de_champ.last.revision).to eq(revision)
|
expect(new_revision.types_de_champ_public.last.revision).to eq(revision)
|
||||||
|
|
||||||
new_revision.remove_type_de_champ(new_revision.types_de_champ.first.stable_id)
|
new_revision.remove_type_de_champ(new_revision.types_de_champ_public.first.stable_id)
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -251,8 +251,8 @@ describe ProcedureRevision do
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.stable_id).update(description: 'une description')
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.stable_id).update(description: 'une description')
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.stable_id).update(mandatory: true)
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.stable_id).update(mandatory: true)
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -290,8 +290,8 @@ describe ProcedureRevision do
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.types_de_champ.first.stable_id).update(type_champ: :drop_down_list)
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.types_de_champ.first.stable_id).update(type_champ: :drop_down_list)
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.types_de_champ.first.stable_id).update(drop_down_options: ['one', 'two'])
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.types_de_champ.first.stable_id).update(drop_down_options: ['one', 'two'])
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -335,7 +335,7 @@ describe ProcedureRevision do
|
||||||
private: false,
|
private: false,
|
||||||
from: "text",
|
from: "text",
|
||||||
to: "drop_down_list",
|
to: "drop_down_list",
|
||||||
stable_id: new_revision.types_de_champ.last.types_de_champ.first.stable_id
|
stable_id: new_revision.types_de_champ_public.last.types_de_champ.first.stable_id
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -345,12 +345,12 @@ describe ProcedureRevision do
|
||||||
private: false,
|
private: false,
|
||||||
from: [],
|
from: [],
|
||||||
to: ["one", "two"],
|
to: ["one", "two"],
|
||||||
stable_id: new_revision.types_de_champ.last.types_de_champ.first.stable_id
|
stable_id: new_revision.types_de_champ_public.last.types_de_champ.first.stable_id
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.types_de_champ.first.stable_id).update(type_champ: :carte)
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.types_de_champ.first.stable_id).update(type_champ: :carte)
|
||||||
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ.last.types_de_champ.first.stable_id).update(options: { cadastres: true, znieff: true })
|
new_revision.find_or_clone_type_de_champ(new_revision.types_de_champ_public.last.types_de_champ.first.stable_id).update(options: { cadastres: true, znieff: true })
|
||||||
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
expect(procedure.active_revision.compare(new_revision.reload)).to eq([
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -394,7 +394,7 @@ describe ProcedureRevision do
|
||||||
private: false,
|
private: false,
|
||||||
from: "text",
|
from: "text",
|
||||||
to: "carte",
|
to: "carte",
|
||||||
stable_id: new_revision.types_de_champ.last.types_de_champ.first.stable_id
|
stable_id: new_revision.types_de_champ_public.last.types_de_champ.first.stable_id
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
model: :type_de_champ,
|
model: :type_de_champ,
|
||||||
|
@ -404,7 +404,7 @@ describe ProcedureRevision do
|
||||||
private: false,
|
private: false,
|
||||||
from: [],
|
from: [],
|
||||||
to: [:cadastres, :znieff],
|
to: [:cadastres, :znieff],
|
||||||
stable_id: new_revision.types_de_champ.last.types_de_champ.first.stable_id
|
stable_id: new_revision.types_de_champ_public.last.types_de_champ.first.stable_id
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
end
|
end
|
||||||
|
|
|
@ -822,15 +822,15 @@ describe Procedure do
|
||||||
subject
|
subject
|
||||||
expect(procedure.published_revision).to be_present
|
expect(procedure.published_revision).to be_present
|
||||||
expect(procedure.published_revision.published_at).to eq(publication_date)
|
expect(procedure.published_revision.published_at).to eq(publication_date)
|
||||||
expect(procedure.published_revision.types_de_champ.first.libelle).to eq('libelle 1')
|
expect(procedure.published_revision.types_de_champ_public.first.libelle).to eq('libelle 1')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'creates a new draft revision' do
|
it 'creates a new draft revision' do
|
||||||
expect { subject }.to change(ProcedureRevision, :count).by(1)
|
expect { subject }.to change(ProcedureRevision, :count).by(1)
|
||||||
expect(procedure.draft_revision).to be_present
|
expect(procedure.draft_revision).to be_present
|
||||||
expect(procedure.draft_revision.revision_types_de_champ).to be_present
|
expect(procedure.draft_revision.revision_types_de_champ_public).to be_present
|
||||||
expect(procedure.draft_revision.types_de_champ).to be_present
|
expect(procedure.draft_revision.types_de_champ_public).to be_present
|
||||||
expect(procedure.draft_revision.types_de_champ.first.libelle).to eq('libelle 1')
|
expect(procedure.draft_revision.types_de_champ_public.first.libelle).to eq('libelle 1')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when the procedure has dossiers' do
|
context 'when the procedure has dossiers' do
|
||||||
|
|
|
@ -18,8 +18,8 @@ describe ProcedureExportService do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
# change one tdc place to check if the header is ordered
|
# change one tdc place to check if the header is ordered
|
||||||
tdc_first = procedure.active_revision.revision_types_de_champ.first
|
tdc_first = procedure.active_revision.revision_types_de_champ_public.first
|
||||||
tdc_last = procedure.active_revision.revision_types_de_champ.last
|
tdc_last = procedure.active_revision.revision_types_de_champ_public.last
|
||||||
|
|
||||||
tdc_first.update(position: tdc_last.position + 1)
|
tdc_first.update(position: tdc_last.position + 1)
|
||||||
procedure.reload
|
procedure.reload
|
||||||
|
|
Loading…
Reference in a new issue