From 8aa24d477128bc183f5777caa21d4a01b25ed791 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Thu, 11 Jun 2020 15:19:15 +0200 Subject: [PATCH] per user meal types --- .../migrations/0049_mealtype_created_by.py | 21 ++++++ .../migrations/0050_auto_20200611_1509.py | 30 ++++++++ .../migrations/0051_auto_20200611_1518.py | 21 ++++++ cookbook/models.py | 1 + cookbook/templates/meal_plan.html | 68 ++++++++++++++++++- cookbook/views/api.py | 14 ++-- 6 files changed, 147 insertions(+), 8 deletions(-) create mode 100644 cookbook/migrations/0049_mealtype_created_by.py create mode 100644 cookbook/migrations/0050_auto_20200611_1509.py create mode 100644 cookbook/migrations/0051_auto_20200611_1518.py diff --git a/cookbook/migrations/0049_mealtype_created_by.py b/cookbook/migrations/0049_mealtype_created_by.py new file mode 100644 index 000000000..f5e27573a --- /dev/null +++ b/cookbook/migrations/0049_mealtype_created_by.py @@ -0,0 +1,21 @@ +# Generated by Django 3.0.7 on 2020-06-11 13:08 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('cookbook', '0048_auto_20200602_1140'), + ] + + operations = [ + migrations.AddField( + model_name='mealtype', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/cookbook/migrations/0050_auto_20200611_1509.py b/cookbook/migrations/0050_auto_20200611_1509.py new file mode 100644 index 000000000..7c8413686 --- /dev/null +++ b/cookbook/migrations/0050_auto_20200611_1509.py @@ -0,0 +1,30 @@ +# Generated by Django 3.0.7 on 2020-06-11 13:09 + +from django.db import migrations +from django.db.models import Q + + +def migrate_meal_types(apps, schema_editor): + MealPlan = apps.get_model('cookbook', 'MealPlan') + MealType = apps.get_model('cookbook', 'MealType') + User = apps.get_model('auth', 'User') + + for u in User.objects.all(): + for t in MealType.objects.filter(created_by=None).all(): + user_type = MealType.objects.create( + name=t.name, + created_by=u, + ) + MealPlan.objects.filter(Q(created_by=u) and Q(meal_type=t)).update(meal_type=user_type) + + MealType.objects.filter(created_by=None).delete() + + +class Migration(migrations.Migration): + dependencies = [ + ('cookbook', '0049_mealtype_created_by'), + ] + + operations = [ + migrations.RunPython(migrate_meal_types), + ] diff --git a/cookbook/migrations/0051_auto_20200611_1518.py b/cookbook/migrations/0051_auto_20200611_1518.py new file mode 100644 index 000000000..896ba57c6 --- /dev/null +++ b/cookbook/migrations/0051_auto_20200611_1518.py @@ -0,0 +1,21 @@ +# Generated by Django 3.0.7 on 2020-06-11 13:18 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('cookbook', '0050_auto_20200611_1509'), + ] + + operations = [ + migrations.AlterField( + model_name='mealtype', + name='created_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/cookbook/models.py b/cookbook/models.py index f824a5baf..a3609f5c2 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -214,6 +214,7 @@ class RecipeBookEntry(models.Model): class MealType(models.Model): name = models.CharField(max_length=128) order = models.IntegerField(default=0) + created_by = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.name diff --git a/cookbook/templates/meal_plan.html b/cookbook/templates/meal_plan.html index 7738fc50d..cb0850747 100644 --- a/cookbook/templates/meal_plan.html +++ b/cookbook/templates/meal_plan.html @@ -49,6 +49,8 @@ [[d]]
[[formatDateDay(d)]]. + @@ -62,7 +64,7 @@ + :empty-insert-threshold="10" handle=".handle">
@@ -93,7 +95,6 @@
-
{% trans 'New Entry' %} @@ -112,7 +113,7 @@
- [[element.name]] + [[element.name]]
@@ -141,6 +142,36 @@
+
+
+
+ {% trans 'Shopping List' %} +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+
+


@@ -192,6 +223,9 @@