Remove migration service
This commit is contained in:
parent
a845922df6
commit
ec72fdd164
20 changed files with 109 additions and 176 deletions
|
@ -56,13 +56,16 @@ class Procedure < ApplicationRecord
|
|||
MAX_DUREE_CONSERVATION = 36
|
||||
MAX_DUREE_CONSERVATION_EXPORT = 3.hours
|
||||
|
||||
has_many :types_de_champ, -> { root.public_only.ordered }, inverse_of: :procedure, dependent: :destroy
|
||||
has_many :types_de_champ_private, -> { root.private_only.ordered }, class_name: 'TypeDeChamp', inverse_of: :procedure, dependent: :destroy
|
||||
has_many :revisions, -> { order(:id) }, class_name: 'ProcedureRevision', inverse_of: :procedure, dependent: :destroy
|
||||
belongs_to :draft_revision, class_name: 'ProcedureRevision', optional: true
|
||||
belongs_to :draft_revision, class_name: 'ProcedureRevision', optional: false
|
||||
belongs_to :published_revision, class_name: 'ProcedureRevision', optional: true
|
||||
has_many :deleted_dossiers, dependent: :destroy
|
||||
|
||||
has_many :published_types_de_champ, through: :published_revision, source: :types_de_champ
|
||||
has_many :published_types_de_champ_private, through: :published_revision, source: :types_de_champ_private
|
||||
has_many :draft_types_de_champ, through: :draft_revision, source: :types_de_champ
|
||||
has_many :draft_types_de_champ_private, through: :draft_revision, source: :types_de_champ_private
|
||||
|
||||
has_one :module_api_carto, dependent: :destroy
|
||||
has_one :attestation_template, dependent: :destroy
|
||||
|
||||
|
@ -74,6 +77,14 @@ class Procedure < ApplicationRecord
|
|||
brouillon? ? draft_revision : published_revision
|
||||
end
|
||||
|
||||
def types_de_champ
|
||||
brouillon? ? draft_types_de_champ : published_types_de_champ
|
||||
end
|
||||
|
||||
def types_de_champ_private
|
||||
brouillon? ? draft_types_de_champ_private : published_types_de_champ_private
|
||||
end
|
||||
|
||||
has_many :administrateurs_procedures
|
||||
has_many :administrateurs, through: :administrateurs_procedures, after_remove: -> (procedure, _admin) { procedure.validate! }
|
||||
has_many :groupe_instructeurs, dependent: :destroy
|
||||
|
@ -93,9 +104,6 @@ class Procedure < ApplicationRecord
|
|||
has_one_attached :notice
|
||||
has_one_attached :deliberation
|
||||
|
||||
accepts_nested_attributes_for :types_de_champ, reject_if: proc { |attributes| attributes['libelle'].blank? }, allow_destroy: true
|
||||
accepts_nested_attributes_for :types_de_champ_private, reject_if: proc { |attributes| attributes['libelle'].blank? }, allow_destroy: true
|
||||
|
||||
scope :brouillons, -> { where(aasm_state: :brouillon) }
|
||||
scope :publiees, -> { where(aasm_state: :publiee) }
|
||||
scope :closes, -> { where(aasm_state: [:close, :depubliee]) }
|
||||
|
@ -114,9 +122,15 @@ class Procedure < ApplicationRecord
|
|||
scope :for_api, -> {
|
||||
includes(
|
||||
:administrateurs,
|
||||
:types_de_champ_private,
|
||||
:types_de_champ,
|
||||
:module_api_carto
|
||||
:module_api_carto,
|
||||
published_revision: [
|
||||
:types_de_champ_private,
|
||||
:types_de_champ
|
||||
],
|
||||
draft_revision: [
|
||||
:types_de_champ_private,
|
||||
:types_de_champ
|
||||
]
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -289,22 +303,13 @@ class Procedure < ApplicationRecord
|
|||
# to save a dossier created from this method
|
||||
def new_dossier
|
||||
Dossier.new(
|
||||
procedure: self,
|
||||
revision: active_revision,
|
||||
champs: build_champs,
|
||||
champs_private: build_champs_private,
|
||||
champs: active_revision.build_champs,
|
||||
champs_private: active_revision.build_champs_private,
|
||||
groupe_instructeur: defaut_groupe_instructeur
|
||||
)
|
||||
end
|
||||
|
||||
def build_champs
|
||||
types_de_champ.map(&:build_champ)
|
||||
end
|
||||
|
||||
def build_champs_private
|
||||
types_de_champ_private.map(&:build_champ)
|
||||
end
|
||||
|
||||
def path_customized?
|
||||
!path.match?(/[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}/)
|
||||
end
|
||||
|
@ -318,9 +323,6 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
|
||||
def clone(admin, from_library)
|
||||
# FIXUP: needed during transition to revisions
|
||||
RevisionsMigration.add_revisions(self)
|
||||
|
||||
is_different_admin = !admin.owns?(self)
|
||||
|
||||
populate_champ_stable_ids
|
||||
|
@ -371,19 +373,11 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
|
||||
procedure.save
|
||||
procedure.draft_revision.types_de_champ.update_all(revision_id: procedure.draft_revision.id)
|
||||
procedure.draft_revision.types_de_champ_private.update_all(revision_id: procedure.draft_revision.id)
|
||||
|
||||
# FIXUP: needed during transition to revisions
|
||||
procedure.draft_revision.types_de_champ.each do |type_de_champ|
|
||||
procedure.types_de_champ << type_de_champ
|
||||
end
|
||||
procedure.draft_revision.types_de_champ_private.each do |type_de_champ|
|
||||
procedure.types_de_champ_private << type_de_champ
|
||||
end
|
||||
procedure.draft_types_de_champ.update_all(revision_id: procedure.draft_revision.id)
|
||||
procedure.draft_types_de_champ_private.update_all(revision_id: procedure.draft_revision.id)
|
||||
|
||||
if is_different_admin || from_library
|
||||
procedure.types_de_champ.each { |tdc| tdc.options&.delete(:old_pj) }
|
||||
procedure.draft_types_de_champ.each { |tdc| tdc.options&.delete(:old_pj) }
|
||||
end
|
||||
|
||||
procedure
|
||||
|
@ -608,23 +602,14 @@ class Procedure < ApplicationRecord
|
|||
end
|
||||
|
||||
def after_publish(canonical_procedure = nil)
|
||||
# FIXUP: needed during transition to revisions
|
||||
if RevisionsMigration.add_revisions(self)
|
||||
update!(published_at: Time.zone.now, canonical_procedure: canonical_procedure)
|
||||
else
|
||||
update!(published_at: Time.zone.now, canonical_procedure: canonical_procedure, draft_revision: create_new_revision, published_revision: draft_revision)
|
||||
end
|
||||
update!(published_at: Time.zone.now, canonical_procedure: canonical_procedure, draft_revision: create_new_revision, published_revision: draft_revision)
|
||||
end
|
||||
|
||||
def after_close
|
||||
# FIXUP: needed during transition to revisions
|
||||
RevisionsMigration.add_revisions(self)
|
||||
update!(closed_at: Time.zone.now)
|
||||
end
|
||||
|
||||
def after_unpublish
|
||||
# FIXUP: needed during transition to revisions
|
||||
RevisionsMigration.add_revisions(self)
|
||||
update!(unpublished_at: Time.zone.now)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue