From 1953a26d7f74d0c904be6638f958597135ad40ae Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Sun, 9 Feb 2020 17:27:46 +0100 Subject: [PATCH] Changelog and small changes for #552) --- changelog/56_UNRELEASED_2020-xx-xx.md | 6 ++- services/CalendarService.php | 74 ++++++++++++++------------- 2 files changed, 44 insertions(+), 36 deletions(-) diff --git a/changelog/56_UNRELEASED_2020-xx-xx.md b/changelog/56_UNRELEASED_2020-xx-xx.md index 42aa83fe..c25850c7 100644 --- a/changelog/56_UNRELEASED_2020-xx-xx.md +++ b/changelog/56_UNRELEASED_2020-xx-xx.md @@ -19,7 +19,11 @@ ### Meal plan improvements - Improved that all add-dialogs can be submitted by using `ENTER` and that the next input is automatically selected after selecting a recipe/product - Added an edit button to all types of meal plan entries -- Fixed that the meal plan not used the full height on mobile devices (also applies/fixes the same for the calendar) +- Fixed that the meal plan not used the full height on mobile devices + +### Calendar fixes +- Fixed to only include events when the corresponding feature flag is enabled (e. g. don't show expiring products when `FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING` is set to `false`) (thanks @kriddles) +- Fixed that the calendar not used the full height on mobile devices ### General & other improvements/fixes - Optimized the top navbar height and overall spacing to waste less space diff --git a/services/CalendarService.php b/services/CalendarService.php index fa009583..313229cc 100644 --- a/services/CalendarService.php +++ b/services/CalendarService.php @@ -102,47 +102,51 @@ class CalendarService extends BaseService } } - $recipes = $this->Database->recipes(); - $mealPlanDayRecipes = $this->Database->recipes()->where('type', 'mealplan-day'); - $titlePrefix = $this->LocalizationService->__t('Meal plan recipe') . ': '; $mealPlanRecipeEvents = array(); - foreach($mealPlanDayRecipes as $mealPlanDayRecipe) + if (GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING) { - $recipesOfCurrentDay = $this->Database->recipes_nestings_resolved()->where('recipe_id = :1 AND includes_recipe_id != :1', $mealPlanDayRecipe->id); - foreach ($recipesOfCurrentDay as $recipeOfCurrentDay) + $recipes = $this->Database->recipes(); + $mealPlanDayRecipes = $this->Database->recipes()->where('type', 'mealplan-day'); + $titlePrefix = $this->LocalizationService->__t('Meal plan recipe') . ': '; + + foreach($mealPlanDayRecipes as $mealPlanDayRecipe) { - $mealPlanRecipeEvents[] = array( - 'title' => $titlePrefix . FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->includes_recipe_id)->name, - 'start' => FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->recipe_id)->name, - 'date_format' => 'date', - 'description' => $this->UrlManager->ConstructUrl('/mealplan' . '?week=' . FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->recipe_id)->name) + $recipesOfCurrentDay = $this->Database->recipes_nestings_resolved()->where('recipe_id = :1 AND includes_recipe_id != :1', $mealPlanDayRecipe->id); + foreach ($recipesOfCurrentDay as $recipeOfCurrentDay) + { + $mealPlanRecipeEvents[] = array( + 'title' => $titlePrefix . FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->includes_recipe_id)->name, + 'start' => FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->recipe_id)->name, + 'date_format' => 'date', + 'description' => $this->UrlManager->ConstructUrl('/mealplan' . '?week=' . FindObjectInArrayByPropertyValue($recipes, 'id', $recipeOfCurrentDay->recipe_id)->name) + ); + } + } + + $mealPlanDayNotes = $this->Database->meal_plan()->where('type', 'note'); + $titlePrefix = $this->LocalizationService->__t('Meal plan note') . ': '; + $mealPlanNotesEvents = array(); + foreach($mealPlanDayNotes as $mealPlanDayNote) + { + $mealPlanNotesEvents[] = array( + 'title' => $titlePrefix . $mealPlanDayNote->note, + 'start' => $mealPlanDayNote->day, + 'date_format' => 'date' ); } - } - $mealPlanDayNotes = $this->Database->meal_plan()->where('type', 'note'); - $titlePrefix = $this->LocalizationService->__t('Meal plan note') . ': '; - $mealPlanNotesEvents = array(); - foreach($mealPlanDayNotes as $mealPlanDayNote) - { - $mealPlanNotesEvents[] = array( - 'title' => $titlePrefix . $mealPlanDayNote->note, - 'start' => $mealPlanDayNote->day, - 'date_format' => 'date' - ); - } - - $products = $this->Database->products(); - $mealPlanDayProducts = $this->Database->meal_plan()->where('type', 'product'); - $titlePrefix = $this->LocalizationService->__t('Meal plan product') . ': '; - $mealPlanProductEvents = array(); - foreach($mealPlanDayProducts as $mealPlanDayProduct) - { - $mealPlanProductEvents[] = array( - 'title' => $titlePrefix . FindObjectInArrayByPropertyValue($products, 'id', $mealPlanDayProduct->product_id)->name, - 'start' => $mealPlanDayProduct->day, - 'date_format' => 'date' - ); + $products = $this->Database->products(); + $mealPlanDayProducts = $this->Database->meal_plan()->where('type', 'product'); + $titlePrefix = $this->LocalizationService->__t('Meal plan product') . ': '; + $mealPlanProductEvents = array(); + foreach($mealPlanDayProducts as $mealPlanDayProduct) + { + $mealPlanProductEvents[] = array( + 'title' => $titlePrefix . FindObjectInArrayByPropertyValue($products, 'id', $mealPlanDayProduct->product_id)->name, + 'start' => $mealPlanDayProduct->day, + 'date_format' => 'date' + ); + } } return array_merge($stockEvents, $taskEvents, $choreEvents, $batteryEvents, $mealPlanRecipeEvents, $mealPlanNotesEvents, $mealPlanProductEvents);