aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/compliance_check_messages_controller.rb
blob: db551cca50c031ac734a08e6328232d8dcd0dfb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class ComplianceCheckMessagesController < ChouetteController
  defaults resource_class: ComplianceCheckMessage, collection_name: 'compliance_check_messages', instance_name: 'compliance_check_message'
  respond_to :csv
  belongs_to :compliance_check_set, :parent_class => ComplianceCheckSet


  def index
    index! do |format|
      format.csv {
        send_data ComplianceCheckMessageExport.new(compliance_check_messages: collection).to_csv(:col_sep => "\;", :quote_char=>'"', force_quotes: true, server_url: request.base_url) , :filename => "#{t('compliance_check_messages.compliance_check_set_errors')}_#{line_code}_#{Time.now.strftime('%d-%m-%Y_%H-%M')}.csv"
      }
    end
  end

  protected
  def collection
    parent.compliance_check_messages.where(compliance_check_resource_id: params[:compliance_check_resource_id])
  end

  def parent
    @compliance_check_set ||= ComplianceCheckSet.find(params[:compliance_check_set_id])
  end

  def compliance_check_resource
    ComplianceCheckResource.find(params[:compliance_check_resource_id])
  end

  private

  def line_code
    Chouette::Line.find_by_objectid("#{compliance_check_resource.reference}").get_objectid.local_id
  end

end