From dd38aa3da27bf3508c00a92b3dd7c3a4deb043f4 Mon Sep 17 00:00:00 2001 From: cedricnjanga Date: Thu, 19 Apr 2018 23:55:12 -0700 Subject: Refs #6306 Add I18n to CSV export columns --- app/models/compliance_check_message_export.rb | 2 +- app/models/import/message_export.rb | 2 +- config/locales/compliance_check_messages.en.yml | 8 ++++++++ config/locales/compliance_check_messages.fr.yml | 8 ++++++++ config/locales/compliance_checks.en.yml | 3 +++ config/locales/compliance_checks.fr.yml | 2 +- config/locales/import_messages.en.yml | 11 ++++++++++- config/locales/import_messages.fr.yml | 9 +++++++++ 8 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/models/compliance_check_message_export.rb b/app/models/compliance_check_message_export.rb index bbaaa8e3f..9b7f90fac 100644 --- a/app/models/compliance_check_message_export.rb +++ b/app/models/compliance_check_message_export.rb @@ -22,7 +22,7 @@ class ComplianceCheckMessageExport end def column_names - ["criticity", "message key", "resource objectid", "link", "message"] + ["criticity", "message_key", "resource_objectid", "link", "message"].map {|c| ComplianceCheckMessage.tmf(c)} end def to_csv(options = {}) diff --git a/app/models/import/message_export.rb b/app/models/import/message_export.rb index 7a7add08c..7d03783ed 100644 --- a/app/models/import/message_export.rb +++ b/app/models/import/message_export.rb @@ -22,7 +22,7 @@ class Import::MessageExport end def column_names - ["criticity", "message key", "message", "file name", "line", "column"] + ["criticity", "message_key", "message", "filename", "line", "column"].map {|c| Import::Message.tmf(c)} end def to_csv(options = {}) diff --git a/config/locales/compliance_check_messages.en.yml b/config/locales/compliance_check_messages.en.yml index 88841f308..ade4329a2 100644 --- a/config/locales/compliance_check_messages.en.yml +++ b/config/locales/compliance_check_messages.en.yml @@ -30,3 +30,11 @@ en: 3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}" 3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections" + activerecord: + attributes: + compliance_check_message: + criticity: Criticity + message_key: Message key + resource_objectid: Resource objectid + link: Link + message: Message \ No newline at end of file diff --git a/config/locales/compliance_check_messages.fr.yml b/config/locales/compliance_check_messages.fr.yml index 167ef411a..21f100f46 100644 --- a/config/locales/compliance_check_messages.fr.yml +++ b/config/locales/compliance_check_messages.fr.yml @@ -30,3 +30,11 @@ fr: 3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}" 3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections" + activerecord: + attributes: + compliance_check_message: + criticity: Criticité + message_key: Clé du message + resource_objectid: Objectid de la resource + link: Lien + message: Message \ No newline at end of file diff --git a/config/locales/compliance_checks.en.yml b/config/locales/compliance_checks.en.yml index f960755da..679a136f0 100644 --- a/config/locales/compliance_checks.en.yml +++ b/config/locales/compliance_checks.en.yml @@ -3,6 +3,9 @@ en: attributes: compliance_check: code: Code + name: Name + comment: Comment + criticity: Criticity compliance_checks: filters: subclass: Object diff --git a/config/locales/compliance_checks.fr.yml b/config/locales/compliance_checks.fr.yml index 041ab4f43..650062cbe 100644 --- a/config/locales/compliance_checks.fr.yml +++ b/config/locales/compliance_checks.fr.yml @@ -4,8 +4,8 @@ fr: compliance_check: code: Code name: Nom - criticity: Criticité comment: Commentaire + criticity: Criticité compliance_checks: filters: subclass: Objet diff --git a/config/locales/import_messages.en.yml b/config/locales/import_messages.en.yml index 9f370d319..3ed98aaa6 100644 --- a/config/locales/import_messages.en.yml +++ b/config/locales/import_messages.en.yml @@ -1,5 +1,5 @@ en: - import_message: + import_messages: corrupt_zip_file: "The zip file %{source_filename} is corrupted and cannot be read" inconsistent_zip_file: "The zip file %{source_filename} contains unexpected directories: %{spurious_dirs}, which are ignored" missing_calendar_in_zip_file: "The folder %{source_filename} lacks a calendar file" @@ -54,3 +54,12 @@ en: 2_netexstif_servicejourneypattern_3_1: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} n'a pas de valeur pour l'attribut ServiceJourneyPatternType" 2_netexstif_servicejourneypattern_3_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} a une valeur interdite %{error_value} pour l'attribut ServiceJourneyPatternType différente de 'passenger'" 2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants." + activerecord: + attributes: + import_message: + criticity: Criticity + message_key: Message key + message: Message + filename: Filename + line: Line + column: Column diff --git a/config/locales/import_messages.fr.yml b/config/locales/import_messages.fr.yml index 5ecef68d1..a7de99a6c 100644 --- a/config/locales/import_messages.fr.yml +++ b/config/locales/import_messages.fr.yml @@ -54,3 +54,12 @@ fr: 2_netexstif_servicejourneypattern_3_1: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} n'a pas de valeur pour l'attribut ServiceJourneyPatternType" 2_netexstif_servicejourneypattern_3_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} a une valeur interdite %{error_value} pour l'attribut ServiceJourneyPatternType différente de 'passenger'" 2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants." + activerecord: + attributes: + import_message: + criticity: Criticité + message_key: Clé du message + message: Message + filename: Nom du fichier + line: Ligne + column: Colomne \ No newline at end of file -- cgit v1.2.3 From 02c4483c1d0d763af8c7dd44335577f60d43cc40 Mon Sep 17 00:00:00 2001 From: Luc Donnet Date: Sat, 21 Apr 2018 16:06:17 +0200 Subject: Fix i18n for column in import_messages.fr.yml Refs #6306 --- config/locales/import_messages.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/import_messages.fr.yml b/config/locales/import_messages.fr.yml index a7de99a6c..5d82b9125 100644 --- a/config/locales/import_messages.fr.yml +++ b/config/locales/import_messages.fr.yml @@ -62,4 +62,4 @@ fr: message: Message filename: Nom du fichier line: Ligne - column: Colomne \ No newline at end of file + column: Colonne -- cgit v1.2.3 From 2fdcaca3a0302d35aa007c3dd309fb42a3c7e536 Mon Sep 17 00:00:00 2001 From: Luc Donnet Date: Sat, 21 Apr 2018 16:37:32 +0200 Subject: Fix views spec for line_referential and stop_area referential synchronization Refs #6306 @1 --- .../features/line_referentials_permissions_spec.rb | 30 ++++++++++++++++++++++ .../stop_area_referentials_permissions_spec.rb | 30 ++++++++++++++++++++++ spec/policies/sto_area_referential_policy_spec.rb | 9 ------- spec/policies/stop_area_referential_policy_spec.rb | 9 +++++++ 4 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 spec/features/line_referentials_permissions_spec.rb create mode 100644 spec/features/stop_area_referentials_permissions_spec.rb delete mode 100644 spec/policies/sto_area_referential_policy_spec.rb create mode 100644 spec/policies/stop_area_referential_policy_spec.rb diff --git a/spec/features/line_referentials_permissions_spec.rb b/spec/features/line_referentials_permissions_spec.rb new file mode 100644 index 000000000..845ffe9c1 --- /dev/null +++ b/spec/features/line_referentials_permissions_spec.rb @@ -0,0 +1,30 @@ +RSpec.describe 'LineReferentials', type: :feature do + login_user + + let(:line_referential) { first_workgroup.line_referential } + + describe 'permissions' do + before do + allow_any_instance_of(LineReferentialPolicy).to receive(:synchronize?).and_return permission + visit path + end + + context 'on show view' do + let( :path ){ line_referential_path(line_referential.id) } + + context 'if present → ' do + let( :permission ){ true } + it 'shows an edit button' do + expect(page).to have_css('a.btn.btn-default', text: I18n.t('actions.sync')) + end + end + + context 'if absent → ' do + let( :permission ){ false } + it 'does not show any edit button' do + expect(page).not_to have_css('a.btn.btn-default', text: I18n.t('actions.sync')) + end + end + end + end +end diff --git a/spec/features/stop_area_referentials_permissions_spec.rb b/spec/features/stop_area_referentials_permissions_spec.rb new file mode 100644 index 000000000..ca7038d51 --- /dev/null +++ b/spec/features/stop_area_referentials_permissions_spec.rb @@ -0,0 +1,30 @@ +RSpec.describe 'StopAreaReferentials', type: :feature do + login_user + + let(:stop_area_referential) { first_workgroup.stop_area_referential } + + describe 'permissions' do + before do + allow_any_instance_of(StopAreaReferentialPolicy).to receive(:synchronize?).and_return permission + visit path + end + + context 'on show view' do + let( :path ){ stop_area_referential_path(stop_area_referential.id) } + + context 'if present → ' do + let( :permission ){ true } + it 'shows an edit button' do + expect(page).to have_css('a.btn.btn-default', text: I18n.t('actions.sync')) + end + end + + context 'if absent → ' do + let( :permission ){ false } + it 'does not show any edit button' do + expect(page).not_to have_css('a.btn.btn-default', text: I18n.t('actions.sync')) + end + end + end + end +end diff --git a/spec/policies/sto_area_referential_policy_spec.rb b/spec/policies/sto_area_referential_policy_spec.rb deleted file mode 100644 index 5bd6da427..000000000 --- a/spec/policies/sto_area_referential_policy_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -RSpec.describe StopAreaReferentialPolicy, type: :policy do - - let( :record ){ build_stubbed :stop_area_referential } - before { stub_policy_scope(record) } - - permissions :synchronize? do - it_behaves_like 'permitted policy', 'stop_area_referentials.synchronize' - end -end diff --git a/spec/policies/stop_area_referential_policy_spec.rb b/spec/policies/stop_area_referential_policy_spec.rb new file mode 100644 index 000000000..5bd6da427 --- /dev/null +++ b/spec/policies/stop_area_referential_policy_spec.rb @@ -0,0 +1,9 @@ +RSpec.describe StopAreaReferentialPolicy, type: :policy do + + let( :record ){ build_stubbed :stop_area_referential } + before { stub_policy_scope(record) } + + permissions :synchronize? do + it_behaves_like 'permitted policy', 'stop_area_referentials.synchronize' + end +end -- cgit v1.2.3 From c93e050debe52243a927b491aa1ce7c93c8dd03b Mon Sep 17 00:00:00 2001 From: Luc Donnet Date: Sun, 22 Apr 2018 16:12:37 +0200 Subject: Fix netex import launch because referential is created after the netex import and java call Refs #6645 @1 --- app/controllers/api/v1/netex_imports_controller.rb | 3 +-- app/models/import/netex.rb | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index 186ddc35c..2c9caf8fb 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -31,8 +31,7 @@ module Api def create_netex_import attributes = netex_import_params.merge creator: "Webservice" @netex_import = Import::Netex.new attributes - @netex_import.save! - @netex_import.create_referential! + @netex_import.create_with_referential! rescue ActiveRecord::RecordInvalid render json: {errors: @netex_import.errors}, status: 406 finish_action! diff --git a/app/models/import/netex.rb b/app/models/import/netex.rb index 93604c5f9..7b15859fa 100644 --- a/app/models/import/netex.rb +++ b/app/models/import/netex.rb @@ -10,7 +10,7 @@ class Import::Netex < Import::Base validates_presence_of :parent - def create_referential! + def create_with_referential! self.referential = Referential.new( name: self.name, @@ -19,15 +19,16 @@ class Import::Netex < Import::Base metadatas: [referential_metadata] ) self.referential.save - unless self.referential.valid? + if self.referential.invalid? Rails.logger.info "Can't create referential for import #{self.id}: #{referential.inspect} #{referential.metadatas.inspect} #{referential.errors.messages}" if referential.metadatas.all?{|m| m.line_ids.empty?} parent.messages.create criticity: :error, message_key: "referential_creation_missing_lines", message_attributes: {referential_name: referential.name} else parent.messages.create criticity: :error, message_key: "referential_creation", message_attributes: {referential_name: referential.name} end + else + save! end - save! end private -- cgit v1.2.3 From 8912201291976a78e77bcc38cea3843a8f95a666 Mon Sep 17 00:00:00 2001 From: Luc Donnet Date: Sun, 22 Apr 2018 21:09:25 +0200 Subject: Fix api v1 netex import spec Refs #6645 @1 --- app/models/import/netex.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/import/netex.rb b/app/models/import/netex.rb index 7b15859fa..eae84c1f7 100644 --- a/app/models/import/netex.rb +++ b/app/models/import/netex.rb @@ -46,7 +46,7 @@ class Import::Netex < Import::Base def referential_metadata metadata = ReferentialMetadata.new - if self.file + if self.file && self.file.path netex_file = STIF::NetexFile.new(self.file.path) frame = netex_file.frames.first -- cgit v1.2.3