From 5aa9c756697800276273fd60563b72fbed63ed61 Mon Sep 17 00:00:00 2001 From: JC Date: Mon, 14 Nov 2016 16:37:58 +0100 Subject: [PATCH] Ordering champs through export method, not through serializer --- app/models/dossier.rb | 30 +++++++++---------- .../dossier_procedure_serializer.rb | 7 ----- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/app/models/dossier.rb b/app/models/dossier.rb index f397c2bcb..8b81d8dca 100644 --- a/app/models/dossier.rb +++ b/app/models/dossier.rb @@ -331,26 +331,26 @@ class Dossier < ActiveRecord::Base end def data_with_champs - data = [] - serialized_dossier = DossierProcedureSerializer.new(self).as_json[:dossier_procedure] - champs = {} - serialized_dossier[:champs].each do |champ_hash| - champs[champ_hash[:type_de_champ]["libelle"].parameterize.underscore.to_sym] = champ_hash[:value] - end - binding.pry - dossier_data = serialized_dossier.except(:champs).merge(champs) - dossier_data = self.convert_specific_values_to_string(dossier_data) - return dossier_data.merge(self.export_entreprise_data) + serialized_dossier = DossierProcedureSerializer.new(self) + data = serialized_dossier.attributes.values + data += self.champs.order('type_de_champ_id ASC').map(&:value) + data += self.export_entreprise_data.values + return data + end + + def export_headers + serialized_dossier = DossierProcedureSerializer.new(self) + headers = serialized_dossier.attributes.keys + headers += self.procedure.types_de_champ.order('id ASC').map { |types_de_champ| types_de_champ.libelle.parameterize.underscore.to_sym } + headers += self.export_entreprise_data.keys + return headers end def self.export_full_generation(dossiers, format) data = [] - headers = [] + headers = dossiers.first.export_headers dossiers.each do |dossier| - if dossier.id == 948 || dossier.id == 955 - data << dossier.data_with_champs.values - headers = dossier.data_with_champs.keys if headers.empty? - end + data << dossier.data_with_champs end if ["csv"].include?(format) return SpreadsheetArchitect.to_csv(data: data, headers: headers) diff --git a/app/serializers/dossier_procedure_serializer.rb b/app/serializers/dossier_procedure_serializer.rb index ade47dc23..278c6d4ce 100644 --- a/app/serializers/dossier_procedure_serializer.rb +++ b/app/serializers/dossier_procedure_serializer.rb @@ -5,11 +5,4 @@ class DossierProcedureSerializer < ActiveModel::Serializer :archived, :mandataire_social, :state - - has_many :champs - - - def champs - object.champs.order("type_de_champ_id") - end end