Source code for photos.forms
from django import forms
from django.utils.translation import gettext_lazy as _
from photos.models import Photo, Album
from photos.validators import ArchiveFileTypeValidator
[docs]class AlbumForm(forms.ModelForm):
"""Class for an album submission form."""
def __init__(self, *args, **kwargs):
"""Initialize AlbumForm.
Set the cover options to photos from the specified album.
https://stackoverflow.com/questions/4391776/django-admin-inline-forms-limit-foreign-key-queryset-to-a-set-of-values#4392047
"""
super().__init__(*args, **kwargs)
if "instance" in kwargs and "_cover" in self.fields:
self.fields["_cover"].queryset = Photo.objects.filter(album=self.instance)
album_archive = forms.FileField(
required=False,
help_text=_("Uploading a zip or tar file adds all contained images as photos."),
validators=[ArchiveFileTypeValidator()],
)
[docs] class Meta:
"""Meta class for AlbumForm."""
model = Album
fields = (
"title_en",
"date",
"slug",
"hidden",
"new_album_notification",
"shareable",
"_cover",
)