Commit 71ad373dad5fe810e10d1e95c68464419d93e32d

Authored by felipebormann
1 parent f231028d

non-optimal solution for resource count problem and error

subjects/templates/subjects/list_search.html
@@ -71,10 +71,7 @@ @@ -71,10 +71,7 @@
71 {% elif resources|length > 0 and all %} 71 {% elif resources|length > 0 and all %}
72 <div class="panel-group" id="subject-accordion" role="tablist" aria-multiselectable="true"> 72 <div class="panel-group" id="subject-accordion" role="tablist" aria-multiselectable="true">
73 {% for resource in resources %} 73 {% for resource in resources %}
74 - {% if request.user in resource.students.all or request.user in resource.topic.subject.category.coordinators.all or request.user.is_staff %}  
75 - {% include "subjects/resource_card.html" with resource=resource %}  
76 - {% endif %}  
77 - 74 + {% include "subjects/resource_card.html" with resource=resource %}
78 {% endfor %} 75 {% endfor %}
79 76
80 {% pagination request paginator page_obj %} 77 {% pagination request paginator page_obj %}
subjects/views.py
@@ -30,7 +30,7 @@ from .utils import has_student_profile, has_professor_profile, count_subjects, g @@ -30,7 +30,7 @@ from .utils import has_student_profile, has_professor_profile, count_subjects, g
30 from users.models import User 30 from users.models import User
31 from topics.models import Resource 31 from topics.models import Resource
32 32
33 -from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions 33 +from amadeus.permissions import has_category_permissions, has_subject_permissions, has_subject_view_permissions, has_resource_permissions
34 34
35 class HomeView(LoginRequiredMixin, ListView): 35 class HomeView(LoginRequiredMixin, ListView):
36 login_url = reverse_lazy("users:login") 36 login_url = reverse_lazy("users:login")
@@ -62,7 +62,7 @@ class HomeView(LoginRequiredMixin, ListView): @@ -62,7 +62,7 @@ class HomeView(LoginRequiredMixin, ListView):
62 tags = Tag.objects.all() 62 tags = Tag.objects.all()
63 tags_list = [] 63 tags_list = []
64 for tag in tags: 64 for tag in tags:
65 - if Resource.objects.filter(tags__pk=tag.pk).count() > 0 and len(tags_list) <= tag_amount: 65 + if Resource.objects.filter(tags__pk=tag.pk, students__pk = self.request.user.pk).count() > 0 and len(tags_list) <= tag_amount:
66 tags_list.append((tag.name, Subject.objects.filter(tags__pk = tag.pk).count())) 66 tags_list.append((tag.name, Subject.objects.filter(tags__pk = tag.pk).count()))
67 tags_list.sort(key= lambda x: x[1], reverse=True) #sort by value 67 tags_list.sort(key= lambda x: x[1], reverse=True) #sort by value
68 68
@@ -567,8 +567,10 @@ class SubjectSearchView(LoginRequiredMixin, LogMixin, ListView): @@ -567,8 +567,10 @@ class SubjectSearchView(LoginRequiredMixin, LogMixin, ListView):
567 q = q | Q(tags__name__unaccent__iexact=word ) 567 q = q | Q(tags__name__unaccent__iexact=word )
568 568
569 subjects = Subject.objects.filter(q).distinct() 569 subjects = Subject.objects.filter(q).distinct()
570 - self.resources = Resource.objects.select_related('link', 'filelink', 'webpage', 'ytvideo', 'pdffile').filter(q ).distinct()  
571 - 570 +
  571 + self.resources = Resource.objects.select_related('link', 'filelink', 'webpage', 'ytvideo', 'pdffile').filter(q).distinct()
  572 + self.resources = [resource.id for resource in self.resources if has_resource_permissions(self.request.user, resource)]
  573 + self.resources = Resource.objects.select_related('link', 'filelink', 'webpage', 'ytvideo', 'pdffile').filter(id__in = self.resources)
572 574
573 self.totals = {'resources': self.resources.count(), 'my_subjects': subjects.count()} 575 self.totals = {'resources': self.resources.count(), 'my_subjects': subjects.count()}
574 576