diff --git a/app/models/local_census_record.rb b/app/models/local_census_record.rb
index 71ead77a7..fad2bfeb3 100644
--- a/app/models/local_census_record.rb
+++ b/app/models/local_census_record.rb
@@ -3,6 +3,7 @@ class LocalCensusRecord < ApplicationRecord
validates :document_number, presence: true
validates :document_type, presence: true
+ validates :document_type, inclusion: { in: ["1", "2", "3"], allow_blank: true }
validates :date_of_birth, presence: true
validates :postal_code, presence: true
validates :document_number, uniqueness: { scope: :document_type }
diff --git a/app/views/admin/local_census_records/_form.html.erb b/app/views/admin/local_census_records/_form.html.erb
index 046814aab..c84bb997c 100644
--- a/app/views/admin/local_census_records/_form.html.erb
+++ b/app/views/admin/local_census_records/_form.html.erb
@@ -3,7 +3,7 @@
|
- <%= local_census_record.document_type %>
+ <%= humanize_document_type(local_census_record.document_type) %>
|
<%= local_census_record.document_number %>
diff --git a/config/locales/en/activerecord.yml b/config/locales/en/activerecord.yml
index e4acbae92..aae364b39 100644
--- a/config/locales/en/activerecord.yml
+++ b/config/locales/en/activerecord.yml
@@ -514,6 +514,10 @@ en:
invalid_date_range: must be on or after the draft start date
allegations_end_date:
invalid_date_range: must be on or after the comments start date
+ local_census_record:
+ attributes:
+ document_type:
+ inclusion: is not included in the list, allowed values are 1 for DNI, 2 for passport and 3 for residence card.
proposal:
attributes:
tag_list:
diff --git a/config/locales/es/activerecord.yml b/config/locales/es/activerecord.yml
index 69c5f1956..5a3ed55cf 100644
--- a/config/locales/es/activerecord.yml
+++ b/config/locales/es/activerecord.yml
@@ -516,6 +516,10 @@ es:
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio del borrador
allegations_end_date:
invalid_date_range: tiene que ser igual o posterior a la fecha de inicio de los comentarios
+ local_census_record:
+ attributes:
+ document_type:
+ inclusion: no está incluido en la lista, los valores permitidos son 1 para DNI, 2 para pasaporte y 3 para tarjeta de residencia.
proposal:
attributes:
tag_list:
diff --git a/spec/features/admin/local_census_records/imports_spec.rb b/spec/features/admin/local_census_records/imports_spec.rb
index a45873189..62e92c43d 100644
--- a/spec/features/admin/local_census_records/imports_spec.rb
+++ b/spec/features/admin/local_census_records/imports_spec.rb
@@ -69,8 +69,8 @@ describe "Imports" do
click_button "Save"
end
- expect(page).to have_content "Errored rows (4)"
- expect(page).to have_selector("#invalid-local-census-records tbody tr", count: 4)
+ expect(page).to have_content "Errored rows (5)"
+ expect(page).to have_selector("#invalid-local-census-records tbody tr", count: 5)
end
scenario "Should show error messages inside cells at errored group" do
diff --git a/spec/features/admin/local_census_records_spec.rb b/spec/features/admin/local_census_records_spec.rb
index 6b137bb26..2ae2348c8 100644
--- a/spec/features/admin/local_census_records_spec.rb
+++ b/spec/features/admin/local_census_records_spec.rb
@@ -18,7 +18,7 @@ describe "Admin local census records" do
scenario "Should show existing local census records" do
visit admin_local_census_records_path
- expect(page).to have_content(local_census_record.document_type)
+ expect(page).to have_content("DNI")
expect(page).to have_content(local_census_record.document_number)
expect(page).to have_content(local_census_record.date_of_birth)
expect(page).to have_content(local_census_record.postal_code)
@@ -85,7 +85,7 @@ describe "Admin local census records" do
scenario "Should show successful notice after create valid record" do
visit new_admin_local_census_record_path
- fill_in :local_census_record_document_type, with: "DNI"
+ select "DNI", from: :local_census_record_document_type
fill_in :local_census_record_document_number, with: "#DOCUMENT"
select "1982", from: :local_census_record_date_of_birth_1i
select "July", from: :local_census_record_date_of_birth_2i
@@ -117,7 +117,7 @@ describe "Admin local census records" do
scenario "Should show successful notice after valid update" do
visit edit_admin_local_census_record_path(local_census_record)
- fill_in :local_census_record_document_type, with: "NIE"
+ select "Passport", from: :local_census_record_document_type
fill_in :local_census_record_document_number, with: "#NIE_NUMBER"
select "1982", from: :local_census_record_date_of_birth_1i
select "August", from: :local_census_record_date_of_birth_2i
@@ -126,7 +126,7 @@ describe "Admin local census records" do
click_on "Save"
expect(page).to have_content "Local census record updated successfully!"
- expect(page).to have_content "NIE"
+ expect(page).to have_content "Passport"
expect(page).to have_content "#NIE_NUMBER"
expect(page).to have_content "1982-08-08"
expect(page).to have_content "07007"
diff --git a/spec/fixtures/files/local_census_records/import/invalid.csv b/spec/fixtures/files/local_census_records/import/invalid.csv
index 29750d4a7..4341ad954 100644
--- a/spec/fixtures/files/local_census_records/import/invalid.csv
+++ b/spec/fixtures/files/local_census_records/import/invalid.csv
@@ -1,5 +1,6 @@
"document_type","document_number","date_of_birth","postal_code"
,"44556678T","07/08/1984",7008
-"DNI",,"07/08/1985",7009
-"Passport","22556678T",,7010
-"NIE","X11556678","07/08/1987",
+"1",,"07/08/1985",7009
+"2","22556678T",,7010
+"3","X11556678","07/08/1987",
+"DNI","Z11556678","07/08/1987",7011
diff --git a/spec/fixtures/files/local_census_records/import/valid.csv b/spec/fixtures/files/local_census_records/import/valid.csv
index 12cc4bfe8..148faad3f 100644
--- a/spec/fixtures/files/local_census_records/import/valid.csv
+++ b/spec/fixtures/files/local_census_records/import/valid.csv
@@ -1,5 +1,5 @@
"document_type","document_number","date_of_birth","postal_code"
-"DNI","44556678T","07/08/1984",7008
-"DNI","33556678T","07/08/1985",7008
-"DNI","22556678T","07/08/1986",7008
-"NIE","X11556678","07/08/1987",7008
+"1","44556678T","07/08/1984",7008
+"1","33556678T","07/08/1985",7008
+"1","22556678T","07/08/1986",7008
+"2","X11556678","07/08/1987",7008
diff --git a/spec/models/local_census_record_spec.rb b/spec/models/local_census_record_spec.rb
index 4f4beb854..4cf88a19e 100644
--- a/spec/models/local_census_record_spec.rb
+++ b/spec/models/local_census_record_spec.rb
@@ -20,6 +20,12 @@ describe LocalCensusRecord do
expect(local_census_record).not_to be_valid
end
+ it "is not valid when value is not included in allowed document types" do
+ local_census_record.document_type = "NIE"
+
+ expect(local_census_record).not_to be_valid
+ end
+
it "is not valid without date_of_birth" do
local_census_record.date_of_birth = nil
@@ -33,9 +39,9 @@ describe LocalCensusRecord do
end
it "is not valid when a record already exists with same document_number and document_type" do
- create(:local_census_record, document_number: "#DOC_NUMBER", document_type: "#DOC_TYPE")
+ create(:local_census_record, document_number: "#DOC_NUMBER", document_type: "1")
local_census_record = build(:local_census_record, document_number: "#DOC_NUMBER",
- document_type: "#DOC_TYPE")
+ document_type: "1")
expect(local_census_record).not_to be_valid
end
diff --git a/spec/models/local_census_records/import_spec.rb b/spec/models/local_census_records/import_spec.rb
index 301c6e16d..72761e2e5 100644
--- a/spec/models/local_census_records/import_spec.rb
+++ b/spec/models/local_census_records/import_spec.rb
@@ -49,7 +49,7 @@ describe LocalCensusRecords::Import do
local_census_record = LocalCensusRecord.find_by(document_number: "X11556678")
expect(local_census_record).not_to be_nil
- expect(local_census_record.document_type).to eq("NIE")
+ expect(local_census_record.document_type).to eq("2")
expect(local_census_record.document_number).to eq("X11556678")
expect(local_census_record.date_of_birth).to eq(Date.parse("07/08/1987"))
expect(local_census_record.postal_code).to eq("7008")
@@ -69,11 +69,11 @@ describe LocalCensusRecords::Import do
import.save!
- invalid_records_document_types = [nil, "DNI", "Passport", "NIE"]
- invalid_records_document_numbers = ["44556678T", nil, "22556678T", "X11556678"]
+ invalid_records_document_types = [nil, "1", "2", "3", "DNI"]
+ invalid_records_document_numbers = ["44556678T", nil, "22556678T", "X11556678", "Z11556678"]
invalid_records_date_of_births = [Date.parse("07/08/1984"), Date.parse("07/08/1985"), nil,
- Date.parse("07/08/1987")]
- invalid_records_postal_codes = ["7008", "7009", "7010", nil]
+ Date.parse("07/08/1987"), Date.parse("07/08/1987")]
+ invalid_records_postal_codes = ["7008", "7009", "7010", nil, "7011"]
expect(import.invalid_records.map(&:document_type))
.to eq(invalid_records_document_types)
expect(import.invalid_records.map(&:document_number))
|