42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
class ArtistCommentary < ActiveRecord::Base
|
|
attr_accessible :post_id, :original_description, :original_title, :translated_description, :translated_title
|
|
validates_uniqueness_of :post_id
|
|
belongs_to :post
|
|
has_many :versions, :class_name => "ArtistCommentaryVersion", :foreign_key => :post_id, :primary_key => :post_id, :order => "artist_commentary_versions.id ASC"
|
|
after_save :create_version
|
|
|
|
def original_present?
|
|
original_title.present? || original_description.present?
|
|
end
|
|
|
|
def translated_present?
|
|
translated_title.present? || translated_description.present?
|
|
end
|
|
|
|
def any_field_present?
|
|
original_present? || translated_present?
|
|
end
|
|
|
|
def create_version
|
|
versions.create(
|
|
:post_id => post_id,
|
|
:original_title => original_title,
|
|
:original_description => original_description,
|
|
:translated_title => translated_title,
|
|
:translated_description => translated_description
|
|
)
|
|
end
|
|
|
|
def revert_to(version)
|
|
self.original_description = version.original_description
|
|
self.original_title = version.original_title
|
|
self.translated_description = version.translated_description
|
|
self.translated_title = version.translated_title
|
|
end
|
|
|
|
def revert_to!(version)
|
|
revert_to(version)
|
|
save!
|
|
end
|
|
end
|