Commit 068cbc59e5a6acad7226b33d5188fe53522c8916

Authored by Zambom
1 parent e4ad011b

Adding subjects page pagination

subjects/templates/subjects/list.html
1 {% extends 'categories/home.html' %} 1 {% extends 'categories/home.html' %}
2 2
3 -{% load static i18n permission_tags %} 3 +{% load static i18n permission_tags pagination %}
4 {% load django_bootstrap_breadcrumbs %} 4 {% load django_bootstrap_breadcrumbs %}
5 5
6 {% block javascript%} 6 {% block javascript%}
@@ -169,6 +169,7 @@ @@ -169,6 +169,7 @@
169 </div> 169 </div>
170 {% endif %} 170 {% endif %}
171 {% endfor %} 171 {% endfor %}
  172 + {% pagination request paginator page_obj %}
172 </div> 173 </div>
173 </div> 174 </div>
174 <div id="modal_course"> 175 <div id="modal_course">
subjects/views.py
@@ -69,11 +69,22 @@ class IndexView(LoginRequiredMixin, ListView): @@ -69,11 +69,22 @@ class IndexView(LoginRequiredMixin, ListView):
69 queryset = Category.objects.all() 69 queryset = Category.objects.all()
70 template_name = 'subjects/list.html' 70 template_name = 'subjects/list.html'
71 context_object_name = 'categories' 71 context_object_name = 'categories'
72 - 72 + paginate_by = 5
73 73
74 def get_queryset(self): 74 def get_queryset(self):
75 - result = super(IndexView, self).get_queryset()  
76 - return result 75 + categories = Category.objects.all().order_by('name')
  76 +
  77 + if not self.request.user.is_staff:
  78 + if not self.kwargs.get('option'):
  79 + categories = Category.objects.filter(visible=True)
  80 +
  81 + for category in categories:
  82 + category.subjects = Subject.objects.filter(category= category)
  83 +
  84 + categories = [category for category in categories if category.subjects.count() > 0 or self.request.user in category.coordinators.all()]
  85 + #So I remove all categories that doesn't have the possibility for the user to be on
  86 +
  87 + return categories
77 88
78 def render_to_response(self, context, **response_kwargs): 89 def render_to_response(self, context, **response_kwargs):
79 if self.request.user.is_staff: 90 if self.request.user.is_staff:
@@ -81,8 +92,6 @@ class IndexView(LoginRequiredMixin, ListView): @@ -81,8 +92,6 @@ class IndexView(LoginRequiredMixin, ListView):
81 else: 92 else:
82 context['page_template'] = "categories/home_teacher_student.html" 93 context['page_template'] = "categories/home_teacher_student.html"
83 94
84 -  
85 -  
86 if self.request.is_ajax(): 95 if self.request.is_ajax():
87 if self.request.user.is_staff: 96 if self.request.user.is_staff:
88 self.template_name = "categories/home_admin_content.html" 97 self.template_name = "categories/home_admin_content.html"
@@ -101,22 +110,6 @@ class IndexView(LoginRequiredMixin, ListView): @@ -101,22 +110,6 @@ class IndexView(LoginRequiredMixin, ListView):
101 context['all'] = True 110 context['all'] = True
102 context['title'] = _('All Subjects') 111 context['title'] = _('All Subjects')
103 112
104 - if self.request.user.is_staff:  
105 - categories = self.get_queryset().order_by('name')  
106 - else:  
107 - if self.kwargs.get('option'):  
108 - categories = self.get_queryset().order_by('name')  
109 - for category in categories:  
110 - category.subjects = Subject.objects.filter(category= category)  
111 - else:  
112 - categories = self.get_queryset().filter(visible=True)  
113 - for category in categories:  
114 - category.subjects = Subject.objects.filter(category= category)  
115 -  
116 - categories = [category for category in categories if category.subjects.count() > 0 or self.request.user in category.coordinators.all()]  
117 - #So I remove all categories that doesn't have the possibility for the user to be on  
118 -  
119 - context['categories'] = categories  
120 context['subjects_menu_active'] = 'subjects_menu_active' 113 context['subjects_menu_active'] = 'subjects_menu_active'
121 114
122 return context 115 return context