Module: VulgataCallbacks
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/vulgata/concerns/vulgata_callbacks.rb
Instance Method Summary collapse
- #destroy_translation_states ⇒ Object
- #init_vulgata_states(reload = true) ⇒ Object
- #pendify_translation_states ⇒ Object
Instance Method Details
#destroy_translation_states ⇒ Object
83 84 85 |
# File 'lib/vulgata/concerns/vulgata_callbacks.rb', line 83 def destroy_translation_states Vulgata::TranslationState.destroy_all(item_type: self.vulgata_item_type, item_id: self.id) end |
#init_vulgata_states(reload = true) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/vulgata/concerns/vulgata_callbacks.rb', line 14 def init_vulgata_states(reload = true) source_translation, translated_item_id = vulgata_source_and_translated_item_id # no source no states - translators cant translate without source return if source_translation.nil? source_attributes = { item_type: self.vulgata_item_type, item_id: translated_item_id, status: Vulgata::TranslationState.statuses[:source], locale: source_translation.locale } Vulgata::TranslationState.find_or_create_by(source_attributes) do |state| state.created_at = source_translation.created_at state.updated_at = source_translation.updated_at end not_source_locales = Vulgata::Helpers.available_locales - [source_translation.locale.to_sym] not_source_locales.each do |locale| state = Vulgata::TranslationState.find_or_initialize_by(item_type: self.vulgata_item_type, item_id: translated_item_id, locale: locale) state.priority = self.vulgata_priority translation = vlg_strategy. state if translation.present? state.status = Vulgata::TranslationState.statuses[:approved] state.comment = "Initial" state.created_at = translation.created_at state.updated_at = translation.updated_at else state.status = Vulgata::TranslationState.statuses[:pending] state.comment = "Initial" state.created_at = source_translation.created_at state.updated_at = source_translation.updated_at end state.save end self.reload if reload end |
#pendify_translation_states ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/vulgata/concerns/vulgata_callbacks.rb', line 56 def pendify_translation_states # after translation is created we should skip the update if self.vlg_skip_pendify self.vlg_skip_pendify = nil return true end # check if the update includes the attributes being translated return unless vlg_strategy.translation_data_changed? self source_translation, translated_item_id = vulgata_source_and_translated_item_id # no source no states - translators cant translate without source return if source_translation.nil? not_source_locales = Vulgata::Helpers.available_locales - [source_translation.locale.to_sym] # update all translations to pending not_source_locales.each do |locale| state = Vulgata::TranslationState.where(item_type: self.vulgata_item_type, item_id: translated_item_id, locale: locale).first_or_initialize state.status = :pending state.user = nil state.priority = self.vulgata_priority state.save end end |