From 963ca2dd5549843e992af718053d08c10d5ec843 Mon Sep 17 00:00:00 2001 From: Caine Date: Thu, 2 Apr 2026 22:50:49 +0100 Subject: Add rating + preferences fields, log first cook feedback - Ingredient.preferences: qualitative notes on how Tom likes things cooked - CookLog.rating: 1-5 score - CookLog.notes: help text updated for feedback - Migration 0002 - First cook logged: Baked Pasta with lardons, rated 2/5 - Bacon lardons preference: don't oven bake, fry separately, not solo protein --- .../migrations/0002_add_rating_and_preferences.py | 28 ++++++++++++++++++++++ kitchen/models.py | 12 +++++++++- kitchen/serializers.py | 1 + 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 kitchen/migrations/0002_add_rating_and_preferences.py (limited to 'kitchen') diff --git a/kitchen/migrations/0002_add_rating_and_preferences.py b/kitchen/migrations/0002_add_rating_and_preferences.py new file mode 100644 index 0000000..a95051b --- /dev/null +++ b/kitchen/migrations/0002_add_rating_and_preferences.py @@ -0,0 +1,28 @@ +# Generated by Django 5.2.12 on 2026-04-02 21:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('kitchen', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='cooklog', + name='rating', + field=models.IntegerField(blank=True, help_text='1-5 rating. 1=awful, 3=fine, 5=great', null=True), + ), + migrations.AddField( + model_name='ingredient', + name='preferences', + field=models.TextField(blank=True, help_text='How Tom likes this ingredient cooked / qualitative notes. E.g. "Don\'t traybake — needs to be fried. Not substantial as sole protein."'), + ), + migrations.AlterField( + model_name='cooklog', + name='notes', + field=models.TextField(blank=True, help_text="What worked, what didn't, what to change next time"), + ), + ] diff --git a/kitchen/models.py b/kitchen/models.py index 0f47f8f..9c3e8d3 100644 --- a/kitchen/models.py +++ b/kitchen/models.py @@ -27,6 +27,11 @@ class Ingredient(models.Model): aliases = models.JSONField( default=list, blank=True, help_text='Alternative names, e.g. ["noodles", "egg noodle nests"]' ) + preferences = models.TextField( + blank=True, + help_text="How Tom likes this ingredient cooked / qualitative notes. " + 'E.g. "Don\'t traybake — needs to be fried. Not substantial as sole protein."', + ) class Meta: ordering = ["name"] @@ -210,7 +215,12 @@ class CookLog(models.Model): help_text='Slot choices for meta-recipe, e.g. {"protein": "pork mince", "carb": "noodles"}', ) servings = models.IntegerField(default=2) - notes = models.TextField(blank=True) + rating = models.IntegerField( + null=True, + blank=True, + help_text="1-5 rating. 1=awful, 3=fine, 5=great", + ) + notes = models.TextField(blank=True, help_text="What worked, what didn't, what to change next time") class Meta: ordering = ["-date"] diff --git a/kitchen/serializers.py b/kitchen/serializers.py index 0de5220..097caff 100644 --- a/kitchen/serializers.py +++ b/kitchen/serializers.py @@ -29,6 +29,7 @@ class IngredientSerializer(serializers.ModelSerializer): class Meta: model = Ingredient fields = "__all__" + # preferences field included via __all__ class PantryItemSerializer(serializers.ModelSerializer): -- cgit v1.2.3