From 73451e1051616b62b79f49e3373455f04d5d31a3 Mon Sep 17 00:00:00 2001 From: hay-kot Date: Tue, 25 May 2021 20:29:07 -0700 Subject: [PATCH] public mealplan links --- frontend/src/api/mealplan.js | 6 ++++++ .../src/components/UI/Buttons/TheCopyButton.vue | 2 +- frontend/src/pages/MealPlan/Planner.vue | 8 +++++++- frontend/src/pages/MealPlan/ThisWeek.vue | 13 +++++++++++-- frontend/src/routes/meal.js | 7 +++++++ mealie/routes/mealplans/crud.py | 10 ++++++++++ 6 files changed, 42 insertions(+), 4 deletions(-) diff --git a/frontend/src/api/mealplan.js b/frontend/src/api/mealplan.js index 4d396a1cf..5296b694d 100644 --- a/frontend/src/api/mealplan.js +++ b/frontend/src/api/mealplan.js @@ -9,6 +9,7 @@ const mealPlanURLs = { all: `${prefix}all`, create: `${prefix}create`, thisWeek: `${prefix}this-week`, + byId: planID => `${prefix}${planID}`, update: planID => `${prefix}${planID}`, delete: planID => `${prefix}${planID}`, today: `${prefix}today`, @@ -40,6 +41,11 @@ export const mealplanAPI = { return response; }, + async getById(id) { + let response = await apiReq.get(mealPlanURLs.byId(id)); + return response.data; + }, + delete(id) { return apiReq.delete( mealPlanURLs.delete(id), diff --git a/frontend/src/components/UI/Buttons/TheCopyButton.vue b/frontend/src/components/UI/Buttons/TheCopyButton.vue index 6633eda71..aa8eb557e 100644 --- a/frontend/src/components/UI/Buttons/TheCopyButton.vue +++ b/frontend/src/components/UI/Buttons/TheCopyButton.vue @@ -27,7 +27,7 @@ mdi-clipboard-check - {{ $t("general.coppied") }}! + {{ $t("general.coppied") }}! diff --git a/frontend/src/pages/MealPlan/Planner.vue b/frontend/src/pages/MealPlan/Planner.vue index 4b1f19095..73b916ca5 100644 --- a/frontend/src/pages/MealPlan/Planner.vue +++ b/frontend/src/pages/MealPlan/Planner.vue @@ -37,6 +37,8 @@ Shopping List + + Link Coppied @@ -84,11 +86,12 @@ import { api } from "@/api"; import { utils } from "@/utils"; import NewMeal from "@/components/MealPlan/MealPlanNew"; import EditPlan from "@/components/MealPlan/MealPlanEditor"; - +import TheCopyButton from "@/components/UI/Buttons/TheCopyButton"; export default { components: { NewMeal, EditPlan, + TheCopyButton, }, data: () => ({ plannedMeals: [], @@ -103,6 +106,9 @@ export default { this.plannedMeals = response.data; console.log(this.plannedMeals); }, + mealPlanURL(uid) { + return window.location.origin + "/meal-plan?id=" + uid; + }, generateKey(name, index) { return utils.generateUniqueKey(name, index); }, diff --git a/frontend/src/pages/MealPlan/ThisWeek.vue b/frontend/src/pages/MealPlan/ThisWeek.vue index f06bf3718..648eba8bb 100644 --- a/frontend/src/pages/MealPlan/ThisWeek.vue +++ b/frontend/src/pages/MealPlan/ThisWeek.vue @@ -46,11 +46,20 @@ export default { }; }, async mounted() { - this.mealPlan = await api.mealPlans.thisWeek(); + if (this.mealplanId) { + this.mealPlan = await api.mealPlans.getById(this.mealplanId); + } else { + this.mealPlan = await api.mealPlans.thisWeek(); + } + console.log(this.mealPlans); if (!this.mealPlan) { utils.notify.warning(this.$t("meal-plan.no-meal-plan-defined-yet")); } - console.log(this.mealPlan); + }, + computed: { + mealplanId() { + return this.$route.query.id || false; + }, }, methods: { getOrder(index) { diff --git a/frontend/src/routes/meal.js b/frontend/src/routes/meal.js index 5dfc042d7..4aca00dd8 100644 --- a/frontend/src/routes/meal.js +++ b/frontend/src/routes/meal.js @@ -5,6 +5,13 @@ import { utils } from "@/utils"; import i18n from "@/i18n.js"; export const mealRoutes = [ + { + path: "/meal-plan", + component: ThisWeek, + meta: { + title: "meal-plan.dinner-this-week", + }, + }, { path: "/meal-plan/planner", component: Planner, diff --git a/mealie/routes/mealplans/crud.py b/mealie/routes/mealplans/crud.py index 4e471f407..59dceb0c4 100644 --- a/mealie/routes/mealplans/crud.py +++ b/mealie/routes/mealplans/crud.py @@ -23,6 +23,16 @@ def get_all_meals( return db.groups.get_meals(session, current_user.group) +@router.get("/{id}", response_model=MealPlanOut) +def get_meal_plan( + id, + session: Session = Depends(generate_session), +): + """ Returns a single Meal Plan from the Database """ + + return db.meals.get(session, id, "uid") + + @router.post("/create", status_code=status.HTTP_201_CREATED) def create_meal_plan( background_tasks: BackgroundTasks,