Skip to content

Commit

Permalink
Revert "Revert "use script id to find teacher feedback script level""
Browse files Browse the repository at this point in the history
  • Loading branch information
davidsbailey committed Feb 2, 2021
1 parent 798dcae commit f9112da
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 2 deletions.
13 changes: 11 additions & 2 deletions dashboard/app/controllers/teacher_feedbacks_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,23 @@ class TeacherFeedbacksController < ApplicationController
# Feedback from any verified teacher who has provided feedback to the current
# student on any level
def index
@feedbacks_as_student = @teacher_feedbacks.order(created_at: :desc).includes(script_level: {lesson: :script}).select do |feedback|
scope = {
level: {
script_levels: {
lesson: :script
}
}
}
@feedbacks_as_student = @teacher_feedbacks.order(created_at: :desc).includes(scope).select do |feedback|
UserPermission.where(
user_id: feedback.teacher_id,
permission: 'authorized_teacher'
)
end

@feedbacks_as_student_with_level_info = @feedbacks_as_student.map {|feedback| feedback.attributes.merge(feedback&.script_level&.summary_for_feedback)}
@feedbacks_as_student_with_level_info = @feedbacks_as_student.map do |feedback|
feedback.attributes.merge(feedback&.get_script_level&.summary_for_feedback)
end
end

def set_seen_on_feedback_page_at
Expand Down
6 changes: 6 additions & 0 deletions dashboard/app/models/teacher_feedback.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ def validate_script_and_script_level
end
end

# Finds the script level associated with this object, using script id and
# level id.
def get_script_level
level.script_levels.find {|sl| sl.script_id == script_id}
end

def self.get_student_level_feedback(student_id, level_id, teacher_id)
where(
student_id: student_id,
Expand Down
31 changes: 31 additions & 0 deletions dashboard/test/controllers/teacher_feedbacks_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ class TeacherFeedbacksControllerTest < ActionController::TestCase
sign_in student
get :index
assert_response :success

all_feedback_data = get_all_response_feedback_data
assert_equal 0, all_feedback_data.count
end

test 'index: returns success if signed in user - feedback' do
Expand All @@ -21,5 +24,33 @@ class TeacherFeedbacksControllerTest < ActionController::TestCase
sign_in feedback.student
get :index
assert_response :success

all_feedback_data = get_all_response_feedback_data
assert_equal 1, all_feedback_data.count
assert_equal feedback.student.id, all_feedback_data.first['student_id']
end

test 'index returns many feedbacks' do
student = create :student
5.times do
create :teacher_feedback, student: student
end
assert_equal TeacherFeedback.all.count, 5
sign_in student
assert_queries 20 do
get :index
assert_response :success
end

all_feedback_data = get_all_response_feedback_data
assert_equal 5, all_feedback_data.count
end

private

def get_all_response_feedback_data
assert_select 'script[data-feedback]', 1
feedback_data = JSON.parse(css_select('script[data-feedback]').first.attribute('data-feedback').to_s)
feedback_data['all_feedback']
end
end

0 comments on commit f9112da

Please sign in to comment.