From ccb178ae5a3a6166a7b846edd3d615aa69164179 Mon Sep 17 00:00:00 2001 From: artus40 Date: Sun, 10 Feb 2019 21:29:48 +0100 Subject: [PATCH] Adds Planner component --- web/src/main.rs | 25 +++++++++++++-- web/vue/src/components/Planner.vue | 50 ++++++++++++++++++++++++++++-- 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/web/src/main.rs b/web/src/main.rs index d3fb4de..6509386 100644 --- a/web/src/main.rs +++ b/web/src/main.rs @@ -76,8 +76,19 @@ mod api { Json( recipes::delete(&conn, id) ) } + #[derive(Serialize)] + pub struct TemplateItems { + key: (String, String), + value: Option, + } + + #[derive(Serialize)] + pub struct TemplateObject { + items: Vec + } + #[get("/solver/one")] - pub fn one_solution(conn: CookbookDbConn) -> Json { + pub fn one_solution(conn: CookbookDbConn) -> Json { use planner::{ template, solver::{Domain, Problem} @@ -93,8 +104,18 @@ mod api { .add_constraint(|_| true) .finish(); let results = problem.solve_all(); + let one_result = results.first().unwrap(); - Json(format!("{:?}", results.first().unwrap())) + Json(TemplateObject { + items: one_result + .into_iter() + .map(|(k,v)| { + TemplateItems { + key: (format!("{}", k.0), format!("{:?}", k.1)), + value: v.map(|r| RecipeObject::from(&conn, r.clone())), + }}) + .collect(), + }) } } diff --git a/web/vue/src/components/Planner.vue b/web/vue/src/components/Planner.vue index 7d0c01b..cd23bd7 100644 --- a/web/vue/src/components/Planner.vue +++ b/web/vue/src/components/Planner.vue @@ -2,16 +2,52 @@

Week

-

{{ template }}

+
+
+
+
+ {{ day_meals[0] }} +

+ {{ meal.value.title }} +

+
+
+