Commit b132ec2f91a9dc67c2da6e1b940578b2fd431760
1 parent
07d37dfc
Exists in
master
and in
3 other branches
updated queryset, improving performance
Showing
1 changed file
with
7 additions
and
3 deletions
Show diff stats
subjects/views.py
... | ... | @@ -4,7 +4,7 @@ from django.views.generic import ListView, CreateView, DeleteView, UpdateView, T |
4 | 4 | from categories.models import Category |
5 | 5 | from django.core.urlresolvers import reverse_lazy |
6 | 6 | from rolepermissions.verifications import has_role |
7 | - | |
7 | +from django.db.models import Q | |
8 | 8 | from django.contrib import messages |
9 | 9 | from django.http import HttpResponse, JsonResponse |
10 | 10 | from django.utils.translation import ugettext_lazy as _ |
... | ... | @@ -23,6 +23,7 @@ from log.models import Log |
23 | 23 | |
24 | 24 | from .models import Tag |
25 | 25 | import time |
26 | +import datetime | |
26 | 27 | from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger |
27 | 28 | from .forms import CreateSubjectForm |
28 | 29 | from .utils import has_student_profile, has_professor_profile |
... | ... | @@ -40,9 +41,12 @@ class HomeView(LoginRequiredMixin, ListView): |
40 | 41 | if self.request.user.is_staff: |
41 | 42 | subjects = Subject.objects.all().order_by("name") |
42 | 43 | else: |
43 | - subjects = Subject.objects.all().order_by("name") | |
44 | - subjects = [subject for subject in subjects if self.request.user in subject.students.all() or self.request.user in subject.professor.all() or self.request.user in subject.category.coordinators.all()] | |
45 | 44 | |
45 | + pk = self.request.user.pk | |
46 | + | |
47 | + subjects = Subject.objects.filter(students__pk=pk) | Subject.objects.filter(professor__pk=pk) | Subject.objects.filter(category__coordinators__pk=pk) | |
48 | + | |
49 | + | |
46 | 50 | |
47 | 51 | |
48 | 52 | return subjects | ... | ... |