Class: Vulgata::TranslationState
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Vulgata::TranslationState
- Includes:
- StatusTypes
- Defined in:
- app/models/vulgata/translation_state.rb
Instance Attribute Summary collapse
-
#tr_data ⇒ Object
Returns the value of attribute tr_data.
Instance Method Summary collapse
- #apply_current_version_to_item ⇒ Object
- #approve_translation(translator = nil) ⇒ Object
- #item_class ⇒ Object
- #item_class_name ⇒ Object
- #item_name ⇒ Object
- #latest_rejected_version ⇒ Object
- #latest_translated_version ⇒ Object
- #long_item_name ⇒ Object
- #pending_approval? ⇒ Boolean
- #preprocced_translation_data ⇒ Object
- #save_translation_version(translation_data, translator) ⇒ Object
- #source_translation_state ⇒ Object
- #status ⇒ Object
-
#translated_attribute_names ⇒ Object
returns array of the translated attributes names.
- #translation_data ⇒ Object
Instance Attribute Details
#tr_data ⇒ Object
Returns the value of attribute tr_data.
9 10 11 |
# File 'app/models/vulgata/translation_state.rb', line 9 def tr_data @tr_data end |
Instance Method Details
#apply_current_version_to_item ⇒ Object
86 87 88 89 |
# File 'app/models/vulgata/translation_state.rb', line 86 def apply_current_version_to_item self.item.vlg_skip_pendify = true self.item.vulgata_save_translation(self) end |
#approve_translation(translator = nil) ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'app/models/vulgata/translation_state.rb', line 63 def approve_translation translator = nil transaction_succeeded = Vulgata::TranslationState.transaction do self.apply_current_version_to_item self.update(status: :approved, user: translator, locked: false) end self.item.vulgata_after_approved if transaction_succeeded transaction_succeeded end |
#item_class ⇒ Object
19 20 21 |
# File 'app/models/vulgata/translation_state.rb', line 19 def item_class @item_class ||= self.item_type.constantize end |
#item_class_name ⇒ Object
27 28 29 |
# File 'app/models/vulgata/translation_state.rb', line 27 def item_class_name self.item.class.respond_to?(:vulgata_name) ? self.item.class.vulgata_name : self.item_type end |
#item_name ⇒ Object
31 32 33 |
# File 'app/models/vulgata/translation_state.rb', line 31 def item_name self.item.respond_to?(:vulgata_name) ? self.item.vulgata_name.to_s.truncate(15, omission: "...") : self.item_id end |
#latest_rejected_version ⇒ Object
82 83 84 |
# File 'app/models/vulgata/translation_state.rb', line 82 def latest_rejected_version self.versions.where(status: Vulgata::TranslationState.statuses[:rejected]).order(id: :asc).last end |
#latest_translated_version ⇒ Object
78 79 80 |
# File 'app/models/vulgata/translation_state.rb', line 78 def latest_translated_version self.versions.where(status: Vulgata::TranslationState.statuses[:done]).where.not(translation_data: nil).order(id: :asc).last end |
#long_item_name ⇒ Object
35 36 37 |
# File 'app/models/vulgata/translation_state.rb', line 35 def long_item_name self.item.respond_to?(:vulgata_name) ? self.item.vulgata_name.to_s.truncate(40, omission: "...") : self.item_id end |
#pending_approval? ⇒ Boolean
74 75 76 |
# File 'app/models/vulgata/translation_state.rb', line 74 def pending_approval? self.status.to_sym == :done || self.status.to_sym == :proofreading end |
#preprocced_translation_data ⇒ Object
47 48 49 |
# File 'app/models/vulgata/translation_state.rb', line 47 def preprocced_translation_data self.item.vulgata_preprocess_getter(translation_data) end |
#save_translation_version(translation_data, translator) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'app/models/vulgata/translation_state.rb', line 51 def save_translation_version translation_data, translator return false if self.source? Vulgata::TranslationState.transaction do self.status = Vulgata::TranslationState.statuses[:done] self.user = translator if translator.present? self.updated_at = DateTime.now self.tr_data = self.item.vulgata_preprocess_setter(translation_data) self.save end end |
#source_translation_state ⇒ Object
23 24 25 |
# File 'app/models/vulgata/translation_state.rb', line 23 def source_translation_state @source_state ||= Vulgata::TranslationState.where(item_type: self.item_type, item_id: self.item_id, status: Vulgata::TranslationState.statuses[:source]).first end |
#status ⇒ Object
14 15 16 17 |
# File 'app/models/vulgata/translation_state.rb', line 14 def status s = super s = s.to_sym unless s.nil? end |
#translated_attribute_names ⇒ Object
returns array of the translated attributes names
92 93 94 |
# File 'app/models/vulgata/translation_state.rb', line 92 def translated_attribute_names self.item.vulgata_translated_attribute_names end |
#translation_data ⇒ Object
39 40 41 42 43 44 45 |
# File 'app/models/vulgata/translation_state.rb', line 39 def translation_data if ltv = latest_translated_version @translation ||= ltv.translation_data end @translation ||= self.item.vulgata_translation_data self end |