From 64f39e2c780dff8c1b607f5dbdf0cccfa2370d57 Mon Sep 17 00:00:00 2001 From: benoitqueyron <72251526+Benoit-MINT@users.noreply.github.com> Date: Tue, 19 Nov 2024 16:11:32 +0100 Subject: [PATCH] nouveau model InstructeursProcedure avec position --- app/models/instructeur.rb | 2 ++ app/models/instructeurs_procedure.rb | 4 ++++ app/models/procedure.rb | 2 ++ ...241119142129_create_instructeurs_procedures.rb | 15 +++++++++++++++ db/schema.rb | 15 ++++++++++++++- 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 app/models/instructeurs_procedure.rb create mode 100644 db/migrate/20241119142129_create_instructeurs_procedures.rb diff --git a/app/models/instructeur.rb b/app/models/instructeur.rb index b84e2c3b7..579b7de90 100644 --- a/app/models/instructeur.rb +++ b/app/models/instructeur.rb @@ -27,6 +27,8 @@ class Instructeur < ApplicationRecord has_many :exports, as: :user_profile has_many :archives, as: :user_profile + has_many :instructeurs_procedures, dependent: :destroy + belongs_to :user scope :with_instant_email_message_notifications, -> { diff --git a/app/models/instructeurs_procedure.rb b/app/models/instructeurs_procedure.rb new file mode 100644 index 000000000..a16ad581b --- /dev/null +++ b/app/models/instructeurs_procedure.rb @@ -0,0 +1,4 @@ +class InstructeursProcedure < ApplicationRecord + belongs_to :instructeur + belongs_to :procedure +end diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 90344edc9..633037599 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -63,6 +63,8 @@ class Procedure < ApplicationRecord has_many :bulk_messages, dependent: :destroy has_many :labels, dependent: :destroy + has_many :instructeurs_procedures, dependent: :destroy + def active_dossier_submitted_message published_dossier_submitted_message || draft_dossier_submitted_message end diff --git a/db/migrate/20241119142129_create_instructeurs_procedures.rb b/db/migrate/20241119142129_create_instructeurs_procedures.rb new file mode 100644 index 000000000..1fa66210f --- /dev/null +++ b/db/migrate/20241119142129_create_instructeurs_procedures.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class CreateInstructeursProcedures < ActiveRecord::Migration[7.0] + def change + create_table :instructeurs_procedures do |t| + t.references :instructeur, null: false, foreign_key: true + t.references :procedure, null: false, foreign_key: true + t.integer :position + + t.timestamps + end + + add_index :instructeurs_procedures, [:instructeur_id, :procedure_id], unique: true, name: 'index_instructeurs_procedures_on_instructeur_and_procedure' + end +end diff --git a/db/schema.rb b/db/schema.rb index 8da54cc84..b76f5fc53 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[7.0].define(version: 2024_11_12_090128) do +ActiveRecord::Schema[7.0].define(version: 2024_11_19_142129) do # These are extensions that must be enabled in order to support this database enable_extension "pg_buffercache" enable_extension "pg_stat_statements" @@ -819,6 +819,17 @@ ActiveRecord::Schema[7.0].define(version: 2024_11_12_090128) do t.index ["user_id"], name: "index_instructeurs_on_user_id" end + create_table "instructeurs_procedures", force: :cascade do |t| + t.datetime "created_at", null: false + t.bigint "instructeur_id", null: false + t.integer "position" + t.bigint "procedure_id", null: false + t.datetime "updated_at", null: false + t.index ["instructeur_id", "procedure_id"], name: "index_instructeurs_procedures_on_instructeur_and_procedure", unique: true + t.index ["instructeur_id"], name: "index_instructeurs_procedures_on_instructeur_id" + t.index ["procedure_id"], name: "index_instructeurs_procedures_on_procedure_id" + end + create_table "invites", id: :serial, force: :cascade do |t| t.datetime "created_at", precision: nil t.integer "dossier_id" @@ -1323,6 +1334,8 @@ ActiveRecord::Schema[7.0].define(version: 2024_11_12_090128) do add_foreign_key "groupe_instructeurs", "procedures" add_foreign_key "initiated_mails", "procedures" add_foreign_key "instructeurs", "users" + add_foreign_key "instructeurs_procedures", "instructeurs" + add_foreign_key "instructeurs_procedures", "procedures" add_foreign_key "labels", "procedures" add_foreign_key "merge_logs", "users" add_foreign_key "procedure_presentations", "assign_tos"