From 6eb41fe33fe2f3e9900b78d0ca1792ec82c8a1c1 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Mon, 29 Jun 2020 22:41:54 +0200 Subject: [PATCH] fixed keywords and food/unit loading --- cookbook/models.py | 3 --- cookbook/serializer.py | 7 ++++++- cookbook/templates/forms/edit_internal_recipe.html | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cookbook/models.py b/cookbook/models.py index 183d9e4ed..de087b851 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -125,9 +125,6 @@ class Keyword(models.Model): else: return f"{self.name}" - def __str__(self): - return self.name - class Unit(models.Model): name = models.CharField(unique=True, max_length=128) diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 91a92f6e7..02f83a6ad 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -58,6 +58,11 @@ class SyncLogSerializer(serializers.ModelSerializer): class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer): + label = serializers.SerializerMethodField('get_label') + + def get_label(self, obj): + return str(obj) + def create(self, validated_data): # since multi select tags dont have id's duplicate names might be routed to create obj, created = Keyword.objects.get_or_create(**validated_data) @@ -65,7 +70,7 @@ class KeywordSerializer(UniqueFieldsMixin, serializers.ModelSerializer): class Meta: model = Keyword - fields = ('id', 'name', 'icon', 'description', 'created_by', 'created_at', 'updated_at') + fields = ('id', 'name', 'icon', 'label', 'description', 'created_by', 'created_at', 'updated_at') read_only_fields = ('id',) diff --git a/cookbook/templates/forms/edit_internal_recipe.html b/cookbook/templates/forms/edit_internal_recipe.html index febf10467..098765526 100644 --- a/cookbook/templates/forms/edit_internal_recipe.html +++ b/cookbook/templates/forms/edit_internal_recipe.html @@ -66,7 +66,7 @@ :hide-selected="true" :preserve-search="true" placeholder="{% trans 'Select Keywords' %}" - label="name" + label="label" track-by="id" id="id_keywords" :multiple="true" @@ -409,7 +409,7 @@ if (this.recipe !== undefined) { for (let s of this.recipe.steps) { for (let i of s.ingredients) { - if (i.unit.id === undefined) { + if (i.unit !== undefined &&i.unit.id === undefined) { this.units.push(i.unit) } } @@ -428,7 +428,7 @@ if (this.recipe !== undefined) { for (let s of this.recipe.steps) { for (let i of s.ingredients) { - if (i.food.id === undefined) { + if (i.food !== undefined &&i.food.id === undefined) { this.foods.push(i.food) } }