wip shopping list stuff
This commit is contained in:
parent
a16ad2c887
commit
c7dd5dd8bb
@ -140,14 +140,24 @@ class UnitSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
|
|||||||
read_only_fields = ('id',)
|
read_only_fields = ('id',)
|
||||||
|
|
||||||
|
|
||||||
class SupermarketCategorySerializer(serializers.ModelSerializer):
|
class SupermarketCategorySerializer(UniqueFieldsMixin, serializers.ModelSerializer):
|
||||||
|
|
||||||
|
def create(self, validated_data):
|
||||||
|
# since multi select tags dont have id's
|
||||||
|
# duplicate names might be routed to create
|
||||||
|
obj, created = SupermarketCategory.objects.get_or_create(**validated_data)
|
||||||
|
return obj
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
return super(SupermarketCategorySerializer, self).update(instance, validated_data)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = SupermarketCategory
|
model = SupermarketCategory
|
||||||
fields = ('id', 'name')
|
fields = ('id', 'name')
|
||||||
|
|
||||||
|
|
||||||
class FoodSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
|
class FoodSerializer(UniqueFieldsMixin, serializers.ModelSerializer):
|
||||||
supermarket_category = SupermarketCategorySerializer()
|
supermarket_category = SupermarketCategorySerializer(read_only=True)
|
||||||
|
|
||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
# since multi select tags dont have id's
|
# since multi select tags dont have id's
|
||||||
|
@ -361,7 +361,7 @@
|
|||||||
this.shopping_list.entries.forEach(element => {
|
this.shopping_list.entries.forEach(element => {
|
||||||
let item = {}
|
let item = {}
|
||||||
Object.assign(item, element);
|
Object.assign(item, element);
|
||||||
if (entries.filter(item => item.food.id === element.food.id).length > 0) {
|
if (entries.filter(item => (item.food.id === element.food.id) && (item.unit.id === element.unit.id)).length > 0) {
|
||||||
let entry = entries.filter(item => item.food.id === element.food.id)[0]
|
let entry = entries.filter(item => item.food.id === element.food.id)[0]
|
||||||
entry.amount += item.amount * this.servings_cache[item.list_recipe]
|
entry.amount += item.amount * this.servings_cache[item.list_recipe]
|
||||||
entry.entries.push(item.id)
|
entry.entries.push(item.id)
|
||||||
|
Loading…
Reference in New Issue
Block a user