diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 30a47fc5a..218081808 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -63,7 +63,7 @@ class Procedure < ApplicationRecord def hide! now = DateTime.now - self.update(hidden_at: now) + self.update(hidden_at: now, aasm_state: :hidden) self.dossiers.update_all(hidden_at: now) end @@ -154,7 +154,7 @@ class Procedure < ApplicationRecord def publish!(path) now = Time.now - self.update!({ test_started_at: now, published_at: now, archived_at: nil }) + self.update!({ test_started_at: now, published_at: now, archived_at: nil, aasm_state: :publiee }) ProcedurePath.create!(path: path, procedure: self, administrateur: self.administrateur) end @@ -163,7 +163,7 @@ class Procedure < ApplicationRecord end def archive - self.update!(archived_at: Time.now) + self.update!(archived_at: Time.now, aasm_state: :archivee) end def archivee? diff --git a/db/migrate/20180515135415_add_aasm_state_to_procedures.rb b/db/migrate/20180515135415_add_aasm_state_to_procedures.rb new file mode 100644 index 000000000..b290b0c08 --- /dev/null +++ b/db/migrate/20180515135415_add_aasm_state_to_procedures.rb @@ -0,0 +1,5 @@ +class AddAasmStateToProcedures < ActiveRecord::Migration[5.2] + def change + add_column :procedures, :aasm_state, :string, index: true, default: :brouillon + end +end diff --git a/db/schema.rb b/db/schema.rb index 3434709d1..9594d9709 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2018_05_02_092852) do +ActiveRecord::Schema.define(version: 2018_05_15_135415) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -465,6 +465,7 @@ ActiveRecord::Schema.define(version: 2018_05_02_092852) do t.boolean "cloned_from_library", default: false t.bigint "parent_procedure_id" t.datetime "test_started_at" + t.string "aasm_state", default: "brouillon" t.index ["hidden_at"], name: "index_procedures_on_hidden_at" t.index ["parent_procedure_id"], name: "index_procedures_on_parent_procedure_id" end diff --git a/lib/tasks/2018_05_15_add_aasm_state_to_procedure.rake b/lib/tasks/2018_05_15_add_aasm_state_to_procedure.rake new file mode 100644 index 000000000..6fbfdac81 --- /dev/null +++ b/lib/tasks/2018_05_15_add_aasm_state_to_procedure.rake @@ -0,0 +1,8 @@ +namespace :'2018_05_15_add_aasm_state_to_procedure' do + task set: :environment do + Procedure.archivees.update_all(aasm_state: :archivee) + Procedure.publiees.update_all(aasm_state: :publiee) + Procedure.brouillons.update_all(aasm_state: :brouillon) + Procedure.unscoped.where.not(hidden_at: nil).update_all(aasm_state: :hidden) + end +end