Commit f35e39d700a33e80ad7829e376d4e87c35d73ad7

Authored by Felipe Henrique de Almeida Bormann
2 parents 68135020 961f5ed0

Merge branch 'refactoring' of https://github.com/amadeusproject/amadeuslms into refactoring

subjects/templates/subjects/initial.html
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 </div> 16 </div>
17 17
18 <div class="col-md-12 cards-content"> 18 <div class="col-md-12 cards-content">
19 - <h2 class=" my-subjects-title"><b><i>{% trans "Meus Assuntos" %}</i></b></h2> 19 + <h2 class=" my-subjects-title"><b><i>{% trans "Meus Assuntos" %}</i></b></h2>
20 <div class="panel-group" id="subject-accordion" role="tablist" aria-multiselectable="true"> 20 <div class="panel-group" id="subject-accordion" role="tablist" aria-multiselectable="true">
21 {% for subject in subjects %} 21 {% for subject in subjects %}
22 {% include "subjects/subject_card.html" with accordion_id="subject-accordion" %} 22 {% include "subjects/subject_card.html" with accordion_id="subject-accordion" %}
subjects/templates/subjects/subject_card.html
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 {% endif %} 57 {% endif %}
58 </div> 58 </div>
59 </div> 59 </div>
60 -{% elif request.user in subject.professor.all or request.user in category.coordinators.all %} 60 +{% elif request.user in subject.professor.all or request.user in subject.category.coordinators.all or request.user.is_staff %}
61 <div class="panel panel-info subject-panel-invisible"> 61 <div class="panel panel-info subject-panel-invisible">
62 <div class="panel-heading panel-invisible"> 62 <div class="panel-heading panel-invisible">
63 <div class="row"> 63 <div class="row">
subjects/utils.py 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +# File used to store useful subject functions #
  2 +
  3 +def has_student_profile(user, category):
  4 + for subject in category.subject_category.all():
  5 + if user in subject.students.all():
  6 + return True
  7 +
  8 + return False
  9 +
  10 +def has_professor_profile(user, category):
  11 + for subject in category.subject_category.all():
  12 + if user in subject.professor.all():
  13 + return True
  14 +
  15 + return False
0 \ No newline at end of file 16 \ No newline at end of file
subjects/views.py
@@ -25,6 +25,7 @@ from .models import Tag @@ -25,6 +25,7 @@ from .models import Tag
25 import time 25 import time
26 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 26 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
27 from .forms import CreateSubjectForm 27 from .forms import CreateSubjectForm
  28 +from .utils import has_student_profile, has_professor_profile
28 from users.models import User 29 from users.models import User
29 30
30 31
@@ -38,14 +39,12 @@ class HomeView(LoginRequiredMixin, ListView): @@ -38,14 +39,12 @@ class HomeView(LoginRequiredMixin, ListView):
38 39
39 def get_queryset(self): 40 def get_queryset(self):
40 if self.request.user.is_staff: 41 if self.request.user.is_staff:
41 - subjects = Subject.objects.all() 42 + subjects = Subject.objects.all().order_by("name")
42 else: 43 else:
43 - subjects = Subject.objects.all() 44 + 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 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 46
46 -  
47 - paginator = Paginator(subjects, 10)  
48 - 47 + print(subjects)
49 48
50 return subjects 49 return subjects
51 50
@@ -75,10 +74,8 @@ class IndexView(LoginRequiredMixin, ListView): @@ -75,10 +74,8 @@ class IndexView(LoginRequiredMixin, ListView):
75 if not self.kwargs.get('option'): 74 if not self.kwargs.get('option'):
76 categories = Category.objects.all() 75 categories = Category.objects.all()
77 76
78 - for category in categories:  
79 - category.subjects = Subject.objects.filter(category= category)  
80 -  
81 - categories = [category for category in categories if category.subjects.count() > 0 or self.request.user in category.coordinators.all()] 77 + categories = [category for category in categories if self.request.user in category.coordinators.all() \
  78 + or has_professor_profile(self.request.user, category) or has_student_profile(self.request.user, category)]
82 #So I remove all categories that doesn't have the possibility for the user to be on 79 #So I remove all categories that doesn't have the possibility for the user to be on
83 80
84 return categories 81 return categories
@@ -166,11 +163,9 @@ class SubjectCreateView(CreateView): @@ -166,11 +163,9 @@ class SubjectCreateView(CreateView):
166 return super(SubjectCreateView, self).form_valid(form) 163 return super(SubjectCreateView, self).form_valid(form)
167 164
168 def get_success_url(self): 165 def get_success_url(self):
169 -  
170 if not self.object.category.visible: 166 if not self.object.category.visible:
171 self.object.visible = False 167 self.object.visible = False
172 self.object.save() 168 self.object.save()
173 -  
174 169
175 messages.success(self.request, _('Subject "%s" was registered on "%s" successfully!')%(self.object.name, self.object.category.name )) 170 messages.success(self.request, _('Subject "%s" was registered on "%s" successfully!')%(self.object.name, self.object.category.name ))
176 return reverse_lazy('subjects:index') 171 return reverse_lazy('subjects:index')
@@ -192,17 +187,13 @@ class SubjectUpdateView(LogMixin, UpdateView): @@ -192,17 +187,13 @@ class SubjectUpdateView(LogMixin, UpdateView):
192 return context 187 return context
193 188
194 def get_success_url(self): 189 def get_success_url(self):
195 -  
196 if not self.object.category.visible: 190 if not self.object.category.visible:
197 self.object.visible = False 191 self.object.visible = False
198 self.object.save() 192 self.object.save()
199 -  
200 193
201 messages.success(self.request, _('Subject "%s" was updated on "%s" successfully!')%(self.object.name, self.object.category.name )) 194 messages.success(self.request, _('Subject "%s" was updated on "%s" successfully!')%(self.object.name, self.object.category.name ))
202 return reverse_lazy('subjects:index') 195 return reverse_lazy('subjects:index')
203 196
204 -  
205 -  
206 class SubjectDeleteView(LoginRequiredMixin, LogMixin, DeleteView): 197 class SubjectDeleteView(LoginRequiredMixin, LogMixin, DeleteView):
207 198
208 login_url = reverse_lazy("users:login") 199 login_url = reverse_lazy("users:login")
@@ -228,7 +219,6 @@ class SubjectDeleteView(LoginRequiredMixin, LogMixin, DeleteView): @@ -228,7 +219,6 @@ class SubjectDeleteView(LoginRequiredMixin, LogMixin, DeleteView):
228 def get_success_url(self): 219 def get_success_url(self):
229 220
230 messages.success(self.request, _('Subject removed successfully!')) 221 messages.success(self.request, _('Subject removed successfully!'))
231 -  
232 222
233 return reverse_lazy('subjects:index') 223 return reverse_lazy('subjects:index')
234 224