Commit 3aa59e9b2d6e2bc9e125716bda695135a26810af

Authored by Felipe Henrique de Almeida Bormann
1 parent 40d29a80

search routine completed

subjects/templates/subjects/list_search.html 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +{% extends "subjects/list.html" %}
  2 +
  3 +{% load static i18n pagination %}
  4 +{% load django_bootstrap_breadcrumbs subject_counter %}
  5 +
  6 +{% block content %}
  7 +
  8 + {% if messages %}
  9 + {% for message in messages %}
  10 + <script type="text/javascript">
  11 + {% if message.tags == "danger" %}
  12 + alertify.error('{{message}}');
  13 + {% else %}
  14 + alertify.success('{{message}}');
  15 + {% endif %}
  16 + </script>
  17 + {% endfor %}
  18 + {% endif %}
  19 +
  20 + <div id="core-subjects-options-div">
  21 + <ul class="core-subjects-options">
  22 + {% if all %}
  23 + <a href="{% url 'subjects:search' %}?search= {{tags}} "><li >{% trans "My subjects" %} ({{ totals.my_subjects }})</li></a>
  24 + <a href="{% url 'subjects:search' 'all' %}?search={{tags}}" ><li class="active">{% trans "All subjects" %} ({{ totals.all_subjects }})</li></a>
  25 + {% else %}
  26 + <a href="{% url 'subjects:search' %}?search={{tags}}"><li class="active">{% trans "My subjects" %} ({{ totals.my_subjects }})</li></a>
  27 + <a href="{% url 'subjects:search' 'all' %}?search={{tags}}" ><li>{% trans "All subjects" %} ({{ totals.all_subjects }})</li></a>
  28 + {% endif %}
  29 +
  30 + </ul>
  31 + </div>
  32 +
  33 + <div class="col-md-12 cards-content">
  34 +
  35 +
  36 + {% if subjects|length > 0 %}
  37 + <div class="panel-group" id="subject-accordion" role="tablist" aria-multiselectable="true">
  38 + {% for subject in subjects %}
  39 + {% include "subjects/subject_card.html" with accordion_id="subject-accordion" %}
  40 + {% endfor %}
  41 +
  42 + {% pagination request paginator page_obj %}
  43 + </div>
  44 + {% else %}
  45 + <div class="text-center no-subjects">
  46 + <i class="fa fa-graduation-cap"></i>
  47 + <h4>{% trans 'You still do not posses any subject in our platform' %}</h4>
  48 + </div>
  49 + {% endif %}
  50 + </div>
  51 +
  52 +
  53 +
  54 +{% endblock content %}
0 \ No newline at end of file 55 \ No newline at end of file
subjects/urls.py
@@ -5,7 +5,6 @@ urlpatterns = [ @@ -5,7 +5,6 @@ urlpatterns = [
5 url(r'^home/$', views.HomeView.as_view(), name='home'), 5 url(r'^home/$', views.HomeView.as_view(), name='home'),
6 url(r'^$', views.IndexView.as_view(), name='index'), 6 url(r'^$', views.IndexView.as_view(), name='index'),
7 url(r'^category/(?P<slug>[\w_-]+)/$', views.IndexView.as_view(), name='cat_view'), 7 url(r'^category/(?P<slug>[\w_-]+)/$', views.IndexView.as_view(), name='cat_view'),
8 - url(r'^(?P<option>[\w_-]+)/$', views.IndexView.as_view(), name='index'),  
9 url(r'^create/(?P<slug>[\w_-]+)/$', views.SubjectCreateView.as_view(), name='create'), 8 url(r'^create/(?P<slug>[\w_-]+)/$', views.SubjectCreateView.as_view(), name='create'),
10 url(r'^replicate/(?P<subject_slug>[\w_-]+)/$', views.SubjectCreateView.as_view(), name='replicate'), 9 url(r'^replicate/(?P<subject_slug>[\w_-]+)/$', views.SubjectCreateView.as_view(), name='replicate'),
11 url(r'^update/(?P<slug>[\w_-]+)/$', views.SubjectUpdateView.as_view(), name='update'), 10 url(r'^update/(?P<slug>[\w_-]+)/$', views.SubjectUpdateView.as_view(), name='update'),
@@ -13,4 +12,6 @@ urlpatterns = [ @@ -13,4 +12,6 @@ urlpatterns = [
13 url(r'^view/(?P<slug>[\w_-]+)/$', views.SubjectDetailView.as_view(), name='view'), 12 url(r'^view/(?P<slug>[\w_-]+)/$', views.SubjectDetailView.as_view(), name='view'),
14 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.SubjectSubscribeView.as_view(), name='subscribe'), 13 url(r'^subscribe/(?P<slug>[\w_-]+)/$', views.SubjectSubscribeView.as_view(), name='subscribe'),
15 url(r'^search/$', views.SubjectSearchView.as_view(), name='search'), 14 url(r'^search/$', views.SubjectSearchView.as_view(), name='search'),
  15 + url(r'^search/(?P<option>[\w_-]+)/$', views.SubjectSearchView.as_view(), name='search'),
  16 + url(r'^(?P<option>[\w_-]+)/$', views.IndexView.as_view(), name='index'),
16 ] 17 ]
17 \ No newline at end of file 18 \ No newline at end of file
subjects/views.py
@@ -343,40 +343,41 @@ class SubjectSubscribeView(LoginRequiredMixin, TemplateView): @@ -343,40 +343,41 @@ class SubjectSubscribeView(LoginRequiredMixin, TemplateView):
343 343
344 class SubjectSearchView(LoginRequiredMixin, ListView): 344 class SubjectSearchView(LoginRequiredMixin, ListView):
345 login_url = reverse_lazy("users:login") 345 login_url = reverse_lazy("users:login")
346 - template_name = 'subjects/list.html'  
347 - context_object_name = 'categories' 346 + template_name = 'subjects/list_search.html'
  347 + context_object_name = 'subjects'
348 paginate_by = 10 348 paginate_by = 10
349 349
350 def get_queryset(self): 350 def get_queryset(self):
351 - if self.request.user.is_staff:  
352 - subjects = Subject.objects.all().order_by("name")  
353 - else:  
354 - pk = self.request.user.pk  
355 -  
356 - subjects = Subject.objects.filter(Q(students__pk=pk) | Q(professor__pk=pk) | Q(category__coordinators__pk=pk)).distinct()  
357 351
358 - self.total = len(subjects)  
359 - 352 + tags = self.request.GET.get('search')
  353 + self.tags = tags
  354 + tags = tags.split(" ")
  355 +
  356 + subjects = Subject.objects.filter(tags__name__in=tags)
  357 + pk = self.request.user.pk
  358 + my_subjects = Subject.objects.filter(Q(students__pk=pk) | Q(professor__pk=pk) | Q(category__coordinators__pk=pk) & Q(tags__name__in=tags) ).distinct()
  359 +
  360 + self.totals = {'all_subjects': subjects.count(), 'my_subjects': my_subjects.count()}
  361 + if self.kwargs.get('option'):
  362 + subjects = my_subjects
360 return subjects 363 return subjects
361 - def post(self, request, *args, **kwargs):  
362 - print("aqui")  
363 -  
364 - return HttpResponse("T")  
365 -  
366 - def get(self, request, *args, **kwargs):  
367 - print("get")  
368 - print(args)  
369 - print(kwargs)  
370 - return HttpResponse("t")  
371 -  
372 - 364 +
373 def get_context_data(self, **kwargs): 365 def get_context_data(self, **kwargs):
374 context = super(SubjectSearchView, self).get_context_data(**kwargs) 366 context = super(SubjectSearchView, self).get_context_data(**kwargs)
375 - print(kwargs)  
376 - print("teste")  
377 - tags = kwargs.get('tags').strip()  
378 - print(tags)  
379 - 367 +
  368 + context['tags'] = self.tags
380 context['all'] = False 369 context['all'] = False
381 context['title'] = _('My Subjects') 370 context['title'] = _('My Subjects')
  371 +
  372 + context['show_buttons'] = True #So it shows subscribe and access buttons
  373 + context['totals'] = self.totals
  374 +
  375 + if self.kwargs.get('option'):
  376 + context['all'] = True
  377 + context['title'] = _('All Subjects')
  378 +
  379 + context['subjects_menu_active'] = 'subjects_menu_active'
  380 +
382 return context 381 return context
  382 +
  383 +