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): ...@@ -213,6 +213,8 @@ class KnowledgeSnack(models.Model):
self.image.delete() self.image.delete()
self.image = None self.image = None
self.image = new_image
def convert_base64_to_image(image_data, image_type, image_name): 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): ...@@ -226,6 +228,9 @@ def convert_base64_to_image(image_data, image_type, image_name):
image_name += "." + ext image_name += "." + ext
if image_data.startswith("data:image"):
image_data = image_data.split(",")[1]
image = SimpleUploadedFile( image = SimpleUploadedFile(
content=base64.b64decode(image_data), content=base64.b64decode(image_data),
name=image_name, name=image_name,
......
...@@ -330,7 +330,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer): ...@@ -330,7 +330,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
return validated_data return validated_data
def to_representation(self, obj): def to_representation(self, obj, request=None):
""" """
Converts a SnackTivity Model Converts a SnackTivity Model
""" """
...@@ -338,14 +338,16 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer): ...@@ -338,14 +338,16 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
# bug https://code.djangoproject.com/ticket/25528 # bug https://code.djangoproject.com/ticket/25528
has_image = obj.image not in [None, ""] 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()) image_base64 = base64.b64encode(obj.image.file.read())
# Maybe rethink this? Dunno if unsafe. # Maybe rethink this? Dunno if unsafe.
image_type = "image/" + obj.image.file.name.split(".")[-1] image_type = "image/" + obj.image.file.name.split(".")[-1]
image_url = request.build_absolute_uri(obj.image.url)
else: else:
image_base64 = "" image_base64 = ""
image_type = "" image_type = ""
image_url = None
data = { data = {
"id": obj.pk, "id": obj.pk,
...@@ -354,6 +356,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer): ...@@ -354,6 +356,7 @@ class SingleSnackTivitySerializer(serializers.BaseSerializer):
"has_image": has_image, "has_image": has_image,
"image_type": image_type, "image_type": image_type,
"image": image_base64, "image": image_base64,
"image_url": image_url,
} }
return data return data
......
...@@ -584,7 +584,10 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -584,7 +584,10 @@ class SnackTivityView(viewsets.ViewSet):
if "text_de" in data.keys(): if "text_de" in data.keys():
new_object.text_de = data["text_de"] new_object.text_de = data["text_de"]
else: 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(): if "text_en" in data.keys():
new_object.text_en = data["text_en"] new_object.text_en = data["text_en"]
...@@ -594,7 +597,9 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -594,7 +597,9 @@ class SnackTivityView(viewsets.ViewSet):
new_object.save() new_object.save()
return Response(SingleSnackTivitySerializer(new_object).data) return Response(
SingleSnackTivitySerializer().to_representation(new_object, request=request)
)
def retrieve(self, request, pk=None): def retrieve(self, request, pk=None):
""" """
...@@ -604,7 +609,9 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -604,7 +609,9 @@ class SnackTivityView(viewsets.ViewSet):
obj = get_object_or_404(self.used_objects, pk=pk) 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): def update(self, request, pk=None):
""" """
...@@ -623,7 +630,9 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -623,7 +630,9 @@ class SnackTivityView(viewsets.ViewSet):
obj.save() obj.save()
return Response(SingleSnackTivitySerializer(obj).data) return Response(
SingleSnackTivitySerializer().to_representation(obj, request=request)
)
def partial_update(self, request, pk=None): def partial_update(self, request, pk=None):
""" """
...@@ -645,7 +654,9 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -645,7 +654,9 @@ class SnackTivityView(viewsets.ViewSet):
obj.save() obj.save()
return Response(SingleSnackTivitySerializer(obj).data) return Response(
SingleSnackTivitySerializer().to_representation(obj, request=request)
)
def destroy(self, request, pk=None): def destroy(self, request, pk=None):
""" """
...@@ -660,7 +671,7 @@ class SnackTivityView(viewsets.ViewSet): ...@@ -660,7 +671,7 @@ class SnackTivityView(viewsets.ViewSet):
obj.delete() obj.delete()
return Response(status=200) return Response(status=200, data={"message": "Erfolgreich Gelöscht!"})
class SnackListView(SnackTivityView): 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