diff --git a/cookbook/migrations/0217_alter_userpreference_default_page.py b/cookbook/migrations/0217_alter_userpreference_default_page.py
new file mode 100644
index 000000000..ae02a1ab0
--- /dev/null
+++ b/cookbook/migrations/0217_alter_userpreference_default_page.py
@@ -0,0 +1,18 @@
+# Generated by Django 4.2.10 on 2024-03-09 06:41
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('cookbook', '0216_delete_shoppinglist'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='userpreference',
+ name='default_page',
+ field=models.CharField(choices=[('SEARCH', 'Search'), ('PLAN', 'Meal-Plan'), ('BOOKS', 'Books'), ('SHOPPING', 'Shopping')], default='SEARCH', max_length=64),
+ ),
+ ]
diff --git a/cookbook/models.py b/cookbook/models.py
index aab4ec554..d2e160b8d 100644
--- a/cookbook/models.py
+++ b/cookbook/models.py
@@ -449,11 +449,13 @@ class UserPreference(models.Model, PermissionModelMixin):
SEARCH = 'SEARCH'
PLAN = 'PLAN'
BOOKS = 'BOOKS'
+ SHOPPING = 'SHOPPING'
PAGES = (
(SEARCH, _('Search')),
(PLAN, _('Meal-Plan')),
(BOOKS, _('Books')),
+ (SHOPPING, _('Shopping')),
)
user = AutoOneToOneField(User, on_delete=models.CASCADE, primary_key=True)
diff --git a/cookbook/views/views.py b/cookbook/views/views.py
index e3d057945..a2d23152d 100644
--- a/cookbook/views/views.py
+++ b/cookbook/views/views.py
@@ -38,7 +38,7 @@ def index(request):
return HttpResponseRedirect(reverse_lazy('view_search'))
try:
- page_map = {UserPreference.SEARCH: reverse_lazy('view_search'), UserPreference.PLAN: reverse_lazy('view_plan'), UserPreference.BOOKS: reverse_lazy('view_books'), }
+ page_map = {UserPreference.SEARCH: reverse_lazy('view_search'), UserPreference.PLAN: reverse_lazy('view_plan'), UserPreference.BOOKS: reverse_lazy('view_books'), UserPreference.SHOPPING: reverse_lazy('view_shopping'),}
return HttpResponseRedirect(page_map.get(request.user.userpreference.default_page))
except UserPreference.DoesNotExist:
@@ -446,7 +446,7 @@ def web_manifest(request):
theme_values['app_name'], "description":
_("Manage recipes, shopping list, meal plans and more."), "icons":
icons, "start_url":
- "./search", "background_color":
+ "./", "background_color":
theme_values['nav_bg_color'], "display":
"standalone", "scope":
".", "theme_color":
@@ -454,7 +454,7 @@ def web_manifest(request):
[{"name": _("Plan"), "short_name": _("Plan"), "description": _("View your meal Plan"), "url":
"./plan"}, {"name": _("Books"), "short_name": _("Books"), "description": _("View your cookbooks"), "url": "./books"},
{"name": _("Shopping"), "short_name": _("Shopping"), "description": _("View your shopping lists"), "url":
- "./list/shopping-list/"}], "share_target": {"action": "/data/import/url", "method": "GET", "params": {"title": "title", "url": "url", "text": "text"}}
+ "./shopping/"}], "share_target": {"action": "/data/import/url", "method": "GET", "params": {"title": "title", "url": "url", "text": "text"}}
}
return JsonResponse(manifest_info, json_dumps_params={'indent': 4})
diff --git a/vue/src/components/Settings/CosmeticSettingsComponent.vue b/vue/src/components/Settings/CosmeticSettingsComponent.vue
index b37866545..8ce754336 100644
--- a/vue/src/components/Settings/CosmeticSettingsComponent.vue
+++ b/vue/src/components/Settings/CosmeticSettingsComponent.vue
@@ -37,6 +37,15 @@
+