[#2750] Sanity check procedure

This commit is contained in:
Frederic Merizen 2018-10-05 15:48:37 +02:00
parent 30ef6e6d95
commit 667deae5cc

View file

@ -57,10 +57,12 @@ class ProcedurePresentation < ApplicationRecord
end end
def displayed_field_values(dossier) def displayed_field_values(dossier)
assert_matching_procedure(dossier)
displayed_fields.map { |field| get_value(dossier, field['table'], field['column']) } displayed_fields.map { |field| get_value(dossier, field['table'], field['column']) }
end end
def sorted_ids(dossiers, gestionnaire) def sorted_ids(dossiers, gestionnaire)
dossiers.each { |dossier| assert_matching_procedure(dossier) }
table = sort['table'] table = sort['table']
column = sanitized_column(sort) column = sanitized_column(sort)
order = sort['order'] order = sort['order']
@ -94,6 +96,7 @@ class ProcedurePresentation < ApplicationRecord
end end
def filtered_ids(dossiers, statut) def filtered_ids(dossiers, statut)
dossiers.each { |dossier| assert_matching_procedure(dossier) }
filters[statut].map do |filter| filters[statut].map do |filter|
table = filter['table'] table = filter['table']
column = sanitized_column(filter) column = sanitized_column(filter)
@ -170,6 +173,12 @@ class ProcedurePresentation < ApplicationRecord
end end
end end
def assert_matching_procedure(dossier)
if dossier.procedure != procedure
raise "Procedure mismatch (expected #{procedure.id}, got #{dossier.procedure.id})"
end
end
def get_value(dossier, table, column) def get_value(dossier, table, column)
case table case table
when 'self' when 'self'