Add major comparisons #45
No files matched your search
@@ -188,6 +188,64 @@ fn create_sports_comparisons() -> Vec<ComparisonData> {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn create_major_comparison(
|
||||||
|
id: impl Into<String>,
|
||||||
|
display_text: impl Into<String>,
|
||||||
|
) -> 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<ComparisonData> {
|
||||||
|
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::<Vec<String>>();
|
||||||
|
|
||||||
|
ids.iter().zip(display_texts).map(|(id, display_text)| {
|
||||||
|
create_major_comparison(id, display_text)
|
||||||
|
})
|
||||||
|
.collect::<Vec<ComparisonData>>()
|
||||||
|
}
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
fn make_comp_list() -> Vec<ComparisonData> {
|
fn make_comp_list() -> Vec<ComparisonData> {
|
||||||
let gpa_3 = ComparisonData::new(
|
let gpa_3 = ComparisonData::new(
|
||||||
@@ -296,7 +354,7 @@ fn make_comp_list() -> Vec<ComparisonData> {
|
|||||||
);
|
);
|
||||||
|
|
||||||
let mut sports_comps = create_sports_comparisons();
|
let mut sports_comps = create_sports_comparisons();
|
||||||
let mut major_comps = Vec::<ComparisonData>::new();
|
let mut major_comps = create_major_comparisons();
|
||||||
|
|
||||||
let mut comp_list = vec![
|
let mut comp_list = vec![
|
||||||
gpa_3,
|
gpa_3,
|
||||||
|
|||||||
@@ -416,8 +416,10 @@ fn ScholarshipForm(
|
|||||||
if let Some(Ok(scholarship)) = scholarship_info.get() {
|
if let Some(Ok(scholarship)) = scholarship_info.get() {
|
||||||
// Get the default chips data.
|
// Get the default chips data.
|
||||||
let chips_default = if let Some(ValueType::Map(Some(map))) = scholarship.data.get("requirements") {
|
let chips_default = if let Some(ValueType::Map(Some(map))) = scholarship.data.get("requirements") {
|
||||||
|
log!("Found requirements map: {:?}", map);
|
||||||
map.clone()
|
map.clone()
|
||||||
} else {
|
} else {
|
||||||
|
log!("Couldn't find requirements map in scholarship info. Using empty map.");
|
||||||
HashMap::new()
|
HashMap::new()
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -464,15 +466,15 @@ fn ScholarshipForm(
|
|||||||
let gpa_ids = Signal::derive(move || get_comp_ids("GPA Limits"));
|
let gpa_ids = Signal::derive(move || get_comp_ids("GPA Limits"));
|
||||||
let gpa_text = Signal::derive(move || get_comp_text("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,
|
let major_ids = Signal::derive(move || get_comp_ids("Majors"));
|
||||||
// fafsa_required, award_to, transcript_required, recipient_selection, essay_requirement (and prompt)
|
let major_text = Signal::derive(move || get_comp_text("Majors"));
|
||||||
// award_night_remarks
|
|
||||||
|
|
||||||
let mut toasts = expect_context::<ToastContext>();
|
let mut toasts = expect_context::<ToastContext>();
|
||||||
|
|
||||||
let on_submit = move |_| {
|
let on_submit = move |_| {
|
||||||
let mut info = ExpandableInfo::new(scholarship_id.get().unwrap_or_default());
|
let mut info = ExpandableInfo::new(scholarship_id.get().unwrap_or_default());
|
||||||
info.data = form_data.get();
|
info.data = form_data.get();
|
||||||
|
info.data.insert("requirements".to_string(), ValueType::Map(Some(chips_data.get())));
|
||||||
|
|
||||||
log!("Map values: {:?}", info.data);
|
log!("Map values: {:?}", info.data);
|
||||||
submit_action.dispatch(CreateScholarshipInfo {
|
submit_action.dispatch(CreateScholarshipInfo {
|
||||||
@@ -518,11 +520,6 @@ fn ScholarshipForm(
|
|||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
Either::Left(
|
Either::Left(
|
||||||
view! {
|
view! {
|
||||||
<Row>
|
|
||||||
<h1 class="text-3xl font-bold">
|
|
||||||
"Scholarship Info Form (test)"
|
|
||||||
</h1>
|
|
||||||
</Row>
|
|
||||||
<Row>
|
<Row>
|
||||||
<OutlinedTextField
|
<OutlinedTextField
|
||||||
label="Scholarship Name"
|
label="Scholarship Name"
|
||||||
@@ -646,6 +643,15 @@ fn ScholarshipForm(
|
|||||||
displayed_text=res_text
|
displayed_text=res_text
|
||||||
/>
|
/>
|
||||||
</Row>
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<ChipsList
|
||||||
|
label="Majors"
|
||||||
|
data_member="major"
|
||||||
|
data_map=chips_data
|
||||||
|
values=major_ids
|
||||||
|
displayed_text=major_text
|
||||||
|
/>
|
||||||
|
</Row>
|
||||||
<Row>
|
<Row>
|
||||||
<ChipsList
|
<ChipsList
|
||||||
label="Additional Eligibility Factors"
|
label="Additional Eligibility Factors"
|
||||||
|
|||||||
Reference in new issue
Block a user