feat: don't show collection date of response rate if there is no survey data

mciea-main
Nelson Jovel 2 years ago
parent 0359dae88a
commit 5514fef62c

@ -15,7 +15,7 @@ class ResponseRatePresenter
def date def date
SurveyItemResponse.where(survey_item: survey_items, school:, SurveyItemResponse.where(survey_item: survey_items, school:,
academic_year:).order(recorded_date: :DESC).first&.recorded_date || Date.today academic_year:).order(recorded_date: :DESC).first&.recorded_date
end end
def percentage def percentage
@ -28,7 +28,15 @@ class ResponseRatePresenter
percentage > 75 ? "purple" : "gold" percentage > 75 ? "purple" : "gold"
end end
def date_message
return "" if date.nil?
"Response rate as of #{date.to_date.strftime('%m/%d/%y')}"
end
def hover_message def hover_message
return "" if date.nil?
"Percentages based on #{actual_count} out of #{respondents_count.round} #{focus}s completing at least 25% of the survey." "Percentages based on #{actual_count} out of #{respondents_count.round} #{focus}s completing at least 25% of the survey."
end end

@ -5,7 +5,7 @@
data-bs-content="<%= response_rate_presenter.hover_message %>" data-bs-content="<%= response_rate_presenter.hover_message %>"
data-bs-placement="top" data-bs-placement="top"
> >
<div>Response Rates as of <%= response_rate_presenter.date.to_date.strftime("%m/%d/%y") %> </div> <div><%= response_rate_presenter.date_message %> </div>
<div style="display: flex; justify-content:space-between; width: 100px;"> <div style="display: flex; justify-content:space-between; width: 100px;">
<div><%= response_rate_presenter.focus.capitalize %> </div> <div><%= response_rate_presenter.focus.capitalize %> </div>
<%= render partial: "response_rate_graphic", locals: {response_rate_presenter: response_rate_presenter}, cached: true %> <%= render partial: "response_rate_graphic", locals: {response_rate_presenter: response_rate_presenter}, cached: true %>

Loading…
Cancel
Save