commit
e9c18d3cad
5 changed files with 29 additions and 26 deletions
|
@ -44,7 +44,6 @@ module NewAdministrateur
|
||||||
{
|
{
|
||||||
type_de_champ: type_de_champ.as_json(
|
type_de_champ: type_de_champ.as_json(
|
||||||
except: [
|
except: [
|
||||||
:id,
|
|
||||||
:created_at,
|
:created_at,
|
||||||
:options,
|
:options,
|
||||||
:order_place,
|
:order_place,
|
||||||
|
@ -64,7 +63,7 @@ module NewAdministrateur
|
||||||
:piece_justificative_template_url,
|
:piece_justificative_template_url,
|
||||||
:quartiers_prioritaires
|
:quartiers_prioritaires
|
||||||
]
|
]
|
||||||
).merge(id: TypeDeChamp.format_stable_id(type_de_champ.stable_id))
|
)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,13 @@ class Champ < ApplicationRecord
|
||||||
scope :private_only, -> { where(private: true) }
|
scope :private_only, -> { where(private: true) }
|
||||||
scope :ordered, -> { includes(:type_de_champ).order(:row, 'types_de_champ.order_place') }
|
scope :ordered, -> { includes(:type_de_champ).order(:row, 'types_de_champ.order_place') }
|
||||||
scope :public_ordered, -> { public_only.joins(dossier: { revision: :revision_types_de_champ }).where('procedure_revision_types_de_champ.type_de_champ_id = champs.type_de_champ_id').order(:position) }
|
scope :public_ordered, -> { public_only.joins(dossier: { revision: :revision_types_de_champ }).where('procedure_revision_types_de_champ.type_de_champ_id = champs.type_de_champ_id').order(:position) }
|
||||||
scope :private_ordered, -> { private_only.joins(dossier: { revision: :revision_types_de_champ_private }).where('procedure_revision_types_de_champ.type_de_champ_id = champs.type_de_champ_id').order(:position) }
|
# we need to do private champs order as manual join to avoid conflicting join names
|
||||||
|
scope :private_ordered, -> do
|
||||||
|
private_only.joins('INNER JOIN types_de_champ types_de_champ_private
|
||||||
|
ON types_de_champ_private.id = champs.type_de_champ_id AND types_de_champ_private.private = true
|
||||||
|
INNER JOIN procedure_revision_types_de_champ procedure_revision_types_de_champ_private
|
||||||
|
ON procedure_revision_types_de_champ_private.type_de_champ_id = types_de_champ_private.id').order(:position)
|
||||||
|
end
|
||||||
|
|
||||||
scope :root, -> { where(parent_id: nil) }
|
scope :root, -> { where(parent_id: nil) }
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
# created_at :datetime
|
# created_at :datetime
|
||||||
# updated_at :datetime
|
# updated_at :datetime
|
||||||
# parent_id :bigint
|
# parent_id :bigint
|
||||||
# procedure_id :integer
|
|
||||||
# revision_id :bigint
|
# revision_id :bigint
|
||||||
# stable_id :bigint
|
# stable_id :bigint
|
||||||
#
|
#
|
||||||
|
@ -304,7 +303,7 @@ class TypeDeChamp < ApplicationRecord
|
||||||
|
|
||||||
def read_attribute_for_serialization(name)
|
def read_attribute_for_serialization(name)
|
||||||
if name == 'id'
|
if name == 'id'
|
||||||
self.class.format_stable_id(stable_id)
|
stable_id
|
||||||
else
|
else
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
@ -317,15 +316,11 @@ class TypeDeChamp < ApplicationRecord
|
||||||
# This is only needed for a clean migration without downtime. We want to ensure
|
# This is only needed for a clean migration without downtime. We want to ensure
|
||||||
# that if editor send a simple id because it was loaded before deployment
|
# that if editor send a simple id because it was loaded before deployment
|
||||||
# we would still do the right thing.
|
# we would still do the right thing.
|
||||||
def self.format_stable_id(stable_id)
|
|
||||||
"stable:#{stable_id}"
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.to_stable_id(id_or_stable_id)
|
def self.to_stable_id(id_or_stable_id)
|
||||||
if id_or_stable_id.to_s =~ /^stable:/
|
if id_or_stable_id.to_s =~ /^stable:/
|
||||||
id_or_stable_id.to_s.gsub(/^stable:/, '')
|
id_or_stable_id.to_s.gsub(/^stable:/, '')
|
||||||
else
|
else
|
||||||
find(id_or_stable_id).stable_id
|
id_or_stable_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class RemoveTypeDeChampProcedureId < ActiveRecord::Migration[6.0]
|
||||||
|
def change
|
||||||
|
remove_column :types_de_champ, :procedure_id
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2020_08_19_153016) do
|
ActiveRecord::Schema.define(version: 2020_09_02_103047) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -611,7 +611,6 @@ ActiveRecord::Schema.define(version: 2020_08_19_153016) do
|
||||||
t.string "libelle"
|
t.string "libelle"
|
||||||
t.string "type_champ"
|
t.string "type_champ"
|
||||||
t.integer "order_place"
|
t.integer "order_place"
|
||||||
t.integer "procedure_id"
|
|
||||||
t.text "description"
|
t.text "description"
|
||||||
t.boolean "mandatory", default: false
|
t.boolean "mandatory", default: false
|
||||||
t.boolean "private", default: false, null: false
|
t.boolean "private", default: false, null: false
|
||||||
|
@ -623,7 +622,6 @@ ActiveRecord::Schema.define(version: 2020_08_19_153016) do
|
||||||
t.bigint "revision_id"
|
t.bigint "revision_id"
|
||||||
t.index ["parent_id"], name: "index_types_de_champ_on_parent_id"
|
t.index ["parent_id"], name: "index_types_de_champ_on_parent_id"
|
||||||
t.index ["private"], name: "index_types_de_champ_on_private"
|
t.index ["private"], name: "index_types_de_champ_on_private"
|
||||||
t.index ["procedure_id"], name: "index_types_de_champ_on_procedure_id"
|
|
||||||
t.index ["revision_id"], name: "index_types_de_champ_on_revision_id"
|
t.index ["revision_id"], name: "index_types_de_champ_on_revision_id"
|
||||||
t.index ["stable_id"], name: "index_types_de_champ_on_stable_id"
|
t.index ["stable_id"], name: "index_types_de_champ_on_stable_id"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue