Skip to content

Commit

Permalink
Merge branch 'main' into DSDGROC-117
Browse files Browse the repository at this point in the history
  • Loading branch information
Rocklobster84 authored Apr 22, 2024
2 parents 625246e + 3e216cd commit 73440a8
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 5.0.4 on 2024-04-22 01:23

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("api", "0006_remove_macro_macro_name_remove_macro_quantity_and_more"),
]

operations = [
migrations.RemoveField(
model_name="shoppinglist",
name="quantity",
),
migrations.AddField(
model_name="shoppinglist",
name="recipe_id",
field=models.CharField(default=1, max_length=100),
preserve_default=False,
),
]
4 changes: 2 additions & 2 deletions zbackend/api/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ def __str__(self):


class ShoppingList(models.Model):
recipe_id = models.CharField(max_length=100)
user = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, db_index=True
)
quantity = models.DecimalField(max_digits=10, decimal_places=2)
is_purchased = models.BooleanField(default=False)
name = models.CharField(max_length=100)
image = models.CharField(
Expand All @@ -41,7 +41,7 @@ class ShoppingList(models.Model):
product_id = models.CharField(max_length=255)

def __str__(self):
return f"{self.name} ({self.quantity})"
return f"{self.name} ({self.product_id})"


class FavoriteRecipe(models.Model):
Expand Down
2 changes: 1 addition & 1 deletion zbackend/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class Meta:
class ShoppingListSerializer(serializers.ModelSerializer):
class Meta:
model = ShoppingList
fields = ["user", "quantity", "is_purchased", "name", "image", "product_id"]
fields = ["recipe_id", "user", "is_purchased", "name", "image", "product_id"]


class MacrosSerializer(serializers.ModelSerializer):
Expand Down
5 changes: 4 additions & 1 deletion zbackend/api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,5 +87,8 @@
"users/<int:user_id>/dietaryPreferences/<int:preference_id>/update/",
views.update_dietary_preference,
name="update_dietary_preference",
),
)
# path('users/<int:user_id>/shoppingList/create/',
# views.create_shopping_list,
# name='create_shopping_list'),
]
24 changes: 19 additions & 5 deletions zbackend/api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@

class AllowUpdateWithoutAuthentication(BasePermission):
def has_permission(self, request, view):
return request.method in ["PUT", "PATCH"]
return request.method in ['PUT', 'PATCH', 'POST']


class DietaryPreferenceViewSet(viewsets.ModelViewSet):
Expand Down Expand Up @@ -78,9 +78,23 @@ class ShoppingListViewSet(viewsets.ModelViewSet):
def get_queryset(self):
user_id = self.kwargs["user_pk"]
return ShoppingList.objects.filter(user_id=user_id)

def perform_create(self, serializer):
serializer.save(user=self.request.user)

def perform_create(self, request, *args, **kwargs):
data = request.data
name = data.get('name')

query = Ingredient.objects.filter(name=name)
ingredient_values = query.values_list()
for item in ingredient_values:
ing_name = item[1]
if name == ing_name:
data['is_purchased'] = True

serializer = ShoppingListSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)


class MacrosViewSet(viewsets.ModelViewSet):
Expand Down Expand Up @@ -116,7 +130,7 @@ def perform_create(self, serializer):
else:
serializer.save()


@api_view(["PUT"])
@permission_classes([AllowAny])
def update_dietary_preference(request, user_id, preference_id):
Expand Down

0 comments on commit 73440a8

Please sign in to comment.