Fix link for anonymous peer review
fixes GRADE-2160 Test plan: - Create a course and assignment with Anonymous Peer reviews enabled - Add 2 students with immediate notifications for peer reviews enabled - Have both students submit to assignment - As a student, go to Dashboard and click the Anonymous Peer Review link under Recent Activity - Check student's messages for Anonymous Peer Review notification and follow the link - Neither link should result in error Change-Id: Ibd0cb0e72a5d370dfef15b1462a84a8b2a727b40 Reviewed-on: https://gerrit.instructure.com/199808 Tested-by: Jenkins Reviewed-by: Jeremy Neander <jneander@instructure.com> Reviewed-by: Adrian Packel <apackel@instructure.com> Reviewed-by: Gary Mei <gmei@instructure.com> QA-Review: Adrian Packel <apackel@instructure.com> Product-Review: Keith Garner <kgarner@instructure.com>
This commit is contained in:
parent
1930390994
commit
c1eafebe28
|
@ -18,15 +18,26 @@
|
|||
module Messages::PeerReviewsHelper
|
||||
|
||||
def reviewee_name(asset, reviewer)
|
||||
asset.can_read_assessment_user_name?(reviewer, nil) ? asset.asset.user.name : I18n.t(:anonymous_user, 'Anonymous User')
|
||||
asset.can_read_assessment_user_name?(reviewer, nil) ? asset.asset.user.name : I18n.t('Anonymous User')
|
||||
end
|
||||
|
||||
def submission_comment_author(submission_comment, user)
|
||||
submission_comment.can_read_author?(user, nil) ? (submission_comment.author_name || I18n.t(:someone, "Someone")) : I18n.t(:anonymous_user, 'Anonymous User')
|
||||
submission_comment.can_read_author?(user, nil) ? (submission_comment.author_name || I18n.t("Someone")) : I18n.t('Anonymous User')
|
||||
end
|
||||
|
||||
def submission_comment_submittor(submission_comment, user)
|
||||
submission_comment.submission.can_read_submission_user_name?(user, nil) ? submission_comment.submission.user.short_name : I18n.t(:anonymous_user, 'Anonymous User')
|
||||
if submission_comment.submission.can_read_submission_user_name?(user, nil)
|
||||
submission_comment.submission.user.short_name
|
||||
else
|
||||
I18n.t('Anonymous User')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
def get_submission_link(asset, user)
|
||||
Submission::ShowPresenter.new(
|
||||
submission: asset.asset,
|
||||
current_user: user,
|
||||
assessment_request: asset
|
||||
).submission_data_url
|
||||
end
|
||||
end
|
||||
|
|
|
@ -75,7 +75,7 @@ module StreamItemsHelper
|
|||
presenter.updated_at = extract_updated_at(category, item, user)
|
||||
presenter.updated_at ||= item.updated_at
|
||||
presenter.unread = item.unread
|
||||
presenter.path = extract_path(category, item)
|
||||
presenter.path = extract_path(category, item, user)
|
||||
presenter.context = extract_context(category, item)
|
||||
presenter.summary = extract_summary(category, item, user)
|
||||
presenter
|
||||
|
@ -90,19 +90,23 @@ module StreamItemsHelper
|
|||
end
|
||||
end
|
||||
|
||||
def extract_path(category, item)
|
||||
def extract_path(category, item, user)
|
||||
case category
|
||||
when "Announcement", "DiscussionTopic"
|
||||
polymorphic_path([item.context_type.underscore, category.underscore], :"#{item.context_type.underscore}_id" => Shard.short_id_for(item.context_id), :id => Shard.short_id_for(item.asset_id))
|
||||
polymorphic_path([item.context_type.underscore, category.underscore], :"#{item.context_type.underscore}_id"\
|
||||
=> Shard.short_id_for(item.context_id), :id => Shard.short_id_for(item.asset_id))
|
||||
when "Conversation"
|
||||
conversation_path(Shard.short_id_for(item.asset_id))
|
||||
when "Assignment"
|
||||
polymorphic_path([item.context_type.underscore, category.underscore], :"#{item.context_type.underscore}_id" => Shard.short_id_for(item.context_id), :id => Shard.short_id_for(item.data.context_id))
|
||||
polymorphic_path([item.context_type.underscore, category.underscore], :"#{item.context_type.underscore}_id"\
|
||||
=> Shard.short_id_for(item.context_id), :id => Shard.short_id_for(item.data.context_id))
|
||||
when "AssessmentRequest"
|
||||
submission = item.data.assessor_asset
|
||||
course_assignment_submission_path(item.context_id, submission.assignment_id, Shard.short_id_for(item.data.user_id))
|
||||
else
|
||||
nil
|
||||
submission = item.data.asset
|
||||
Submission::ShowPresenter.new(
|
||||
submission: submission,
|
||||
current_user: user,
|
||||
assessment_request: item.data
|
||||
).submission_data_url
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<% define_content :link do %>
|
||||
<%= polymorphic_url([asset.context, asset.asset.assignment, :submission], id: asset.asset.user_id) %>
|
||||
<%= get_submission_link(asset, user) %>
|
||||
<% end %>
|
||||
|
||||
<% define_content :subject do %>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<% define_content :link do %>
|
||||
<%= polymorphic_url([asset.context, asset.asset.assignment, :submission], id: asset.asset.user_id) %>
|
||||
<%= get_submission_link(asset, user) %>
|
||||
<% end %>
|
||||
|
||||
<% define_content :subject do %>
|
||||
|
|
|
@ -36,6 +36,17 @@ describe Messages::PeerReviewsHelper do
|
|||
expect(reviewee_name(@assessment_request, @user2)).to eq(I18n.t(:anonymous_user, 'Anonymous User'))
|
||||
end
|
||||
|
||||
it 'should return anonymous URL when get_submission_link is called with anonymous peer reviews enabled' do
|
||||
assignment = @assessment_request.asset.assignment
|
||||
assignment.update!(anonymous_peer_reviews: true)
|
||||
expect(get_submission_link(@assessment_request, @user)).to include('anonymous_submission')
|
||||
end
|
||||
|
||||
it 'should return normal URL when get_submission_link is called without anonymous peer reviews enabled' do
|
||||
assignment = @assessment_request.asset.assignment
|
||||
assignment.update!(anonymous_peer_reviews: false)
|
||||
expect(get_submission_link(@assessment_request, @user)).to include('/submissions/')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'submission comments' do
|
||||
|
|
|
@ -199,13 +199,35 @@ describe StreamItemsHelper do
|
|||
student = @student
|
||||
create_enrollments(@course, [@other_user])
|
||||
assessor_submission = submission_model(assignment: @assignment, user: @other_user)
|
||||
assessment_request = AssessmentRequest.create!(assessor: @other_user, asset: @submission,
|
||||
user: student, assessor_asset: assessor_submission)
|
||||
assessment_request = AssessmentRequest.create!(
|
||||
assessor: @other_user,
|
||||
asset: @submission,
|
||||
user: student,
|
||||
assessor_asset: assessor_submission
|
||||
)
|
||||
assessment_request.workflow_state = 'assigned'
|
||||
assessment_request.save
|
||||
items = @other_user.recent_stream_items
|
||||
@categorized = helper.categorize_stream_items(items, @other_user)
|
||||
expect(@categorized["AssessmentRequest"].first.summary).to include('Anonymous User')
|
||||
end
|
||||
|
||||
it 'should anonymize path for anonymous AssessmentRequests' do
|
||||
@assignment.update_attribute(:anonymous_peer_reviews, true)
|
||||
student = @student
|
||||
create_enrollments(@course, [@other_user])
|
||||
assessor_submission = submission_model(assignment: @assignment, user: @other_user)
|
||||
assessment_request = AssessmentRequest.create!(
|
||||
assessor: @other_user,
|
||||
asset: @submission,
|
||||
user: student,
|
||||
assessor_asset: assessor_submission
|
||||
)
|
||||
assessment_request.workflow_state = 'assigned'
|
||||
assessment_request.save
|
||||
items = @other_user.recent_stream_items
|
||||
@categorized = helper.categorize_stream_items(items, @other_user)
|
||||
expect(@categorized["AssessmentRequest"].first.path).to include('anonymous_submission')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue