diff --git a/access/management/commands/set_tokens.py b/access/management/commands/set_tokens.py index 0a2fdf4..3b148d0 100644 --- a/access/management/commands/set_tokens.py +++ b/access/management/commands/set_tokens.py @@ -27,7 +27,7 @@ class Command(BaseCommand): with open(from_path) as f: with open(to_path, 'w') as out_f: fw = csv.writer(out_f) - fr = csv.reader(f) + fr = csv.reader(f, delimiter=';') for row in fr: email = row[0] course_token = row[1] diff --git a/access/urls.py b/access/urls.py index d445565..adafba8 100644 --- a/access/urls.py +++ b/access/urls.py @@ -5,7 +5,6 @@ from access import views urlpatterns = [ url(r'progress_detail/(?P[0-9A-Fa-f-]+)/$', progress.views.CourseProgressUserView.as_view()), - url(r'progress_dynamic/(?P[0-9A-Fa-f-]+)/$', progress.views.CourseProgressDynamicView.as_view()), url(r'teachers/$', views.TeacherListView.as_view()), url(r'detail/(?P[0-9A-Fa-f-]+)/$', views.DetailUserView.as_view()), url(r'detail/$', views.DetailUserView.as_view()), diff --git a/finance/views.py b/finance/views.py index c866150..16ddc85 100644 --- a/finance/views.py +++ b/finance/views.py @@ -214,8 +214,11 @@ class InvoiceDetailView(APIView): user=bill.user, cps_email=bill.user.email, ) - invoice.yandex_pay = yandex_pay + if pay_count > 1: + yandex_pay.shop_id = settings.YANDEX_MONEY_REBILLING_SHOP_ID + yandex_pay.scid = settings.YANDEX_MONEY_REBILLING_SCID + invoice.yandex_pay = yandex_pay invoice.send_link() context = { diff --git a/lms/settings.py b/lms/settings.py index adb44a1..c6bced0 100644 --- a/lms/settings.py +++ b/lms/settings.py @@ -46,6 +46,11 @@ YANDEX_MONEY_DEBUG = False YANDEX_MONEY_SCID = '149639' YANDEX_MONEY_TEST_SCID = '558146' YANDEX_MONEY_SHOP_ID = '157133' + +#Todo костыль на рассрочку +YANDEX_MONEY_REBILLING_SCID = '723030' +YANDEX_MONEY_REBILLING_SHOP_ID = '199287' + YANDEX_MONEY_SHOP_PASSWORD = 'nu5Xefise' YANDEX_MONEY_FAIL_URL = '%s/api/v1/finance/yandex/fail/' % DOMAIN YANDEX_MONEY_SUCCESS_URL = '%s/' % DOMAIN diff --git a/progress/urls.py b/progress/urls.py index 4d4a468..f47fe79 100644 --- a/progress/urls.py +++ b/progress/urls.py @@ -3,6 +3,7 @@ from django.conf.urls import url from progress import views urlpatterns = [ + url(r'progress_dynamic/$', views.CourseProgressDynamicView.as_view()), url(r'students/(?P[0-9A-Fa-f-]+)/$', views.StudentWorkView.as_view()), url(r'student/$', views.StudentUpdateProgress.as_view()), url(r'find/$', views.FindProgressView.as_view()), diff --git a/progress/views.py b/progress/views.py index e4c5d2e..0d95585 100644 --- a/progress/views.py +++ b/progress/views.py @@ -15,7 +15,7 @@ from rest_framework.permissions import IsAuthenticated from rest_framework.renderers import JSONRenderer from rest_framework.response import Response from rest_framework.views import APIView -from django.db.models import Q +from django.db.models import Q, Count import jwt from django.conf import settings @@ -64,19 +64,31 @@ class CourseProgressDynamicView(APIView): renderer_classes = (JSONRenderer,) @staticmethod - def get(request, token): + def get(request): + course_token = request.GET.get('course_token', None) + from_date = int(request.GET.get('from', '7')) + to_date = int(request.GET.get('to', '0')) + if request.user.is_authenticated() and request.user.is_staff: - try: - progresses = Progress.objects.filter(course_token=token) - res = {} - for i in progresses: - key = i.progresslesson_set.filter(status="done").count() + 1 - res[key] = 1 if not key in res.keys() else res[key] + 1 - return Response(res, status=200) - except ValidationError: - return Response("Bad request", status=400) + progresses = ProgressLesson.objects.filter(status='done') + if not course_token is None: + try: + progresses = progresses.filter(progress__course_token=course_token) + except ProgressLesson.DoesNotExist: + return Response('incorrect course token', status=404) - return Response(status=403) + progresses = progresses.filter(finish_date__gt=timezone.now() - relativedelta(days=from_date)) + progresses = progresses.filter(finish_date__lt=timezone.now() - relativedelta(days=to_date)) + progresses = progresses.order_by('finish_date') + + res = {} + progresses = progresses.extra({'finish_date_day': "date(finish_date)"})\ + .values('progress__course_token', 'finish_date_day')\ + .annotate(total=Count('progress')) + #TODO Доделать + + return Response(res, status=200) + return Response('Доступно только персоналу', status=403) class CourseProgressUserView(APIView):