Add local census importations controller

This commit is contained in:
Senén Rodero Rodríguez
2019-05-16 11:45:04 +02:00
committed by Javi Martín
parent 615bfadca8
commit 9b5f5e653a
13 changed files with 151 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
class Admin::LocalCensusRecords::BaseController < Admin::BaseController
helper_method :namespace
private
def namespace
"admin"
end
end

View File

@@ -0,0 +1,21 @@
class Admin::LocalCensusRecords::ImportsController < Admin::LocalCensusRecords::BaseController
load_and_authorize_resource class: "LocalCensusRecords::Import"
def create
@import = LocalCensusRecords::Import.new(local_census_records_import_params)
if @import.save
flash.now[:notice] = t("admin.local_census_records.imports.create.notice")
render :show
else
render :new
end
end
private
def local_census_records_import_params
return {} unless params[:local_census_records_import].present?
params.require(:local_census_records_import).permit(:file)
end
end

View File

@@ -0,0 +1,9 @@
module Admin::LocalCensusRecords::ImportsHelper
def errors_for(resource, field)
if resource.errors.include? field
content_tag :div, class: "error" do
resource.errors[field].join(", ")
end
end
end
end

View File

@@ -0,0 +1,9 @@
<%= form_for [:admin, @import] do |f| %>
<%= render "shared/errors", resource: @import %>
<%= f.file_field :file %>
<div class="small-12 medium-4 large-2 margin-top">
<%= f.submit(class: "button success expanded", value: t("shared.save")) %>
</div>
<% end %>

View File

@@ -0,0 +1,18 @@
<tr id="<%= dom_id(local_census_record) %>" class="local-census-record">
<td>
<%= local_census_record.document_type %>
<%= errors_for local_census_record, :document_type %>
</td>
<td>
<%= local_census_record.document_number %>
<%= errors_for local_census_record, :document_number %>
</td>
<td>
<%= l local_census_record.date_of_birth if local_census_record.date_of_birth.present? %>
<%= errors_for local_census_record, :date_of_birth %>
</td>
<td>
<%= local_census_record.postal_code %>
<%= errors_for local_census_record, :postal_code %>
</td>
</tr>

View File

@@ -0,0 +1,25 @@
<h4><%= title %> (<%= local_census_records.any? ? local_census_records.size : 0 %>)</h4>
<table id="<%= id %>" class="table table-striped">
<thead>
<tr>
<th><%= t("activerecord.attributes.local_census_record.document_type") %></th>
<th><%= t("activerecord.attributes.local_census_record.document_number") %></th>
<th><%= t("activerecord.attributes.local_census_record.date_of_birth") %></th>
<th><%= t("activerecord.attributes.local_census_record.postal_code") %></th>
</tr>
</thead>
<tbody>
<% if local_census_records.any? %>
<% local_census_records.each do |local_census_record| %>
<%= render "local_census_record", local_census_record: local_census_record %>
<% end %>
<% else %>
<tr>
<td colspan="4" style="width: 100% !important;">
<%= t("admin.local_census_records.imports.local_census_records.no_records_found") %>
</td>
</tr>
<% end %>
</tbody>
</table>

View File

@@ -0,0 +1,7 @@
<%= back_link_to admin_local_census_records_path %>
<h2><%= t("admin.local_census_records.imports.new.title") %></h2>
<h3><%= t("admin.local_census_records.imports.new.subtitle") %></h3>
<%= render "form" %>

View File

@@ -0,0 +1,19 @@
<%= back_link_to(admin_local_census_records_path, text = t("shared.back")) %>
<br>
<h2 class="inline-block"><%= t("admin.local_census_records.imports.show.title") %></h2>
<%= link_to t("admin.local_census_records.imports.show.import"),
new_admin_local_census_records_import_path,
class: "button float-right hollow" %>
<h3><%= t("admin.local_census_records.imports.show.subtitle") %></h3>
<%= render partial: "local_census_records", locals: {
title: t("admin.local_census_records.imports.show.errored"),
id: "invalid-local-census-records",
local_census_records: @import.invalid_records } %>
<%= render partial: "local_census_records", locals: {
title: t("admin.local_census_records.imports.show.created"),
id: "created-local-census-records",
local_census_records: @import.created_records } %>

View File

@@ -1688,3 +1688,17 @@ en:
notice: Local census record updated successfully!
destroy:
notice: Local census record removed successfully!
imports:
new:
title: Local census records
subtitle: Import CSV file
create:
notice: Local census records import process executed successfully!
show:
title: Manage local census
subtitle: Import process results
import: Import again
errored: Errored rows
created: Created records
local_census_records:
no_records_found: No records found.

View File

@@ -198,6 +198,7 @@ en:
topic: Topic
image: Image
local_census_record: Local Census Record
local_census_records/import: Local Census Records Import
geozones:
none: All city
layouts:

View File

@@ -1686,3 +1686,17 @@ es:
notice: ¡Registro del censo local actualizado correctamente!
destroy:
notice: ¡Registro del censo local eliminado correctamente!
imports:
new:
title: Registros del censo local
subtitle: Importar archivo CSV
create:
notice: ¡Proceso de import de registros del censo local ejecutado correctamente!
show:
title: Gestionar censo local
subtitle: Resultados del proceso de importación
import: Importar otro fichero
errored: Filas erróneas
created: Registros creados
local_census_records:
no_records_found: No se han encontrado registros.

View File

@@ -198,6 +198,7 @@ es:
topic: Tema
image: Imagen
local_census_record: el registro del censo local
local_census_records/import: la importación de registros del censo local
geozones:
none: Toda la ciudad
layouts:

View File

@@ -257,4 +257,7 @@ namespace :admin do
get "/change_log/:id", to: "budget_investments#show_investment_log", as: "change_log"
resources :local_census_records
namespace :local_census_records do
resources :imports, only: [:new, :create, :show]
end
end