summaryrefslogtreecommitdiffstats
path: root/users/views/settings
diff options
context:
space:
mode:
Diffstat (limited to 'users/views/settings')
-rw-r--r--users/views/settings/profile.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/users/views/settings/profile.py b/users/views/settings/profile.py
index 3b16d69..49fcc45 100644
--- a/users/views/settings/profile.py
+++ b/users/views/settings/profile.py
@@ -42,6 +42,13 @@ class ProfilePage(FormView):
"image": self.request.identity.image and self.request.identity.image.url,
}
+ def resize_image(self, image: File, *, size: tuple[int, int]) -> File:
+ with Image.open(image) as img:
+ resized_image = ImageOps.fit(img, size)
+ new_image_bytes = io.BytesIO()
+ resized_image.save(new_image_bytes, format=img.format)
+ return File(new_image_bytes)
+
def form_valid(self, form):
# Update identity name and summary
self.request.identity.name = form.cleaned_data["name"]
@@ -50,14 +57,14 @@ class ProfilePage(FormView):
icon = form.cleaned_data.get("icon")
image = form.cleaned_data.get("image")
if isinstance(icon, File):
- resized_image = ImageOps.fit(Image.open(icon), (400, 400))
- new_icon_bytes = io.BytesIO()
- resized_image.save(new_icon_bytes, format=icon.format)
- self.request.identity.icon.save(icon.name, File(new_icon_bytes))
+ self.request.identity.icon.save(
+ icon.name,
+ self.resize_image(icon, size=(400, 400)),
+ )
if isinstance(image, File):
- resized_image = ImageOps.fit(Image.open(image), (400, 400))
- new_image_bytes = io.BytesIO()
- resized_image.save(new_image_bytes, format=image.format)
- self.request.identity.image.save(image.name, File(new_image_bytes))
+ self.request.identity.image.save(
+ image.name,
+ self.resize_image(image, size=(400, 400)),
+ )
self.request.identity.save()
return redirect(".")