aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorLuc Donnet2017-09-04 11:09:23 +0200
committerLuc Donnet2017-09-04 11:09:23 +0200
commitdd3ec3c6090b05a0a910b278f51ff7b5d8a92f02 (patch)
tree270e2e70a36989e9c7da8b3b56bd2391ca070afa /app
parented64dc517bca5f775631d999aa2e60f78d4dae30 (diff)
downloadchouette-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.rb40
-rw-r--r--app/decorators/import_resource_decorator.rb10
-rw-r--r--app/decorators/import_resources_decorator.rb12
-rw-r--r--app/helpers/import_resources_helper.rb15
-rw-r--r--app/helpers/imports_helper.rb18
-rw-r--r--app/helpers/newapplication_helper.rb14
-rw-r--r--app/models/import.rb5
-rw-r--r--app/models/import_message.rb2
-rw-r--r--app/models/import_resource.rb4
-rw-r--r--app/views/import_resources/index.html.slim54
-rw-r--r--app/views/imports/show.html.slim20
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: [],