Show number of paid members in member list

Member filtering also applies to this feature. Moved 'last_paid' Subquery to Member method
This commit is contained in:
Aarni Halinen
2018-05-13 12:59:50 +03:00
parent 9e0d911f7b
commit 882732d054
4 changed files with 13 additions and 5 deletions
+7 -2
View File
@@ -3,8 +3,7 @@
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.db.models import Q
from django.db.models import Q, F, OuterRef, Subquery
import csv
@@ -126,5 +125,11 @@ class Member(BaseMember):
return qs
def get_members_with_latest_payment(members_query):
"""Return QuerySet of given members QS with last_paid attribute."""
latest = Payment.objects.filter(member=OuterRef('pk')).order_by('-date')
return members_query.annotate(last_paid=Subquery(latest.values('date')[:1]))
# To avoid problems with a cyclical import, this is at the bottom of the file
from members.forms import MemberForm # nopep8