add entry requests, invite new users
This commit is contained in:
@@ -1,15 +1,21 @@
|
||||
class Entry < ApplicationRecord
|
||||
belongs_to :created_by, class_name: "User", optional: true
|
||||
belongs_to :updated_by, class_name: "User", optional: true
|
||||
belongs_to :requested_by, class_name: "User", optional: true
|
||||
|
||||
has_many :suggested_meanings, dependent: :destroy
|
||||
has_many :comments, as: :commentable, dependent: :destroy
|
||||
|
||||
enum :category, %i[word phrase proper_name title reference other]
|
||||
enum :status, %i[requested approved active], default: :active
|
||||
|
||||
validates :category, presence: true
|
||||
validate :at_least_one_translation
|
||||
|
||||
scope :with_category, ->(cat) { cat.present? ? where(category: cat) : all }
|
||||
scope :requested, -> { where(status: :requested) }
|
||||
scope :approved, -> { where(status: :approved) }
|
||||
scope :active_entries, -> { where(status: :active) }
|
||||
|
||||
def self.search(query, language_code: nil)
|
||||
return all if query.blank?
|
||||
@@ -43,4 +49,10 @@ class Entry < ApplicationRecord
|
||||
def self.valid_lang?(code)
|
||||
SupportedLanguage.valid_codes.include?(code.to_s)
|
||||
end
|
||||
|
||||
def at_least_one_translation
|
||||
if [fi, en, sv, no, ru, de].all?(&:blank?)
|
||||
errors.add(:base, "At least one language translation is required")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user