aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2018-04-22 21:19:28 +0200
committerGitHub2018-04-22 21:19:28 +0200
commit2ef9e2ba0a715f1af8521b1e3d9447aabcf8f6dd (patch)
tree2f51a5c5ce77e5faa279c647d8bd392e532a6961
parent8eacb2238bb70f774f89d4cad4311725d826b2a0 (diff)
parent8912201291976a78e77bcc38cea3843a8f95a666 (diff)
downloadchouette-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.rb3
-rw-r--r--app/models/compliance_check_message_export.rb2
-rw-r--r--app/models/import/message_export.rb2
-rw-r--r--app/models/import/netex.rb9
-rw-r--r--config/locales/compliance_check_messages.en.yml8
-rw-r--r--config/locales/compliance_check_messages.fr.yml8
-rw-r--r--config/locales/compliance_checks.en.yml3
-rw-r--r--config/locales/compliance_checks.fr.yml2
-rw-r--r--config/locales/import_messages.en.yml11
-rw-r--r--config/locales/import_messages.fr.yml9
-rw-r--r--spec/features/line_referentials_permissions_spec.rb30
-rw-r--r--spec/features/stop_area_referentials_permissions_spec.rb30
-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