diff options
| author | cedricnjanga | 2017-12-07 16:49:06 +0100 |
|---|---|---|
| committer | cedricnjanga | 2018-01-12 14:56:34 +0100 |
| commit | 04e7d217a77e6b2c70a4a5994993bf0c0bbff08e (patch) | |
| tree | 9e375e9fdd1f50d734cc3893b265e9b5922280d4 /app/models | |
| parent | 216821cbc5410a1377dd57b09ee2753aee13e37c (diff) | |
| download | chouette-core-04e7d217a77e6b2c70a4a5994993bf0c0bbff08e.tar.bz2 | |
First draft for ComplianceCheckMessage & ImportMessage CSV exports
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/compliance_check_message_export.rb | 46 | ||||
| -rw-r--r-- | app/models/import_message_export.rb | 4 |
2 files changed, 48 insertions, 2 deletions
diff --git a/app/models/compliance_check_message_export.rb b/app/models/compliance_check_message_export.rb new file mode 100644 index 000000000..b3e3f80cf --- /dev/null +++ b/app/models/compliance_check_message_export.rb @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +require "csv" +require "zip" + +class ComplianceCheckMessageExport + include ActiveModel::Validations + include ActiveModel::Conversion + extend ActiveModel::Naming + + attr_accessor :compliance_check_messages + + def initialize(attributes = {}) + attributes.each { |name, value| send("#{name}=", value) } + end + + def persisted? + false + end + + def label(name) + I18n.t "vehicle_journey_exports.label.#{name}" + end + + def column_names + ["criticity", "message key", "message", "resource objectid"] + end + + def to_csv(options = {}) + CSV.generate(options) do |csv| + csv << column_names + compliance_check_messages.each do |compliance_check_message| + csv << [compliance_check_message.compliance_check.criticity, compliance_check_message.message_attributes[:test_id], I18n.t("compliance_check_messages.#{compliance_check_message.message_key}", compliance_check_message.message_attributes.deep_symbolize_keys), compliance_check_message.resource_attributes[:objectid] ] + end + end + end + + def to_zip(temp_file,options = {}) + ::Zip::OutputStream.open(temp_file) { |zos| } + ::Zip::File.open(temp_file.path, ::Zip::File::CREATE) do |zipfile| + zipfile.get_output_stream(label("vj_filename")+route.id.to_s+".csv") { |f| f.puts to_csv(options) } + zipfile.get_output_stream(label("tt_filename")+".csv") { |f| f.puts time_tables_to_csv(options) } + zipfile.get_output_stream(label("ftn_filename")+".csv") { |f| f.puts footnotes_to_csv(options) } + end + end + +end diff --git a/app/models/import_message_export.rb b/app/models/import_message_export.rb index 88d0f27e2..eeb6ebb18 100644 --- a/app/models/import_message_export.rb +++ b/app/models/import_message_export.rb @@ -22,14 +22,14 @@ class ImportMessageExport end def column_names - ["criticity", "message key", "message"] + ["criticity", "message key", "message", "file name", "line", "column"] end def to_csv(options = {}) CSV.generate(options) do |csv| csv << column_names import_messages.each do |import_message| - csv << [import_message.criticity, import_message.message_key, I18n.t("import_messages.compliance_check_messages.#{import_message.message_key}", import_message.message_attributes.deep_symbolize_keys) ] + csv << [import_message.criticity, import_message.message_key, I18n.t("import_messages.compliance_check_messages.#{import_message.message_key}", import_message.message_attributes.deep_symbolize_keys), *import_message.resource_attributes.values_at("filename", "line_number", "column_number") ] end end end |
