From c723d2836debdd4b97023e965a7faaaa1311d612 Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Thu, 18 Jul 2024 11:07:24 -0400 Subject: [PATCH] webp --- .../migrations/0009_alter_adventure_image.py | 19 +++++++++++++++++++ backend/server/adventures/models.py | 3 ++- backend/server/requirements.txt | 3 ++- .../0002_alter_customuser_profile_pic.py | 19 +++++++++++++++++++ backend/server/users/models.py | 3 ++- 5 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 backend/server/adventures/migrations/0009_alter_adventure_image.py create mode 100644 backend/server/users/migrations/0002_alter_customuser_profile_pic.py diff --git a/backend/server/adventures/migrations/0009_alter_adventure_image.py b/backend/server/adventures/migrations/0009_alter_adventure_image.py new file mode 100644 index 0000000..7c204e9 --- /dev/null +++ b/backend/server/adventures/migrations/0009_alter_adventure_image.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2024-07-18 15:06 + +import django_resized.forms +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('adventures', '0008_collection_description'), + ] + + operations = [ + migrations.AlterField( + model_name='adventure', + name='image', + field=django_resized.forms.ResizedImageField(blank=True, crop=None, force_format='WEBP', keep_meta=True, null=True, quality=75, scale=None, size=[1920, 1080], upload_to='images/'), + ), + ] diff --git a/backend/server/adventures/models.py b/backend/server/adventures/models.py index 5066ad3..b74c4ef 100644 --- a/backend/server/adventures/models.py +++ b/backend/server/adventures/models.py @@ -3,6 +3,7 @@ from django.db import models from django.contrib.auth import get_user_model from django.contrib.postgres.fields import ArrayField from django.forms import ValidationError +from django_resized import ResizedImageField ADVENTURE_TYPES = [ ('visited', 'Visited'), @@ -28,7 +29,7 @@ class Adventure(models.Model): description = models.TextField(blank=True, null=True) rating = models.FloatField(blank=True, null=True) link = models.URLField(blank=True, null=True) - image = models.ImageField(null=True, blank=True, upload_to='images/') + image = ResizedImageField(force_format="WEBP", quality=75, null=True, blank=True, upload_to='images/') date = models.DateField(blank=True, null=True) is_public = models.BooleanField(default=False) longitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True) diff --git a/backend/server/requirements.txt b/backend/server/requirements.txt index f29a1db..164078a 100644 --- a/backend/server/requirements.txt +++ b/backend/server/requirements.txt @@ -9,4 +9,5 @@ coreapi==2.3.3 python-dotenv psycopg2-binary Pillow -whitenoise \ No newline at end of file +whitenoise +django-resized \ No newline at end of file diff --git a/backend/server/users/migrations/0002_alter_customuser_profile_pic.py b/backend/server/users/migrations/0002_alter_customuser_profile_pic.py new file mode 100644 index 0000000..7d525c7 --- /dev/null +++ b/backend/server/users/migrations/0002_alter_customuser_profile_pic.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2024-07-18 15:06 + +import django_resized.forms +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='customuser', + name='profile_pic', + field=django_resized.forms.ResizedImageField(blank=True, crop=None, force_format='WEBP', keep_meta=True, null=True, quality=75, scale=None, size=[1920, 1080], upload_to='profile-pics/'), + ), + ] diff --git a/backend/server/users/models.py b/backend/server/users/models.py index 33d5e66..a2b4705 100644 --- a/backend/server/users/models.py +++ b/backend/server/users/models.py @@ -1,8 +1,9 @@ from django.contrib.auth.models import AbstractUser from django.db import models +from django_resized import ResizedImageField class CustomUser(AbstractUser): - profile_pic = models.ImageField(null=True, blank=True, upload_to='profile-pics/') + profile_pic = ResizedImageField(force_format="WEBP", quality=75, null=True, blank=True, upload_to='profile-pics/') def __str__(self): return self.username \ No newline at end of file