Skip to content

Commit

Permalink
Merge pull request #35179 from code-dot-org/molly/fix-pre-survey-bug
Browse files Browse the repository at this point in the history
Fix pre-survey bug
  • Loading branch information
molly-moen committed Jun 5, 2020
2 parents 8dbcb42 + b0803b4 commit a9bc211
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
21 changes: 20 additions & 1 deletion dashboard/app/controllers/pd/workshop_daily_survey_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,9 @@ def new_post_foorm
def new_general_foorm(survey_names, day:)
# We may be redirecting from our legacy route which uses enrollment_code
enrollment_code = params[:enrollmentCode] || params[:enrollment_code]
workshop = get_workshop_for_new_general(enrollment_code, current_user)
workshop = day == 0 ?
get_workshop_for_pre_survey(enrollment_code, current_user) :
get_workshop_for_new_general(enrollment_code, current_user)
unless validate_enrolled(workshop)
return
end
Expand Down Expand Up @@ -509,6 +511,9 @@ def key_params
end
end

# Either get workshop for the given enrollment_code or look up
# the nearest workshop the user attended or was enrolled in, in that priority
# order.
def get_workshop_for_new_general(enrollment_code, current_user)
if enrollment_code
Pd::Enrollment.find_by!(code: enrollment_code).workshop
Expand All @@ -520,6 +525,20 @@ def get_workshop_for_new_general(enrollment_code, current_user)
end
end

# Pre surveys should be filled out by a teacher without attendance so
# look up nearest workshop that the current_user is enrolled in if
# enrollment_code is not given.
def get_workshop_for_pre_survey(enrollment_code, current_user)
if enrollment_code
Pd::Enrollment.find_by!(code: enrollment_code).workshop
else
Workshop.
where(course: [COURSE_CSD, COURSE_CSP]).
where.not(subject: SUBJECT_FIT).
nearest_enrolled_in_by(current_user)
end
end

def get_session_for_workshop_and_day(workshop, day)
day > 0 ? workshop.sessions[day - 1] : nil
end
Expand Down
8 changes: 8 additions & 0 deletions dashboard/app/models/pd/workshop.rb
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,14 @@ def self.nearest_attended_or_enrolled_in_by(teacher)
current_scope.with_nearest_attendance_by(teacher) || current_scope.enrolled_in_by(teacher).nearest
end

# Find the workshop with the closest session to today
# enrolled in by the given teacher.
# @param [User] teacher
# @return [Pd::Workshop, nil]
def self.nearest_enrolled_in_by(teacher)
current_scope.enrolled_in_by(teacher).nearest
end

def course_name
COURSE_NAME_OVERRIDES[course] || course
end
Expand Down

0 comments on commit a9bc211

Please sign in to comment.