diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss
index c65fbe03c..b7e0265dc 100644
--- a/app/assets/stylesheets/layout.scss
+++ b/app/assets/stylesheets/layout.scss
@@ -24,6 +24,7 @@
// 22. Images
// 23. Maps
// 24. Homepage
+// 25. LocalCensusRecords
//
// 01. Global styles
@@ -2929,3 +2930,18 @@ table {
}
}
}
+
+// 25. Local Census Records
+// ------------------------
+
+.local-census-record-new,
+.local-census-record-edit {
+
+ .date-of-birth {
+ select {
+ float: left;
+ width: 30%;
+ margin-right: $line-height / 4;
+ }
+ }
+}
diff --git a/app/controllers/admin/local_census_records_controller.rb b/app/controllers/admin/local_census_records_controller.rb
index ded94c371..190b28d31 100644
--- a/app/controllers/admin/local_census_records_controller.rb
+++ b/app/controllers/admin/local_census_records_controller.rb
@@ -5,4 +5,21 @@ class Admin::LocalCensusRecordsController < Admin::BaseController
@local_census_records = @local_census_records.search(params[:search])
@local_census_records = @local_census_records.page(params[:page])
end
+
+ def create
+ @local_census_record = LocalCensusRecord.new(local_census_record_params)
+ if @local_census_record.save
+ redirect_to admin_local_census_records_path,
+ notice: t("admin.local_census_records.create.notice")
+ else
+ render :new
+ end
+ end
+
+ private
+
+ def local_census_record_params
+ attributes = [:document_type, :document_number, :date_of_birth, :postal_code]
+ params.require(:local_census_record).permit(*attributes)
+ end
end
diff --git a/app/views/admin/local_census_records/_form.html.erb b/app/views/admin/local_census_records/_form.html.erb
new file mode 100644
index 000000000..959b365cd
--- /dev/null
+++ b/app/views/admin/local_census_records/_form.html.erb
@@ -0,0 +1,37 @@
+<%= form_for [:admin, @local_census_record] do |f| %>
+ <%= render "shared/errors", resource: @local_census_record %>
+
+
+
+ <%= f.text_field :document_type %>
+
+
+
+
+
+ <%= f.text_field :document_number %>
+
+
+
+
+
+ <%= f.label :date_of_birth, t("admin.local_census_records.form.date_of_birth") %>
+
+ <%= f.date_select :date_of_birth,
+ prompt: true,
+ start_year: 1900, end_year: minimum_required_age.years.ago.year,
+ label: false %>
+
+
+
+
+
+
+ <%= f.text_field :postal_code %>
+
+
+
+
+ <%= f.submit(class: "button success expanded", value: t("shared.save")) %>
+
+<% end %>
diff --git a/app/views/admin/local_census_records/new.html.erb b/app/views/admin/local_census_records/new.html.erb
new file mode 100644
index 000000000..15e05b9d1
--- /dev/null
+++ b/app/views/admin/local_census_records/new.html.erb
@@ -0,0 +1,10 @@
+
+
+
+ <%= back_link_to admin_local_census_records_path %>
+
+
<%= t("admin.local_census_records.new.creating") %>
+
+ <%= render "form" %>
+
+
diff --git a/config/locales/en/activerecord.yml b/config/locales/en/activerecord.yml
index 576436da1..f63161e4b 100644
--- a/config/locales/en/activerecord.yml
+++ b/config/locales/en/activerecord.yml
@@ -125,6 +125,9 @@ en:
link:
one: Link
other: Links
+ local_census_record:
+ one: Local census record
+ other: Local census records
attributes:
budget:
name: "Name"
@@ -371,6 +374,11 @@ en:
valuator_group_id: Valuator group
can_comment: Can create comments
can_edit_dossier: Can edit dossiers
+ local_census_record:
+ document_type: Document type
+ document_number: Document number
+ date_of_birth: Date of birth
+ postal_code: Postal code
errors:
models:
user:
diff --git a/config/locales/en/admin.yml b/config/locales/en/admin.yml
index 531b8c43f..5d078a2e3 100644
--- a/config/locales/en/admin.yml
+++ b/config/locales/en/admin.yml
@@ -1676,6 +1676,8 @@ en:
search:
placeholder: Search by document number
search: Search
+ form:
+ date_of_birth: Date of birth
new:
creating: Creating new local census record
create:
diff --git a/config/locales/en/general.yml b/config/locales/en/general.yml
index db5333dd6..cd8e6f7e4 100644
--- a/config/locales/en/general.yml
+++ b/config/locales/en/general.yml
@@ -197,6 +197,7 @@ en:
document: Document
topic: Topic
image: Image
+ local_census_record: Local Census Record
geozones:
none: All city
layouts:
diff --git a/config/locales/es/activerecord.yml b/config/locales/es/activerecord.yml
index 7935a2b46..87f4b19be 100644
--- a/config/locales/es/activerecord.yml
+++ b/config/locales/es/activerecord.yml
@@ -125,6 +125,9 @@ es:
link:
one: Enlace
other: Enlaces
+ local_census_record:
+ one: Registro del censo local
+ other: Registros del censo local
attributes:
administrator:
description: Descripción
@@ -373,6 +376,11 @@ es:
valuator_group_id: Grupo de evaluación
can_comment: Puede comentar
can_edit_dossier: Puede editar informes
+ local_census_record:
+ document_type: Tipo de documento
+ document_number: Número de documento
+ date_of_birth: Fecha de nacimiento
+ postal_code: Código postal
errors:
models:
user:
diff --git a/config/locales/es/admin.yml b/config/locales/es/admin.yml
index 7982eb5ac..151a05196 100644
--- a/config/locales/es/admin.yml
+++ b/config/locales/es/admin.yml
@@ -1674,6 +1674,8 @@ es:
search:
placeholder: Búsqueda por número de documento
search: Buscar
+ form:
+ date_of_birth: Fecha de nacimiento
new:
creating: Creando nuevo registro de censo local
create:
diff --git a/config/locales/es/general.yml b/config/locales/es/general.yml
index 1671150ea..9491d0b84 100644
--- a/config/locales/es/general.yml
+++ b/config/locales/es/general.yml
@@ -197,6 +197,7 @@ es:
document: el documento
topic: Tema
image: Imagen
+ local_census_record: el registro del censo local
geozones:
none: Toda la ciudad
layouts:
diff --git a/spec/features/admin/local_census_records_spec.rb b/spec/features/admin/local_census_records_spec.rb
index 4eae4440b..1b646ea13 100644
--- a/spec/features/admin/local_census_records_spec.rb
+++ b/spec/features/admin/local_census_records_spec.rb
@@ -72,4 +72,33 @@ feature "Admin local census records" do
end
end
end
+
+ context "Create" do
+ scenario "Should show validation errors" do
+ visit new_admin_local_census_record_path
+
+ click_on "Save"
+
+ expect(page).to have_content "4 errors prevented this Local Census Record from being saved."
+ expect(page).to have_content "can't be blank", count: 4
+ end
+
+ 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"
+ 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
+ select "7" , from: :local_census_record_date_of_birth_3i
+ fill_in :local_census_record_postal_code, with: "07003"
+ click_on "Save"
+
+ expect(page).to have_content "New local census record created successfully!"
+ expect(page).to have_content "DNI"
+ expect(page).to have_content "#DOCUMENT"
+ expect(page).to have_content "1982-07-07"
+ expect(page).to have_content "07003"
+ end
+ end
end