diff options
| author | Zog | 2018-04-30 07:12:49 +0200 |
|---|---|---|
| committer | Zog | 2018-05-07 15:03:07 +0200 |
| commit | 657fea85b193fb9908dcaa42391bec230e93d857 (patch) | |
| tree | a14caaca05bdd7a500a765ca768c15986b7fd740 /app | |
| parent | 42ac1fa61ea79fe612bcd98f2b38bad5b6f24421 (diff) | |
| download | chouette-core-657fea85b193fb9908dcaa42391bec230e93d857.tar.bz2 | |
Fix NETEX imports
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/import/base.rb | 1 | ||||
| -rw-r--r-- | app/models/import/gtfs.rb | 3 | ||||
| -rw-r--r-- | app/models/import/netex.rb | 7 | ||||
| -rw-r--r-- | app/views/imports/import/_netex.html.slim | 43 | ||||
| -rw-r--r-- | app/views/imports/import/_workbench.html.slim | 51 | ||||
| -rw-r--r-- | app/views/imports/show.html.slim | 52 |
6 files changed, 101 insertions, 56 deletions
diff --git a/app/models/import/base.rb b/app/models/import/base.rb index 333fb0f56..606c39974 100644 --- a/app/models/import/base.rb +++ b/app/models/import/base.rb @@ -44,6 +44,7 @@ class Import::Base < ApplicationModel end def aborted! + Rails.logger.info "=== aborted ===" update status: :aborted end diff --git a/app/models/import/gtfs.rb b/app/models/import/gtfs.rb index e1bac36a6..4f0dde9d1 100644 --- a/app/models/import/gtfs.rb +++ b/app/models/import/gtfs.rb @@ -28,10 +28,11 @@ class Import::Gtfs < Import::Base import_without_status update status: 'successful', ended_at: Time.now - referential&.ready! + referential&.active! rescue Exception => e update status: 'failed', ended_at: Time.now Rails.logger.error "Error in GTFS import: #{e} #{e.backtrace.join('\n')}" + create_message criticity: :error, message_key: :full_text, message_attributes: {text: e.message} referential&.failed! ensure notify_parent diff --git a/app/models/import/netex.rb b/app/models/import/netex.rb index e27f1a34c..f64a18e98 100644 --- a/app/models/import/netex.rb +++ b/app/models/import/netex.rb @@ -2,15 +2,12 @@ require 'net/http' class Import::Netex < Import::Base before_destroy :destroy_non_ready_referential - after_commit :call_iev_callback, on: :create - after_commit do main_resource.update_status_from_importer self.status true end before_save do - self.status = 'aborted' unless referential self.referential&.failed! if self.status == 'aborted' || self.status == 'failed' end @@ -47,7 +44,7 @@ class Import::Netex < Import::Base save! else Rails.logger.info "Can't create referential for import #{self.id}: #{referential.inspect} #{referential.metadatas.inspect} #{referential.errors.messages}" - aborted! + if referential.metadatas.all?{|m| m.line_ids.empty? && m.line_ids.empty?} create_message criticity: :error, message_key: "referential_creation_missing_lines", message_attributes: {referential_name: referential.name} elsif (overlapped_referential_ids = referential.overlapped_referential_ids).any? @@ -69,6 +66,8 @@ class Import::Netex < Import::Base resource_attributes: referential.errors.messages ) end + self.referential = nil + aborted! end end diff --git a/app/views/imports/import/_netex.html.slim b/app/views/imports/import/_netex.html.slim new file mode 100644 index 000000000..5542e389f --- /dev/null +++ b/app/views/imports/import/_netex.html.slim @@ -0,0 +1,43 @@ +.row + .col-lg-6.col-md-6.col-sm-12.col-xs-12 + - metadata = { t('.parent') => link_to(@import.parent.name, [@import.parent.workbench, @import.parent]) } + - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) + = definition_list t('metadatas'), metadata + +.col-lg-12 + .error_messages + = render 'shared/iev_interfaces/messages', messages: @import.main_resource.messages + +- if @import.resources.present? + .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' , \ + attribute: Proc.new { |n| I18n.t('import_resources.index.metrics', n.metrics.deep_symbolize_keys) }, \ + sortable: false, \ + ), \ + TableBuilderHelper::Column.new( \ + name: 'Téléchargement' , \ + attribute: Proc.new { |n| '<i class="fa fa-download" aria-hidden="true"></i>'.html_safe }, \ + sortable: false, \ + link_to: lambda do |import_resource| \ + workbench_import_import_resource_import_messages_path(import_resource.import.workbench, import_resource.import, import_resource, format: 'csv' ) \ + end \ + ), \ + ], + cls: 'table has-search' diff --git a/app/views/imports/import/_workbench.html.slim b/app/views/imports/import/_workbench.html.slim new file mode 100644 index 000000000..d384cbbe2 --- /dev/null +++ b/app/views/imports/import/_workbench.html.slim @@ -0,0 +1,51 @@ +.row + .col-lg-6.col-md-6.col-sm-12.col-xs-12 + - metadata = { t('.data_recovery') => '-', t('.filename') => @import.try(:file_identifier)} + - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) + = definition_list t('metadatas'), metadata + +.col-lg-12 + .error_messages + = render 'shared/iev_interfaces/messages', messages: @import.messages + +- if @import.resources.any? + .col-lg-12 + = table_builder_2 @import.resources, + [ \ + TableBuilderHelper::Column.new( \ + name: t('.referential_name'), \ + attribute: 'name', \ + sortable: false, \ + link_to: lambda do |item| \ + referential_path(item.referential) if item.referential.present? \ + end \ + ), \ + TableBuilderHelper::Column.new( \ + key: :status, \ + attribute: Proc.new { |n| import_status(n.status) }, \ + sortable: false, \ + link_to: lambda do |item| \ + item.netex_import.present? ? [@import.workbench, item.netex_import] : [@import.workbench, @import, item] \ + end \ + ), \ + TableBuilderHelper::Column.new( \ + name: t('.stif_control'), \ + attribute: '', \ + sortable: false, \ + ), \ + TableBuilderHelper::Column.new( \ + name: t('.organisation_control'), \ + attribute: '', \ + sortable: false, \ + ) \ + ], + cls: 'table', + overhead: [ \ + {}, \ + {}, \ + { \ + title: I18n.t('imports.show.summary').html_safe, \ + width: 2, \ + cls: 'overheaded-default colspan="2"' \ + } \ + ] diff --git a/app/views/imports/show.html.slim b/app/views/imports/show.html.slim index 99458c7fe..10552129d 100644 --- a/app/views/imports/show.html.slim +++ b/app/views/imports/show.html.slim @@ -4,54 +4,4 @@ .page_content .container-fluid - .row - .col-lg-6.col-md-6.col-sm-12.col-xs-12 - - metadata = { t('.data_recovery') => '-', t('.filename') => @import.try(:file_identifier)} - - metadata = metadata.update({t('.status') => import_status(@import.status, verbose: true) }) - = definition_list t('metadatas'), metadata - - .col-lg-12 - .error_messages - = render 'shared/iev_interfaces/messages', messages: @import.messages - - - if @import.resources.any? - .col-lg-12 - = table_builder_2 @import.resources, - [ \ - TableBuilderHelper::Column.new( \ - name: t('.referential_name'), \ - attribute: 'name', \ - sortable: false, \ - link_to: lambda do |item| \ - referential_path(item.referential) if item.referential.present? \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - key: :status, \ - attribute: Proc.new { |n| import_status(n.status) }, \ - sortable: false, \ - link_to: lambda do |item| \ - workbench_import_import_resource_path(@import.workbench_id, @import, item) \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - name: t('.stif_control'), \ - attribute: '', \ - sortable: false, \ - ), \ - TableBuilderHelper::Column.new( \ - name: t('.organisation_control'), \ - attribute: '', \ - sortable: false, \ - ) \ - ], - cls: 'table', - overhead: [ \ - {}, \ - {}, \ - { \ - title: I18n.t('imports.show.summary').html_safe, \ - width: 2, \ - cls: 'overheaded-default colspan="2"' \ - } \ - ] + = render partial: "imports/#{@import.type.tableize.singularize}" |
