diff --git a/cookbook/forms.py b/cookbook/forms.py index 2d7e957bc..da86d6ecd 100644 --- a/cookbook/forms.py +++ b/cookbook/forms.py @@ -478,7 +478,8 @@ class ShoppingPreferenceForm(forms.ModelForm): model = UserPreference fields = ( - 'shopping_share', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'mealplan_autoexclude_onhand', 'default_delay' + 'shopping_share', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'mealplan_autoexclude_onhand', + 'mealplan_autoinclude_related', 'default_delay', 'filter_to_supermarket' ) help_texts = { @@ -489,14 +490,18 @@ class ShoppingPreferenceForm(forms.ModelForm): ), 'mealplan_autoadd_shopping': _('Automatically add meal plan ingredients to shopping list.'), 'mealplan_autoexclude_onhand': _('When automatically adding a meal plan to the shopping list, exclude ingredients that are on hand.'), + 'mealplan_autoinclude_related': _('When automatically adding a meal plan to the shopping list, include all related recipes.'), 'default_delay': _('Default number of hours to delay a shopping list entry.'), + 'filter_to_supermarket': _('Filter shopping list to only include supermarket categories.'), } labels = { 'shopping_share': _('Share Shopping List'), 'shopping_auto_sync': _('Autosync'), 'mealplan_autoadd_shopping': _('Auto Add Meal Plan'), 'mealplan_autoexclude_onhand': _('Exclude On Hand'), + 'mealplan_autoinclude_related': _('Include Related'), 'default_delay': _('Default Delay Hours'), + 'filter_to_supermarket': _('Filter to Supermarket'), } widgets = { diff --git a/cookbook/migrations/0159_add_shoppinglistentry_fields.py b/cookbook/migrations/0159_add_shoppinglistentry_fields.py index a002095b1..a752925ce 100644 --- a/cookbook/migrations/0159_add_shoppinglistentry_fields.py +++ b/cookbook/migrations/0159_add_shoppinglistentry_fields.py @@ -152,5 +152,10 @@ class Migration(migrations.Migration): name='shopping_recent_days', field=models.PositiveIntegerField(default=7), ), + migrations.AddField( + model_name='userpreference', + name='filter_to_supermarket', + field=models.BooleanField(default=False), + ), migrations.RunPython(copy_values_to_sle), ] diff --git a/cookbook/models.py b/cookbook/models.py index 84907cfa5..44a1f414a 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -329,6 +329,7 @@ class UserPreference(models.Model, PermissionModelMixin): mealplan_autoadd_shopping = models.BooleanField(default=False) mealplan_autoexclude_onhand = models.BooleanField(default=True) mealplan_autoinclude_related = models.BooleanField(default=True) + filter_to_supermarket = models.BooleanField(default=False) default_delay = models.IntegerField(default=4) created_at = models.DateTimeField(auto_now_add=True) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index b5049d6cb..b2b6a22b0 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -162,7 +162,8 @@ class UserPreferenceSerializer(serializers.ModelSerializer): fields = ( 'user', 'theme', 'nav_color', 'default_unit', 'default_page', 'search_style', 'show_recent', 'plan_share', 'ingredient_decimals', - 'comments', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'food_ignore_default', 'default_delay' + 'comments', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'food_ignore_default', 'default_delay', + 'mealplan_autoinclude_related', 'mealplan_autoexclude_onhand', 'shopping_share' ) diff --git a/cookbook/views/views.py b/cookbook/views/views.py index ab526747e..0eb2a4852 100644 --- a/cookbook/views/views.py +++ b/cookbook/views/views.py @@ -385,6 +385,7 @@ def user_settings(request): up.mealplan_autoexclude_onhand = shopping_form.cleaned_data['mealplan_autoexclude_onhand'] up.mealplan_autoinclude_related = shopping_form.cleaned_data['mealplan_autoinclude_related'] up.shopping_auto_sync = shopping_form.cleaned_data['shopping_auto_sync'] + up.filter_to_supermarket = shopping_form.cleaned_data['filter_to_supermarket'] up.default_delay = shopping_form.cleaned_data['default_delay'] if up.shopping_auto_sync < settings.SHOPPING_MIN_AUTOSYNC_INTERVAL: up.shopping_auto_sync = settings.SHOPPING_MIN_AUTOSYNC_INTERVAL diff --git a/vue/src/apps/ShoppingListView/ShoppingListView.vue b/vue/src/apps/ShoppingListView/ShoppingListView.vue index feef92b9f..3e93d30bc 100644 --- a/vue/src/apps/ShoppingListView/ShoppingListView.vue +++ b/vue/src/apps/ShoppingListView/ShoppingListView.vue @@ -1,8 +1,6 @@