refactor(dossier): champs -> champs_public

This commit is contained in:
Paul Chavard 2022-11-10 21:21:14 +00:00
parent 68e0abc15f
commit e6288c39f2
62 changed files with 227 additions and 223 deletions

View file

@ -362,9 +362,9 @@ class ApplicationController < ActionController::Base
# Extract a value from params based on the "path" # Extract a value from params based on the "path"
# #
# params: { dossiers: { champs_attributes: { 1234 => { value: "hello" } } } } # params: { dossiers: { champs_public_attributes: { 1234 => { value: "hello" } } } }
# #
# Usage: read_param_value("dossiers[champs_attributes][1234]", "value") # Usage: read_param_value("dossiers[champs_public_attributes][1234]", "value")
def read_param_value(path, name) def read_param_value(path, name)
parts = path.split(/\[|\]\[|\]/) + [name] parts = path.split(/\[|\]\[|\]/) + [name]
parts.reduce(params) do |value, part| parts.reduce(params) do |value, part|

View file

@ -74,7 +74,7 @@ class RootController < ApplicationController
.each { |champ| champ.value = value } .each { |champ| champ.value = value }
end end
@dossier = Dossier.new(champs: all_champs) @dossier = Dossier.new(champs_public: all_champs)
all_champs.each do |champ| all_champs.each do |champ|
champ.association(:dossier).target = @dossier champ.association(:dossier).target = @dossier
champ.champs.each do |champ| champ.champs.each do |champ|

View file

@ -198,7 +198,7 @@ module Users
respond_to do |format| respond_to do |format|
format.html { render :brouillon } format.html { render :brouillon }
format.turbo_stream do format.turbo_stream do
@to_shows, @to_hides = @dossier.champs @to_shows, @to_hides = @dossier.champs_public
.filter(&:conditional?) .filter(&:conditional?)
.partition(&:visible?) .partition(&:visible?)
.map { |champs| champs_to_one_selector(champs) } .map { |champs| champs_to_one_selector(champs) }
@ -219,7 +219,7 @@ module Users
respond_to do |format| respond_to do |format|
format.html { render :modifier } format.html { render :modifier }
format.turbo_stream do format.turbo_stream do
@to_shows, @to_hides = @dossier.champs @to_shows, @to_hides = @dossier.champs_public
.filter(&:conditional?) .filter(&:conditional?)
.partition(&:visible?) .partition(&:visible?)
.map { |champs| champs_to_one_selector(champs) } .map { |champs| champs_to_one_selector(champs) }
@ -382,7 +382,7 @@ module Users
# FIXME: require(:dossier) when all the champs are united # FIXME: require(:dossier) when all the champs are united
def champs_params def champs_params
params.permit(dossier: { params.permit(dossier: {
champs_attributes: [ champs_public_attributes: [
:id, :value, :value_other, :external_id, :primary_value, :secondary_value, :numero_allocataire, :code_postal, :identifiant, :numero_fiscal, :reference_avis, :ine, :piece_justificative_file, :departement, :code_departement, value: [], :id, :value, :value_other, :external_id, :primary_value, :secondary_value, :numero_allocataire, :code_postal, :identifiant, :numero_fiscal, :reference_avis, :ine, :piece_justificative_file, :departement, :code_departement, value: [],
champs_attributes: [:id, :_destroy, :value, :value_other, :external_id, :primary_value, :secondary_value, :numero_allocataire, :code_postal, :identifiant, :numero_fiscal, :reference_avis, :ine, :piece_justificative_file, :departement, :code_departement, value: []] champs_attributes: [:id, :_destroy, :value, :value_other, :external_id, :primary_value, :secondary_value, :numero_allocataire, :code_postal, :identifiant, :numero_fiscal, :reference_avis, :ine, :piece_justificative_file, :departement, :code_departement, value: []]
] ]
@ -446,10 +446,10 @@ module Users
@dossier.assign_attributes(champs_params[:dossier]) @dossier.assign_attributes(champs_params[:dossier])
# FIXME: in some cases a removed repetition bloc row is submitted. # FIXME: in some cases a removed repetition bloc row is submitted.
# In this case it will be treated as a new record, and the action will fail. # In this case it will be treated as a new record, and the action will fail.
@dossier.champs.filter(&:block?).each do |champ| @dossier.champs_public.filter(&:block?).each do |champ|
champ.champs = champ.champs.filter(&:persisted?) champ.champs = champ.champs.filter(&:persisted?)
end end
if @dossier.champs.any?(&:changed_for_autosave?) if @dossier.champs_public.any?(&:changed_for_autosave?)
@dossier.last_champ_updated_at = Time.zone.now @dossier.last_champ_updated_at = Time.zone.now
end end
if !@dossier.save(**validation_options) if !@dossier.save(**validation_options)

View file

@ -122,7 +122,7 @@ module Types
.load(ApplicationRecord.id_from_typed_id(id)) .load(ApplicationRecord.id_from_typed_id(id))
else else
Loaders::Association Loaders::Association
.for(object.class, champs: :type_de_champ) .for(object.class, champs_public: :type_de_champ)
.load(object) .load(object)
.then { |champs| champs.filter(&:visible?) } .then { |champs| champs.filter(&:visible?) }
end end

View file

@ -41,7 +41,7 @@ class AttestationTemplate < ApplicationRecord
end end
def unspecified_champs_for_dossier(dossier) def unspecified_champs_for_dossier(dossier)
all_champs_with_libelle_index = (dossier.champs + dossier.champs_private).index_by { |champ| "tdc#{champ.stable_id}" } all_champs_with_libelle_index = (dossier.champs_public + dossier.champs_private).index_by { |champ| "tdc#{champ.stable_id}" }
used_tags.filter_map do |used_tag| used_tags.filter_map do |used_tag|
corresponding_champ = all_champs_with_libelle_index[used_tag] corresponding_champ = all_champs_with_libelle_index[used_tag]

View file

@ -166,7 +166,7 @@ class Champ < ApplicationRecord
# A predictable string to use when generating an input name for this champ. # A predictable string to use when generating an input name for this champ.
# #
# Rail's FormBuilder can auto-generate input names, using the form "dossier[champs_attributes][5]", # Rail's FormBuilder can auto-generate input names, using the form "dossier[champs_public_attributes][5]",
# where [5] is the index of the field in the form. # where [5] is the index of the field in the form.
# However the field index makes it difficult to render a single field, independent from the ordering of the others. # However the field index makes it difficult to render a single field, independent from the ordering of the others.
# #
@ -218,7 +218,7 @@ class Champ < ApplicationRecord
private private
def champs_for_condition def champs_for_condition
private? ? dossier.champs_private : dossier.champs private? ? dossier.champs_private : dossier.champs_public
end end
def html_id def html_id
@ -229,7 +229,7 @@ class Champ < ApplicationRecord
if private? if private?
"champs_private_attributes" "champs_private_attributes"
else else
"champs_attributes" "champs_public_attributes"
end end
end end

View file

@ -139,8 +139,12 @@ module DossierRebaseConcern
champ = target_coordinate champ = target_coordinate
.type_de_champ .type_de_champ
.build_champ(params) .build_champ(params)
if parent.is_a?(Dossier)
parent.champs_public << champ
else
parent.champs << champ parent.champs << champ
end end
end
def delete_champs_for_revision(stable_id) def delete_champs_for_revision(stable_id)
Champ Champ

View file

@ -287,7 +287,7 @@ module TagsSubstitutionConcern
tokens = parse_tags(text) tokens = parse_tags(text)
tags_and_datas = [ tags_and_datas = [
[champ_public_tags(dossier: dossier), dossier.champs], [champ_public_tags(dossier: dossier), dossier.champs_public],
[champ_private_tags(dossier: dossier), dossier.champs_private], [champ_private_tags(dossier: dossier), dossier.champs_private],
[dossier_tags, dossier], [dossier_tags, dossier],
[ROUTAGE_TAGS, dossier], [ROUTAGE_TAGS, dossier],

View file

@ -74,7 +74,7 @@ class Dossier < ApplicationRecord
has_one_attached :justificatif_motivation has_one_attached :justificatif_motivation
has_many :champs, -> { root.public_ordered }, inverse_of: false, dependent: :destroy has_many :champs_public, -> { root.public_ordered }, class_name: 'Champ', inverse_of: false, dependent: :destroy
has_many :champs_private, -> { root.private_ordered }, class_name: 'Champ', inverse_of: false, dependent: :destroy has_many :champs_private, -> { root.private_ordered }, class_name: 'Champ', inverse_of: false, dependent: :destroy
has_many :commentaires, inverse_of: :dossier, dependent: :destroy has_many :commentaires, inverse_of: :dossier, dependent: :destroy
has_many :invites, dependent: :destroy has_many :invites, dependent: :destroy
@ -140,7 +140,7 @@ class Dossier < ApplicationRecord
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
has_many :transfer_logs, class_name: 'DossierTransferLog', dependent: :destroy has_many :transfer_logs, class_name: 'DossierTransferLog', dependent: :destroy
accepts_nested_attributes_for :champs accepts_nested_attributes_for :champs_public
accepts_nested_attributes_for :champs_private accepts_nested_attributes_for :champs_private
include AASM include AASM
@ -252,7 +252,7 @@ class Dossier < ApplicationRecord
scope :en_cours, -> { not_archived.state_en_construction_ou_instruction } scope :en_cours, -> { not_archived.state_en_construction_ou_instruction }
scope :without_followers, -> { left_outer_joins(:follows).where(follows: { id: nil }) } scope :without_followers, -> { left_outer_joins(:follows).where(follows: { id: nil }) }
scope :with_champs, -> { scope :with_champs, -> {
includes(champs: [ includes(champs_public: [
:type_de_champ, :type_de_champ,
:geo_areas, :geo_areas,
piece_justificative_file_attachment: :blob, piece_justificative_file_attachment: :blob,
@ -465,7 +465,7 @@ class Dossier < ApplicationRecord
def update_search_terms def update_search_terms
self.search_terms = [ self.search_terms = [
user&.email, user&.email,
*champs.flat_map(&:search_terms), *champs_public.flat_map(&:search_terms),
*etablissement&.search_terms, *etablissement&.search_terms,
individual&.nom, individual&.nom,
individual&.prenom individual&.prenom
@ -474,8 +474,8 @@ class Dossier < ApplicationRecord
end end
def build_default_champs def build_default_champs
revision.build_champs.each do |champ| revision.build_champs_public.each do |champ|
champs << champ champs_public << champ
end end
revision.build_champs_private.each do |champ| revision.build_champs_private.each do |champ|
champs_private << champ champs_private << champ
@ -983,11 +983,11 @@ class Dossier < ApplicationRecord
end end
def remove_titres_identite! def remove_titres_identite!
champs.filter(&:titre_identite?).map(&:piece_justificative_file).each(&:purge_later) champs_public.filter(&:titre_identite?).map(&:piece_justificative_file).each(&:purge_later)
end end
def check_mandatory_and_visible_champs def check_mandatory_and_visible_champs
(champs + champs.filter(&:block?).filter(&:visible?).flat_map(&:champs)) (champs_public + champs_public.filter(&:block?).filter(&:visible?).flat_map(&:champs))
.filter(&:visible?) .filter(&:visible?)
.filter(&:mandatory_blank?) .filter(&:mandatory_blank?)
.map do |champ| .map do |champ|
@ -1088,7 +1088,7 @@ class Dossier < ApplicationRecord
if procedure.routing_enabled? if procedure.routing_enabled?
columns << ['Groupe instructeur', groupe_instructeur.label] columns << ['Groupe instructeur', groupe_instructeur.label]
end end
columns + self.class.champs_for_export(champs + champs_private, types_de_champ) columns + self.class.champs_for_export(champs_public + champs_private, types_de_champ)
end end
# Get all the champs values for the types de champ in the final list. # Get all the champs values for the types de champ in the final list.
@ -1119,7 +1119,7 @@ class Dossier < ApplicationRecord
end end
def linked_dossiers_for(instructeur_or_expert) def linked_dossiers_for(instructeur_or_expert)
dossier_ids = champs.filter(&:dossier_link?).filter_map(&:value) dossier_ids = champs_public.filter(&:dossier_link?).filter_map(&:value)
instructeur_or_expert.dossiers.where(id: dossier_ids) instructeur_or_expert.dossiers.where(id: dossier_ids)
end end
@ -1168,7 +1168,7 @@ class Dossier < ApplicationRecord
@sections = Hash.new do |hash, parent| @sections = Hash.new do |hash, parent|
case parent case parent
when :public when :public
hash[parent] = champs.filter(&:header_section?) hash[parent] = champs_public.filter(&:header_section?)
when :private when :private
hash[parent] = champs_private.filter(&:header_section?) hash[parent] = champs_private.filter(&:header_section?)
else else
@ -1199,7 +1199,7 @@ class Dossier < ApplicationRecord
end end
def geo_areas def geo_areas
champs.flat_map(&:geo_areas) + champs_private.flat_map(&:geo_areas) champs_public.flat_map(&:geo_areas) + champs_private.flat_map(&:geo_areas)
end end
def bounding_box def bounding_box

View file

@ -78,7 +78,7 @@ class DossierPreloader
def load_dossier(dossier, champs, children_by_parent = {}) def load_dossier(dossier, champs, children_by_parent = {})
champs_public, champs_private = champs.partition(&:public?) champs_public, champs_private = champs.partition(&:public?)
load_champs(dossier, :champs, champs_public, dossier, children_by_parent) load_champs(dossier, :champs_public, champs_public, dossier, children_by_parent)
load_champs(dossier, :champs_private, champs_private, dossier, children_by_parent) load_champs(dossier, :champs_private, champs_private, dossier, children_by_parent)
# We need to do this because of the check on `Etablissement#champ` in # We need to do this because of the check on `Etablissement#champ` in

View file

@ -124,11 +124,11 @@ class Instructeur < ApplicationRecord
def notifications_for_dossier(dossier) def notifications_for_dossier(dossier)
follow = Follow follow = Follow
.includes(dossier: [:champs, :avis, :commentaires]) .includes(dossier: [:champs_public, :champs_private, :avis, :commentaires])
.find_by(instructeur: self, dossier: dossier) .find_by(instructeur: self, dossier: dossier)
if follow.present? if follow.present?
demande = follow.dossier.champs.updated_since?(follow.demande_seen_at).any? || demande = follow.dossier.champs_public.updated_since?(follow.demande_seen_at).any? ||
follow.dossier.groupe_instructeur_updated_at&.>(follow.demande_seen_at) || follow.dossier.groupe_instructeur_updated_at&.>(follow.demande_seen_at) ||
dossier.identity_updated_at&.>(follow.demande_seen_at) || dossier.identity_updated_at&.>(follow.demande_seen_at) ||
false false

View file

@ -255,7 +255,7 @@ class Procedure < ApplicationRecord
includes( includes(
:groupe_instructeurs, :groupe_instructeurs,
dossiers: { dossiers: {
champs: [ champs_public: [
piece_justificative_file_attachment: :blob, piece_justificative_file_attachment: :blob,
champs: [ champs: [
piece_justificative_file_attachment: :blob piece_justificative_file_attachment: :blob

View file

@ -32,7 +32,7 @@ class ProcedureRevision < ApplicationRecord
validate :conditions_are_valid? validate :conditions_are_valid?
def build_champs def build_champs_public
# reload: it can be out of sync in test if some tdcs are added wihtout using add_tdc # reload: it can be out of sync in test if some tdcs are added wihtout using add_tdc
types_de_champ_public.reload.map { |tdc| tdc.build_champ(revision: self) } types_de_champ_public.reload.map { |tdc| tdc.build_champ(revision: self) }
end end
@ -154,7 +154,7 @@ class ProcedureRevision < ApplicationRecord
def new_dossier def new_dossier
Dossier.new( Dossier.new(
revision: self, revision: self,
champs: build_champs, champs_public: build_champs_public,
champs_private: build_champs_private, champs_private: build_champs_private,
groupe_instructeur: procedure.defaut_groupe_instructeur groupe_instructeur: procedure.defaut_groupe_instructeur
) )

View file

@ -30,7 +30,7 @@ class DossierSerializer < ActiveModel::Serializer
has_many :champs, serializer: ChampSerializer has_many :champs, serializer: ChampSerializer
def champs def champs
champs = object.champs.reject { |c| c.type_de_champ.old_pj.present? } champs = object.champs_public.reject { |c| c.type_de_champ.old_pj.present? }
if object.expose_legacy_carto_api? if object.expose_legacy_carto_api?
champ_carte = champs.find do |champ| champ_carte = champs.find do |champ|

View file

@ -45,7 +45,7 @@ class PiecesJustificativesService
end end
def self.serialize_champs_as_pjs(dossier) def self.serialize_champs_as_pjs(dossier)
dossier.champs.filter { |champ| champ.type_de_champ.old_pj }.map do |champ| dossier.champs_public.filter { |champ| champ.type_de_champ.old_pj }.map do |champ|
{ {
created_at: champ.created_at&.in_time_zone('UTC'), created_at: champ.created_at&.in_time_zone('UTC'),
type_de_piece_justificative_id: champ.type_de_champ.old_pj[:stable_id], type_de_piece_justificative_id: champ.type_de_champ.old_pj[:stable_id],

View file

@ -52,10 +52,10 @@ class ProcedureArchiveService
end end
def self.liste_pieces_justificatives_for_archive(dossier) def self.liste_pieces_justificatives_for_archive(dossier)
champs_blocs_repetables = dossier.champs champs_blocs_repetables = dossier.champs_public
.filter { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } .filter { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) }
.flat_map(&:champs) .flat_map(&:champs)
attachments_from_champs_piece_justificative(champs_blocs_repetables + dossier.champs) attachments_from_champs_piece_justificative(champs_blocs_repetables + dossier.champs_public)
end end
end end

View file

@ -82,7 +82,7 @@ class ProcedureExportService
def etablissements def etablissements
@etablissements ||= dossiers.flat_map do |dossier| @etablissements ||= dossiers.flat_map do |dossier|
[dossier.champs, dossier.champs_private] [dossier.champs_public, dossier.champs_private]
.flatten .flatten
.filter { |champ| champ.is_a?(Champs::SiretChamp) } .filter { |champ| champ.is_a?(Champs::SiretChamp) }
end.filter_map(&:etablissement) + dossiers.filter_map(&:etablissement) end.filter_map(&:etablissement) + dossiers.filter_map(&:etablissement)
@ -94,7 +94,7 @@ class ProcedureExportService
def champs_repetables_options def champs_repetables_options
champs_by_stable_id = dossiers champs_by_stable_id = dossiers
.flat_map { |dossier| (dossier.champs + dossier.champs_private).filter(&:repetition?) } .flat_map { |dossier| (dossier.champs_public + dossier.champs_private).filter(&:repetition?) }
.group_by(&:stable_id) .group_by(&:stable_id)
procedure procedure

View file

@ -225,7 +225,7 @@ prawn_document(page_size: "A4") do |pdf|
add_title(pdf, 'Formulaire') add_title(pdf, 'Formulaire')
add_single_line(pdf, @dossier.procedure.description + "\n", 9, :italic) if @dossier.procedure.description.present? add_single_line(pdf, @dossier.procedure.description + "\n", 9, :italic) if @dossier.procedure.description.present?
add_champs(pdf, @dossier.champs) add_champs(pdf, @dossier.champs_public)
add_page_numbering(pdf) add_page_numbering(pdf)
add_procedure(pdf, @dossier) add_procedure(pdf, @dossier)
end end

View file

@ -248,7 +248,7 @@ prawn_document(page_size: "A4") do |pdf|
end end
add_title(pdf, 'Formulaire') add_title(pdf, 'Formulaire')
add_champs(pdf, @dossier.champs) add_champs(pdf, @dossier.champs_public)
if @include_infos_administration && @dossier.champs_private.present? if @include_infos_administration && @dossier.champs_private.present?
add_title(pdf, "Annotations privées") add_title(pdf, "Annotations privées")

View file

@ -13,7 +13,7 @@
%h2 Formulaire %h2 Formulaire
- champs = @dossier.champs - champs = @dossier.champs_public
- if champs.any? || @dossier.procedure.routing_enabled? - if champs.any? || @dossier.procedure.routing_enabled?
= render partial: "shared/dossiers/champs", locals: { champs: champs, dossier: @dossier, demande_seen_at: nil, profile: 'instructeur' } = render partial: "shared/dossiers/champs", locals: { champs: champs, dossier: @dossier, demande_seen_at: nil, profile: 'instructeur' }

View file

@ -44,7 +44,7 @@
%form.form %form.form
= form_for @dossier, url: '', html: { class: 'form' } do |f| = form_for @dossier, url: '', html: { class: 'form' } do |f|
= f.fields_for :champs do |champ_form| = f.fields_for :champs_public do |champ_form|
= render EditableChamp::EditableChampComponent.new champ: champ_form.object, form: champ_form = render EditableChamp::EditableChampComponent.new champ: champ_form.object, form: champ_form
.editable-champ.editable-champ-text .editable-champ.editable-champ-text

View file

@ -33,7 +33,7 @@
= link_to t('views.shared.dossiers.demande.edit_identity'), identite_dossier_path(dossier), class: 'button' = link_to t('views.shared.dossiers.demande.edit_identity'), identite_dossier_path(dossier), class: 'button'
.tab-title= t('views.shared.dossiers.demande.form') .tab-title= t('views.shared.dossiers.demande.form')
- champs = dossier.champs.includes(:type_de_champ) - champs = dossier.champs_public.includes(:type_de_champ)
- if champs.any? || dossier.procedure.routing_enabled? - if champs.any? || dossier.procedure.routing_enabled?
.card .card
= render partial: "shared/dossiers/champs", locals: { champs: champs, dossier: dossier, demande_seen_at: demande_seen_at, profile: profile } = render partial: "shared/dossiers/champs", locals: { champs: champs, dossier: dossier, demande_seen_at: demande_seen_at, profile: profile }

View file

@ -43,7 +43,7 @@
dossier.procedure.groupe_instructeurs.actif.map { |gi| [gi.label, gi.id] }, dossier.procedure.groupe_instructeurs.actif.map { |gi| [gi.label, gi.id] },
{ include_blank: dossier.brouillon? } { include_blank: dossier.brouillon? }
- dossier.champs.each do |champ| - dossier.champs_public.each do |champ|
= fields_for champ.input_name, champ do |form| = fields_for champ.input_name, champ do |form|
= render EditableChamp::EditableChampComponent.new form: form, champ: champ = render EditableChamp::EditableChampComponent.new form: form, champ: champ

View file

@ -467,7 +467,7 @@ describe API::V2::GraphqlController do
} }
end, end,
avis: [], avis: [],
champs: dossier.champs.map do |champ| champs: dossier.champs_public.map do |champ|
{ {
id: champ.to_typed_id, id: champ.to_typed_id,
label: champ.libelle, label: champ.libelle,
@ -475,7 +475,7 @@ describe API::V2::GraphqlController do
} }
end end
}) })
expect(gql_data[:dossier][:champs][0][:id]).to eq(dossier.champs[0].type_de_champ.to_typed_id) expect(gql_data[:dossier][:champs][0][:id]).to eq(dossier.champs_public[0].type_de_champ.to_typed_id)
end end
end end
@ -606,8 +606,8 @@ describe API::V2::GraphqlController do
context "champs" do context "champs" do
let(:procedure) { create(:procedure, :published, :for_individual, administrateurs: [admin], types_de_champ_public: [{ type: :date }, { type: :datetime }]) } let(:procedure) { create(:procedure, :published, :for_individual, administrateurs: [admin], types_de_champ_public: [{ type: :date }, { type: :datetime }]) }
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) } let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
let(:champ_date) { dossier.champs.first } let(:champ_date) { dossier.champs_public.first }
let(:champ_datetime) { dossier.champs.second } let(:champ_datetime) { dossier.champs_public.second }
before do before do
champ_date.update(value: '2019-07-10') champ_date.update(value: '2019-07-10')

View file

@ -5,7 +5,7 @@ describe Champs::CarteController, type: :controller do
let(:params) do let(:params) do
{ {
dossier: { dossier: {
champs_attributes: { champs_public_attributes: {
'1' => { value: value } '1' => { value: value }
} }
}, },

View file

@ -4,13 +4,13 @@ describe Champs::DossierLinkController, type: :controller do
describe '#show' do describe '#show' do
let(:dossier) { create(:dossier, user: user, procedure: procedure) } let(:dossier) { create(:dossier, user: user, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
context 'when user is connected' do context 'when user is connected' do
render_views render_views
before { sign_in user } before { sign_in user }
let(:champs_attributes) do let(:champs_public_attributes) do
champ_attributes = [] champ_attributes = []
champ_attributes[champ.id] = { value: dossier_id } champ_attributes[champ.id] = { value: dossier_id }
champ_attributes champ_attributes
@ -19,7 +19,7 @@ describe Champs::DossierLinkController, type: :controller do
{ {
champ_id: champ.id, champ_id: champ.id,
dossier: { dossier: {
champs_attributes: champs_attributes champs_public_attributes: champs_public_attributes
} }
} }
end end

View file

@ -2,7 +2,7 @@ describe Champs::PieceJustificativeController, type: :controller do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:procedure) { create(:procedure, :published, :with_piece_justificative) } let(:procedure) { create(:procedure, :published, :with_piece_justificative) }
let(:dossier) { create(:dossier, user: user, procedure: procedure) } let(:dossier) { create(:dossier, user: user, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
describe '#update' do describe '#update' do
render_views render_views

View file

@ -4,9 +4,9 @@ describe Champs::RNAController, type: :controller do
describe '#show' do describe '#show' do
let(:dossier) { create(:dossier, user: user, procedure: procedure) } let(:dossier) { create(:dossier, user: user, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
let(:champs_attributes) do let(:champs_public_attributes) do
champ_attributes = [] champ_attributes = []
champ_attributes[champ.id] = { value: rna } champ_attributes[champ.id] = { value: rna }
champ_attributes champ_attributes
@ -15,7 +15,7 @@ describe Champs::RNAController, type: :controller do
{ {
champ_id: champ.id, champ_id: champ.id,
dossier: { dossier: {
champs_attributes: champs_attributes champs_public_attributes: champs_public_attributes
} }
} }
end end

View file

@ -4,9 +4,9 @@ describe Champs::SiretController, type: :controller do
describe '#show' do describe '#show' do
let(:dossier) { create(:dossier, user: user, procedure: procedure) } let(:dossier) { create(:dossier, user: user, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
let(:champs_attributes) do let(:champs_public_attributes) do
champ_attributes = [] champ_attributes = []
champ_attributes[champ.id] = { value: siret } champ_attributes[champ.id] = { value: siret }
champ_attributes champ_attributes
@ -15,7 +15,7 @@ describe Champs::SiretController, type: :controller do
{ {
champ_id: champ.id, champ_id: champ.id,
dossier: { dossier: {
champs_attributes: champs_attributes champs_public_attributes: champs_public_attributes
} }
} }
end end

View file

@ -368,7 +368,7 @@ describe Experts::AvisController, type: :controller do
context 'when the expert also shares the linked dossiers' do context 'when the expert also shares the linked dossiers' do
context 'and the expert can access the linked dossiers' do context 'and the expert can access the linked dossiers' do
let(:created_avis) { create(:avis, dossier: dossier, claimant: claimant, email: "toto3@gmail.com") } let(:created_avis) { create(:avis, dossier: dossier, claimant: claimant, email: "toto3@gmail.com") }
let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs.filter(&:dossier_link?).filter_map(&:value)) } let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs_public.filter(&:dossier_link?).filter_map(&:value)) }
let(:linked_avis) { create(:avis, dossier: linked_dossier, claimant: claimant) } let(:linked_avis) { create(:avis, dossier: linked_dossier, claimant: claimant) }
let(:invite_linked_dossiers) { true } let(:invite_linked_dossiers) { true }

View file

@ -591,7 +591,7 @@ describe Instructeurs::DossiersController, type: :controller do
context 'and the expert can access the linked dossiers' do context 'and the expert can access the linked dossiers' do
let(:saved_avis) { Avis.last(2).first } let(:saved_avis) { Avis.last(2).first }
let(:linked_avis) { Avis.last } let(:linked_avis) { Avis.last }
let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs.filter(&:dossier_link?).filter_map(&:value)) } let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs_public.filter(&:dossier_link?).filter_map(&:value)) }
let(:invite_linked_dossiers) do let(:invite_linked_dossiers) do
instructeur.assign_to_procedure(linked_dossier.procedure) instructeur.assign_to_procedure(linked_dossier.procedure)
true true
@ -763,7 +763,7 @@ describe Instructeurs::DossiersController, type: :controller do
dossier_id: dossier.id, dossier_id: dossier.id,
dossier: { dossier: {
champs_private_attributes: {}, champs_private_attributes: {},
champs_attributes: { champs_public_attributes: {
'0': { '0': {
id: champ_multiple_drop_down_list.id, id: champ_multiple_drop_down_list.id,
value: ['', 'un', 'deux'] value: ['', 'un', 'deux']

View file

@ -19,14 +19,14 @@ describe RechercheController, type: :controller do
before do before do
instructeur.assign_to_procedure(dossier.procedure) instructeur.assign_to_procedure(dossier.procedure)
dossier.champs[0].value = "Name of district A" dossier.champs_public[0].value = "Name of district A"
dossier.champs[1].value = "Name of city A" dossier.champs_public[1].value = "Name of city A"
dossier.champs_private[0].value = "Dossier A is complete" dossier.champs_private[0].value = "Dossier A is complete"
dossier.champs_private[1].value = "Dossier A is valid" dossier.champs_private[1].value = "Dossier A is valid"
dossier.save! dossier.save!
dossier_with_expert.champs[0].value = "Name of district B" dossier_with_expert.champs_public[0].value = "Name of district B"
dossier_with_expert.champs[1].value = "name of city B" dossier_with_expert.champs_public[1].value = "name of city B"
dossier_with_expert.champs_private[0].value = "Dossier B is incomplete" dossier_with_expert.champs_private[0].value = "Dossier B is incomplete"
dossier_with_expert.champs_private[1].value = "Dossier B is invalid" dossier_with_expert.champs_private[1].value = "Dossier B is invalid"
dossier_with_expert.save! dossier_with_expert.save!

View file

@ -342,7 +342,7 @@ describe Users::DossiersController, type: :controller do
before { sign_in(user) } before { sign_in(user) }
let!(:dossier) { create(:dossier, user: user) } let!(:dossier) { create(:dossier, user: user) }
let(:first_champ) { dossier.champs.first } let(:first_champ) { dossier.champs_public.first }
let(:value) { 'beautiful value' } let(:value) { 'beautiful value' }
let(:now) { Time.zone.parse('01/01/2100') } let(:now) { Time.zone.parse('01/01/2100') }
let(:payload) { { id: dossier.id } } let(:payload) { { id: dossier.id } }
@ -437,8 +437,8 @@ describe Users::DossiersController, type: :controller do
let(:procedure) { create(:procedure, :published, :with_type_de_champ, :with_piece_justificative) } let(:procedure) { create(:procedure, :published, :with_type_de_champ, :with_piece_justificative) }
let!(:dossier) { create(:dossier, user: user, procedure: procedure) } let!(:dossier) { create(:dossier, user: user, procedure: procedure) }
let(:first_champ) { dossier.champs.first } let(:first_champ) { dossier.champs_public.first }
let(:piece_justificative_champ) { dossier.champs.last } let(:piece_justificative_champ) { dossier.champs_public.last }
let(:value) { 'beautiful value' } let(:value) { 'beautiful value' }
let(:file) { fixture_file_upload('spec/fixtures/files/piece_justificative_0.pdf', 'application/pdf') } let(:file) { fixture_file_upload('spec/fixtures/files/piece_justificative_0.pdf', 'application/pdf') }
let(:now) { Time.zone.parse('01/01/2100') } let(:now) { Time.zone.parse('01/01/2100') }
@ -448,7 +448,7 @@ describe Users::DossiersController, type: :controller do
id: dossier.id, id: dossier.id,
dossier: { dossier: {
groupe_instructeur_id: dossier.groupe_instructeur_id, groupe_instructeur_id: dossier.groupe_instructeur_id,
champs_attributes: [ champs_public_attributes: [
{ {
id: first_champ.id, id: first_champ.id,
value: value value: value
@ -494,7 +494,7 @@ describe Users::DossiersController, type: :controller do
{ {
id: dossier.id, id: dossier.id,
dossier: { dossier: {
champs_attributes: {} champs_public_attributes: {}
} }
} }
end end
@ -532,8 +532,8 @@ describe Users::DossiersController, type: :controller do
let(:procedure) { create(:procedure, :published, :with_type_de_champ, :with_piece_justificative) } let(:procedure) { create(:procedure, :published, :with_type_de_champ, :with_piece_justificative) }
let!(:dossier) { create(:dossier, :en_construction, user: user, procedure: procedure) } let!(:dossier) { create(:dossier, :en_construction, user: user, procedure: procedure) }
let(:first_champ) { dossier.champs.first } let(:first_champ) { dossier.champs_public.first }
let(:piece_justificative_champ) { dossier.champs.last } let(:piece_justificative_champ) { dossier.champs_public.last }
let(:value) { 'beautiful value' } let(:value) { 'beautiful value' }
let(:file) { fixture_file_upload('spec/fixtures/files/piece_justificative_0.pdf', 'application/pdf') } let(:file) { fixture_file_upload('spec/fixtures/files/piece_justificative_0.pdf', 'application/pdf') }
let(:now) { Time.zone.parse('01/01/2100') } let(:now) { Time.zone.parse('01/01/2100') }
@ -543,7 +543,7 @@ describe Users::DossiersController, type: :controller do
id: dossier.id, id: dossier.id,
dossier: { dossier: {
groupe_instructeur_id: dossier.groupe_instructeur_id, groupe_instructeur_id: dossier.groupe_instructeur_id,
champs_attributes: [ champs_public_attributes: [
{ {
id: first_champ.id, id: first_champ.id,
value: value value: value
@ -608,7 +608,7 @@ describe Users::DossiersController, type: :controller do
{ {
id: dossier.id, id: dossier.id,
dossier: { dossier: {
champs_attributes: [ champs_public_attributes: [
{ {
id: piece_justificative_champ.id, id: piece_justificative_champ.id,
piece_justificative_file: file piece_justificative_file: file
@ -703,14 +703,14 @@ describe Users::DossiersController, type: :controller do
context 'when the champ is a phone number' do context 'when the champ is a phone number' do
let(:procedure) { create(:procedure, :published, :with_phone) } let(:procedure) { create(:procedure, :published, :with_phone) }
let!(:dossier) { create(:dossier, :en_construction, user: user, procedure: procedure) } let!(:dossier) { create(:dossier, :en_construction, user: user, procedure: procedure) }
let(:first_champ) { dossier.champs.first } let(:first_champ) { dossier.champs_public.first }
let(:now) { Time.zone.parse('01/01/2100') } let(:now) { Time.zone.parse('01/01/2100') }
let(:submit_payload) do let(:submit_payload) do
{ {
id: dossier.id, id: dossier.id,
dossier: { dossier: {
champs_attributes: [ champs_public_attributes: [
{ {
id: first_champ.id, id: first_champ.id,
value: value value: value

View file

@ -84,7 +84,7 @@ FactoryBot.define do
end end
# find champ with the type de champ # find champ with the type de champ
champ = dossier.reload.champs.find do |c| champ = dossier.reload.champs_public.find do |c|
c.type_de_champ == type_de_champ c.type_de_champ == type_de_champ
end end
@ -217,7 +217,7 @@ FactoryBot.define do
trait :with_populated_champs do trait :with_populated_champs do
after(:create) do |dossier, _evaluator| after(:create) do |dossier, _evaluator|
dossier.champs = dossier.types_de_champ.map do |type_de_champ| dossier.champs_public = dossier.types_de_champ.map do |type_de_champ|
build(:"champ_#{type_de_champ.type_champ}", dossier: dossier, type_de_champ: type_de_champ) build(:"champ_#{type_de_champ.type_champ}", dossier: dossier, type_de_champ: type_de_champ)
end end
dossier.save! dossier.save!

View file

@ -49,7 +49,7 @@ RSpec.describe Types::DossierType, type: :graphql do
end end
before do before do
dossier.champs.second.update(data: address) dossier.champs_public.second.update(data: address)
end end
it { expect(data[:dossier][:champs][0][:__typename]).to eq "CommuneChamp" } it { expect(data[:dossier][:champs][0][:__typename]).to eq "CommuneChamp" }
@ -67,7 +67,7 @@ RSpec.describe Types::DossierType, type: :graphql do
let(:checkbox_value) { 'on' } let(:checkbox_value) { 'on' }
before do before do
dossier.champs.first.update(value: checkbox_value) dossier.champs_public.first.update(value: checkbox_value)
end end
context 'when checkbox is true' do context 'when checkbox is true' do
@ -116,7 +116,7 @@ RSpec.describe Types::DossierType, type: :graphql do
let(:variables) { { number: dossier.id } } let(:variables) { { number: dossier.id } }
before do before do
dossier.champs.first.update(value: linked_dossier.id) dossier.champs_public.first.update(value: linked_dossier.id)
end end
context 'en_construction' do context 'en_construction' do
@ -145,7 +145,7 @@ RSpec.describe Types::DossierType, type: :graphql do
let(:variables) { { number: dossier.id } } let(:variables) { { number: dossier.id } }
let(:rows) do let(:rows) do
dossier.champs.first.rows.map do |champs| dossier.champs_public.first.rows.map do |champs|
{ champs: champs.map { { id: _1.to_typed_id } } } { champs: champs.map { { id: _1.to_typed_id } } }
end end
end end

View file

@ -2,7 +2,7 @@ describe '20220705164551_remove_unused_champs' do
let(:rake_task) { Rake::Task['after_party:remove_unused_champs'] } let(:rake_task) { Rake::Task['after_party:remove_unused_champs'] }
let(:procedure) { create(:procedure, :with_all_champs) } let(:procedure) { create(:procedure, :with_all_champs) }
let(:dossier) { create(:dossier, :with_populated_champs, procedure: procedure) } let(:dossier) { create(:dossier, :with_populated_champs, procedure: procedure) }
let(:champ_repetition) { dossier.champs.find(&:repetition?) } let(:champ_repetition) { dossier.champs_public.find(&:repetition?) }
subject(:run_task) do subject(:run_task) do
dossier dossier

View file

@ -153,11 +153,11 @@ describe AttestationTemplate, type: :model do
context 'and their value in the dossier are not nil' do context 'and their value in the dossier are not nil' do
before do before do
dossier.champs dossier.champs_public
.find { |champ| champ.libelle == 'libelleA' } .find { |champ| champ.libelle == 'libelleA' }
.update(value: 'libelle1') .update(value: 'libelle1')
dossier.champs dossier.champs_public
.find { |champ| champ.libelle == 'libelleB' } .find { |champ| champ.libelle == 'libelleB' }
.update(value: 'libelle2') .update(value: 'libelle2')
end end

View file

@ -10,7 +10,7 @@ describe Champ do
context 'when the parent dossier is discarded' do context 'when the parent dossier is discarded' do
let(:discarded_dossier) { create(:dossier, :discarded) } let(:discarded_dossier) { create(:dossier, :discarded) }
subject(:champ) { discarded_dossier.champs.first } subject(:champ) { discarded_dossier.champs_public.first }
it { expect(champ.reload.dossier).to eq discarded_dossier } it { expect(champ.reload.dossier).to eq discarded_dossier }
end end
@ -35,7 +35,7 @@ describe Champ do
let(:dossier) { create(:dossier) } let(:dossier) { create(:dossier) }
it 'partition public and private' do it 'partition public and private' do
expect(dossier.champs.count).to eq(1) expect(dossier.champs_public.count).to eq(1)
expect(dossier.champs_private.count).to eq(1) expect(dossier.champs_private.count).to eq(1)
end end
end end
@ -46,7 +46,7 @@ describe Champ do
context 'when a procedure has 2 revisions' do context 'when a procedure has 2 revisions' do
it 'does not duplicate the champs' do it 'does not duplicate the champs' do
expect(dossier.champs.count).to eq(1) expect(dossier.champs_public.count).to eq(1)
expect(procedure.revisions.count).to eq(2) expect(procedure.revisions.count).to eq(2)
end end
end end
@ -80,11 +80,11 @@ describe Champ do
end end
end end
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:public_champ) { dossier.champs.first } let(:public_champ) { dossier.champs_public.first }
let(:private_champ) { dossier.champs_private.first } let(:private_champ) { dossier.champs_private.first }
let(:champ_in_repetition) { dossier.champs.find(&:repetition?).champs.first } let(:champ_in_repetition) { dossier.champs_public.find(&:repetition?).champs.first }
let(:standalone_champ) { build(:champ, type_de_champ: build(:type_de_champ), dossier: build(:dossier)) } let(:standalone_champ) { build(:champ, type_de_champ: build(:type_de_champ), dossier: build(:dossier)) }
let(:public_sections) { dossier.champs.filter(&:header_section?) } let(:public_sections) { dossier.champs_public.filter(&:header_section?) }
let(:private_sections) { dossier.champs_private.filter(&:header_section?) } let(:private_sections) { dossier.champs_private.filter(&:header_section?) }
let(:sections_in_repetition) { champ_in_repetition.parent.champs.filter(&:header_section?) } let(:sections_in_repetition) { champ_in_repetition.parent.champs.filter(&:header_section?) }
@ -498,7 +498,7 @@ describe Champ do
let(:tdc_text) { procedure.active_revision.children_of(tdc_repetition).first } let(:tdc_text) { procedure.active_revision.children_of(tdc_repetition).first }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:champ) { dossier.champs.find(&:repetition?) } let(:champ) { dossier.champs_public.find(&:repetition?) }
let(:champ_text) { champ.champs.find { |c| c.type_champ == 'text' } } let(:champ_text) { champ.champs.find { |c| c.type_champ == 'text' } }
let(:champ_integer) { champ.champs.find { |c| c.type_champ == 'integer_number' } } let(:champ_integer) { champ.champs.find { |c| c.type_champ == 'integer_number' } }
let(:champ_text_attrs) { attributes_for(:champ_text, type_de_champ: tdc_text, row: 1) } let(:champ_text_attrs) { attributes_for(:champ_text, type_de_champ: tdc_text, row: 1) }
@ -517,7 +517,7 @@ describe Champ do
context 'when updating using nested attributes' do context 'when updating using nested attributes' do
subject do subject do
dossier.update!(champs_attributes: [ dossier.update!(champs_public_attributes: [
{ {
id: champ.id, id: champ.id,
champs_attributes: [champ_text_attrs] champs_attributes: [champ_text_attrs]
@ -530,7 +530,7 @@ describe Champ do
it 'associates nested champs to the parent dossier' do it 'associates nested champs to the parent dossier' do
subject subject
expect(dossier.champs.size).to eq(2) expect(dossier.champs_public.size).to eq(2)
expect(champ.rows.size).to eq(2) expect(champ.rows.size).to eq(2)
second_row = champ.rows.second second_row = champ.rows.second
expect(second_row.size).to eq(1) expect(second_row.size).to eq(1)
@ -590,7 +590,7 @@ describe Champ do
context "#input_name" do context "#input_name" do
let(:champ) { create(:champ_text) } let(:champ) { create(:champ_text) }
it { expect(champ.input_name).to eq "dossier[champs_attributes][#{champ.id}]" } it { expect(champ.input_name).to eq "dossier[champs_public_attributes][#{champ.id}]" }
context "when private" do context "when private" do
let(:champ) { create(:champ_text, private: true) } let(:champ) { create(:champ_text, private: true) }
@ -599,7 +599,7 @@ describe Champ do
context "when has parent" do context "when has parent" do
let(:champ) { create(:champ_text, parent: create(:champ_text)) } let(:champ) { create(:champ_text, parent: create(:champ_text)) }
it { expect(champ.input_name).to eq "dossier[champs_attributes][#{champ.parent_id}][champs_attributes][#{champ.id}]" } it { expect(champ.input_name).to eq "dossier[champs_public_attributes][#{champ.parent_id}][champs_attributes][#{champ.id}]" }
end end
context "when has private parent" do context "when has private parent" do

View file

@ -14,8 +14,8 @@ describe Champs::HeaderSectionChamp do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
context 'for root-level champs' do context 'for root-level champs' do
let(:first_header) { dossier.champs.first } let(:first_header) { dossier.champs_public.first }
let(:second_header) { dossier.champs.fourth } let(:second_header) { dossier.champs_public.fourth }
it 'returns the index of the section (starting from 1)' do it 'returns the index of the section (starting from 1)' do
expect(first_header.section_index).to eq 1 expect(first_header.section_index).to eq 1
@ -26,8 +26,8 @@ describe Champs::HeaderSectionChamp do
context 'for repetition champs' do context 'for repetition champs' do
let(:types_de_champ_public) { [{ type: :repetition, children: types_de_champ }] } let(:types_de_champ_public) { [{ type: :repetition, children: types_de_champ }] }
let(:first_header) { dossier.champs.first.champs.first } let(:first_header) { dossier.champs_public.first.champs.first }
let(:second_header) { dossier.champs.first.champs.fourth } let(:second_header) { dossier.champs_public.first.champs.fourth }
it 'returns the index of the section in the repetition (starting from 1)' do it 'returns the index of the section in the repetition (starting from 1)' do
expect(first_header.section_index).to eq 1 expect(first_header.section_index).to eq 1

View file

@ -124,11 +124,11 @@ describe TagsSubstitutionConcern, type: :model do
context 'and their value in the dossier are not nil' do context 'and their value in the dossier are not nil' do
before do before do
dossier.champs dossier.champs_public
.find { |champ| champ.libelle == 'libelleA' } .find { |champ| champ.libelle == 'libelleA' }
.update(value: 'libelle1') .update(value: 'libelle1')
dossier.champs dossier.champs_public
.find { |champ| champ.libelle == "libelle\xc2\xA0B".encode('utf-8') } .find { |champ| champ.libelle == "libelle\xc2\xA0B".encode('utf-8') }
.update(value: 'libelle2') .update(value: 'libelle2')
end end
@ -150,7 +150,7 @@ describe TagsSubstitutionConcern, type: :model do
context 'and their value in the dossier are not nil' do context 'and their value in the dossier are not nil' do
before do before do
dossier.champs dossier.champs_public
.find { |champ| champ.libelle == "Intitulé de l'‘«\"évènement\"»’" } .find { |champ| champ.libelle == "Intitulé de l'‘«\"évènement\"»’" }
.update(value: 'ceci est mon évènement') .update(value: 'ceci est mon évènement')
end end
@ -176,7 +176,7 @@ describe TagsSubstitutionConcern, type: :model do
end end
before do before do
repetition = dossier.champs repetition = dossier.champs_public
.find { |champ| champ.libelle == 'Répétition' } .find { |champ| champ.libelle == 'Répétition' }
repetition.add_row(dossier.revision) repetition.add_row(dossier.revision)
paul_champs, pierre_champs = repetition.rows paul_champs, pierre_champs = repetition.rows
@ -202,7 +202,7 @@ describe TagsSubstitutionConcern, type: :model do
context 'and the champ has a primary value' do context 'and the champ has a primary value' do
before do before do
dossier.champs.find_by(type_de_champ: type_de_champ).update(primary_value: 'primo') dossier.champs_public.find_by(type_de_champ: type_de_champ).update(primary_value: 'primo')
dossier.reload dossier.reload
end end
@ -210,7 +210,7 @@ describe TagsSubstitutionConcern, type: :model do
context 'and the champ has a secondary value' do context 'and the champ has a secondary value' do
before do before do
dossier.champs.find_by(type_de_champ: type_de_champ).update(secondary_value: 'secundo') dossier.champs_public.find_by(type_de_champ: type_de_champ).update(secondary_value: 'secundo')
dossier.reload dossier.reload
end end
@ -283,7 +283,7 @@ describe TagsSubstitutionConcern, type: :model do
context 'champs publics are valid tags' do context 'champs publics are valid tags' do
let(:types_de_champ_public) { [{ libelle: 'libelleA' }] } let(:types_de_champ_public) { [{ libelle: 'libelleA' }] }
before { dossier.champs.first.update(value: 'libelle1') } before { dossier.champs_public.first.update(value: 'libelle1') }
it { is_expected.to eq('libelle1') } it { is_expected.to eq('libelle1') }
end end
@ -302,11 +302,11 @@ describe TagsSubstitutionConcern, type: :model do
context 'and its value in the dossier are not nil' do context 'and its value in the dossier are not nil' do
before do before do
dossier.champs dossier.champs_public
.find { |champ| champ.type_champ == TypeDeChamp.type_champs.fetch(:date) } .find { |champ| champ.type_champ == TypeDeChamp.type_champs.fetch(:date) }
.update(value: '2017-04-15') .update(value: '2017-04-15')
dossier.champs dossier.champs_public
.find { |champ| champ.type_champ == TypeDeChamp.type_champs.fetch(:datetime) } .find { |champ| champ.type_champ == TypeDeChamp.type_champs.fetch(:datetime) }
.update(value: '2017-09-13 09:00') .update(value: '2017-09-13 09:00')
end end
@ -353,7 +353,7 @@ describe TagsSubstitutionConcern, type: :model do
end end
context "match breaking and non breaking spaces" do context "match breaking and non breaking spaces" do
before { dossier.champs.first.update(value: 'valeur') } before { dossier.champs_public.first.update(value: 'valeur') }
shared_examples "treat all kinds of space as equivalent" do shared_examples "treat all kinds of space as equivalent" do
context 'and the champ has a non breaking space' do context 'and the champ has a non breaking space' do
@ -400,7 +400,7 @@ describe TagsSubstitutionConcern, type: :model do
before do before do
draft_type_de_champ.update(libelle: 'mon nouveau libellé') draft_type_de_champ.update(libelle: 'mon nouveau libellé')
dossier.champs.first.update(value: 'valeur') dossier.champs_public.first.update(value: 'valeur')
procedure.update!(draft_revision: procedure.create_new_revision, published_revision: procedure.draft_revision) procedure.update!(draft_revision: procedure.create_new_revision, published_revision: procedure.draft_revision)
end end

View file

@ -7,8 +7,8 @@ describe DossierPreloader do
end end
let(:procedure) { create(:procedure, types_de_champ_public: types_de_champ) } let(:procedure) { create(:procedure, types_de_champ_public: types_de_champ) }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:repetition) { subject.champs.second } let(:repetition) { subject.champs_public.second }
let(:first_child) { subject.champs.second.champs.first } let(:first_child) { subject.champs_public.second.champs.first }
describe 'all' do describe 'all' do
subject { DossierPreloader.load_one(dossier, pj_template: true) } subject { DossierPreloader.load_one(dossier, pj_template: true) }
@ -21,13 +21,13 @@ describe DossierPreloader do
callback = lambda { |*_args| count += 1 } callback = lambda { |*_args| count += 1 }
ActiveSupport::Notifications.subscribed(callback, "sql.active_record") do ActiveSupport::Notifications.subscribed(callback, "sql.active_record") do
expect(subject.id).to eq(dossier.id) expect(subject.id).to eq(dossier.id)
expect(subject.champs.size).to eq(types_de_champ.size) expect(subject.champs_public.size).to eq(types_de_champ.size)
expect(subject.changed?).to be false expect(subject.changed?).to be false
expect(first_child.type).to eq('Champs::TextChamp') expect(first_child.type).to eq('Champs::TextChamp')
expect(repetition.id).not_to eq(first_child.id) expect(repetition.id).not_to eq(first_child.id)
expect(subject.champs.first.dossier).to eq(subject) expect(subject.champs_public.first.dossier).to eq(subject)
expect(subject.champs.first.type_de_champ.piece_justificative_template.attached?).to eq(false) expect(subject.champs_public.first.type_de_champ.piece_justificative_template.attached?).to eq(false)
expect(first_child.parent).to eq(repetition) expect(first_child.parent).to eq(repetition)
end end

View file

@ -158,17 +158,17 @@ describe Dossier do
let(:yes_no_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:yes_no) } } let(:yes_no_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:yes_no) } }
let(:text_type_de_champ) { procedure.types_de_champ.find(&:mandatory?) } let(:text_type_de_champ) { procedure.types_de_champ.find(&:mandatory?) }
let(:text_champ) { dossier.champs.find(&:mandatory?) } let(:text_champ) { dossier.champs_public.find(&:mandatory?) }
let(:rebased_text_champ) { dossier.champs.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:text) } } let(:rebased_text_champ) { dossier.champs_public.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:text) } }
let(:datetime_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:datetime) } } let(:datetime_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:datetime) } }
let(:datetime_champ) { dossier.champs.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:datetime) } } let(:datetime_champ) { dossier.champs_public.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:datetime) } }
let(:rebased_datetime_champ) { dossier.champs.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:date) } } let(:rebased_datetime_champ) { dossier.champs_public.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:date) } }
let(:repetition_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } } let(:repetition_type_de_champ) { procedure.types_de_champ.find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } }
let(:repetition_text_type_de_champ) { procedure.active_revision.children_of(repetition_type_de_champ).find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:text) } } let(:repetition_text_type_de_champ) { procedure.active_revision.children_of(repetition_type_de_champ).find { |tdc| tdc.type_champ == TypeDeChamp.type_champs.fetch(:text) } }
let(:repetition_champ) { dossier.champs.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } } let(:repetition_champ) { dossier.champs_public.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } }
let(:rebased_repetition_champ) { dossier.champs.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } } let(:rebased_repetition_champ) { dossier.champs_public.find { |c| c.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } }
before do before do
procedure.publish! procedure.publish!
@ -200,7 +200,7 @@ describe Dossier do
libelle = text_type_de_champ.libelle libelle = text_type_de_champ.libelle
expect(dossier.revision).to eq(procedure.published_revision) expect(dossier.revision).to eq(procedure.published_revision)
expect(dossier.champs.size).to eq(4) expect(dossier.champs_public.size).to eq(4)
expect(repetition_champ.rows.size).to eq(2) expect(repetition_champ.rows.size).to eq(2)
expect(repetition_champ.rows[0].size).to eq(1) expect(repetition_champ.rows[0].size).to eq(1)
expect(repetition_champ.rows[1].size).to eq(1) expect(repetition_champ.rows[1].size).to eq(1)
@ -212,7 +212,7 @@ describe Dossier do
expect(procedure.revisions.size).to eq(3) expect(procedure.revisions.size).to eq(3)
expect(dossier.revision).to eq(procedure.published_revision) expect(dossier.revision).to eq(procedure.published_revision)
expect(dossier.champs.size).to eq(4) expect(dossier.champs_public.size).to eq(4)
expect(rebased_text_champ.value).to eq(text_champ.value) expect(rebased_text_champ.value).to eq(text_champ.value)
expect(rebased_text_champ.type_de_champ_id).not_to eq(text_champ.type_de_champ_id) expect(rebased_text_champ.type_de_champ_id).not_to eq(text_champ.type_de_champ_id)
expect(rebased_datetime_champ.type_champ).to eq(TypeDeChamp.type_champs.fetch(:date)) expect(rebased_datetime_champ.type_champ).to eq(TypeDeChamp.type_champs.fetch(:date))
@ -244,14 +244,14 @@ describe Dossier do
context 'when a dropdown option is changed' do context 'when a dropdown option is changed' do
before do before do
dossier.champs.first.update(value: 'v1') dossier.champs_public.first.update(value: 'v1')
stable_id = procedure.draft_revision.types_de_champ.find_by(libelle: 'l1') stable_id = procedure.draft_revision.types_de_champ.find_by(libelle: 'l1')
tdc_to_update = procedure.draft_revision.find_and_ensure_exclusive_use(stable_id) tdc_to_update = procedure.draft_revision.find_and_ensure_exclusive_use(stable_id)
tdc_to_update.update(drop_down_list_value: 'option updated') tdc_to_update.update(drop_down_list_value: 'option updated')
end end
it { expect { subject }.to change { dossier.champs.first.value }.from('v1').to(nil) } it { expect { subject }.to change { dossier.champs_public.first.value }.from('v1').to(nil) }
end end
end end
@ -266,14 +266,14 @@ describe Dossier do
context 'and the cadastre are removed' do context 'and the cadastre are removed' do
before do before do
dossier.champs.first.update(value: 'v1', geo_areas: [create(:geo_area, :cadastre)]) dossier.champs_public.first.update(value: 'v1', geo_areas: [create(:geo_area, :cadastre)])
stable_id = procedure.draft_revision.types_de_champ.find_by(libelle: 'l1') stable_id = procedure.draft_revision.types_de_champ.find_by(libelle: 'l1')
tdc_to_update = procedure.draft_revision.find_and_ensure_exclusive_use(stable_id) tdc_to_update = procedure.draft_revision.find_and_ensure_exclusive_use(stable_id)
tdc_to_update.update(cadastres: false) tdc_to_update.update(cadastres: false)
end end
it { expect { subject }.to change { dossier.champs.first.cadastres.count }.from(1).to(0) } it { expect { subject }.to change { dossier.champs_public.first.cadastres.count }.from(1).to(0) }
end end
end end
@ -287,7 +287,7 @@ describe Dossier do
end end
let!(:dossier) { create(:dossier, procedure: procedure) } let!(:dossier) { create(:dossier, procedure: procedure) }
def champ_libelles = dossier.champs.map(&:libelle) def champ_libelles = dossier.champs_public.map(&:libelle)
context 'when a tdc is added in the middle' do context 'when a tdc is added in the middle' do
before do before do
@ -328,7 +328,7 @@ describe Dossier do
end end
context 'when the first tdc type is updated' do context 'when the first tdc type is updated' do
def first_champ = dossier.champs.first def first_champ = dossier.champs_public.first
before do before do
first_champ.update(value: 'v1', external_id: '123', geo_areas: [create(:geo_area)]) first_champ.update(value: 'v1', external_id: '123', geo_areas: [create(:geo_area)])
@ -349,7 +349,7 @@ describe Dossier do
tdc_to_update.update(type_champ: :integer_number) tdc_to_update.update(type_champ: :integer_number)
end end
it { expect { subject }.to change { dossier.champs.map(&:type_champ) }.from(['text', 'text']).to(['integer_number', 'text']) } it { expect { subject }.to change { dossier.champs_public.map(&:type_champ) }.from(['text', 'text']).to(['integer_number', 'text']) }
it { expect { subject }.to change { first_champ.class }.from(Champs::TextChamp).to(Champs::IntegerNumberChamp) } it { expect { subject }.to change { first_champ.class }.from(Champs::TextChamp).to(Champs::IntegerNumberChamp) }
it { expect { subject }.to change { first_champ.value }.from('v1').to(nil) } it { expect { subject }.to change { first_champ.value }.from('v1').to(nil) }
it { expect { subject }.to change { first_champ.external_id }.from('123').to(nil) } it { expect { subject }.to change { first_champ.external_id }.from('123').to(nil) }
@ -373,7 +373,7 @@ describe Dossier do
let!(:dossier) { create(:dossier, procedure: procedure) } let!(:dossier) { create(:dossier, procedure: procedure) }
let(:repetition_stable_id) { procedure.draft_revision.types_de_champ.find(&:repetition?) } let(:repetition_stable_id) { procedure.draft_revision.types_de_champ.find(&:repetition?) }
def child_libelles = dossier.champs[0].champs.map(&:libelle) def child_libelles = dossier.champs_public.first.champs.map(&:libelle)
context 'when a child tdc is added in the middle' do context 'when a child tdc is added in the middle' do
before do before do
@ -410,7 +410,7 @@ describe Dossier do
tdc_to_update.update(type_champ: :integer_number) tdc_to_update.update(type_champ: :integer_number)
end end
it { expect { subject }.to change { dossier.champs[0].champs.map(&:type_champ) }.from(['text', 'text']).to(['integer_number', 'text']) } it { expect { subject }.to change { dossier.champs_public.first.champs.map(&:type_champ) }.from(['text', 'text']).to(['integer_number', 'text']) }
end end
context 'when the parents type is changed' do context 'when the parents type is changed' do
@ -420,7 +420,7 @@ describe Dossier do
parent.update(type_champ: :integer_number) parent.update(type_champ: :integer_number)
end end
it { expect { subject }.to change { dossier.champs[0].champs.count }.from(2).to(0) } it { expect { subject }.to change { dossier.champs_public.first.champs.count }.from(2).to(0) }
it { expect { subject }.to change { Champ.count }.from(3).to(1) } it { expect { subject }.to change { Champ.count }.from(3).to(1) }
end end
end end

View file

@ -35,7 +35,7 @@ describe Dossier do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
it do it do
expect(Dossier.with_champs.find(dossier.id).champs.map(&:libelle)).to match(['l1', 'l2', 'l3']) expect(Dossier.with_champs.find(dossier.id).champs_public.map(&:libelle)).to match(['l1', 'l2', 'l3'])
end end
end end
@ -264,7 +264,7 @@ describe Dossier do
let(:dossier) { create(:dossier, etablissement: etablissement, user: user, procedure: procedure) } let(:dossier) { create(:dossier, etablissement: etablissement, user: user, procedure: procedure) }
let(:france_connect_information) { build(:france_connect_information, given_name: 'Chris', family_name: 'Harrisson') } let(:france_connect_information) { build(:france_connect_information, given_name: 'Chris', family_name: 'Harrisson') }
let(:user) { build(:user, france_connect_information: france_connect_information) } let(:user) { build(:user, france_connect_information: france_connect_information) }
let(:champ_public) { dossier.champs.first } let(:champ_public) { dossier.champs_public.first }
let(:champ_private) { dossier.champs_private.first } let(:champ_private) { dossier.champs_private.first }
before do before do
@ -280,7 +280,7 @@ describe Dossier do
context 'with an update' do context 'with an update' do
before do before do
dossier.update( dossier.update(
champs_attributes: [{ id: champ_public.id, value: 'nouvelle valeur publique' }], champs_public_attributes: [{ id: champ_public.id, value: 'nouvelle valeur publique' }],
champs_private_attributes: [{ id: champ_private.id, value: 'nouvelle valeur privee' }] champs_private_attributes: [{ id: champ_private.id, value: 'nouvelle valeur privee' }]
) )
end end
@ -295,7 +295,7 @@ describe Dossier do
let(:dossier) { create(:dossier, procedure: procedure, user: user) } let(:dossier) { create(:dossier, procedure: procedure, user: user) }
it 'builds public and private champs' do it 'builds public and private champs' do
expect(dossier.champs.count).to eq(1) expect(dossier.champs_public.count).to eq(1)
expect(dossier.champs_private.count).to eq(1) expect(dossier.champs_private.count).to eq(1)
end end
end end
@ -401,7 +401,7 @@ describe Dossier do
let!(:tdc_2) { create(:type_de_champ, libelle: 'l2', position: 2, procedure: procedure) } let!(:tdc_2) { create(:type_de_champ, libelle: 'l2', position: 2, procedure: procedure) }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
it { expect(dossier.champs.pluck(:libelle)).to match(['l1', 'l2', 'l3']) } it { expect(dossier.champs_public.pluck(:libelle)).to match(['l1', 'l2', 'l3']) }
end end
describe '#champs_private' do describe '#champs_private' do
@ -748,7 +748,7 @@ describe Dossier do
let(:tdc_8) { { libelle: "unspecified annotation privée-in-body" } } let(:tdc_8) { { libelle: "unspecified annotation privée-in-body" } }
before do before do
(dossier.champs + dossier.champs_private) (dossier.champs_public + dossier.champs_private)
.filter { |c| c.libelle.match?(/^specified/) } .filter { |c| c.libelle.match?(/^specified/) }
.each { |c| c.update_attribute(:value, "specified") } .each { |c| c.update_attribute(:value, "specified") }
end end
@ -810,7 +810,7 @@ describe Dossier do
it { is_expected.not_to eq(modif_date) } it { is_expected.not_to eq(modif_date) }
context 'when a champ is modified' do context 'when a champ is modified' do
before { dossier.champs.first.update_attribute('value', 'yop') } before { dossier.champs_public.first.update_attribute('value', 'yop') }
it { is_expected.to eq(modif_date) } it { is_expected.to eq(modif_date) }
end end
@ -1187,7 +1187,7 @@ describe Dossier do
context "with mandatory champs" do context "with mandatory champs" do
let(:type_de_champ) { { mandatory: true } } let(:type_de_champ) { { mandatory: true } }
let(:champ_with_error) { dossier.champs.first } let(:champ_with_error) { dossier.champs_public.first }
before do before do
champ_with_error.value = nil champ_with_error.value = nil
@ -1211,7 +1211,7 @@ describe Dossier do
context "with mandatory SIRET champ" do context "with mandatory SIRET champ" do
let(:type_de_champ) { { type: :siret, mandatory: true } } let(:type_de_champ) { { type: :siret, mandatory: true } }
let(:champ_siret) { dossier.champs.first } let(:champ_siret) { dossier.champs_public.first }
before do before do
champ_siret.value = '44011762001530' champ_siret.value = '44011762001530'
@ -1240,38 +1240,38 @@ describe Dossier do
let(:type_de_champ_repetition) { revision.types_de_champ.first } let(:type_de_champ_repetition) { revision.types_de_champ.first }
context "when no champs" do context "when no champs" do
let(:champ_with_error) { dossier.champs.first } let(:champ_with_error) { dossier.champs_public.first }
it 'should have errors' do it 'should have errors' do
dossier.champs.first.champs.destroy_all dossier.champs_public.first.champs.destroy_all
expect(dossier.champs.first.rows).to be_empty expect(dossier.champs_public.first.rows).to be_empty
expect(errors).not_to be_empty expect(errors).not_to be_empty
expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.") expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.")
end end
end end
context "when mandatory champ inside repetition" do context "when mandatory champ inside repetition" do
let(:champ_with_error) { dossier.champs.first.champs.first } let(:champ_with_error) { dossier.champs_public.first.champs.first }
it 'should have errors' do it 'should have errors' do
expect(dossier.champs.first.rows).not_to be_empty expect(dossier.champs_public.first.rows).not_to be_empty
expect(errors).not_to be_empty expect(errors).not_to be_empty
expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.") expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.")
end end
context "conditionaly visible" do context "conditionaly visible" do
let(:champ_with_error) { dossier.champs.second.champs.first } let(:champ_with_error) { dossier.champs_public.second.champs.first }
let(:types_de_champ) { [{ type: :yes_no, stable_id: 99 }, type_de_champ] } let(:types_de_champ) { [{ type: :yes_no, stable_id: 99 }, type_de_champ] }
let(:type_de_champ) { { type: :repetition, mandatory: true, children: [{ mandatory: true }], condition: ds_eq(champ_value(99), constant(true)) } } let(:type_de_champ) { { type: :repetition, mandatory: true, children: [{ mandatory: true }], condition: ds_eq(champ_value(99), constant(true)) } }
it 'should not have errors' do it 'should not have errors' do
expect(dossier.champs.second.rows).not_to be_empty expect(dossier.champs_public.second.rows).not_to be_empty
expect(errors).to be_empty expect(errors).to be_empty
end end
it 'should have errors' do it 'should have errors' do
dossier.champs.first.update(value: 'true') dossier.champs_public.first.update(value: 'true')
expect(dossier.champs.second.rows).not_to be_empty expect(dossier.champs_public.second.rows).not_to be_empty
expect(errors).not_to be_empty expect(errors).not_to be_empty
expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.") expect(errors.first).to eq("Le champ #{champ_with_error.libelle} doit être rempli.")
end end
@ -1427,7 +1427,7 @@ describe Dossier do
let(:champ_carte) { create(:champ_carte, type_de_champ: type_de_champ_carte, geo_areas: [geo_area]) } let(:champ_carte) { create(:champ_carte, type_de_champ: type_de_champ_carte, geo_areas: [geo_area]) }
before do before do
dossier.champs << champ_carte dossier.champs_public << champ_carte
end end
it 'should have all champs carto' do it 'should have all champs carto' do
@ -1491,12 +1491,12 @@ describe Dossier do
let(:explication_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:explication) } } let(:explication_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:explication) } }
let(:commune_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:communes) } } let(:commune_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:communes) } }
let(:repetition_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } } let(:repetition_type_de_champ) { procedure.types_de_champ.find { |type_de_champ| type_de_champ.type_champ == TypeDeChamp.type_champs.fetch(:repetition) } }
let(:repetition_champ) { dossier.champs.find(&:repetition?) } let(:repetition_champ) { dossier.champs_public.find(&:repetition?) }
let(:repetition_second_revision_champ) { dossier_second_revision.champs.find(&:repetition?) } let(:repetition_second_revision_champ) { dossier_second_revision.champs_public.find(&:repetition?) }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:dossier_second_revision) { create(:dossier, procedure: procedure) } let(:dossier_second_revision) { create(:dossier, procedure: procedure) }
let(:dossier_champs_for_export) { Dossier.champs_for_export(dossier.champs, procedure.types_de_champ_for_procedure_presentation.not_repetition) } let(:dossier_champs_for_export) { Dossier.champs_for_export(dossier.champs_public, procedure.types_de_champ_for_procedure_presentation.not_repetition) }
let(:dossier_second_revision_champs_for_export) { Dossier.champs_for_export(dossier_second_revision.champs, procedure.types_de_champ_for_procedure_presentation.not_repetition) } let(:dossier_second_revision_champs_for_export) { Dossier.champs_for_export(dossier_second_revision.champs_public, procedure.types_de_champ_for_procedure_presentation.not_repetition) }
let(:repetition_second_revision_champs_for_export) { Dossier.champs_for_export(repetition_second_revision_champ.champs, procedure.types_de_champ_for_procedure_presentation.repetition) } let(:repetition_second_revision_champs_for_export) { Dossier.champs_for_export(repetition_second_revision_champ.champs, procedure.types_de_champ_for_procedure_presentation.repetition) }
context "when procedure published" do context "when procedure published" do
@ -1535,7 +1535,7 @@ describe Dossier do
repetition = proc_test.types_de_champ_for_procedure_presentation.repetition.first repetition = proc_test.types_de_champ_for_procedure_presentation.repetition.first
type_champs = proc_test.types_de_champ_for_procedure_presentation(repetition).to_a type_champs = proc_test.types_de_champ_for_procedure_presentation(repetition).to_a
expect(type_champs.size).to eq(1) expect(type_champs.size).to eq(1)
expect(Dossier.champs_for_export(dossier.champs, type_champs).size).to eq(3) expect(Dossier.champs_for_export(dossier.champs_public, type_champs).size).to eq(3)
end end
end end
end end
@ -1556,14 +1556,14 @@ describe Dossier do
let(:dossier) { create(:dossier, procedure:) } let(:dossier) { create(:dossier, procedure:) }
let(:yes_no_tdc) { procedure.types_de_champ.first } let(:yes_no_tdc) { procedure.types_de_champ.first }
let(:text_tdc) { procedure.types_de_champ.second } let(:text_tdc) { procedure.types_de_champ.second }
let(:tdcs) { dossier.champs.map(&:type_de_champ) } let(:tdcs) { dossier.champs_public.map(&:type_de_champ) }
subject { Dossier.champs_for_export(dossier.champs, tdcs) } subject { Dossier.champs_for_export(dossier.champs_public, tdcs) }
before do before do
text_tdc.update(condition: ds_eq(champ_value(yes_no_tdc.stable_id), constant(true))) text_tdc.update(condition: ds_eq(champ_value(yes_no_tdc.stable_id), constant(true)))
yes_no, text = dossier.champs yes_no, text = dossier.champs_public
yes_no.update(value: yes_no_value) yes_no.update(value: yes_no_value)
text.update(value: 'text') text.update(value: 'text')
end end
@ -1582,7 +1582,7 @@ describe Dossier do
context 'with another revision' do context 'with another revision' do
let(:tdc_from_another_revision) { create(:type_de_champ_communes, libelle: 'commune', condition: ds_eq(constant(true), constant(true))) } let(:tdc_from_another_revision) { create(:type_de_champ_communes, libelle: 'commune', condition: ds_eq(constant(true), constant(true))) }
let(:tdcs) { dossier.champs.map(&:type_de_champ) << tdc_from_another_revision } let(:tdcs) { dossier.champs_public.map(&:type_de_champ) << tdc_from_another_revision }
let(:yes_no_value) { 'true' } let(:yes_no_value) { 'true' }
let(:expected) do let(:expected) do
@ -1609,8 +1609,8 @@ describe Dossier do
before do before do
champ_titre_identite_vide.piece_justificative_file.purge champ_titre_identite_vide.piece_justificative_file.purge
dossier.champs << champ_titre_identite dossier.champs_public << champ_titre_identite
dossier.champs << champ_titre_identite_vide dossier.champs_public << champ_titre_identite_vide
end end
it "clean up titres identite on accepter" do it "clean up titres identite on accepter" do

View file

@ -195,7 +195,7 @@ describe Instructeur, type: :model do
end end
context 'when there is a modification on public champs' do context 'when there is a modification on public champs' do
before { dossier.champs.first.update_attribute('value', 'toto') } before { dossier.champs_public.first.update_attribute('value', 'toto') }
it { is_expected.to match({ demande: true, annotations_privees: false, avis: false, messagerie: false }) } it { is_expected.to match({ demande: true, annotations_privees: false, avis: false, messagerie: false }) }
end end
@ -301,7 +301,7 @@ describe Instructeur, type: :model do
end end
context 'when there is a modification on public champs on a followed dossier from another procedure' do context 'when there is a modification on public champs on a followed dossier from another procedure' do
before { dossier_on_procedure_2.champs.first.update_attribute('value', 'toto') } before { dossier_on_procedure_2.champs_public.first.update_attribute('value', 'toto') }
it { is_expected.to match([]) } it { is_expected.to match([]) }
end end

View file

@ -231,8 +231,8 @@ describe ProcedurePresentation do
let(:tartine_dossier) { create(:dossier, procedure: procedure) } let(:tartine_dossier) { create(:dossier, procedure: procedure) }
before do before do
beurre_dossier.champs.first.update(value: 'beurre') beurre_dossier.champs_public.first.update(value: 'beurre')
tartine_dossier.champs.first.update(value: 'tartine') tartine_dossier.champs_public.first.update(value: 'tartine')
end end
context 'asc' do context 'asc' do
@ -261,8 +261,8 @@ describe ProcedurePresentation do
nothing_dossier nothing_dossier
procedure.draft_revision.add_type_de_champ(tdc) procedure.draft_revision.add_type_de_champ(tdc)
procedure.publish_revision! procedure.publish_revision!
beurre_dossier.champs.last.update(value: 'beurre') beurre_dossier.champs_public.last.update(value: 'beurre')
tartine_dossier.champs.last.update(value: 'tartine') tartine_dossier.champs_public.last.update(value: 'tartine')
end end
context 'asc' do context 'asc' do
@ -515,8 +515,8 @@ describe ProcedurePresentation do
context 'with single value' do context 'with single value' do
before do before do
kept_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'keep me') kept_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'keep me')
discarded_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'discard me') discarded_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'discard me')
end end
it { is_expected.to contain_exactly(kept_dossier.id) } it { is_expected.to contain_exactly(kept_dossier.id) }
@ -533,9 +533,9 @@ describe ProcedurePresentation do
let(:other_kept_dossier) { create(:dossier, procedure: procedure) } let(:other_kept_dossier) { create(:dossier, procedure: procedure) }
before do before do
kept_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'keep me') kept_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'keep me')
discarded_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'discard me') discarded_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'discard me')
other_kept_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'and me too') other_kept_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'and me too')
end end
it 'returns every dossier that matches any of the search criteria for a given column' do it 'returns every dossier that matches any of the search criteria for a given column' do
@ -548,8 +548,8 @@ describe ProcedurePresentation do
let(:procedure) { create(:procedure, :with_yes_no) } let(:procedure) { create(:procedure, :with_yes_no) }
before do before do
kept_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'true') kept_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'true')
discarded_dossier.champs.find_by(type_de_champ: type_de_champ).update(value: 'false') discarded_dossier.champs_public.find_by(type_de_champ: type_de_champ).update(value: 'false')
end end
it { is_expected.to contain_exactly(kept_dossier.id) } it { is_expected.to contain_exactly(kept_dossier.id) }

View file

@ -1169,11 +1169,11 @@ describe Procedure do
it { expect(dossier.procedure).to eq(procedure) } it { expect(dossier.procedure).to eq(procedure) }
it { expect(dossier.champs.size).to eq(2) } it { expect(dossier.champs_public.size).to eq(2) }
it { expect(dossier.champs[0].type).to eq("Champs::TextChamp") } it { expect(dossier.champs_public.first.type).to eq("Champs::TextChamp") }
it { expect(dossier.champs_private.size).to eq(1) } it { expect(dossier.champs_private.size).to eq(1) }
it { expect(dossier.champs_private[0].type).to eq("Champs::TextareaChamp") } it { expect(dossier.champs_private.first.type).to eq("Champs::TextareaChamp") }
it { expect(Champ.count).to eq(0) } it { expect(Champ.count).to eq(0) }
end end

View file

@ -8,7 +8,7 @@ describe ChampPolicy do
subject { Pundit.policy_scope(account, Champ) } subject { Pundit.policy_scope(account, Champ) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
let(:champ_private) { dossier.champs_private.first } let(:champ_private) { dossier.champs_private.first }
shared_examples_for 'they can access a public champ' do shared_examples_for 'they can access a public champ' do

View file

@ -21,11 +21,11 @@ describe DossierSerializer do
let(:dossier) { create(:dossier, :en_construction, procedure: create(:procedure, :published, :with_type_de_champ)) } let(:dossier) { create(:dossier, :en_construction, procedure: create(:procedure, :published, :with_type_de_champ)) }
before do before do
dossier.champs << build(:champ_carte, dossier: dossier) dossier.champs_public << build(:champ_carte, dossier: dossier)
dossier.champs << build(:champ_siret, dossier: dossier) dossier.champs_public << build(:champ_siret, dossier: dossier)
dossier.champs << build(:champ_integer_number, dossier: dossier) dossier.champs_public << build(:champ_integer_number, dossier: dossier)
dossier.champs << build(:champ_decimal_number, dossier: dossier) dossier.champs_public << build(:champ_decimal_number, dossier: dossier)
dossier.champs << build(:champ_linked_drop_down_list, dossier: dossier) dossier.champs_public << build(:champ_linked_drop_down_list, dossier: dossier)
end end
it { it {
@ -58,7 +58,7 @@ describe DossierSerializer do
end end
let(:procedure) { create(:procedure, :published, types_de_champ_public: [cloned_type_de_champ]) } let(:procedure) { create(:procedure, :published, types_de_champ_public: [cloned_type_de_champ]) }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:champ_pj) { dossier.champs.last } let(:champ_pj) { dossier.champs_public.last }
before do before do
champ_pj.piece_justificative_file.attach(io: StringIO.new("toto"), filename: "toto.txt", content_type: "text/plain") champ_pj.piece_justificative_file.attach(io: StringIO.new("toto"), filename: "toto.txt", content_type: "text/plain")

View file

@ -19,9 +19,9 @@ describe DossierProjectionService do
end end
before do before do
dossier_1.champs.first.update(value: 'champ_1') dossier_1.champs_public.first.update(value: 'champ_1')
dossier_2.champs.first.update(value: 'champ_2') dossier_2.champs_public.first.update(value: 'champ_2')
dossier_3.champs.first.destroy dossier_3.champs_public.first.destroy
end end
let(:result) { subject } let(:result) { subject }
@ -155,7 +155,7 @@ describe DossierProjectionService do
let(:dossier) { create(:dossier) } let(:dossier) { create(:dossier) }
let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s } let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s }
before { dossier.champs.first.update(value: 'kale') } before { dossier.champs_public.first.update(value: 'kale') }
it { is_expected.to eq('kale') } it { is_expected.to eq('kale') }
end end
@ -176,7 +176,7 @@ describe DossierProjectionService do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s } let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s }
before { dossier.champs.first.update(value: 'true') } before { dossier.champs_public.first.update(value: 'true') }
it { is_expected.to eq('Oui') } it { is_expected.to eq('Oui') }
end end
@ -187,7 +187,7 @@ describe DossierProjectionService do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s } let(:column) { dossier.procedure.types_de_champ.first.stable_id.to_s }
before { dossier.champs.first.update(data: { 'label' => '18 a la bonne rue', 'departement' => 'd' }) } before { dossier.champs_public.first.update(data: { 'label' => '18 a la bonne rue', 'departement' => 'd' }) }
it { is_expected.to eq('18 a la bonne rue') } it { is_expected.to eq('18 a la bonne rue') }
end end
@ -204,7 +204,7 @@ describe DossierProjectionService do
context 'when external id is set' do context 'when external id is set' do
before do before do
dossier.champs.first.update(external_id: 'GB') dossier.champs_public.first.update(external_id: 'GB')
end end
it { is_expected.to eq('Royaume-Uni') } it { is_expected.to eq('Royaume-Uni') }
@ -212,7 +212,7 @@ describe DossierProjectionService do
context 'when no external id is set' do context 'when no external id is set' do
before do before do
dossier.champs.first.update(value: "qu'il est beau mon pays") dossier.champs_public.first.update(value: "qu'il est beau mon pays")
end end
it { is_expected.to eq("qu'il est beau mon pays") } it { is_expected.to eq("qu'il est beau mon pays") }

View file

@ -13,7 +13,7 @@ describe PiecesJustificativesService do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:witness) { create(:dossier, procedure: procedure) } let(:witness) { create(:dossier, procedure: procedure) }
let(:pj_champ) { -> (d) { d.champs.find { |c| c.type == 'Champs::PieceJustificativeChamp' } } } let(:pj_champ) { -> (d) { d.champs_public.find { |c| c.type == 'Champs::PieceJustificativeChamp' } } }
before do before do
attach_file_to_champ(pj_champ.call(dossier)) attach_file_to_champ(pj_champ.call(dossier))
@ -26,7 +26,7 @@ describe PiecesJustificativesService do
context 'with a pj not safe on a champ' do context 'with a pj not safe on a champ' do
let(:procedure) { create(:procedure, :with_piece_justificative) } let(:procedure) { create(:procedure, :with_piece_justificative) }
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:pj_champ) { -> (d) { d.champs.find { |c| c.type == 'Champs::PieceJustificativeChamp' } } } let(:pj_champ) { -> (d) { d.champs_public.find { |c| c.type == 'Champs::PieceJustificativeChamp' } } }
before { attach_file_to_champ(pj_champ.call(dossier), safe = false) } before { attach_file_to_champ(pj_champ.call(dossier), safe = false) }
@ -60,7 +60,7 @@ describe PiecesJustificativesService do
let(:dossier) { create(:dossier, procedure: procedure) } let(:dossier) { create(:dossier, procedure: procedure) }
let(:witness) { create(:dossier, procedure: procedure) } let(:witness) { create(:dossier, procedure: procedure) }
let(:champ_identite) { dossier.champs.find { |c| c.type == 'Champs::TitreIdentiteChamp' } } let(:champ_identite) { dossier.champs_public.find { |c| c.type == 'Champs::TitreIdentiteChamp' } }
before { attach_file_to_champ(champ_identite) } before { attach_file_to_champ(champ_identite) }

View file

@ -348,7 +348,7 @@ describe ProcedureExportService do
create(:dossier, :en_instruction, :with_populated_champs, :with_individual, procedure: procedure) create(:dossier, :en_instruction, :with_populated_champs, :with_individual, procedure: procedure)
] ]
end end
let(:champ_repetition) { dossiers.first.champs.find { |champ| champ.type_champ == 'repetition' } } let(:champ_repetition) { dossiers.first.champs_public.find { |champ| champ.type_champ == 'repetition' } }
it 'should have sheets' do it 'should have sheets' do
expect(subject.sheets.map(&:name)).to eq(['Dossiers', 'Etablissements', 'Avis', champ_repetition.libelle_for_export]) expect(subject.sheets.map(&:name)).to eq(['Dossiers', 'Etablissements', 'Avis', champ_repetition.libelle_for_export])
@ -402,7 +402,7 @@ describe ProcedureExportService do
context 'with non unique labels' do context 'with non unique labels' do
let(:dossier) { create(:dossier, :en_instruction, :with_populated_champs, :with_individual, procedure: procedure) } let(:dossier) { create(:dossier, :en_instruction, :with_populated_champs, :with_individual, procedure: procedure) }
let(:champ_repetition) { dossier.champs.find { |champ| champ.type_champ == 'repetition' } } let(:champ_repetition) { dossier.champs_public.find { |champ| champ.type_champ == 'repetition' } }
let(:type_de_champ_repetition) { create(:type_de_champ_repetition, procedure: procedure, libelle: champ_repetition.libelle) } let(:type_de_champ_repetition) { create(:type_de_champ_repetition, procedure: procedure, libelle: champ_repetition.libelle) }
let!(:another_champ_repetition) { create(:champ_repetition, type_de_champ: type_de_champ_repetition, dossier: dossier) } let!(:another_champ_repetition) { create(:champ_repetition, type_de_champ: type_de_champ_repetition, dossier: dossier) }
@ -413,7 +413,7 @@ describe ProcedureExportService do
context 'with empty repetition' do context 'with empty repetition' do
before do before do
dossiers.flat_map { |dossier| dossier.champs.filter(&:repetition?) }.each do |champ| dossiers.flat_map { |dossier| dossier.champs_public.filter(&:repetition?) }.each do |champ|
champ.champs.destroy_all champ.champs.destroy_all
end end
end end

View file

@ -277,7 +277,7 @@ describe 'fetch API Particulier Data', js: true do
wait_for_autosave wait_for_autosave
dossier = Dossier.last dossier = Dossier.last
cnaf_champ = dossier.champs.find(&:cnaf?) cnaf_champ = dossier.champs_public.find(&:cnaf?)
wait_until { cnaf_champ.reload.code_postal == 'wrong_code' } wait_until { cnaf_champ.reload.code_postal == 'wrong_code' }
@ -332,7 +332,7 @@ describe 'fetch API Particulier Data', js: true do
wait_for_autosave wait_for_autosave
dossier = Dossier.last dossier = Dossier.last
pole_emploi_champ = dossier.champs.find(&:pole_emploi?) pole_emploi_champ = dossier.champs_public.find(&:pole_emploi?)
wait_until { pole_emploi_champ.reload.identifiant == 'wrong code' } wait_until { pole_emploi_champ.reload.identifiant == 'wrong code' }
@ -403,7 +403,7 @@ describe 'fetch API Particulier Data', js: true do
wait_for_autosave wait_for_autosave
dossier = Dossier.last dossier = Dossier.last
mesri_champ = dossier.champs.find(&:mesri?) mesri_champ = dossier.champs_public.find(&:mesri?)
wait_until { mesri_champ.reload.ine == 'wrong code' } wait_until { mesri_champ.reload.ine == 'wrong code' }
clear_enqueued_jobs clear_enqueued_jobs
@ -465,7 +465,7 @@ describe 'fetch API Particulier Data', js: true do
wait_for_autosave wait_for_autosave
dossier = Dossier.last dossier = Dossier.last
dgfip_champ = dossier.champs.find(&:dgfip?) dgfip_champ = dossier.champs_public.find(&:dgfip?)
wait_until { dgfip_champ.reload.reference_avis == 'wrong_code' } wait_until { dgfip_champ.reload.reference_avis == 'wrong_code' }

View file

@ -8,7 +8,7 @@ describe 'Inviting an expert:' do
let(:procedure) { create(:procedure, :published, :with_piece_justificative, instructeurs: [instructeur]) } let(:procedure) { create(:procedure, :published, :with_piece_justificative, instructeurs: [instructeur]) }
let(:experts_procedure) { create(:experts_procedure, expert: expert, procedure: procedure) } let(:experts_procedure) { create(:experts_procedure, expert: expert, procedure: procedure) }
let(:dossier) { create(:dossier, :en_construction, :with_dossier_link, procedure: procedure) } let(:dossier) { create(:dossier, :en_construction, :with_dossier_link, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
let(:avis) { create(:avis, dossier: dossier, claimant: instructeur, experts_procedure: experts_procedure, confidentiel: true) } let(:avis) { create(:avis, dossier: dossier, claimant: instructeur, experts_procedure: experts_procedure, confidentiel: true) }
context 'when I dont already have an account' do context 'when I dont already have an account' do

View file

@ -8,7 +8,7 @@ describe 'Inviting an expert:', js: true do
let(:expert_password) { 'mot de passe dexpert' } let(:expert_password) { 'mot de passe dexpert' }
let(:procedure) { create(:procedure, :published, instructeurs: [instructeur]) } let(:procedure) { create(:procedure, :published, instructeurs: [instructeur]) }
let(:dossier) { create(:dossier, :en_construction, :with_dossier_link, procedure: procedure) } let(:dossier) { create(:dossier, :en_construction, :with_dossier_link, procedure: procedure) }
let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs.filter(&:dossier_link?).filter_map(&:value)) } let(:linked_dossier) { Dossier.find_by(id: dossier.reload.champs_public.filter(&:dossier_link?).filter_map(&:value)) }
before do before do
clear_emails clear_emails

View file

@ -197,7 +197,7 @@ describe 'Instructing a dossier:', js: true do
context 'with dossiers having attached files', js: true do context 'with dossiers having attached files', js: true do
let(:procedure) { create(:procedure, :published, :with_piece_justificative, instructeurs: [instructeur]) } let(:procedure) { create(:procedure, :published, :with_piece_justificative, instructeurs: [instructeur]) }
let(:dossier) { create(:dossier, :en_construction, procedure: procedure) } let(:dossier) { create(:dossier, :en_construction, procedure: procedure) }
let(:champ) { dossier.champs.first } let(:champ) { dossier.champs_public.first }
let(:path) { 'spec/fixtures/files/piece_justificative_0.pdf' } let(:path) { 'spec/fixtures/files/piece_justificative_0.pdf' }
let(:commentaire) { create(:commentaire, instructeur: instructeur, dossier: dossier) } let(:commentaire) { create(:commentaire, instructeur: instructeur, dossier: dossier) }

View file

@ -7,7 +7,7 @@ describe "procedure sort" do
before do before do
instructeur.follow(followed_dossier) instructeur.follow(followed_dossier)
followed_dossier.champs.first.update(value: '123') followed_dossier.champs_public.first.update(value: '123')
login_as(instructeur.user, scope: :user) login_as(instructeur.user, scope: :user)
visit instructeur_procedure_path(procedure) visit instructeur_procedure_path(procedure)

View file

@ -116,7 +116,7 @@ describe 'The routing', js: true do
click_on litteraire_user.dossiers.first.id.to_s click_on litteraire_user.dossiers.first.id.to_s
click_on 'Modifier mon dossier' click_on 'Modifier mon dossier'
fill_in litteraire_user.dossiers.first.champs.first.libelle, with: 'some value' fill_in litteraire_user.dossiers.first.champs_public.first.libelle, with: 'some value'
wait_for_autosave(false) wait_for_autosave(false)
log_out log_out

View file

@ -466,7 +466,7 @@ describe 'The user' do
end end
def champ_value_for(libelle) def champ_value_for(libelle)
champs = user_dossier.reload.champs champs = user_dossier.reload.champs_public
champs.find { |c| c.libelle == libelle }.value champs.find { |c| c.libelle == libelle }.value
end end

View file

@ -51,8 +51,8 @@ describe 'dropdown list with other option activated', js: true do
select("Secondary 1.2") select("Secondary 1.2")
expect(page).to have_selector(".autosave-status.succeeded", visible: true) expect(page).to have_selector(".autosave-status.succeeded", visible: true)
wait_until { user_dossier.champs.first.value == "Secondary 1.2" } wait_until { user_dossier.champs_public.first.value == "Secondary 1.2" }
expect(user_dossier.champs.first.value).to eq("Secondary 1.2") expect(user_dossier.champs_public.first.value).to eq("Secondary 1.2")
end end
end end

View file

@ -123,7 +123,7 @@ describe 'user access to the list of their dossiers', js: true do
context "when user search for something inside the dossier" do context "when user search for something inside the dossier" do
let(:dossier_en_construction2) { create(:dossier, :with_populated_champs, :en_construction, user: user) } let(:dossier_en_construction2) { create(:dossier, :with_populated_champs, :en_construction, user: user) }
before do before do
page.find_by_id('q').set(dossier_en_construction.champs.first.value) page.find_by_id('q').set(dossier_en_construction.champs_public.first.value)
end end
context 'when it only matches one dossier' do context 'when it only matches one dossier' do
@ -137,7 +137,7 @@ describe 'user access to the list of their dossiers', js: true do
context 'when it matches multiple dossier' do context 'when it matches multiple dossier' do
before do before do
dossier_en_construction2.champs.first.update(value: dossier_en_construction.champs.first.value) dossier_en_construction2.champs_public.first.update(value: dossier_en_construction.champs_public.first.value)
find('.fr-search-bar .fr-btn').click find('.fr-search-bar .fr-btn').click
end end

View file

@ -46,7 +46,7 @@ describe 'shared/dossiers/demande.html.haml', type: :view do
let(:procedure) { create(:procedure, :published, :with_type_de_champ) } let(:procedure) { create(:procedure, :published, :with_type_de_champ) }
it 'renders the champs' do it 'renders the champs' do
dossier.champs.each do |champ| dossier.champs_public.each do |champ|
expect(subject).to include(champ.libelle) expect(subject).to include(champ.libelle)
end end
end end

View file

@ -15,7 +15,7 @@ describe 'shared/dossiers/edit.html.haml', type: :view do
let(:champ_textarea) { create(:champ_textarea, dossier: dossier, value: 'Some long text in a textarea.') } let(:champ_textarea) { create(:champ_textarea, dossier: dossier, value: 'Some long text in a textarea.') }
let(:champs) { [champ_checkbox, champ_header_section, champ_explication, champ_dossier_link, champ_textarea] } let(:champs) { [champ_checkbox, champ_header_section, champ_explication, champ_dossier_link, champ_textarea] }
before { dossier.champs << champs } before { dossier.champs_public << champs }
it 'renders labels and editable values of champs' do it 'renders labels and editable values of champs' do
expect(subject).to have_field(champ_checkbox.libelle, checked: true) expect(subject).to have_field(champ_checkbox.libelle, checked: true)
@ -45,7 +45,7 @@ describe 'shared/dossiers/edit.html.haml', type: :view do
let(:enabled_options) { type_de_champ.drop_down_list_enabled_non_empty_options } let(:enabled_options) { type_de_champ.drop_down_list_enabled_non_empty_options }
let(:mandatory) { true } let(:mandatory) { true }
before { dossier.champs << champ } before { dossier.champs_public << champ }
context 'when the list is short' do context 'when the list is short' do
it 'renders the list as radio buttons' do it 'renders the list as radio buttons' do
@ -78,7 +78,7 @@ describe 'shared/dossiers/edit.html.haml', type: :view do
let(:options) { type_de_champ.drop_down_list_options } let(:options) { type_de_champ.drop_down_list_options }
let(:enabled_options) { type_de_champ.drop_down_list_enabled_non_empty_options } let(:enabled_options) { type_de_champ.drop_down_list_enabled_non_empty_options }
before { dossier.champs << champ } before { dossier.champs_public << champ }
context 'when the list is short' do context 'when the list is short' do
let(:drop_down_list_value) { ['valid', 'invalid', 'not sure yet'].join("\r\n") } let(:drop_down_list_value) { ['valid', 'invalid', 'not sure yet'].join("\r\n") }
@ -111,7 +111,7 @@ describe 'shared/dossiers/edit.html.haml', type: :view do
context 'when dossier is en construction' do context 'when dossier is en construction' do
let(:dossier) { create(:dossier, :en_construction) } let(:dossier) { create(:dossier, :en_construction) }
before { dossier.champs << champ } before { dossier.champs_public << champ }
it 'cannot delete a piece justificative' do it 'cannot delete a piece justificative' do
expect(subject).not_to have_text('Supprimer') expect(subject).not_to have_text('Supprimer')
@ -120,7 +120,7 @@ describe 'shared/dossiers/edit.html.haml', type: :view do
context 'when dossier is brouillon' do context 'when dossier is brouillon' do
before do before do
dossier.champs << champ dossier.champs_public << champ
end end
it 'can delete a piece justificative' do it 'can delete a piece justificative' do