fix album grouping on user pictures page

This commit is contained in:
imperosol
2025-06-11 18:14:35 +02:00
parent 9c3820f986
commit 75b37cd6e3
4 changed files with 22 additions and 14 deletions

View File

@ -2,7 +2,6 @@ from typing import Any, Literal
from django.conf import settings
from django.core.exceptions import ValidationError
from django.db.models import F
from django.urls import reverse
from ninja import Body, File, Query
from ninja.security import SessionAuth
@ -105,8 +104,7 @@ class PicturesController(ControllerBase):
filters.filter(Picture.objects.viewable_by(user))
.distinct()
.order_by("-parent__date", "date")
.select_related("owner")
.annotate(album=F("parent__name"))
.select_related("owner", "parent")
)
@route.post(
@ -153,7 +151,9 @@ class PicturesController(ControllerBase):
@route.put("/{picture_id}/identified", permissions=[IsAuthenticated, CanView])
def identify_users(self, picture_id: NonNegativeInt, users: set[NonNegativeInt]):
picture = self.get_object_or_exception(Picture, pk=picture_id)
picture = self.get_object_or_exception(
Picture.objects.select_related("parent"), pk=picture_id
)
db_users = list(User.objects.filter(id__in=users))
if len(users) != len(db_users):
raise NotFound
@ -166,13 +166,15 @@ class PicturesController(ControllerBase):
]
PeoplePictureRelation.objects.bulk_create(relations)
for u in identified:
html_id = f"album-{picture.parent_id}"
url = reverse(
"sas:user_pictures", kwargs={"user_id": u.id}, fragment=html_id
)
Notification.objects.get_or_create(
user=u,
viewed=False,
type="NEW_PICTURES",
defaults={
"url": reverse("sas:user_pictures", kwargs={"user_id": u.id})
},
defaults={"url": url, "param": picture.parent.name},
)
@route.delete("/{picture_id}", permissions=[IsSasAdmin])