aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/import_resource.rb5
-rw-r--r--config/locales/enumerize.en.yml6
-rw-r--r--config/locales/enumerize.fr.yml6
-rw-r--r--db/migrate/20170301170956_add_attributes_to_import_resource.rb8
-rw-r--r--db/schema.rb6
-rw-r--r--spec/models/import_resource_spec.rb6
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) }