Commit 60d308d7d60762a034fc8ba6c3f42ba8f986903c

Authored by fbormann
1 parent a53fdfc8

whole report url is set up for GET parameters and it's answer is comming as a JS…

…ON data into a template, not showing the data yet.
amadeus/urls.py
... ... @@ -25,7 +25,7 @@ urlpatterns = [
25 25 url(r'^users/', include('users.urls', namespace = 'users')),
26 26 url(r'^admin/', admin.site.urls),
27 27 url(r'^$', index, name = 'home'),
28   - url(r'api/', include('api.urls', namespace = 'api')),
  28 + url(r'^api/', include('api.urls', namespace = 'api')),
29 29 url(r'^categories/', include('categories.urls', namespace = 'categories')),
30 30 url(r'^subjects/', include('subjects.urls', namespace = 'subjects')),
31 31 url(r'^groups/', include('students_group.urls', namespace = 'groups')),
... ...
api/templates/api/report.html 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +{% extends 'base.html' %}
  2 +
  3 +{% load static i18n pagination %}
  4 +{% load django_bootstrap_breadcrumbs %}
  5 +
  6 +{% block breadcrumbs %}
  7 + {{ block.super }}
  8 +
  9 + {% trans 'Mural: General' as general %}
  10 +
  11 + {% breadcrumb general 'mural:manage_general' %}
  12 +{% endblock %}
  13 +
  14 +{% block content %}
  15 +
  16 +{% endblock content %}
0 17 \ No newline at end of file
... ...
api/urls.py
... ... @@ -6,6 +6,7 @@ from rest_framework import routers
6 6  
7 7 from users.views import UserViewSet
8 8 from log.views import LogViewSet
  9 +from . import views
9 10  
10 11 router = routers.DefaultRouter()
11 12 router.register(r'logs', LogViewSet)
... ... @@ -13,5 +14,7 @@ router.register(r'usersapi', UserViewSet)
13 14  
14 15 urlpatterns = [
15 16 #API REST
  17 + url(r'^report/$', views.ReportView.as_view(), name='report'),
  18 +
16 19 url(r'^', include(router.urls)),
17 20 ]
18 21 \ No newline at end of file
... ...
api/views.py
1 1 from django.shortcuts import render
  2 +from django.http import HttpResponse, JsonResponse
2 3  
3   -# Create your views here.
  4 +
  5 +import django.views.generic as generic
  6 +from mural.models import SubjectPost
  7 +from django.db.models import Q
  8 +from django.contrib.auth.mixins import LoginRequiredMixin
  9 +from datetime import datetime, date
  10 +from subjects.models import Subject
  11 +
  12 +class ReportView(LoginRequiredMixin, generic.TemplateView):
  13 + template_name = "api/report.html"
  14 +
  15 + def get_context_data(self, **kwargs):
  16 + context = {}
  17 + params = self.request.GET
  18 +
  19 + if params['subject_id'] and params['init_date'] and params['end_date']:
  20 + subject_id = params['subject_id']
  21 + subject = Subject.objects.get(id=subject_id)
  22 + data = {}
  23 + students = subject.students.all()
  24 + formats = ["%d/%m/%Y", "%m/%d/%Y"] #so it accepts english and portuguese date formats
  25 + for fmt in formats:
  26 + try:
  27 + init_date = datetime.strptime(params['init_date'], fmt)
  28 + end_date = datetime.strptime(params['end_date'], fmt)
  29 + except ValueError:
  30 + pass
  31 +
  32 + for student in students:
  33 + interactions = {}
  34 +
  35 + interactions['doubts'] = SubjectPost.objects.filter(action="help", create_date__range=(init_date, end_date),
  36 + space__id=subject_id, user=student).count()
  37 + data[student] = interactions
  38 +
  39 + print(data)
  40 +
  41 +
  42 + return context
... ...