Make assignment list assignTo tray checkpoint aware

closes VICE-4298
flag=discussion_checkpoints

Data will not be displayed correctly. that is handled
in VICE-4299

Test Plan
1. Open the assignto tray from the assignment index page
2. Verify checkpointed discussion display correct inputs

Change-Id: I97a4eed9946fb4d415e027776615c350c117908b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/356004
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
QA-Review: Chawn Neal <chawn.neal@instructure.com>
Product-Review: Jason Gillett <jason.gillett@instructure.com>
This commit is contained in:
Jason Gillett 2024-08-26 13:59:43 -06:00 committed by SaltNPepa
parent c4aab0f9e0
commit 5c74896a06
3 changed files with 34 additions and 11 deletions

View File

@ -1463,32 +1463,49 @@ describe "assignments" do
context "with discussion_checkpoints" do
before :once do
Account.site_admin.enable_feature! :discussion_checkpoints
end
course_with_teacher({ user: @teacher, active_course: true, active_enrollment: true })
it "does not show points possible and due date fields for checkpointed assignments" do
course_with_teacher_logged_in(active_all: true, course: @course)
checkpointed_discussion = DiscussionTopic.create_graded_topic!(course: @course, title: "checkpointed discussion")
Account.site_admin.enable_feature! :discussion_checkpoints
@checkpointed_discussion = DiscussionTopic.create_graded_topic!(course: @course, title: "checkpointed discussion")
Checkpoints::DiscussionCheckpointCreatorService.call(
discussion_topic: checkpointed_discussion,
discussion_topic: @checkpointed_discussion,
checkpoint_label: CheckpointLabels::REPLY_TO_TOPIC,
dates: [{ type: "everyone", due_at: 2.days.from_now }],
points_possible: 6
)
Checkpoints::DiscussionCheckpointCreatorService.call(
discussion_topic: checkpointed_discussion,
discussion_topic: @checkpointed_discussion,
checkpoint_label: CheckpointLabels::REPLY_TO_ENTRY,
dates: [{ type: "everyone", due_at: 3.days.from_now }],
points_possible: 7,
replies_required: 2
)
end
it "does not show points possible and due date fields for checkpointed assignments" do
user_session(@teacher)
get "/courses/#{@course.id}/assignments"
f("div#assignment_#{checkpointed_discussion.assignment.id} button.al-trigger").click
f("div#assignment_#{@checkpointed_discussion.assignment.id} button.al-trigger").click
f("li a.edit_assignment").click
expect(f("input#assign_#{checkpointed_discussion.assignment.id}_assignment_name")).to be_present
expect(f("body")).not_to contain_jqcss "label[for='#{checkpointed_discussion.assignment.id}_assignment_due_at']"
expect(f("body")).not_to contain_jqcss "label[for='#{checkpointed_discussion.assignment.id}_assignment_points']"
expect(f("input#assign_#{@checkpointed_discussion.assignment.id}_assignment_name")).to be_present
expect(f("body")).not_to contain_jqcss "label[for='#{@checkpointed_discussion.assignment.id}_assignment_due_at']"
expect(f("body")).not_to contain_jqcss "label[for='#{@checkpointed_discussion.assignment.id}_assignment_points']"
end
it "displays the correct date input fields in the assign to tray" do
user_session(@teacher)
get "/courses/#{@course.id}/assignments"
fj("#assign_#{@checkpointed_discussion.assignment.id}_manage_link").click
wait_for_ajaximations
f("#assignment_#{@checkpointed_discussion.assignment.id} .assign-to-link").click
wait_for_assign_to_tray_spinner
expect(module_item_assign_to_card.first).not_to contain_css(due_date_input_selector)
expect(module_item_assign_to_card.first).to contain_css(reply_to_topic_due_date_input_selector)
expect(module_item_assign_to_card.first).to contain_css(required_replies_due_date_input_selector)
end
end
end

View File

@ -480,6 +480,7 @@ export default AssignmentListItemView = (function () {
tool.base_url +
`&discussion_topics[]=${__guard__(this.model.get('discussion_topic'), x => x.id)}`)
})
data.item_assignment_type = "discussion_topic"
} else {
const isNewQuizzes = this.model.isQuizLTIAssignment()
const isShareToCommons = (tool) => tool.canvas_icon_class === 'icon-commons'
@ -614,6 +615,7 @@ export default AssignmentListItemView = (function () {
itemType="assignment"
locale={ENV.LOCALE || 'en'}
timezone={ENV.TIMEZONE || 'UTC'}
isCheckpointed={itemProps.isCheckpoint}
{...itemProps}
/>,
document.getElementById('assign-to-mount-point')
@ -629,12 +631,14 @@ export default AssignmentListItemView = (function () {
const itemContentId = e.target.getAttribute('data-assignment-id')
const pointsPossible = this.model.get('points_possible')
const iconType = e.target.getAttribute('data-assignment-type')
const isCheckpoint = e.target.getAttribute('data-assignment-has-checkpoint')
this.renderItemAssignToTray(true, returnFocusTo, {
courseId,
itemName,
itemContentId,
pointsPossible,
iconType,
isCheckpoint,
})
}

View File

@ -252,6 +252,7 @@
data-assignment-context-id="{{courseId}}"
data-assignment-id="{{id}}"
data-assignment-type="{{item_assignment_type}}"
data-assignment-has-checkpoint="{{isCheckpoint}}"
title="<%= {{#t}}Assign this Assignment{{/t}} %>"
aria-label="{{#t}}Assign To...{{/t}}"
data-focus-returns-to="assign_{{id}}_manage_link"
@ -426,6 +427,7 @@
data-assignment-context-id="{{courseId}}"
data-assignment-id="{{id}}"
data-assignment-type="{{item_assignment_type}}"
data-assignment-has-checkpoint="{{isCheckpoint}}"
title="<%= {{#t}}Assign this Assignment{{/t}} %>"
aria-label="{{#t}}Assign To...{{/t}}"
data-focus-returns-to="assign_{{id}}_manage_link"