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

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