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

# 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()