summaryrefslogtreecommitdiff
path: root/postgresqleu/membership/backendlookups.py
blob: de38e0c711177c4f022be5a50a400100ad3f3b44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from django.db.models import Q

from postgresqleu.util.backendlookups import LookupBase
from postgresqleu.util.auth import authenticate_backend_group
from postgresqleu.membership.models import Member


class MemberLookup(LookupBase):
    url = '/admin/membership/lookups/member/'

    @property
    def label_from_instance(self):
        return lambda x: '{0} ({1})'.format(x.fullname, x.user.username)

    @classmethod
    def get_values(self, query):
        return [
            {'id': m.pk, 'value': m.fullname}
            for m in Member.objects.filter(paiduntil__isnull=False).filter(
                Q(fullname__icontains=query) | Q(user__username__icontains=query))[:30]]

    @classmethod
    def validate_global_access(self, request):
        authenticate_backend_group(request, 'Membership administrators')