Browse Source

Enhance invalid log detection in InvalidLogsHelper to include incomplete subsections and questions

pull/3065/head
Manny Dinssa 1 week ago
parent
commit
a1c1d5d6af
  1. 8
      app/helpers/invalid_logs_helper.rb
  2. 14
      app/models/log.rb

8
app/helpers/invalid_logs_helper.rb

@ -10,7 +10,10 @@ module InvalidLogsHelper
next unless log.status == "completed"
total_logs_seen += 1
invalid_ids << log.id unless log.valid?
next unless !log.valid? || log.incomplete_subsections.any? || log.incomplete_questions.any?
invalid_ids << log.id
end
Rails.logger.info "Batch #{batch_index} complete. Progress: #{invalid_ids.size} invalid logs found out of #{total_logs_seen} logs seen so far."
@ -32,7 +35,8 @@ module InvalidLogsHelper
next unless log.status == "completed"
total_logs_seen += 1
next if log.valid?
next unless !log.valid? || log.incomplete_subsections.any? || log.incomplete_questions.any?
invalid_ids << log.id
error_messages = log.errors.full_messages.join(";\n")

14
app/models/log.rb

@ -317,6 +317,20 @@ class Log < ApplicationRecord
!!public_send("age#{person_num}_known")&.zero?
end
def incomplete_subsections
form.subsections.reject do |subsection|
subsection.complete?(self) || subsection.not_displayed_in_tasklist?(self)
end
end
def incomplete_questions
incomplete_subsections.flat_map do |subsection|
subsection.questions.select do |question|
question.displayed_to_user?(self) && question.unanswered?(self)
end
end
end
private
# Handle logs that are older than previous collection start date

Loading…
Cancel
Save