From 60d308d7d60762a034fc8ba6c3f42ba8f986903c Mon Sep 17 00:00:00 2001 From: fbormann Date: Thu, 2 Mar 2017 19:30:40 -0300 Subject: [PATCH] whole report url is set up for GET parameters and it's answer is comming as a JSON data into a template, not showing the data yet. --- amadeus/urls.py | 2 +- api/templates/api/report.html | 16 ++++++++++++++++ api/urls.py | 3 +++ api/views.py | 41 ++++++++++++++++++++++++++++++++++++++++- 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 api/templates/api/report.html diff --git a/amadeus/urls.py b/amadeus/urls.py index 8ecacb1..4773a88 100644 --- a/amadeus/urls.py +++ b/amadeus/urls.py @@ -25,7 +25,7 @@ urlpatterns = [ url(r'^users/', include('users.urls', namespace = 'users')), url(r'^admin/', admin.site.urls), url(r'^$', index, name = 'home'), - url(r'api/', include('api.urls', namespace = 'api')), + url(r'^api/', include('api.urls', namespace = 'api')), url(r'^categories/', include('categories.urls', namespace = 'categories')), url(r'^subjects/', include('subjects.urls', namespace = 'subjects')), url(r'^groups/', include('students_group.urls', namespace = 'groups')), diff --git a/api/templates/api/report.html b/api/templates/api/report.html new file mode 100644 index 0000000..d69226e --- /dev/null +++ b/api/templates/api/report.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{% load static i18n pagination %} +{% load django_bootstrap_breadcrumbs %} + +{% block breadcrumbs %} + {{ block.super }} + + {% trans 'Mural: General' as general %} + + {% breadcrumb general 'mural:manage_general' %} +{% endblock %} + +{% block content %} + +{% endblock content %} \ No newline at end of file diff --git a/api/urls.py b/api/urls.py index abba0dc..030495a 100644 --- a/api/urls.py +++ b/api/urls.py @@ -6,6 +6,7 @@ from rest_framework import routers from users.views import UserViewSet from log.views import LogViewSet +from . import views router = routers.DefaultRouter() router.register(r'logs', LogViewSet) @@ -13,5 +14,7 @@ router.register(r'usersapi', UserViewSet) urlpatterns = [ #API REST + url(r'^report/$', views.ReportView.as_view(), name='report'), + url(r'^', include(router.urls)), ] \ No newline at end of file diff --git a/api/views.py b/api/views.py index 91ea44a..3c176d3 100644 --- a/api/views.py +++ b/api/views.py @@ -1,3 +1,42 @@ from django.shortcuts import render +from django.http import HttpResponse, JsonResponse -# Create your views here. + +import django.views.generic as generic +from mural.models import SubjectPost +from django.db.models import Q +from django.contrib.auth.mixins import LoginRequiredMixin +from datetime import datetime, date +from subjects.models import Subject + +class ReportView(LoginRequiredMixin, generic.TemplateView): + template_name = "api/report.html" + + def get_context_data(self, **kwargs): + context = {} + params = self.request.GET + + if params['subject_id'] and params['init_date'] and params['end_date']: + subject_id = params['subject_id'] + subject = Subject.objects.get(id=subject_id) + data = {} + students = subject.students.all() + formats = ["%d/%m/%Y", "%m/%d/%Y"] #so it accepts english and portuguese date formats + for fmt in formats: + try: + init_date = datetime.strptime(params['init_date'], fmt) + end_date = datetime.strptime(params['end_date'], fmt) + except ValueError: + pass + + for student in students: + interactions = {} + + interactions['doubts'] = SubjectPost.objects.filter(action="help", create_date__range=(init_date, end_date), + space__id=subject_id, user=student).count() + data[student] = interactions + + print(data) + + + return context -- libgit2 0.21.2