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.
70 lines
3.0 KiB
70 lines
3.0 KiB
# coding=utf-8
|
|
import os
|
|
import django
|
|
import sys
|
|
|
|
from datetime import datetime, date
|
|
|
|
sys.path.append("/var/www/projects/lms/")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
|
|
from lms.tools import out_date_format
|
|
from management.letters import sent_teacher_report
|
|
from journals.models import JournalsReports, HomeworkJ, HomeworkTry, ExamJ, ExamTry
|
|
|
|
for self in JournalsReports.objects.filter(sent=False):
|
|
if not self.sent:
|
|
filt = {'teacher': self.teacher, 'date__gte': self.s_date}
|
|
if self.course:
|
|
filt['material__course'] = self.course
|
|
if self.student:
|
|
filt['student'] = self.student
|
|
if self.f_date:
|
|
filt['date__lt'] = self.f_date
|
|
else:
|
|
filt['date__lt'] = datetime.now()
|
|
|
|
result = {'id': self.teacher.id,
|
|
'face': {'name': self.teacher.get_full_name(),
|
|
'ava': self.teacher.get_image_url(),
|
|
'last_date': self.teacher.last_login},
|
|
'hw': [],
|
|
'ew': [],
|
|
'counts': {},
|
|
's_date': out_date_format(self.s_date, no_time=True),
|
|
'f_date': out_date_format(self.f_date if self.f_date else date.today(), no_time=True)}
|
|
hw_expr = 0
|
|
hw_progress = []
|
|
student_count = []
|
|
ex_expr = 0
|
|
ex_progress = []
|
|
ex_success = 0
|
|
for i in HomeworkJ.objects.filter(**filt).order_by('date'):
|
|
if HomeworkTry.objects.filter(parent=i).exists():
|
|
result['hw'].append(i.get_face(None))
|
|
hw_expr += HomeworkTry.objects.filter(parent=i, expired=True).count()
|
|
if i.get_status_flag() not in ['N', 'F'] and i.parent.id not in hw_progress: hw_progress.append(
|
|
i.id)
|
|
if i.student.id not in student_count: student_count.append(i.student.id)
|
|
|
|
for i in ExamJ.objects.filter(**filt).order_by('date'):
|
|
if ExamTry.objects.filter(parent=i).exists():
|
|
result['ew'].append(i.get_face(None))
|
|
ex_expr += ExamTry.objects.filter(parent=i, expired=True).count()
|
|
if i.get_status_flag() not in ['N', 'F'] and i.parent.id not in ex_progress: ex_progress.append(
|
|
i.id)
|
|
if i.student.id not in student_count: student_count.append(i.student.id)
|
|
if i.get_status_flag() == 'F':
|
|
ex_success += 1
|
|
result['counts'] = {'hw_progress': len(hw_progress),
|
|
'hw_work': HomeworkJ.objects.filter(**filt).count(),
|
|
'student_count': len(student_count),
|
|
'hw_expr': hw_expr,
|
|
'ex_progress': len(ex_progress),
|
|
'ex_expr': ex_expr,
|
|
'ex_success': ex_success,
|
|
'ex_work': ExamJ.objects.filter(**filt).count()}
|
|
sent_teacher_report(self.to.email, result)
|
|
self.sent = True
|
|
self.save()
|
|
|