diff --git a/src/pages/api/comparisons.rs b/src/pages/api/comparisons.rs index a037abb..77fd3e9 100644 --- a/src/pages/api/comparisons.rs +++ b/src/pages/api/comparisons.rs @@ -188,6 +188,64 @@ fn create_sports_comparisons() -> Vec { ] } +fn create_major_comparison( + id: impl Into, + display_text: impl Into, +) -> ComparisonData { + let display = display_text.into(); + ComparisonData::new( + id, + "major", + ComparisonType::Text(TextComparison::Contains), + ValueType::String(Some(display.clone())), + "Majors", + display, + ) +} + +fn create_major_comparisons() -> Vec { + let display_texts = vec![ + "Music", + "Education", + "Special Education", + "Speech Pathology", + "School Psychology", + "School Counseling", + "Occupational Therapy", + "Physical Therapy", + "Nursing", + "Allied Health", + "Fine/Performing Arts", + "Writing/Communication", + "History", + "Government", + "Political Science", + "Social Work", + "Sports Medicine", + "Athletic Training", + "Horticulture", + "Conservation Studies", + "Ecology", + "Environmental Studies", + "Urban Planning", + "Landscaping", + "Legal Studies", + "Criminal Justice", + ]; + + let ids = display_texts + .iter() + .map(|text| + format!("{}_{}", "major", text.to_lowercase().replace(" ", "_").replace("/", "_")) + ) + .collect::>(); + + ids.iter().zip(display_texts).map(|(id, display_text)| { + create_major_comparison(id, display_text) + }) + .collect::>() +} + #[allow(unused)] fn make_comp_list() -> Vec { let gpa_3 = ComparisonData::new( @@ -296,7 +354,7 @@ fn make_comp_list() -> Vec { ); let mut sports_comps = create_sports_comparisons(); - let mut major_comps = Vec::::new(); + let mut major_comps = create_major_comparisons(); let mut comp_list = vec![ gpa_3, diff --git a/src/pages/scholarship_info.rs b/src/pages/scholarship_info.rs index 64a9a60..df41afd 100644 --- a/src/pages/scholarship_info.rs +++ b/src/pages/scholarship_info.rs @@ -416,8 +416,10 @@ fn ScholarshipForm( if let Some(Ok(scholarship)) = scholarship_info.get() { // Get the default chips data. let chips_default = if let Some(ValueType::Map(Some(map))) = scholarship.data.get("requirements") { + log!("Found requirements map: {:?}", map); map.clone() } else { + log!("Couldn't find requirements map in scholarship info. Using empty map."); HashMap::new() }; @@ -464,15 +466,15 @@ fn ScholarshipForm( let gpa_ids = Signal::derive(move || get_comp_ids("GPA Limits")); let gpa_text = Signal::derive(move || get_comp_text("GPA Limits")); - // We'll collect the scholarship's name, num_awards, amount_per_award, total_awards, - // fafsa_required, award_to, transcript_required, recipient_selection, essay_requirement (and prompt) - // award_night_remarks + let major_ids = Signal::derive(move || get_comp_ids("Majors")); + let major_text = Signal::derive(move || get_comp_text("Majors")); let mut toasts = expect_context::(); let on_submit = move |_| { let mut info = ExpandableInfo::new(scholarship_id.get().unwrap_or_default()); info.data = form_data.get(); + info.data.insert("requirements".to_string(), ValueType::Map(Some(chips_data.get()))); log!("Map values: {:?}", info.data); submit_action.dispatch(CreateScholarshipInfo { @@ -518,11 +520,6 @@ fn ScholarshipForm( Ok(_) => { Either::Left( view! { - -

- "Scholarship Info Form (test)" -

-
+ + +