fix: filter courses only by short lang code (#4350)
* fix: filter courses only by short lang code * Update lib/pangea/course_creation/course_search_provider.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update lib/pangea/login/pages/public_trip_page.dart Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix: always call setState on update target language filter --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
parent
ac32bd77ec
commit
d4b5d6d059
3 changed files with 12 additions and 7 deletions
|
|
@ -26,8 +26,9 @@ mixin CourseSearchProvider<T extends StatefulWidget> on State<T> {
|
|||
);
|
||||
}
|
||||
|
||||
void setTargetLanguageFilter(LanguageModel? language, {reload = true}) {
|
||||
targetLanguageFilter = language;
|
||||
void setTargetLanguageFilter(LanguageModel? language, {bool reload = true}) {
|
||||
if (targetLanguageFilter?.langCodeShort == language?.langCodeShort) return;
|
||||
setState(() => targetLanguageFilter = language);
|
||||
if (reload) _loadCourses();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,11 +49,11 @@ class CourseFilter {
|
|||
}
|
||||
if (languageOfInstructions != null) {
|
||||
where["l1"] = {
|
||||
"equals": languageOfInstructions!.langCode,
|
||||
"equals": languageOfInstructions!.langCodeShort,
|
||||
};
|
||||
}
|
||||
if (targetLanguage != null) {
|
||||
where["l2"] = {"equals": targetLanguage!.langCode};
|
||||
where["l2"] = {"equals": targetLanguage!.langCodeShort};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,8 +52,10 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
_loadCourses();
|
||||
}
|
||||
|
||||
void setTargetLanguageFilter(LanguageModel? language) {
|
||||
void setTargetLanguageFilter(LanguageModel? language, {bool reload = true}) {
|
||||
if (targetLanguageFilter?.langCodeShort == language?.langCodeShort) return;
|
||||
setState(() => targetLanguageFilter = language);
|
||||
if (reload) _loadCourses();
|
||||
}
|
||||
|
||||
List<PublicCoursesChunk> get filteredCourses {
|
||||
|
|
@ -70,7 +72,8 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
(chunk) {
|
||||
final course = coursePlans[chunk.courseId];
|
||||
if (course == null) return false;
|
||||
return course.targetLanguageModel == targetLanguageFilter;
|
||||
return course.targetLanguage.split('-').first ==
|
||||
targetLanguageFilter!.langCodeShort;
|
||||
},
|
||||
).toList();
|
||||
}
|
||||
|
|
@ -110,7 +113,8 @@ class PublicTripPageState extends State<PublicTripPage> {
|
|||
try {
|
||||
final resp = await CoursePlansRepo.search(
|
||||
GetLocalizedCoursesRequest(
|
||||
coursePlanIds: discoveredCourses.map((c) => c.courseId).toList(),
|
||||
coursePlanIds:
|
||||
discoveredCourses.map((c) => c.courseId).toSet().toList(),
|
||||
l1: MatrixState.pangeaController.languageController.activeL1Code()!,
|
||||
),
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue