Skip to content

Commit 427dd4b

Browse files
[MBL-19397][Parent] Observers unable to see Quiz submission feedback when "Assignment Enhancements" feature option is enable
refs: MBL-19397 affects: Parent release note: Fixed parent observer quiz submission viewing for both classic and New Quizzes.
1 parent 32e525a commit 427dd4b

File tree

9 files changed

+57
-10
lines changed

9 files changed

+57
-10
lines changed

apps/parent/src/main/java/com/instructure/parentapp/features/assignment/details/ParentAssignmentDetailsRouter.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,14 @@ class ParentAssignmentDetailsRouter(
4747
assignmentUrl: String?,
4848
isAssignmentEnhancementEnabled: Boolean,
4949
isObserver: Boolean,
50-
initialSelectedSubmissionAttempt: Long?
50+
initialSelectedSubmissionAttempt: Long?,
51+
isQuiz: Boolean
5152
) {
5253
assignmentUrl ?: return
5354
val parentId = apiPrefs.user?.id ?: return
5455
val currentStudentId = parentPrefs.currentStudent?.id ?: return
5556
val cookies = mapOf("k5_observed_user_for_$parentId" to "$currentStudentId")
56-
val url = if (isAssignmentEnhancementEnabled) {
57+
val url = if (isAssignmentEnhancementEnabled && !isQuiz) {
5758
assignmentUrl
5859
} else {
5960
"$assignmentUrl/submissions/$currentStudentId"

apps/student/src/main/java/com/instructure/student/features/assignments/details/StudentAssignmentDetailsRouter.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ class StudentAssignmentDetailsRouter: AssignmentDetailsRouter() {
5959
assignmentUrl: String?,
6060
isAssignmentEnhancementEnabled: Boolean,
6161
isObserver: Boolean,
62-
initialSelectedSubmissionAttempt: Long?
62+
initialSelectedSubmissionAttempt: Long?,
63+
isQuiz: Boolean
6364
) {
6465
RouteMatcher.route(
6566
activity,

libs/canvas-api-2/src/main/java/com/instructure/canvasapi2/models/Assignment.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ data class Assignment(
253253
} ?: LtiType.EXTERNAL_TOOL
254254
}
255255

256+
fun isQuiz(): Boolean {
257+
return getSubmissionTypes().contains(SubmissionType.ONLINE_QUIZ) || ltiToolType() == LtiType.NEW_QUIZZES_LTI
258+
}
259+
256260
companion object {
257261

258262
const val PASS_FAIL_TYPE = "pass_fail"

libs/canvas-api-2/src/test/java/com/instructure/canvasapi2/unit/AssignmentTest.kt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,4 +290,38 @@ class AssignmentTest {
290290
}
291291
//endregion
292292

293+
//region isQuiz
294+
@Test
295+
fun isQuiz_TestOnlineQuiz() {
296+
val assignment = Assignment(submissionTypesRaw = listOf("online_quiz"))
297+
assertEquals(true, assignment.isQuiz())
298+
}
299+
300+
@Test
301+
fun isQuiz_TestQuizLtiAssignment() {
302+
val externalToolAttributes = ExternalToolAttributes(url = "https://example.com/quiz-lti/launch")
303+
val assignment = Assignment(
304+
submissionTypesRaw = listOf("external_tool"),
305+
externalToolAttributes = externalToolAttributes
306+
)
307+
assertEquals(true, assignment.isQuiz())
308+
}
309+
310+
@Test
311+
fun isQuiz_TestRegularExternalTool() {
312+
val externalToolAttributes = ExternalToolAttributes(url = "https://example.com/tool/launch")
313+
val assignment = Assignment(
314+
submissionTypesRaw = listOf("external_tool"),
315+
externalToolAttributes = externalToolAttributes
316+
)
317+
assertEquals(false, assignment.isQuiz())
318+
}
319+
320+
@Test
321+
fun isQuiz_TestNonQuizSubmissionType() {
322+
val assignment = Assignment(submissionTypesRaw = listOf("online_upload"))
323+
assertEquals(false, assignment.isQuiz())
324+
}
325+
//endregion
326+
293327
}

libs/pandautils/src/main/java/com/instructure/pandautils/features/assignments/details/AssignmentDetailsFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,8 @@ class AssignmentDetailsFragment : BaseCanvasFragment(), FragmentInteractions, Bo
222222
action.assignmentUrl,
223223
action.isAssignmentEnhancementEnabled,
224224
action.isObserver,
225-
action.selectedSubmissionAttempt
225+
action.selectedSubmissionAttempt,
226+
action.isQuiz
226227
)
227228
}
228229
is AssignmentDetailAction.NavigateToQuizScreen -> {

libs/pandautils/src/main/java/com/instructure/pandautils/features/assignments/details/AssignmentDetailsRouter.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ open class AssignmentDetailsRouter {
4040
assignmentUrl: String?,
4141
isAssignmentEnhancementEnabled: Boolean,
4242
isObserver: Boolean = false,
43-
initialSelectedSubmissionAttempt: Long? = null
43+
initialSelectedSubmissionAttempt: Long? = null,
44+
isQuiz: Boolean = false
4445
) = Unit
4546

4647
open fun navigateToQuizScreen(activity: FragmentActivity, canvasContext: CanvasContext, quiz: Quiz, url: String) = Unit

libs/pandautils/src/main/java/com/instructure/pandautils/features/assignments/details/AssignmentDetailsViewData.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ sealed class AssignmentDetailAction {
6969
val isObserver: Boolean,
7070
val selectedSubmissionAttempt: Long?,
7171
val assignmentUrl: String?,
72-
val isAssignmentEnhancementEnabled: Boolean
72+
val isAssignmentEnhancementEnabled: Boolean,
73+
val isQuiz: Boolean
7374
) : AssignmentDetailAction()
7475
data class NavigateToQuizScreen(val quiz: Quiz) : AssignmentDetailAction()
7576
data class NavigateToDiscussionScreen(val discussionTopicHeaderId: Long, val course: Course) : AssignmentDetailAction()

libs/pandautils/src/main/java/com/instructure/pandautils/features/assignments/details/AssignmentDetailsViewModel.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ class AssignmentDetailsViewModel @Inject constructor(
300300
isObserver,
301301
submission.attempt,
302302
assignmentResult.htmlUrl,
303-
isAssignmentEnhancementEnabled
303+
isAssignmentEnhancementEnabled,
304+
assignmentResult.isQuiz()
304305
)
305306
)
306307
}
@@ -600,7 +601,8 @@ class AssignmentDetailsViewModel @Inject constructor(
600601
isObserver,
601602
selectedSubmission?.attempt,
602603
assignment?.htmlUrl,
603-
isAssignmentEnhancementEnabled
604+
isAssignmentEnhancementEnabled,
605+
assignment?.isQuiz() == true
604606
)
605607
)
606608
}

libs/pandautils/src/test/java/com/instructure/pandautils/features/assignments/details/AssignmentDetailsViewModelTest.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,8 @@ class AssignmentDetailsViewModelTest {
499499
isObserver = false,
500500
selectedSubmissionAttempt = null,
501501
assignmentUrl = "https://assignment.url",
502-
isAssignmentEnhancementEnabled = true
502+
isAssignmentEnhancementEnabled = true,
503+
isQuiz = false
503504
)
504505
assertEquals(expected, viewModel.events.value?.peekContent())
505506
}
@@ -1164,7 +1165,8 @@ class AssignmentDetailsViewModelTest {
11641165
isObserver = false,
11651166
selectedSubmissionAttempt = 2L,
11661167
assignmentUrl = "https://assignment.url",
1167-
isAssignmentEnhancementEnabled = true
1168+
isAssignmentEnhancementEnabled = true,
1169+
isQuiz = false
11681170
)
11691171
assertEquals(expected, viewModel.events.value?.peekContent())
11701172
}

0 commit comments

Comments
 (0)