diff --git a/app/models/remote_translation.rb b/app/models/remote_translation.rb new file mode 100644 index 000000000..62e6a14c6 --- /dev/null +++ b/app/models/remote_translation.rb @@ -0,0 +1,14 @@ +class RemoteTranslation < ApplicationRecord + + belongs_to :remote_translatable, polymorphic: true + + validates :remote_translatable_id, presence: true + validates :remote_translatable_type, presence: true + validates :locale, presence: true + + after_create :enqueue_remote_translation + + def enqueue_remote_translation + end + +end diff --git a/db/migrate/20181205191300_create_remote_translations.rb b/db/migrate/20181205191300_create_remote_translations.rb new file mode 100644 index 000000000..0abe08464 --- /dev/null +++ b/db/migrate/20181205191300_create_remote_translations.rb @@ -0,0 +1,12 @@ +class CreateRemoteTranslations < ActiveRecord::Migration[4.2] + def change + create_table :remote_translations do |t| + t.string :locale + t.integer :remote_translatable_id + t.string :remote_translatable_type + t.text :error_message + + t.timestamps null: false + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 6680cbe2c..aa7cce9aa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1400,6 +1400,15 @@ ActiveRecord::Schema.define(version: 20190607160900) do t.index ["related_content_id"], name: "opposite_related_content", using: :btree end + create_table "remote_translations", force: :cascade do |t| + t.string "locale" + t.integer "remote_translatable_id" + t.string "remote_translatable_type" + t.text "error_message" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + create_table "reports", force: :cascade do |t| t.boolean "stats" t.boolean "results" diff --git a/spec/factories/remote_translations.rb b/spec/factories/remote_translations.rb new file mode 100644 index 000000000..59aacb379 --- /dev/null +++ b/spec/factories/remote_translations.rb @@ -0,0 +1,5 @@ +FactoryBot.define do + factory :remote_translation do + association :remote_translatable, factory: :debate + end +end diff --git a/spec/models/remote_translation_spec.rb b/spec/models/remote_translation_spec.rb new file mode 100644 index 000000000..e1a8e3616 --- /dev/null +++ b/spec/models/remote_translation_spec.rb @@ -0,0 +1,32 @@ +require "rails_helper" + +describe RemoteTranslation do + + let(:remote_translation) { build(:remote_translation, locale: :es) } + + it "is valid" do + expect(remote_translation).to be_valid + end + + it "is valid without error_message" do + remote_translation.error_message = nil + expect(remote_translation).to be_valid + end + + it "is not valid without to" do + remote_translation.locale = nil + expect(remote_translation).not_to be_valid + end + + it "is not valid without a remote_translatable_id" do + remote_translation.remote_translatable_id = nil + expect(remote_translation).not_to be_valid + end + + it "is not valid without a remote_translatable_type" do + remote_translation.remote_translatable_type = nil + expect(remote_translation).not_to be_valid + end + end + +end