Skip to content

Commit 80a2e64

Browse files
[MBL-19567][Student] Update ToDo filter default time periods
refs: MBL-19567 affects: Student release note: Updated default time period for ToDo list to show items from 4 weeks ago through this week.
1 parent 27681d1 commit 80a2e64

File tree

8 files changed

+45
-27
lines changed

8 files changed

+45
-27
lines changed

automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/interaction/ToDoListInteractionTest.kt

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,13 @@ abstract class ToDoListInteractionTest : CanvasComposeTest() {
261261

262262
goToToDoList(data)
263263

264+
composeTestRule.waitForIdle()
265+
266+
// Ensure the assignment is visible by setting future range to cover 3 days ahead
267+
toDoListPage.clickFilterButton()
268+
toDoFilterPage.selectFutureDateRange(R.string.todoFilterNextWeek)
269+
toDoFilterPage.clickDone()
270+
264271
composeTestRule.waitForIdle()
265272
toDoListPage.assertItemDisplayed(assignment.name!!)
266273
toDoListPage.clickDateBadge(dayOfMonth)
@@ -475,13 +482,13 @@ abstract class ToDoListInteractionTest : CanvasComposeTest() {
475482
val course = data.courses.values.first()
476483
val calendar = Calendar.getInstance()
477484

478-
// Create assignment 2 weeks ago
479-
calendar.add(Calendar.WEEK_OF_YEAR, -2)
480-
val twoWeeksAgo = calendar.time
485+
// Create assignment 3 weeks ago
486+
calendar.add(Calendar.WEEK_OF_YEAR, -3)
487+
val threeWeeksAgo = calendar.time
481488
val oldAssignment = data.addAssignment(
482489
course.id,
483490
name = "Old Assignment",
484-
dueAt = twoWeeksAgo.toApiString()
491+
dueAt = threeWeeksAgo.toApiString()
485492
)
486493

487494
// Create assignment today
@@ -496,18 +503,29 @@ abstract class ToDoListInteractionTest : CanvasComposeTest() {
496503

497504
composeTestRule.waitForIdle()
498505

499-
// By default, past date range is "Last Week" so assignment from 2 weeks ago should be hidden
506+
// By default, past date range is "4 Weeks Ago" so assignment from 3 weeks ago should be visible
507+
toDoListPage.assertItemDisplayed(todayAssignment.name!!)
508+
toDoListPage.assertItemDisplayed(oldAssignment.name!!)
509+
510+
// Change past date range to "Last Week" to hide the older assignment
511+
toDoListPage.clickFilterButton()
512+
toDoFilterPage.selectPastDateRange(R.string.todoFilterLastWeek)
513+
toDoFilterPage.clickDone()
514+
515+
composeTestRule.waitForIdle()
516+
517+
// Assignment from 3 weeks ago should now be hidden (outside 1-week range)
500518
toDoListPage.assertItemDisplayed(todayAssignment.name!!)
501519
toDoListPage.assertItemNotDisplayed(oldAssignment.name!!)
502520

503-
// Change past date range to "2 Weeks Ago"
521+
// Change past date range to "4 Weeks Ago" to show the older assignment again
504522
toDoListPage.clickFilterButton()
505-
toDoFilterPage.selectPastDateRange(R.string.todoFilterTwoWeeks)
523+
toDoFilterPage.selectPastDateRange(R.string.todoFilterFourWeeks)
506524
toDoFilterPage.clickDone()
507525

508526
composeTestRule.waitForIdle()
509527

510-
// Now both assignments should be visible
528+
// Assignment from 3 weeks ago should now be visible again (within 4-week range)
511529
toDoListPage.assertItemDisplayed(todayAssignment.name!!)
512530
toDoListPage.assertItemDisplayed(oldAssignment.name!!)
513531
}

libs/pandares/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@
21042104
<string name="widgetErrorTitle">Oops! Something Went Wrong</string>
21052105
<string name="widgetErrorSubtitle">We\'re having trouble showing your tasks right now. Please try again in a bit or head to the app.</string>
21062106
<string name="widgetToDoEmptyTitle">You’re all done for now!</string>
2107-
<string name="widgetToDoEmptySubtitle">Looks like you\'re free for the next 4 weeks. Do you want to add some to-dos?</string>
2107+
<string name="widgetToDoEmptySubtitle">Looks like you are free, you have no upcoming tasks. Do you want to add some to-dos?</string>
21082108
<string name="widgetNotLoggedInTitle">Let\'s Get You Logged In!</string>
21092109
<string name="widgetToDoNotLoggedInSubtitle">To see your to-dos, please log in to your account in the app. It\'ll just take a sec!</string>
21102110
<string name="a11y_widgetToDoOpenToDoList">Open To Do list screen</string>

libs/pandautils/src/androidTest/java/com/instructure/pandautils/room/appdatabase/daos/ToDoFilterDaoTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ class ToDoFilterDaoTest {
250250
assertEquals(false, foundFilter?.calendarEvents)
251251
assertEquals(false, foundFilter?.showCompleted)
252252
assertEquals(false, foundFilter?.favoriteCourses)
253-
assertEquals(DateRangeSelection.ONE_WEEK, foundFilter?.pastDateRange)
254-
assertEquals(DateRangeSelection.ONE_WEEK, foundFilter?.futureDateRange)
253+
assertEquals(DateRangeSelection.FOUR_WEEKS, foundFilter?.pastDateRange)
254+
assertEquals(DateRangeSelection.THIS_WEEK, foundFilter?.futureDateRange)
255255
}
256256
}

libs/pandautils/src/main/java/com/instructure/pandautils/features/todolist/ToDoListViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -497,8 +497,8 @@ class ToDoListViewModel @Inject constructor(
497497
!filters.calendarEvents &&
498498
!filters.showCompleted &&
499499
!filters.favoriteCourses &&
500-
filters.pastDateRange == DateRangeSelection.ONE_WEEK &&
501-
filters.futureDateRange == DateRangeSelection.ONE_WEEK
500+
filters.pastDateRange == DateRangeSelection.FOUR_WEEKS &&
501+
filters.futureDateRange == DateRangeSelection.THIS_WEEK
502502

503503
if (isDefaultFilter) {
504504
analytics.logEvent(AnalyticsEventConstants.TODO_LIST_LOADED_DEFAULT_FILTER)
@@ -517,6 +517,6 @@ class ToDoListViewModel @Inject constructor(
517517

518518
private fun isFilterApplied(filters: ToDoFilterEntity): Boolean {
519519
return filters.personalTodos || filters.calendarEvents || filters.showCompleted || filters.favoriteCourses
520-
|| filters.pastDateRange != DateRangeSelection.ONE_WEEK || filters.futureDateRange != DateRangeSelection.ONE_WEEK
520+
|| filters.pastDateRange != DateRangeSelection.FOUR_WEEKS || filters.futureDateRange != DateRangeSelection.THIS_WEEK
521521
}
522522
}

libs/pandautils/src/main/java/com/instructure/pandautils/features/todolist/filter/ToDoFilterViewModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ class ToDoFilterViewModel @Inject constructor(
5454
FILTER_FAVORITE_COURSES to false
5555
)
5656

57-
private var selectedPastOption = DateRangeSelection.ONE_WEEK
58-
private var selectedFutureOption = DateRangeSelection.ONE_WEEK
57+
private var selectedPastOption = DateRangeSelection.FOUR_WEEKS
58+
private var selectedFutureOption = DateRangeSelection.THIS_WEEK
5959

6060
private val _uiState = MutableStateFlow(createInitialUiState())
6161
val uiState = _uiState.asStateFlow()

libs/pandautils/src/main/java/com/instructure/pandautils/room/appdatabase/entities/ToDoFilterEntity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ data class ToDoFilterEntity(
2828
val calendarEvents: Boolean = false,
2929
val showCompleted: Boolean = false,
3030
val favoriteCourses: Boolean = false,
31-
val pastDateRange: DateRangeSelection = DateRangeSelection.ONE_WEEK,
32-
val futureDateRange: DateRangeSelection = DateRangeSelection.ONE_WEEK
31+
val pastDateRange: DateRangeSelection = DateRangeSelection.FOUR_WEEKS,
32+
val futureDateRange: DateRangeSelection = DateRangeSelection.THIS_WEEK
3333
)

libs/pandautils/src/test/java/com/instructure/pandautils/features/todolist/ToDoListViewModelTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ class ToDoListViewModelTest {
120120
calendarEvents = true,
121121
showCompleted = true, // Important: show completed items in tests by default
122122
favoriteCourses = false,
123-
pastDateRange = DateRangeSelection.ONE_WEEK,
124-
futureDateRange = DateRangeSelection.ONE_WEEK
123+
pastDateRange = DateRangeSelection.FOUR_WEEKS,
124+
futureDateRange = DateRangeSelection.THIS_WEEK
125125
)
126126
coEvery { toDoFilterDao.findByUser(any(), any()) } returns defaultTestFilter
127127
}
@@ -1177,8 +1177,8 @@ class ToDoListViewModelTest {
11771177
calendarEvents = false,
11781178
showCompleted = false,
11791179
favoriteCourses = false,
1180-
pastDateRange = DateRangeSelection.ONE_WEEK,
1181-
futureDateRange = DateRangeSelection.ONE_WEEK
1180+
pastDateRange = DateRangeSelection.FOUR_WEEKS,
1181+
futureDateRange = DateRangeSelection.THIS_WEEK
11821182
)
11831183

11841184
coEvery { repository.getCourses(any()) } returns DataResult.Success(emptyList())
@@ -1276,8 +1276,8 @@ class ToDoListViewModelTest {
12761276
calendarEvents = false,
12771277
showCompleted = false,
12781278
favoriteCourses = false,
1279-
pastDateRange = DateRangeSelection.ONE_WEEK,
1280-
futureDateRange = DateRangeSelection.ONE_WEEK
1279+
pastDateRange = DateRangeSelection.FOUR_WEEKS,
1280+
futureDateRange = DateRangeSelection.THIS_WEEK
12811281
)
12821282

12831283
coEvery { repository.getCourses(any()) } returns DataResult.Success(emptyList())

libs/pandautils/src/test/java/com/instructure/pandautils/features/todolist/filter/ToDoFilterViewModelTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ class ToDoFilterViewModelTest {
112112
assertFalse(state.checkboxItems[2].checked) // Show completed
113113
assertFalse(state.checkboxItems[3].checked) // Favorite courses
114114

115-
// Default date range should be ONE_WEEK
116-
assertEquals(DateRangeSelection.ONE_WEEK, state.selectedPastOption)
117-
assertEquals(DateRangeSelection.ONE_WEEK, state.selectedFutureOption)
115+
// Default date range should be FOUR_WEEKS (past) and THIS_WEEK (future)
116+
assertEquals(DateRangeSelection.FOUR_WEEKS, state.selectedPastOption)
117+
assertEquals(DateRangeSelection.THIS_WEEK, state.selectedFutureOption)
118118

119119
// Flags should be false
120120
assertFalse(state.shouldCloseAndApplyFilters)

0 commit comments

Comments
 (0)