Commit b132ec2f91a9dc67c2da6e1b940578b2fd431760

Authored by Felipe Henrique de Almeida Bormann
1 parent 07d37dfc

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
... ...