2020-08-06 16:35:45 +02:00
|
|
|
# == Schema Information
|
|
|
|
#
|
|
|
|
# Table name: invites
|
|
|
|
#
|
|
|
|
# id :integer not null, primary key
|
|
|
|
# email :string
|
|
|
|
# email_sender :string
|
|
|
|
# message :text
|
|
|
|
# created_at :datetime
|
|
|
|
# updated_at :datetime
|
|
|
|
# dossier_id :integer
|
|
|
|
# user_id :integer
|
|
|
|
#
|
2018-03-06 13:44:29 +01:00
|
|
|
class Invite < ApplicationRecord
|
2018-02-26 14:51:25 +01:00
|
|
|
include EmailSanitizableConcern
|
|
|
|
|
2016-02-08 18:16:18 +01:00
|
|
|
belongs_to :dossier
|
|
|
|
belongs_to :user
|
|
|
|
|
2018-02-26 14:51:25 +01:00
|
|
|
before_validation -> { sanitize_email(:email) }
|
|
|
|
|
2018-03-06 13:44:29 +01:00
|
|
|
validates :email, presence: true
|
|
|
|
validates :email, uniqueness: { scope: :dossier_id }
|
2016-02-08 18:16:18 +01:00
|
|
|
|
2018-02-26 14:51:25 +01:00
|
|
|
validates :email, format: { with: Devise.email_regexp, message: "n'est pas valide" }, allow_nil: true
|
2018-03-14 18:57:56 +01:00
|
|
|
|
|
|
|
# #1619 When an administrateur deletes a `Procedure`, its `hidden_at` field, and
|
|
|
|
# the `hidden_at` field of its `Dossier`s, get set, effectively removing the Procedure
|
|
|
|
# and Dossier from their respective `default_scope`s.
|
|
|
|
# Therefore, we also remove `Invite`s for such effectively deleted `Dossier`s
|
|
|
|
# from their default scope.
|
2020-02-05 16:09:03 +01:00
|
|
|
scope :kept, -> { joins(:dossier).merge(Dossier.kept) }
|
|
|
|
|
|
|
|
default_scope { kept }
|
2016-02-08 18:16:18 +01:00
|
|
|
end
|