migrate update

feature/fix_generate_pass
Andrey 8 years ago
parent 3a0b2020f9
commit 0e2cdfcb90
  1. 1
      progress/urls.py
  2. 44
      progress/views.py

@ -7,4 +7,5 @@ urlpatterns = [
url(r'student/$', views.StudentUpdateProgress.as_view()), url(r'student/$', views.StudentUpdateProgress.as_view()),
url(r'teacher/$', views.TeacherUpdateProgress.as_view()), url(r'teacher/$', views.TeacherUpdateProgress.as_view()),
url(r'set-progress/$', views.SetProgress.as_view()), url(r'set-progress/$', views.SetProgress.as_view()),
url(r'get_hw_pay/$', views.get_teachers_pay),
] ]

@ -3,7 +3,7 @@ import datetime
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.http import HttpResponse from django.http import HttpResponse, HttpResponseForbidden
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from rest_framework.renderers import JSONRenderer from rest_framework.renderers import JSONRenderer
from rest_framework.response import Response from rest_framework.response import Response
@ -13,7 +13,7 @@ from django.db.models import Q
from courses.models import Course from courses.models import Course
from progress.models import ProgressLesson, Progress from progress.models import ProgressLesson, Progress
from progress.serializers import ProgressAnalyticSerializer, ProgressLessonSerializer, ProgressSerializer from progress.serializers import ProgressAnalyticSerializer, ProgressLessonSerializer, ProgressSerializer
from courses.api import CourseProgressApi from courses.api import CourseProgressApi, CourseParamsApi
from progress.tasks import add_next_lesson from progress.tasks import add_next_lesson
@ -349,3 +349,43 @@ class SetProgress(APIView):
else: else:
return Response("Эта функция доступна только сотрудникам персонала", status=403) return Response("Эта функция доступна только сотрудникам персонала", status=403)
def get_teachers_pay(request):
if not request.user.is_authenticated and (request.user.groups.filter(name="support") or request.user.is_superuser):
return HttpResponseForbidden()
date_from = request.GET.get('from', None)
date_to = request.GET.get('to', None)
email = request.GET.get('email', None)
file_name = "teacher_pay_%s" % email
file_name = file_name + "__from_%s" % date_from if date_from else file_name
file_name = file_name + "__to_%s" % date_to if date_to else file_name
progress_lessons = ProgressLesson.objects.filter(
~Q(comment_tokens__len=0),
checker__email=email,
status='done',
)
progress_lessons = progress_lessons.filter(finish_date__lt=date_to) if date_to else progress_lessons
progress_lessons = progress_lessons.filter(finish_date__gte=date_from) if date_from else progress_lessons
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="%s.csv"' % file_name
writer = csv.writer(response)
writer.writerow(['Почта студента', 'Имя студента', 'Курс', 'Дата', 'Время',])
for i in progress_lessons.order_by('-finish_date'):
course_api = CourseParamsApi(i.progress.course_token)
writer.writerow([
i.progress.user.email,
i.progress.user.get_full_name(),
course_api.get_slug_and_title()['title'],
i.finish_date.date(),
i.finish_date.time(),
])
return response

Loading…
Cancel
Save