diff options
| author | Luc Donnet | 2018-04-22 21:19:28 +0200 |
|---|---|---|
| committer | GitHub | 2018-04-22 21:19:28 +0200 |
| commit | 2ef9e2ba0a715f1af8521b1e3d9447aabcf8f6dd (patch) | |
| tree | 2f51a5c5ce77e5faa279c647d8bd392e532a6961 | |
| parent | 8eacb2238bb70f774f89d4cad4311725d826b2a0 (diff) | |
| parent | 8912201291976a78e77bcc38cea3843a8f95a666 (diff) | |
| download | chouette-core-2ef9e2ba0a715f1af8521b1e3d9447aabcf8f6dd.tar.bz2 | |
Merge pull request #507 from af83/6306-translation-in-csv-exports
Refs #6306 Add I18n to CSV export columns
| -rw-r--r-- | app/controllers/api/v1/netex_imports_controller.rb | 3 | ||||
| -rw-r--r-- | app/models/compliance_check_message_export.rb | 2 | ||||
| -rw-r--r-- | app/models/import/message_export.rb | 2 | ||||
| -rw-r--r-- | app/models/import/netex.rb | 9 | ||||
| -rw-r--r-- | config/locales/compliance_check_messages.en.yml | 8 | ||||
| -rw-r--r-- | config/locales/compliance_check_messages.fr.yml | 8 | ||||
| -rw-r--r-- | config/locales/compliance_checks.en.yml | 3 | ||||
| -rw-r--r-- | config/locales/compliance_checks.fr.yml | 2 | ||||
| -rw-r--r-- | config/locales/import_messages.en.yml | 11 | ||||
| -rw-r--r-- | config/locales/import_messages.fr.yml | 9 | ||||
| -rw-r--r-- | spec/features/line_referentials_permissions_spec.rb | 30 | ||||
| -rw-r--r-- | spec/features/stop_area_referentials_permissions_spec.rb | 30 | ||||
| -rw-r--r-- | spec/policies/stop_area_referential_policy_spec.rb (renamed from spec/policies/sto_area_referential_policy_spec.rb) | 0 |
13 files changed, 107 insertions, 10 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/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/app/models/import/netex.rb b/app/models/import/netex.rb index 93604c5f9..eae84c1f7 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 @@ -45,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 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..5d82b9125 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: Colonne 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/stop_area_referential_policy_spec.rb index 5bd6da427..5bd6da427 100644 --- a/spec/policies/sto_area_referential_policy_spec.rb +++ b/spec/policies/stop_area_referential_policy_spec.rb |
