Merge pull request #1311 from smilerz/patch-2
fix bug creating food with create form
This commit is contained in:
commit
79c8d26e8c
@ -77,7 +77,10 @@ class TreeManager(MP_NodeManager):
|
|||||||
for field in many_to_many:
|
for field in many_to_many:
|
||||||
field_model = getattr(obj, field).model
|
field_model = getattr(obj, field).model
|
||||||
for related_obj in many_to_many[field]:
|
for related_obj in many_to_many[field]:
|
||||||
getattr(obj, field).add(field_model.objects.get(**dict(related_obj)))
|
if isinstance(related_obj, User):
|
||||||
|
getattr(obj, field).add(field_model.objects.get(id=related_obj.id))
|
||||||
|
else:
|
||||||
|
getattr(obj, field).add(field_model.objects.get(**dict(related_obj)))
|
||||||
return obj, True
|
return obj, True
|
||||||
except IntegrityError as e:
|
except IntegrityError as e:
|
||||||
if 'Key (path)' in e.args[0]:
|
if 'Key (path)' in e.args[0]:
|
||||||
|
@ -394,15 +394,20 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedR
|
|||||||
validated_data['supermarket_category'], sc_created = SupermarketCategory.objects.get_or_create(
|
validated_data['supermarket_category'], sc_created = SupermarketCategory.objects.get_or_create(
|
||||||
name=validated_data.pop('supermarket_category')['name'],
|
name=validated_data.pop('supermarket_category')['name'],
|
||||||
space=self.context['request'].space)
|
space=self.context['request'].space)
|
||||||
onhand = validated_data.get('food_onhand', None)
|
onhand = validated_data.pop('food_onhand', None)
|
||||||
|
|
||||||
# assuming if on hand for user also onhand for shopping_share users
|
# assuming if on hand for user also onhand for shopping_share users
|
||||||
if not onhand is None:
|
if not onhand is None:
|
||||||
shared_users = [user := self.context['request'].user] + list(user.userpreference.shopping_share.all())
|
shared_users = [user := self.context['request'].user] + list(user.userpreference.shopping_share.all())
|
||||||
if onhand:
|
if self.instance:
|
||||||
validated_data['onhand_users'] = list(self.instance.onhand_users.all()) + shared_users
|
onhand_users = self.instance.onhand_users.all()
|
||||||
else:
|
else:
|
||||||
validated_data['onhand_users'] = list(set(self.instance.onhand_users.all()) - set(shared_users))
|
onhand_users = []
|
||||||
|
if onhand:
|
||||||
|
validated_data['onhand_users'] = list(onhand_users) + shared_users
|
||||||
|
else:
|
||||||
|
validated_data['onhand_users'] = list(set(onhand_users) - set(shared_users))
|
||||||
|
|
||||||
obj, created = Food.objects.get_or_create(**validated_data)
|
obj, created = Food.objects.get_or_create(**validated_data)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
@ -238,7 +238,6 @@ export default {
|
|||||||
})
|
})
|
||||||
popper.update()
|
popper.update()
|
||||||
this.over = false
|
this.over = false
|
||||||
this.$emit({ action: "drop", target: this.item, source: this.source })
|
|
||||||
} else {
|
} else {
|
||||||
this.isError = true
|
this.isError = true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user