Add local census importations controller
This commit is contained in:
committed by
Javi Martín
parent
615bfadca8
commit
9b5f5e653a
@@ -0,0 +1,10 @@
|
||||
class Admin::LocalCensusRecords::BaseController < Admin::BaseController
|
||||
helper_method :namespace
|
||||
|
||||
private
|
||||
|
||||
def namespace
|
||||
"admin"
|
||||
end
|
||||
|
||||
end
|
||||
@@ -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
|
||||
9
app/helpers/admin/local_census_records/imports_helper.rb
Normal file
9
app/helpers/admin/local_census_records/imports_helper.rb
Normal 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
|
||||
@@ -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 %>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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" %>
|
||||
19
app/views/admin/local_census_records/imports/show.html.erb
Normal file
19
app/views/admin/local_census_records/imports/show.html.erb
Normal 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 } %>
|
||||
@@ -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.
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user