Files
nairobi/app/models/budget/group.rb
Senén Rodero Rodríguez c2f393276a Move Translation class inside Budget::Group
The reason to move Translation class is explained here [1]

[1] 106649a8a5
2019-06-27 09:19:37 +02:00

58 lines
1.4 KiB
Ruby

class Budget
class Group < ApplicationRecord
include Sluggable
translates :name, touch: true
include Globalizable
translation_class_delegate :budget
class Translation
validate :name_uniqueness_by_budget
def name_uniqueness_by_budget
if budget.groups.joins(:translations)
.where(name: name)
.where.not("budget_group_translations.budget_group_id": budget_group_id).any?
errors.add(:name, I18n.t("errors.messages.taken"))
end
end
end
belongs_to :budget
has_many :headings, dependent: :destroy
validates_translation :name, presence: true
validates :budget_id, presence: true
validates :slug, presence: true, format: /\A[a-z0-9\-_]+\z/
def self.sort_by_name
all.sort_by(&:name)
end
def single_heading_group?
headings.count == 1
end
private
def generate_slug?
slug.nil? || budget.drafting?
end
class Translation < Globalize::ActiveRecord::Translation
delegate :budget, to: :globalized_model
validate :name_uniqueness_by_budget
def name_uniqueness_by_budget
if budget.groups.joins(:translations)
.where(name: name)
.where.not("budget_group_translations.budget_group_id": budget_group_id).any?
errors.add(:name, I18n.t("errors.messages.taken"))
end
end
end
end
end