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,7 +4,7 @@ from django.views.generic import ListView, CreateView, DeleteView, UpdateView, T
4 from categories.models import Category 4 from categories.models import Category
5 from django.core.urlresolvers import reverse_lazy 5 from django.core.urlresolvers import reverse_lazy
6 from rolepermissions.verifications import has_role 6 from rolepermissions.verifications import has_role
7 - 7 +from django.db.models import Q
8 from django.contrib import messages 8 from django.contrib import messages
9 from django.http import HttpResponse, JsonResponse 9 from django.http import HttpResponse, JsonResponse
10 from django.utils.translation import ugettext_lazy as _ 10 from django.utils.translation import ugettext_lazy as _
@@ -23,6 +23,7 @@ from log.models import Log @@ -23,6 +23,7 @@ from log.models import Log
23 23
24 from .models import Tag 24 from .models import Tag
25 import time 25 import time
  26 +import datetime
26 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 27 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
27 from .forms import CreateSubjectForm 28 from .forms import CreateSubjectForm
28 from .utils import has_student_profile, has_professor_profile 29 from .utils import has_student_profile, has_professor_profile
@@ -40,9 +41,12 @@ class HomeView(LoginRequiredMixin, ListView): @@ -40,9 +41,12 @@ class HomeView(LoginRequiredMixin, ListView):
40 if self.request.user.is_staff: 41 if self.request.user.is_staff:
41 subjects = Subject.objects.all().order_by("name") 42 subjects = Subject.objects.all().order_by("name")
42 else: 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 return subjects 52 return subjects