diff --git a/_utils/check_course_map.py b/_utils/check_course_map.py index 1242297..5a8eba3 100644 --- a/_utils/check_course_map.py +++ b/_utils/check_course_map.py @@ -4,7 +4,7 @@ import os import datetime import django import sys -sys.path.append("/var/www/projects/codemy/") +sys.path.append("/var/www/skillbox/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from courses.models import Course diff --git a/_utils/check_journals.py b/_utils/check_journals.py index ca31d2e..93b0d88 100644 --- a/_utils/check_journals.py +++ b/_utils/check_journals.py @@ -5,7 +5,7 @@ import sys import datetime import os start = datetime.datetime.now() -sys.path.append("/var/www/projects/codemy/") +sys.path.append("/var/www/skillbox/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() os.system('python check_course_map.py') diff --git a/_utils/check_prices.py b/_utils/check_prices.py index 1b4be07..a80718b 100644 --- a/_utils/check_prices.py +++ b/_utils/check_prices.py @@ -6,7 +6,7 @@ import datetime start = datetime.datetime.now() -sys.path.append("/var/www/projects/codemy/") +sys.path.append("/var/www/skillbox/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() diff --git a/_utils/clean_twice_journals.py b/_utils/clean_twice_journals.py index 89a7398..8aa8df5 100644 --- a/_utils/clean_twice_journals.py +++ b/_utils/clean_twice_journals.py @@ -5,7 +5,7 @@ import sys import datetime start = datetime.datetime.now() -sys.path.append("/var/www/projects/codemy/") +sys.path.append("/var/www/skillbox/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() diff --git a/_utils/open_lesson.py b/_utils/open_lesson.py index 9555a67..636913e 100644 --- a/_utils/open_lesson.py +++ b/_utils/open_lesson.py @@ -4,14 +4,14 @@ import django import sys import datetime -sys.path.append("/var/www/projects/codemy/") +sys.path.append("/var/www/skillbox/") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings") django.setup() from journals.models import CourseMap, LessonJ, TeacherJ, HomeworkTry from lms.tools import show_progress -_NEED_OPEN = LessonJ.objects.get(material__id='1154', student__email='parabellum07@gmail.com'.lower()) +_NEED_OPEN = None#LessonJ.objects.get(material__id='1154', student__email='parabellum07@gmail.com'.lower()) _TEACHERJ_FILTER = {'progress__gte': 0} _TEACHERJ_EXCLUDE = {'teacher': None} diff --git a/courses/views.py b/courses/views.py index 20dfc7a..19494fa 100755 --- a/courses/views.py +++ b/courses/views.py @@ -55,21 +55,7 @@ def course(request, slug): journal.start_date = datetime.datetime.now() journal.save() - waiting_materials = [] - if journal.waiting.exists(): - for n in journal.waiting.all(): - _obj = n.get_obj() - __type = n.get_type() - _type = None - if __type == 'L': - _type = 'lesson' - elif __type == 'H': - _type = 'homework' - elif __type == 'E': - _type = 'exam' - - waiting_materials.append({'obj': _obj, 'type': _type}) - return {'course': journal.get_face(user_fabric(request.user)), 'user': user_fabric(request.user), 'waiting_materials': waiting_materials} + return {'course': journal.get_face(user_fabric(request.user)), 'user': user_fabric(request.user)} @response_decor(template='lesson.html') @@ -86,27 +72,12 @@ def lesson(request, lesson): check_journal(j) lj = LessonJ.objects.get(material=lesson, student=request.user) - waiting_materials = [] - if lj.parent.parent.waiting.exists(): - for n in lj.parent.parent.waiting.all(): - _obj = n.get_obj() - __type = n.get_type() - _type = None - if __type == 'L': - _type = 'lesson' - elif __type == 'H': - _type = 'homework' - elif __type == 'E': - _type = 'exam' - - waiting_materials.append({'obj': _obj, 'type': _type}) - if request.user.is_authenticated() and request.user.is_admin or request.user in lesson.course.teachers.all(): return {'lesson': lj.get_face(user_fabric(request.user)), 'course': {'head': lj.parent.parent.get_head_face(), 'level': lj.parent.parent.course.get_level(), 'journal': lj.parent.parent.get_face(user_fabric(request.user))}, - 'bought': True, 'accept': True, 'waiting_materials': waiting_materials} + 'bought': True, 'accept': True} if not lesson.free and not system_check_bill(lesson.token, request.user, theme_type=lesson.theme._type): return {'redirect': '/access/by_error/'} @@ -122,7 +93,7 @@ def lesson(request, lesson): lj.date = datetime.datetime.now() lj.save() if result: - return {'lesson': lj.get_face(user_fabric(request.user)), 'course': {'head': lj.parent.parent.get_head_face(), 'level': lj.parent.parent.course.get_level(), 'journal': lj.parent.parent.get_face(user_fabric(request.user))}, 'bought': True, 'accept': True, 'waiting_materials': waiting_materials} + return {'lesson': lj.get_face(user_fabric(request.user)), 'course': {'head': lj.parent.parent.get_head_face(), 'level': lj.parent.parent.course.get_level(), 'journal': lj.parent.parent.get_face(user_fabric(request.user))}, 'bought': True, 'accept': True} @response_decor(template='homework.html') @@ -138,27 +109,12 @@ def homework(request, homework): check_journal(j) hj = HomeworkJ.objects.get(material=Homework.objects.get(id=homework), student=request.user) - waiting_materials = [] - if hj.parent.parent.waiting.exists(): - for n in hj.parent.parent.waiting.all(): - _obj = n.get_obj() - __type = n.get_type() - _type = None - if __type == 'L': - _type = 'lesson' - elif __type == 'H': - _type = 'homework' - elif __type == 'E': - _type = 'exam' - - waiting_materials.append({'obj': _obj, 'type': _type}) - if request.user.is_authenticated() and request.user.is_admin: return {'homework': hj.get_face(user_fabric(request.user)), 'course': {'head': hj.parent.parent.get_head_face(), 'level': hj.parent.parent.course.get_level(), - 'journal': hj.parent.parent.get_face(user_fabric(request.user))}, - 'waiting_materials': waiting_materials} + 'journal': hj.parent.parent.get_face(user_fabric(request.user))} + } if not system_check_bill(hj.material.token, request.user, theme_type=hj.material.theme._type): return {'redirect': '/access/by_error/'} @@ -177,8 +133,7 @@ def homework(request, homework): if result: return {'homework': hj.get_face(user_fabric(request.user)), 'course': {'head': hj.parent.parent.get_head_face(), - 'level': hj.parent.parent.course.get_level(), 'journal': hj.parent.parent.get_face(user_fabric(request.user))}, - 'waiting_materials': waiting_materials} + 'level': hj.parent.parent.course.get_level(), 'journal': hj.parent.parent.get_face(user_fabric(request.user))},} @response_decor(template='exam.html') @@ -194,25 +149,10 @@ def exam(request, exam): check_journal(j) exam = ExamJ.objects.get(material=Exam.objects.get(id=exam), student=request.user) - waiting_materials = [] - if exam.parent.parent.waiting.all().exists(): - for n in exam.parent.parent.waiting.all(): - _obj = n.get_obj() - __type = n.get_type() - _type = None - if __type == 'L': - _type = 'lesson' - elif __type == 'H': - _type = 'homework' - elif __type == 'E': - _type = 'exam' - - waiting_materials.append({'obj': _obj, 'type': _type}) - if request.user.is_authenticated() and request.user.is_admin: return {'exam': exam.get_face(user_fabric(request.user)), - 'course': {'head': exam.parent.parent.get_head_face(), 'level': exam.parent.parent.course.get_level()}, - 'waiting_materials': waiting_materials} + 'course': {'head': exam.parent.parent.get_head_face(), 'level': exam.parent.parent.course.get_level()} + } if not system_check_bill(exam.material.token, request.user): return {'redirect': '/access/by_error/'} @@ -229,7 +169,7 @@ def exam(request, exam): exam.save() if result: - return {'exam': exam.get_face(user_fabric(request.user)), 'course': {'head': exam.parent.parent.get_head_face(), 'level': exam.parent.parent.course.get_level()}, 'waiting_materials': waiting_materials} + return {'exam': exam.get_face(user_fabric(request.user)), 'course': {'head': exam.parent.parent.get_head_face(), 'level': exam.parent.parent.course.get_level()}} @response_decor(template='all_achievements.html', without_auth=True) diff --git a/finance/migrations/0070_auto_20170424_1638.py b/finance/migrations/0070_auto_20170424_1638.py new file mode 100644 index 0000000..d966970 --- /dev/null +++ b/finance/migrations/0070_auto_20170424_1638.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.3 on 2017-04-24 16:38 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('finance', '0069_auto_20170203_1333'), + ] + + operations = [ + migrations.AlterField( + model_name='bill', + name='_method', + field=models.CharField(choices=[('C', 'Наличные'), ('H', 'JustClick'), ('B', 'Банковский перевод'), ('G', 'На расчетный счет'), ('A', 'Альфа-Банк'), ('P', 'PayPal'), ('W', 'WebMoney'), ('S', 'SimplePay'), ('Y', 'YandexKassa')], default='Y', max_length=2, verbose_name='Способ оплаты'), + ), + migrations.AlterField( + model_name='servicerequest', + name='status', + field=models.CharField(choices=[('S', 'Не обработан'), ('E', 'Ошибка контекста'), ('W', 'В работе'), ('F', 'Продан'), ('B', 'Не продал')], default='S', max_length=1, verbose_name='Статус'), + ), + ] diff --git a/finance/models.py b/finance/models.py index 32dfaeb..95aa2b5 100755 --- a/finance/models.py +++ b/finance/models.py @@ -2,6 +2,8 @@ import json import urllib import datetime +from simplejson import JSONDecodeError + from django.db import models import django.utils.timezone from access.models import User, TrafHistory @@ -304,6 +306,7 @@ class Bill(models.Model): class ServiceRequest(models.Model): SERVICE_REQUEST_STATUS = ( ('S', u'Не обработан'), + ('E', u'Ошибка контекста'), ('W', u'В работе'), ('F', u'Продан'), ('B', u'Не продал') @@ -367,7 +370,11 @@ class ServiceRequest(models.Model): def sent_to_amo(self): if self.data: - data = json.loads(self.data.replace("'", "\"")) + try: + data = json.loads(self.data.replace("'", "\"")) + except JSONDecodeError: + self.status = "E" + else: name = '' phone = '' @@ -399,7 +406,7 @@ class ServiceRequest(models.Model): data['name'] = 'empty' urllib.request.urlopen(out_uri('https://skill-box.ru/amocrm/CreateLead.php', data)) - if not self.send: + if not self.send and self.status != 'E': data['host'] = self.host self.send = True self.save() diff --git a/finance/tasks.py b/finance/tasks.py index b331b34..bc1ace7 100755 --- a/finance/tasks.py +++ b/finance/tasks.py @@ -1,6 +1,9 @@ # coding=utf-8 from celery.task import periodic_task from datetime import timedelta, datetime + +from django.db.models import Q + from finance.models import Price, Bill, ServiceRequest from courses.models import CourseMap @@ -32,6 +35,6 @@ def price_map_migrator(): @periodic_task(run_every=timedelta(minutes=1)) def sent_service_request_to_amo(): - sr = ServiceRequest.objects.filter(send=False, send_date__lt=datetime.now()).exclude(name='TEST').first() + sr = ServiceRequest.objects.filter(send=False, send_date__lt=datetime.now()).exclude(Q(name='TEST')| Q(status='E')).first() if sr: sr.sent_to_amo() diff --git a/journals/api.py b/journals/api.py index 0dbc18f..78eef8c 100755 --- a/journals/api.py +++ b/journals/api.py @@ -102,14 +102,7 @@ def check_jaccess(request, context): if request.user in journal[0].material.course.teachers.all(): context['code'] = '1' return context - w = journal.first().parent.parent.waiting - if w.exists(): - if w.first().token != journal.first().material.token: - if w.first().token > journal.first().material.token: - context['code'] = '1' - return context - context['code'] = '0' - return context + _before = journal.first().get_before() if journal.first().get_status_flag() != 'N': context['code'] = '1' diff --git a/management/letters.py b/management/letters.py index 300cb09..379d8e3 100755 --- a/management/letters.py +++ b/management/letters.py @@ -248,7 +248,7 @@ def sent_new_bill(bill): 'SERVICE': bill.get_name(), 'MANAGER': bill.manager.get_full_name(), 'MANAGER_EMAIL': bill.manager.get_email(), - 'FILE': bill.service.course.get_description_file, + 'FILE': None, #TODO: bill.service.course.get_description_file, 'DOMAIN': DOMAIN, 'NAME': NAME }