Merge pull request #71 from R15-Software-Dev/fix/comparison-filtering
Fix comparison logic for filtering
This commit was merged in pull request #71.
This commit is contained in:
1 file changed
+18
-14
@@ -4,7 +4,7 @@ use crate::pages::api::files::list_files;
|
|||||||
use crate::pages::api::students::get_all_student_data;
|
use crate::pages::api::students::get_all_student_data;
|
||||||
use crate::pages::api::{get_all_scholarship_info, get_comparison_info};
|
use crate::pages::api::{get_all_scholarship_info, get_comparison_info};
|
||||||
use crate::utils::get_user_claims;
|
use crate::utils::get_user_claims;
|
||||||
use leptos::logging::debug_log;
|
use leptos::logging::{debug_log, debug_error};
|
||||||
use leptos::prelude::*;
|
use leptos::prelude::*;
|
||||||
use leptos_oidc::AuthSignal;
|
use leptos_oidc::AuthSignal;
|
||||||
|
|
||||||
@@ -63,8 +63,7 @@ pub fn StudentEligibilityPage() -> impl IntoView {
|
|||||||
.get("name")
|
.get("name")
|
||||||
.unwrap_or(&ValueType::String(None))
|
.unwrap_or(&ValueType::String(None))
|
||||||
.as_string()
|
.as_string()
|
||||||
.ok()
|
.ok()?
|
||||||
.flatten()
|
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
debug_log!("Checking scholarship: {}", scholarship_name);
|
debug_log!("Checking scholarship: {}", scholarship_name);
|
||||||
let requirements_map = scholarship
|
let requirements_map = scholarship
|
||||||
@@ -72,8 +71,7 @@ pub fn StudentEligibilityPage() -> impl IntoView {
|
|||||||
.get("requirements")
|
.get("requirements")
|
||||||
.unwrap_or(&ValueType::Map(None))
|
.unwrap_or(&ValueType::Map(None))
|
||||||
.as_map()
|
.as_map()
|
||||||
.ok()
|
.ok()?
|
||||||
.flatten()
|
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.values()
|
.values()
|
||||||
.cloned()
|
.cloned()
|
||||||
@@ -108,19 +106,25 @@ pub fn StudentEligibilityPage() -> impl IntoView {
|
|||||||
&& resolved_requirements
|
&& resolved_requirements
|
||||||
.iter()
|
.iter()
|
||||||
.all(|list| {
|
.all(|list| {
|
||||||
|
debug_log!("Checking list: {:?}", list);
|
||||||
|
if list.is_empty() {
|
||||||
|
true
|
||||||
|
} else {
|
||||||
list.iter()
|
list.iter()
|
||||||
.fold(
|
.any(
|
||||||
false,
|
|requirement| {
|
||||||
|prev, requirement| {
|
|
||||||
let result = requirement
|
let result = requirement
|
||||||
.compare(&student_info)
|
.compare(&student_info);
|
||||||
.unwrap_or_else(|err| {
|
|
||||||
debug_log!("Requirement failed: {err}");
|
match result.as_ref() {
|
||||||
false
|
Ok(_) => debug_log!("Requirement with id {} success", requirement.id),
|
||||||
});
|
Err(e) => debug_error!("Requirement with id {} failed: {}", requirement.id, e)
|
||||||
if prev { prev } else { result }
|
};
|
||||||
|
|
||||||
|
result.is_ok()
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
}
|
||||||
});
|
});
|
||||||
if valid {
|
if valid {
|
||||||
debug_log!("Scholarship is valid.");
|
debug_log!("Scholarship is valid.");
|
||||||
|
|||||||
Reference in new issue
Block a user