Coverage for website/photos/forms.py: 87.50%
14 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django import forms
2from django.utils.translation import gettext_lazy as _
4from django_filepond_widget.fields import FilePondField
6from photos.models import Album, Photo
7from photos.validators import ArchiveFileTypeValidator
10class AlbumForm(forms.ModelForm):
11 """Class for an album submission form."""
13 def __init__(self, *args, **kwargs):
14 """Initialize AlbumForm.
16 Set the cover options to photos from the specified album.
17 https://stackoverflow.com/questions/4391776/django-admin-inline-forms-limit-foreign-key-queryset-to-a-set-of-values#4392047
18 """
19 super().__init__(*args, **kwargs)
20 if "instance" in kwargs and "_cover" in self.fields: 20 ↛ 21line 20 didn't jump to line 21 because the condition on line 20 was never true
21 self.fields["_cover"].queryset = Photo.objects.filter(album=self.instance)
23 album_archive = FilePondField(
24 required=False,
25 help_text=_("Uploading a zip or tar file adds all contained images as photos."),
26 validators=[ArchiveFileTypeValidator()],
27 filepond_options={"chunkSize": 15_000_000},
28 )
30 class Meta:
31 """Meta class for AlbumForm."""
33 model = Album
34 fields = (
35 "title",
36 "date",
37 "slug",
38 "hidden",
39 "shareable",
40 "_cover",
41 )