From 2c9df34fac8ff2ece34802505d27bd7b659de5a6 Mon Sep 17 00:00:00 2001 From: rebuilt Date: Tue, 15 Aug 2023 08:50:33 -0700 Subject: [PATCH] fix: start fixing problem with variants not getting added to the cleaned csv --- app/services/survey_item_values.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app/services/survey_item_values.rb b/app/services/survey_item_values.rb index 581920a3..34bc0dec 100644 --- a/app/services/survey_item_values.rb +++ b/app/services/survey_item_values.rb @@ -3,12 +3,24 @@ class SurveyItemValues def initialize(row:, headers:, genders:, survey_items:, schools:) @row = row - @headers = headers + @headers = include_all_headers(headers:) @genders = genders @survey_items = survey_items @schools = schools end + # Some survey items have variants, i.e. a survey item with an id of s-tint-q1 might have a variant that looks like s-tint-q1-1. We must ensure that all variants in the form of s-tint-q1-1 have a matching pair. + # We don't ensure that ids in the form of s-tint-q1 have a matching pair because not all questions have variants + def include_all_headers(headers:) + alternates = headers.filter(&:present?) + .filter { |header| header.end_with? "-1" } + alternates.each do |header| + main = header.sub(/-1\z/, "") + headers.push(main) unless headers.include?(main) + end + headers + end + def dese_id? dese_id.present? end