1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-07-20 16:09:12 +02:00

Ajout des défis réalisés par une famille

This commit is contained in:
ikea
2025-07-19 00:52:10 +02:00
parent 9e700fd3de
commit ea8fcad8b5
3 changed files with 29 additions and 1 deletions

View File

@ -90,3 +90,16 @@ class AchievementTable(tables.Table):
fields = ('family', 'challenge', 'challenge__points', 'obtained_at', ) fields = ('family', 'challenge', 'challenge__points', 'obtained_at', )
template_name = 'django_tables2/bootstrap4.html' template_name = 'django_tables2/bootstrap4.html'
order_by = ('-obtained_at',) order_by = ('-obtained_at',)
class FamilyAchievementTable(tables.Table):
"""
Table des défis réalisés par une famille spécifique.
"""
class Meta:
model = Achievement
template_name = 'django_tables2/bootstrap4.html'
fields = ('challenge', 'challenge__points', 'obtained_at',)
attrs = {
'class': 'table table-condensed table-striped table-hover'
}
order_by = ('-obtained_at',)

View File

@ -13,4 +13,13 @@ SPDX-License-Identifier: GPL-3.0-or-later
</div> </div>
{% render_table member_list %} {% render_table member_list %}
</div> </div>
<div class="my-4"></div>
<div class="card">
<div class="card-header position-relative">
<i class="fa fa-trophy"></i> {% trans "Completed challenges" %}
</div>
{% render_table achievement_list %}
</div>
{% endblock %} {% endblock %}

View File

@ -16,7 +16,7 @@ from django.urls import reverse_lazy
from member.views import PictureUpdateView from member.views import PictureUpdateView
from .models import Family, Challenge, FamilyMembership, User, Achievement from .models import Family, Challenge, FamilyMembership, User, Achievement
from .tables import FamilyTable, ChallengeTable, FamilyMembershipTable, AchievementTable from .tables import FamilyTable, ChallengeTable, FamilyMembershipTable, AchievementTable, FamilyAchievementTable
from .forms import ChallengeForm, FamilyMembershipForm, FamilyForm from .forms import ChallengeForm, FamilyMembershipForm, FamilyForm
@ -88,6 +88,12 @@ class FamilyDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
context["can_add_members"] = PermissionBackend()\ context["can_add_members"] = PermissionBackend()\
.has_perm(self.request.user, "family.add_membership", empty_membership) .has_perm(self.request.user, "family.add_membership", empty_membership)
# Défis réalisé par la famille
achievements = Achievement.objects.filter(family=family)
achievements_table = FamilyAchievementTable(data=achievements, prefix="achievement-")
achievements_table.paginate(per_page=5, page=self.request.GET.get('achievement-page', 1))
context["achievement_list"] = achievements_table
return context return context