diff options
| -rw-r--r-- | app/models/import_resource.rb | 5 | ||||
| -rw-r--r-- | config/locales/enumerize.en.yml | 6 | ||||
| -rw-r--r-- | config/locales/enumerize.fr.yml | 6 | ||||
| -rw-r--r-- | db/migrate/20170301170956_add_attributes_to_import_resource.rb | 8 | ||||
| -rw-r--r-- | db/schema.rb | 6 | ||||
| -rw-r--r-- | spec/models/import_resource_spec.rb | 6 |
6 files changed, 36 insertions, 1 deletions
diff --git a/app/models/import_resource.rb b/app/models/import_resource.rb index f140e1b36..3ddd325fd 100644 --- a/app/models/import_resource.rb +++ b/app/models/import_resource.rb @@ -2,6 +2,11 @@ class ImportResource < ActiveRecord::Base include AASM belongs_to :import + extend Enumerize + enumerize :status, in: %i(new pending successful failed) + + validates_presence_of :name, :type, :reference + aasm column: :status do state :new, :initial => true state :pending diff --git a/config/locales/enumerize.en.yml b/config/locales/enumerize.en.yml index 07f31d5f9..8857e593c 100644 --- a/config/locales/enumerize.en.yml +++ b/config/locales/enumerize.en.yml @@ -12,6 +12,12 @@ en: successful: Successful failed: Failed canceled: Canceled + import_resource: + status: + new: New + pending: Pending + successful: Successful + failed: Failed for_boarding: normal: "Regularly scheduled pickup" forbidden: "No pickup available" diff --git a/config/locales/enumerize.fr.yml b/config/locales/enumerize.fr.yml index 3e136d3ae..6ce7fd1cc 100644 --- a/config/locales/enumerize.fr.yml +++ b/config/locales/enumerize.fr.yml @@ -12,6 +12,12 @@ fr: successful: Réussi failed: Echoué canceled: Annulé + import_resource: + status: + new: Nouveau + pending: En file d'attente + successful: Réussi + failed: Echoué for_boarding: normal: "Montée autorisée" forbidden: "Montée interdite" diff --git a/db/migrate/20170301170956_add_attributes_to_import_resource.rb b/db/migrate/20170301170956_add_attributes_to_import_resource.rb new file mode 100644 index 000000000..b7da38d80 --- /dev/null +++ b/db/migrate/20170301170956_add_attributes_to_import_resource.rb @@ -0,0 +1,8 @@ +class AddAttributesToImportResource < ActiveRecord::Migration + def change + add_column :import_resources, :type, :string + add_column :import_resources, :reference, :string + add_column :import_resources, :name, :string + add_column :import_resources, :metrics, :hstore + end +end diff --git a/db/schema.rb b/db/schema.rb index 38afbe637..6ee6bb4ea 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170301165631) do +ActiveRecord::Schema.define(version: 20170301170956) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -262,6 +262,10 @@ ActiveRecord::Schema.define(version: 20170301165631) do t.string "status" t.datetime "created_at" t.datetime "updated_at" + t.string "type" + t.string "reference" + t.string "name" + t.hstore "metrics" end add_index "import_resources", ["import_id"], :name => "index_import_resources_on_import_id" diff --git a/spec/models/import_resource_spec.rb b/spec/models/import_resource_spec.rb index a2177979e..99d260b20 100644 --- a/spec/models/import_resource_spec.rb +++ b/spec/models/import_resource_spec.rb @@ -3,6 +3,12 @@ require 'rails_helper' RSpec.describe ImportResource, :type => :model do it { should belong_to(:import) } + it { should enumerize(:status).in(:new, :pending, :successful, :failed) } + + it { should validate_presence_of(:name) } + it { should validate_presence_of(:type) } + it { should validate_presence_of(:reference) } + describe 'states' do let(:import_resource) { create(:import_resource) } |
