You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
# coding=utf-8
|
|
import os
|
|
import django
|
|
import sys
|
|
|
|
sys.path.append("/var/www/projects/codemy/")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
print('## Отчет по распределению слушателей по курсу')
|
|
from courses.models import Course, CourseTheme
|
|
from finance.models import Bill
|
|
from journals.models import TeacherJ, HomeworkJ, CourseThemeJ, HomeworkTry
|
|
|
|
_courses = Course.objects.filter(public=True).order_by('id')
|
|
for _c in _courses:
|
|
print('{0}: {1}'.format(_c.id, _c.get_title()))
|
|
|
|
_c = input('Выберите курс: ')
|
|
|
|
_course = Course.objects.get(id=int(_c))
|
|
print('======')
|
|
print('# Курс: {0}'.format(_course.get_title()))
|
|
print('Оплеченых счетов: {0}'.format(Bill.objects.filter(service__course=_course, status='F').count()))
|
|
_journals = TeacherJ.objects.filter(course=_course, progress__gt=10).exclude(progress=100)
|
|
print('Студентов: {0}'.format(_journals.count()))
|
|
|
|
print('======')
|
|
|
|
|
|
def check_hj(hj):
|
|
if hj:
|
|
if HomeworkTry.objects.filter(parent=hj).exists():
|
|
return hj
|
|
|
|
return False
|
|
|
|
|
|
for i in CourseTheme.objects.filter(course=_course).order_by('sort'):
|
|
hj = map(check_hj, HomeworkJ.objects.filter(parent__material=i).exclude(f_date=None))
|
|
_hj = set()
|
|
for r in hj:
|
|
if r:
|
|
_hj.add(r)
|
|
print('{0}: {2} [{1}]'.format(i.sort, i.get_title(), len(_hj)))
|
|
|
|
|