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