]> git.0d.be Git - panikdb.git/blob - panikdb/aa/views.py
add a view to list members
[panikdb.git] / panikdb / aa / views.py
1 from django.contrib.auth.decorators import login_required
2 from django.db.models import Q
3 from django.views.generic.base import TemplateView
4 from django.views.generic.edit import UpdateView
5 from django.views.generic.list import ListView
6 from django.core.urlresolvers import reverse_lazy
7
8 from .models import User
9
10
11 class ProfileView(TemplateView):
12     template_name = 'aa/profile.html'
13
14
15 profile_view = login_required(ProfileView.as_view())
16
17
18 class ProfileContactEditView(UpdateView):
19     model = User
20     fields = ['phone', 'mobile', 'share_contact_details']
21     success_url = reverse_lazy('profile-view')
22
23     def get_object(self):
24         return self.request.user
25
26
27 profile_contact_edit = login_required(ProfileContactEditView.as_view())
28
29
30 class MembersListView(ListView):
31     paginate_by = 10
32
33     def get_queryset(self):
34         qs = User.objects.filter(is_active=True)
35         if self.request.GET.get('q'):
36             for part in self.request.GET.get('q').split():
37                 part = part.strip()
38                 if not part:
39                     continue
40                 qs = qs.filter(Q(first_name__icontains=part) | Q(last_name__icontains=part))
41         return qs
42
43
44 members_list_view = login_required(MembersListView.as_view())