diff --git a/management/api.py b/management/api.py index 9045c27..b043656 100755 --- a/management/api.py +++ b/management/api.py @@ -7,7 +7,8 @@ from lms.tools import out_date_format, condition_factory, user_fabric from finance.models import Price, Bill, ServiceRequest from management.letters import sent_new_bill, sent_clean_letter, send_burning_course_letter from management.models import News, Feedback, Comment - +from courses.models import Course, CourseTheme +from journals.models import TeacherJ, CourseThemeJ, LessonJ, HomeworkJ @api_decor(without_auth=False, need_keys=['title', 'content', 'to'], method='POST', check_request=True) def self_sent_letter(request, context): @@ -172,3 +173,90 @@ def burning_course(request): send_burning_course_letter(user, course) + +""" + Все функции снизу используются в подобии кабинета для отдела по работе с персоналом. + Если хочешь переписать - перепиши. +""" +@api_decor(without_auth=False) +def find_user(request, context): + try: + user = User.objects.get(id=request.GET['user']) + data = "%s | %s %s" % (user.id, user.name, user.fname) + except User.DoesNotExist: + data = '0' + except ValueError: + data = '0' + + return data + +@api_decor(without_auth=False) +def find_course(request, context): + try: + course = Course.objects.get(id=request.GET['course']) + data = course.title + except Course.DoesNotExist: + data = '0' + except ValueError: + data = '0' + + return data + +@api_decor(without_auth=False) +def open_lessons(request, context): + try: + user = User.objects.get(id=request.GET['user']) + course = Course.objects.get(id=request.GET['course']) + checkbox = True if request.GET.get('homes') == 'on' else False + themes = request.GET['themes'] + except Exception: + return '0' + + try: + teachj, status = TeacherJ.objects.get_or_create(student=user, course=course) + for t in CourseTheme.objects.filter(course=course): + for l in LessonJ.objects.filter(student=user, parent__material=t): + l.success = True + l.save() + if open_homes: + if HomeworkJ.objects.filter(student=user, parent__material=t).exists(): + homej = HomeworkJ.objects.get(student=user, parent__material=t) + homej.success = True + homej.save() + themej, status = CourseThemeJ.objects.get_or_create(student=user, material=t) + themej.success = True + themej.save() + teachj.reload_progress() + except Exception: + return '1' + + return '2' + +@api_decor(without_auth=False) +def open_homes(request, context): + try: + user = User.objects.get(id=request.GET['user']) + course = Course.objects.get(id=request.GET['course']) + except Exception: + return'0' + + try: + for t in CourseTheme.objects.filter(course=course): + if HomeworkJ.objects.filter(student=user, parent__material=t).exists(): + homej = HomeworkJ.objects.get(student=user, parent__material=t) + homej.success = True + homej.save() + except Exception: + return '1' + + return '2' + +@api_decor(without_auth=False) +def change_pass(request, context): + user = User.objects.get(id=request.GET['user']) + password = request.GET.get('pass') + + user.set_password(password) + user.save() + + return '2' diff --git a/management/urls.py b/management/urls.py index dcf5331..eb1b4bd 100755 --- a/management/urls.py +++ b/management/urls.py @@ -36,5 +36,11 @@ urlpatterns = [ url(r'reports_api/get_process_report/$', reports.get_process_report), url(r'reports_api/now_success_hw/$', reports.now_success_hw), url(r'reports_api/now_second_hw/$', reports.now_second_hw), - url(r'self_sent_letter/$', api.self_sent_letter) + url(r'self_sent_letter/$', api.self_sent_letter), + url(r'workcabinet/$', views.render_management_cabinet), + url(r'find_user/$', api.find_user), + url(r'find_course/$', api.find_course), + url(r'open_lessons/$', api.open_lessons), + url(r'open_homes/$', api.open_homes), + url(r'change_pass/$', api.change_pass), ] diff --git a/management/views.py b/management/views.py index 809b658..32ac4c5 100755 --- a/management/views.py +++ b/management/views.py @@ -129,3 +129,8 @@ def progress_report(request): 'journals': []} map.append(c) return {'map': map, 'get_now_success_hw': get_now_success_hw(), 'get_second_success_hw': get_second_success_hw()} + + +@response_decor(template='cabinet.html') +def render_management_cabinet(request): + return {} \ No newline at end of file