diff options
| author | Luc Donnet | 2017-09-04 11:09:23 +0200 |
|---|---|---|
| committer | Luc Donnet | 2017-09-04 11:09:23 +0200 |
| commit | dd3ec3c6090b05a0a910b278f51ff7b5d8a92f02 (patch) | |
| tree | 270e2e70a36989e9c7da8b3b56bd2391ca070afa /app | |
| parent | ed64dc517bca5f775631d999aa2e60f78d4dae30 (diff) | |
| download | chouette-core-dd3ec3c6090b05a0a910b278f51ff7b5d8a92f02.tar.bz2 | |
Update workbench_import, netex_import and import_resources views Refs #4256 #4257 #4258
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/import_resources_controller.rb | 40 | ||||
| -rw-r--r-- | app/decorators/import_resource_decorator.rb | 10 | ||||
| -rw-r--r-- | app/decorators/import_resources_decorator.rb | 12 | ||||
| -rw-r--r-- | app/helpers/import_resources_helper.rb | 15 | ||||
| -rw-r--r-- | app/helpers/imports_helper.rb | 18 | ||||
| -rw-r--r-- | app/helpers/newapplication_helper.rb | 14 | ||||
| -rw-r--r-- | app/models/import.rb | 5 | ||||
| -rw-r--r-- | app/models/import_message.rb | 2 | ||||
| -rw-r--r-- | app/models/import_resource.rb | 4 | ||||
| -rw-r--r-- | app/views/import_resources/index.html.slim | 54 | ||||
| -rw-r--r-- | app/views/imports/show.html.slim | 20 |
11 files changed, 170 insertions, 24 deletions
diff --git a/app/controllers/import_resources_controller.rb b/app/controllers/import_resources_controller.rb new file mode 100644 index 000000000..ac3dd042e --- /dev/null +++ b/app/controllers/import_resources_controller.rb @@ -0,0 +1,40 @@ +class ImportResourcesController < BreadcrumbController + defaults resource_class: ImportResource, collection_name: 'import_resources', instance_name: 'import_resource' + respond_to :html + belongs_to :import + + def index + index! do |format| + format.html { + @import_resources = decorate_import_resources(@import_resources) + } + + build_breadcrumb :index + end + end + + def download + if params[:token] == resource.token_download + send_file resource.file.path + else + user_not_authorized + end + end + + protected + def collection + @import_resources ||= parent.resources + end + + private + + def decorate_import_resources(import_resources) + ImportResourcesDecorator.decorate( + import_resources, + with: ImportResourceDecorator, + context: { + import: @import + } + ) + end +end diff --git a/app/decorators/import_resource_decorator.rb b/app/decorators/import_resource_decorator.rb new file mode 100644 index 000000000..9bfd1f757 --- /dev/null +++ b/app/decorators/import_resource_decorator.rb @@ -0,0 +1,10 @@ +class ImportResourceDecorator < Draper::Decorator + decorates ImportResource + + delegate_all + + def action_links + links = [] + end + +end diff --git a/app/decorators/import_resources_decorator.rb b/app/decorators/import_resources_decorator.rb new file mode 100644 index 000000000..2b1a25ef9 --- /dev/null +++ b/app/decorators/import_resources_decorator.rb @@ -0,0 +1,12 @@ +class ImportResourcesDecorator < ModelDecorator + delegate :where + + def lines_imported + where(status: :OK, resource_type: :line).count + end + + def lines_in_zipfile + where(resource_type: :line).count + end + +end diff --git a/app/helpers/import_resources_helper.rb b/app/helpers/import_resources_helper.rb new file mode 100644 index 000000000..3ee96eb9b --- /dev/null +++ b/app/helpers/import_resources_helper.rb @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +module ImportResourcesHelper + + # Import statuses helper + def import_resource_status(status) + cls ='' + cls = 'success' if status == 'OK' + cls = 'warning' if status == 'WARNING' + cls = 'danger' if status == 'ERROR' + cls = 'alert' if status == 'IGNORED' + + content_tag :span, '', class: "fa fa-circle text-#{cls}" + end + +end diff --git a/app/helpers/imports_helper.rb b/app/helpers/imports_helper.rb index 5f9db3fb1..1c4549e50 100644 --- a/app/helpers/imports_helper.rb +++ b/app/helpers/imports_helper.rb @@ -1,6 +1,24 @@ # -*- coding: utf-8 -*- module ImportsHelper + # Import statuses helper + def import_status(status) + if %w[new running pending].include? status + content_tag :span, '', class: "fa fa-clock-o" + else + cls ='' + cls = 'success' if status == 'successful' + cls = 'warning' if status == 'warning' + cls = 'danger' if %w[failed aborted canceled].include? status + + content_tag :span, '', class: "fa fa-circle text-#{cls}" + end + end + + ############################## + # TO CLEAN!!! + ############################## + def fields_for_import_task_format(form) begin render :partial => import_partial_name(form), :locals => { :form => form } diff --git a/app/helpers/newapplication_helper.rb b/app/helpers/newapplication_helper.rb index e6a6f7e11..df19113db 100644 --- a/app/helpers/newapplication_helper.rb +++ b/app/helpers/newapplication_helper.rb @@ -287,18 +287,4 @@ module NewapplicationHelper end end - # Import statuses helper - def import_status(status) - if %w[new running pending].include? status - content_tag :span, '', class: "fa fa-clock-o" - else - cls ='' - cls = 'success' if status == 'successful' - cls = 'warning' if status == 'warning' - cls = 'danger' if %w[failed aborted canceled].include? status - - content_tag :span, '', class: "fa fa-circle text-#{cls}" - end - end - end diff --git a/app/models/import.rb b/app/models/import.rb index 939434e67..ff2f57efc 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -5,8 +5,9 @@ class Import < ActiveRecord::Base belongs_to :parent, polymorphic: true - has_many :messages, class_name: "ImportMessage" - has_many :children, foreign_key: :parent_id, class_name: "Import" + has_many :messages, class_name: "ImportMessage", dependent: :destroy + has_many :resources, class_name: "ImportResource", dependent: :destroy + has_many :children, foreign_key: :parent_id, class_name: "Import", dependent: :destroy extend Enumerize enumerize :status, in: %i(new pending successful warning failed running aborted canceled), scope: true diff --git a/app/models/import_message.rb b/app/models/import_message.rb index 5d0f5c862..913f6fd41 100644 --- a/app/models/import_message.rb +++ b/app/models/import_message.rb @@ -1,6 +1,6 @@ class ImportMessage < ActiveRecord::Base belongs_to :import - belongs_to :resource, class_name: ImportResource + belongs_to :resource, class_name: ImportResource, dependent: :destroy enum criticity: [:info, :warning, :error] validates :criticity, presence: true diff --git a/app/models/import_resource.rb b/app/models/import_resource.rb index 3ddd325fd..61c270aa2 100644 --- a/app/models/import_resource.rb +++ b/app/models/import_resource.rb @@ -3,9 +3,9 @@ class ImportResource < ActiveRecord::Base belongs_to :import extend Enumerize - enumerize :status, in: %i(new pending successful failed) + enumerize :status, in: %i(OK ERROR WARNING IGNORED), scope: true - validates_presence_of :name, :type, :reference + validates_presence_of :name, :resource_type, :reference aasm column: :status do state :new, :initial => true diff --git a/app/views/import_resources/index.html.slim b/app/views/import_resources/index.html.slim new file mode 100644 index 000000000..cf91f80f1 --- /dev/null +++ b/app/views/import_resources/index.html.slim @@ -0,0 +1,54 @@ +/ PageHeader += pageheader 'importer', + t('.title'), + '', + '', + '' + +/ PageContent +.page_content + .container-fluid + - if @import_resources.any? + .row + .col-lg-12 + = definition_list t('metadatas'),{ 'Bilan d\'import' => link_to(@import.parent.name, workbench_import_path(@import.parent.workbench, @import.parent) ), + 'Jeu de données associé' => ( @import.referential.present? ? link_to(@import.referential.name, referential_path(@import.referential)) : '-' ) } + + - if @import_resources.any? + .row + .col-lg-12 + h1 + span = import_status(@import.status) + span = t('.table_state', lines_imported: @import_resources.lines_imported , lines_in_zipfile: @import_resources.lines_in_zipfile ) + .col-lg-12 + h2 = t('.table_title') + .col-lg-12 + = t('.table_explanation') + .col-lg-12 + = table_builder_2 @import_resources.where(resource_type: :file), + [ \ + TableBuilderHelper::Column.new( \ + key: :name, \ + attribute: 'name', \ + sortable: false, \ + ), \ + TableBuilderHelper::Column.new( \ + key: :status, \ + attribute: Proc.new { |n| import_resource_status(n.status) }, \ + sortable: false, \ + ), \ + TableBuilderHelper::Column.new( \ + name: 'Résultat des tests' , \ + key: :resource_type, \ + attribute: 'resource_type', \ + sortable: false, \ + ), \ + TableBuilderHelper::Column.new( \ + name: 'Téléchargement' , \ + key: :status, \ + attribute: 'status', \ + sortable: false, \ + ), \ + ], + links: [], + cls: 'table has-search' diff --git a/app/views/imports/show.html.slim b/app/views/imports/show.html.slim index 5518e1a47..d5dcd9caf 100644 --- a/app/views/imports/show.html.slim +++ b/app/views/imports/show.html.slim @@ -26,20 +26,30 @@ = table_builder_2 @import.children, [ \ TableBuilderHelper::Column.new( \ - name: 'Nom du jeu de données', \ - attribute: 'name' \ + name: 'Nom du jeu de données', \ + attribute: 'name', \ + sortable: false, \ + link_to: lambda do |import| \ + referential_path(import.referential) \ + end \ ), \ TableBuilderHelper::Column.new( \ key: :status, \ - attribute: 'status' \ + attribute: Proc.new { |n| import_status(n.status) }, \ + sortable: false, \ + link_to: lambda do |import| \ + workbench_import_import_resources_path(import.workbench_id, import) \ + end \ ), \ TableBuilderHelper::Column.new( \ name: 'Contrôle STIF', \ - attribute: '' \ + attribute: '', \ + sortable: false, \ ), \ TableBuilderHelper::Column.new( \ name: 'Contrôle organisation', \ - attribute: '' \ + attribute: '', \ + sortable: false, \ ) \ ], links: [], |
