Skip to content
Snippets Groups Projects
Commit dc8a6ceb authored by borzechof99's avatar borzechof99 :whale2:
Browse files

Change Image Handling

parent 5a39bf97
No related branches found
No related tags found
No related merge requests found
......@@ -213,6 +213,8 @@ class KnowledgeSnack(models.Model):
self.image.delete()
self.image = None
self.image = new_image
def convert_base64_to_image(image_data, image_type, image_name):
"""
......@@ -226,6 +228,9 @@ def convert_base64_to_image(image_data, image_type, image_name):
image_name += "." + ext
if image_data.startswith("data:image"):
image_data = image_data.split(",")[1]
image = SimpleUploadedFile(
content=base64.b64decode(image_data),
name=image_name,
......
......@@ -330,7 +330,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
return validated_data
def to_representation(self, obj):
def to_representation(self, obj, request=None):
"""
Converts a SnackTivity Model
"""
......@@ -338,14 +338,16 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
# bug https://code.djangoproject.com/ticket/25528
has_image = obj.image not in [None, ""]
if has_image:
if has_image and request is not None:
image_base64 = base64.b64encode(obj.image.file.read())
# Maybe rethink this? Dunno if unsafe.
image_type = "image/" + obj.image.file.name.split(".")[-1]
image_url = request.build_absolute_uri(obj.image.url)
else:
image_base64 = ""
image_type = ""
image_url = None
data = {
"id": obj.pk,
......@@ -354,6 +356,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
"has_image": has_image,
"image_type": image_type,
"image": image_base64,
"image_url": image_url,
}
return data
......
......@@ -584,7 +584,10 @@ class SnackTivityView(viewsets.ViewSet):
if "text_de" in data.keys():
new_object.text_de = data["text_de"]
else:
raise ValueError("Das Feld text_de ist für Erstellung benötigt!")
return Response(
status=400,
data={"message": "Das Feld text_de ist für Erstellung benötigt!"},
)
if "text_en" in data.keys():
new_object.text_en = data["text_en"]
......@@ -594,7 +597,9 @@ class SnackTivityView(viewsets.ViewSet):
new_object.save()
return Response(SingleSnackTivitySerializer(new_object).data)
return Response(
SingleSnackTivitySerializer().to_representation(new_object, request=request)
)
def retrieve(self, request, pk=None):
"""
......@@ -604,7 +609,9 @@ class SnackTivityView(viewsets.ViewSet):
obj = get_object_or_404(self.used_objects, pk=pk)
return Response(SingleSnackTivitySerializer(obj).data)
return Response(
SingleSnackTivitySerializer().to_representation(obj, request=request)
)
def update(self, request, pk=None):
"""
......@@ -623,7 +630,9 @@ class SnackTivityView(viewsets.ViewSet):
obj.save()
return Response(SingleSnackTivitySerializer(obj).data)
return Response(
SingleSnackTivitySerializer().to_representation(obj, request=request)
)
def partial_update(self, request, pk=None):
"""
......@@ -645,7 +654,9 @@ class SnackTivityView(viewsets.ViewSet):
obj.save()
return Response(SingleSnackTivitySerializer(obj).data)
return Response(
SingleSnackTivitySerializer().to_representation(obj, request=request)
)
def destroy(self, request, pk=None):
"""
......@@ -660,7 +671,7 @@ class SnackTivityView(viewsets.ViewSet):
obj.delete()
return Response(status=200)
return Response(status=200, data={"message": "Erfolgreich Gelöscht!"})
class SnackListView(SnackTivityView):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment