diff --git a/Changelog.md b/Changelog.md index 3967191066..a08acff8a9 100644 --- a/Changelog.md +++ b/Changelog.md @@ -26,6 +26,7 @@ - Fix version mismatch between container client and database server (#7916) - Fixed filter Canvas Test Student from roster sync (#7926) - Fix: include original total mark in JSON response for remark requests (#7945) +- Fixed `(hidden)` assignment labeling for assignments with `visible_on` and/or `visible_until` set (#7944) ### 🔧 Internal changes - Fixed flaky test `can bulk assign duplicated TAs to grade entry students` in `/spec/models/grade_entry_student_spec.rb` (#7958) diff --git a/app/helpers/assessments_helper.rb b/app/helpers/assessments_helper.rb new file mode 100644 index 0000000000..234a831e0c --- /dev/null +++ b/app/helpers/assessments_helper.rb @@ -0,0 +1,7 @@ +module AssessmentsHelper + def formatted_assessment_visibility_label(assessment, base_text) + return t('assignments.hidden', assignment_text: base_text) if assessment.currently_hidden? + + base_text + end +end diff --git a/app/models/assessment.rb b/app/models/assessment.rb index f01834018b..d905b4af76 100644 --- a/app/models/assessment.rb +++ b/app/models/assessment.rb @@ -89,6 +89,14 @@ def upcoming(*) self.due_date > Time.current end + def currently_hidden? + return true if is_hidden + return true if visible_on.present? && Time.current < visible_on + return true if visible_until.present? && Time.current > visible_until + + false + end + # Returns grade distribution histogram bins of the grades for this assessment, using the grades in # self.completed_result_marks. def grade_distribution_array(intervals = 20) diff --git a/app/views/assignments/_list_manage.html.erb b/app/views/assignments/_list_manage.html.erb index 20b8842bb5..83d6c5ec24 100644 --- a/app/views/assignments/_list_manage.html.erb +++ b/app/views/assignments/_list_manage.html.erb @@ -20,7 +20,7 @@ <% assignments.each do |assignment| %> <% route = { controller: 'assignments', action: action, id: assignment.id } %> <% assignment_text = "#{h(assignment.short_identifier)}: #{h(assignment.description)}" %> - <% assignment_text = t('assignments.hidden', assignment_text: assignment_text) if assignment.is_hidden %> + <% assignment_text = formatted_assessment_visibility_label(assignment, assignment_text) %> <%= link_to assignment_text, route %> diff --git a/app/views/courses/_dashboard_list.html.erb b/app/views/courses/_dashboard_list.html.erb index 5267a612ed..b6151dd0a3 100644 --- a/app/views/courses/_dashboard_list.html.erb +++ b/app/views/courses/_dashboard_list.html.erb @@ -14,19 +14,12 @@ <% @assignments.each do |assignment| -%> - <% if assignment.is_hidden %> - <%= link_to truncate(t('assignments.hidden', - assignment_text: - "#{h(assignment.short_identifier)}: #{h(assignment.description)}")), - view_summary_course_assignment_path(@current_course, assignment.id), - data: { remote: true, id: assignment.short_identifier }, - class: (assignment.id == @current_assignment.id ? "inactive" : "") %> - <% else %> - <%= link_to assignment.short_identifier + ': ' + assignment.description, - view_summary_course_assignment_path(@current_course, assignment.id), - data: { remote: true, id: assignment.short_identifier }, - class: (assignment.id == @current_assignment.id ? "inactive" : "") %> - <% end %> + <% assignment_text = formatted_assessment_visibility_label(assignment, + "#{h(assignment.short_identifier)}: #{h(assignment.description)}") %> + <%= link_to truncate(assignment_text), + view_summary_course_assignment_path(@current_course, assignment.id), + data: { remote: true, id: assignment.short_identifier }, + class: (assignment.id == @current_assignment.id ? "inactive" : "") %> diff --git a/app/views/layouts/menus/_instructor_ta_sub_menu_assessments.html.erb b/app/views/layouts/menus/_instructor_ta_sub_menu_assessments.html.erb index 5005f99771..89f58b221b 100644 --- a/app/views/layouts/menus/_instructor_ta_sub_menu_assessments.html.erb +++ b/app/views/layouts/menus/_instructor_ta_sub_menu_assessments.html.erb @@ -11,9 +11,7 @@ <% if assessment.is_a?(Assignment) && assessment.is_peer_review? %> <% title = "#{assessment.parent_assignment.short_identifier} #{PeerReview.model_name.human}" %> <% end %> - <% if assessment.is_hidden %> - <% title = t('assignments.hidden', assignment_text: title) %> - <% end %> + <% title = formatted_assessment_visibility_label(assessment, title) %> <%= title %> <% end %>