From 47f4740e63c56fc456f93e4818343590aee79523 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:26:09 -0400 Subject: [PATCH] chore: topic is completed if user has finished number of activities equal to number of 2 person activities in topic (#3983) --- lib/pangea/course_plans/course_plan_room_extension.dart | 9 +++++---- lib/pangea/course_plans/course_user_event.dart | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/pangea/course_plans/course_plan_room_extension.dart b/lib/pangea/course_plans/course_plan_room_extension.dart index c120c646b..b5f5016fb 100644 --- a/lib/pangea/course_plans/course_plan_room_extension.dart +++ b/lib/pangea/course_plans/course_plan_room_extension.dart @@ -104,11 +104,12 @@ extension CoursePlanRoomExtension on Room { throw Exception('Topic not found'); } - final activityIds = course.loadedTopics[topicIndex].loadedActivities + final numTwoPersonActivities = course + .loadedTopics[topicIndex].loadedActivities .where((a) => a.req.numberOfParticipants <= 2) - .map((a) => a.activityId) - .toList(); - return state.completedActivities.toSet().containsAll(activityIds); + .length; + + return state.completedActivities.length >= numTwoPersonActivities; } CourseTopicModel? currentTopic( diff --git a/lib/pangea/course_plans/course_user_event.dart b/lib/pangea/course_plans/course_user_event.dart index ecc1e633a..e531c83d9 100644 --- a/lib/pangea/course_plans/course_user_event.dart +++ b/lib/pangea/course_plans/course_user_event.dart @@ -30,9 +30,9 @@ class CourseUserState { Map> get joinedActivities => _joinedActivities; - List get completedActivities => _completedActivities.keys.toList(); - List get joinedActivityRooms => - _joinedActivities.values.expand((e) => e).toList(); + Set get completedActivities => _completedActivities.keys.toSet(); + Set get joinedActivityRooms => + _joinedActivities.values.expand((e) => e).toSet(); bool hasCompletedActivity( String activityID,