fix album order for user pictures

This commit is contained in:
thomas girod 2024-07-25 16:30:39 +02:00 committed by Bartuccio Antoine
parent b25805e0a1
commit b3fa6f352b
2 changed files with 12 additions and 21 deletions

View File

@ -22,17 +22,17 @@
{% if can_edit(profile, user) %}
<button disabled id="download" onclick="download('{{ url('api:pictures') }}?users_identified={{ object.id }}')">{% trans %}Download all my pictures{% endtrans %}</button>
{% endif %}
{% for a in albums %}
<h4>{{ a.name }}</h4>
{% for album, album_pictures in pictures|groupby("album") %}
<h4>{{ album }}</h4>
<div class="photos">
{% for p in pictures[a.id] %}
{% if p.can_be_viewed_by(user) %}
<a href="{{ url("sas:picture", picture_id=p.id) }}#pict">
{% for picture in album_pictures %}
{% if picture.can_be_viewed_by(user) %}
<a href="{{ url("sas:picture", picture_id=picture.id) }}#pict">
<div
class="photo{% if not p.is_moderated %} not_moderated{% endif %}"
style="background-image: url('{% if p.file %}{{ p.get_download_thumb_url() }}{% else %}{{ static('core/img/sas.jpg') }}{% endif %}');"
class="photo{% if not picture.is_moderated %} not_moderated{% endif %}"
style="background-image: url('{% if picture.file %}{{ picture.get_download_thumb_url() }}{% else %}{{ static('core/img/sas.jpg') }}{% endif %}');"
>
{% if not p.is_moderated %}
{% if not picture.is_moderated %}
<div class="overlay">&nbsp;</div>
<div class="text">{% trans %}To be moderated{% endtrans %}</div>
{% else %}

View File

@ -31,6 +31,7 @@ from django.contrib.auth import login, views
from django.contrib.auth.forms import PasswordChangeForm
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import PermissionDenied, ValidationError
from django.db.models import F
from django.forms import CheckboxSelectMultiple
from django.forms.models import modelform_factory
from django.http import Http404, HttpResponse
@ -311,21 +312,11 @@ class UserPicturesView(UserTabsMixin, CanViewMixin, DetailView):
def get_context_data(self, **kwargs):
kwargs = super().get_context_data(**kwargs)
kwargs["albums"] = []
kwargs["pictures"] = {}
picture_qs = (
kwargs["pictures"] = list(
Picture.objects.filter(people__user_id=self.object.id)
.order_by("parent__date", "id")
.all()
.order_by("-parent__date", "id")
.annotate(album=F("parent__name"))
)
last_album = None
for picture in picture_qs:
album = picture.parent
if album.id != last_album and album not in kwargs["albums"]:
kwargs["albums"].append(album)
kwargs["pictures"][album.id] = []
last_album = album.id
kwargs["pictures"][album.id].append(picture)
return kwargs