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