Upload images in galleries

This commit is contained in:
Alexandre Iooss 2021-10-15 14:14:09 +02:00
parent 0d0f72a9eb
commit 05ff9ca3d3
2 changed files with 47 additions and 7 deletions

View file

@ -1,6 +1,11 @@
import datetime
from django import forms
from django.utils.text import slugify
from django.utils.translation import gettext_lazy as _
from photologue.models import Gallery
from photologue.models import Gallery, Photo
from .models import GalleryExtended, PhotoExtended
class UploadForm(forms.Form):
@ -24,6 +29,16 @@ class UploadForm(forms.Form):
max_length=250,
required=False,
)
date_start = forms.DateField(
label=_('New gallery event start date'),
initial=datetime.date.today,
required=False,
)
date_end = forms.DateField(
label=_('New gallery event end date'),
initial=datetime.date.today,
required=False,
)
def clean_new_gallery_title(self):
title = self.cleaned_data['new_gallery_title']
@ -41,6 +56,31 @@ class UploadForm(forms.Form):
return cleaned_data
def save(self, files):
# TODO: upload
print(type(files))
def get_or_create_gallery(self):
"""
Get or create gallery
"""
gallery = self.cleaned_data['gallery']
if not gallery:
# Create new gallery
title = self.cleaned_data.get('new_gallery_title')
gallery = Gallery.objects.create(title=title, slug=slugify(title))
GalleryExtended.objects.create(
gallery=gallery,
date_start=self.cleaned_data['date_start'],
date_end=self.cleaned_data['date_end'],
)
return gallery
def save(self, user, files):
"""
Save gallery then photos
"""
gallery = self.get_or_create_gallery()
for photo_file in files:
title = f"{gallery.title} - {photo_file.name}"
photo = Photo(title=title, slug=slugify(title))
photo.image.save(photo_file.name, photo_file)
photo.save()
photo.galleries.set([gallery])
PhotoExtended.objects.create(photo=photo, owner=user)