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.
85 lines
2.2 KiB
85 lines
2.2 KiB
# coding=utf-8
|
|
import os
|
|
|
|
import datetime
|
|
import django
|
|
import sys
|
|
|
|
sys.path.append("/var/www/projects/lms/")
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "lms.settings")
|
|
django.setup()
|
|
|
|
from journals.models import HomeworkTry, HomeworkJ
|
|
all_ht = set()
|
|
|
|
|
|
def good(tr, comment):
|
|
if not tr.success:
|
|
tr.success = True
|
|
if not tr.f_date:
|
|
tr.f_date = comment.date
|
|
if not tr.date:
|
|
tr.date = comment.date
|
|
tr.save()
|
|
all_ht.add(tr.id)
|
|
tr.comments.add(comment)
|
|
|
|
|
|
def fail(tr, comment):
|
|
if tr.success:
|
|
tr.success = False
|
|
if not tr.f_date:
|
|
tr.f_date = comment.date
|
|
if not tr.date:
|
|
tr.date = comment.date
|
|
tr.save()
|
|
all_ht.add(tr.id)
|
|
tr.comments.add(comment)
|
|
|
|
|
|
def append_comment(tr, comment):
|
|
if not tr.date:
|
|
tr.date = comment.date
|
|
tr.save()
|
|
all_ht.add(tr.id)
|
|
tr.comments.add(comment)
|
|
|
|
|
|
def get_comments(journal):
|
|
comments = {}
|
|
for tr in HomeworkTry.objects.filter(parent=journal):
|
|
for i in tr.comments.all():
|
|
comments[i.date] = i
|
|
sort_list = list(comments.keys())
|
|
sort_list.sort()
|
|
return comments, sort_list
|
|
|
|
|
|
def create_ht(journal):
|
|
return HomeworkTry.objects.create(student=journal.student, parent=journal, material=journal.material)
|
|
|
|
|
|
for i in HomeworkJ.objects.all():
|
|
comments, sort_list = get_comments(i)
|
|
if comments:
|
|
ht = create_ht(i)
|
|
for n in sort_list:
|
|
if not ht: ht = create_ht(i)
|
|
if comments[n].owner.in_role == 'T':
|
|
if u'Задача принята!' in comments[n].text:
|
|
good(ht, comments[n])
|
|
elif u'Отправлено на доработку!' in comments[n].text:
|
|
fail(ht, comments[n])
|
|
ht = None
|
|
else:
|
|
print comments[n].text
|
|
result = raw_input(u'Сдано? Y/N: ')
|
|
if result in ['y', 'Y', 'н', 'Н']:
|
|
good(ht, comments[n])
|
|
elif result in ['n', 'N', 'т', 'Т']:
|
|
fail(ht, comments[n])
|
|
ht = None
|
|
else:
|
|
append_comment(ht, comments[n])
|
|
|
|
HomeworkTry.objects.all().exclude(id__in=all_ht).delete()
|
|
|