-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhack.py
More file actions
99 lines (85 loc) · 3.51 KB
/
hack.py
File metadata and controls
99 lines (85 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import random
from datacenter.models import (Lesson, Chastisement, Schoolkid,
Mark, Commendation, Subject)
PRISE_LIST = (
'Молодец!',
'Отлично!',
'Хорошо!',
'Гораздо лучше, чем я ожидал!',
'Ты меня приятно удивил!',
'Великолепно!'
'Прекрасно!',
'Ты меня очень обрадовал!',
'Именно этого я давно ждал от тебя!',
'Сказано здорово – просто и ясно!',
'Ты, как всегда, точен!',
'Очень хороший ответ!',
'Талантливо!',
'Ты сегодня прыгнул выше головы!',
'Я поражен!',
'Уже существенно лучше!',
'Потрясающе!',
'Замечательно!',
'Прекрасное начало!',
'Так держать!',
'Ты на верном пути!',
'Здорово!',
'Это как раз то, что нужно!',
'Я тобой горжусь!',
'С каждым разом у тебя получается всё лучше!',
'Мы с тобой не зря поработали!',
'Я вижу, как ты стараешься!',
'Ты растешь над собой!',
'Ты многое сделал, я это вижу!',
'Теперь у тебя точно все получится!')
def get_schoolkid_by_name(schoolkid_name):
return Schoolkid.objects.get(full_name__contains=schoolkid_name)
def fix_marks(schoolkid):
bad_marks = Mark.objects.filter(schoolkid=schoolkid, points__in=[2, 3])
for current_mark in bad_marks:
current_mark.points = 5
current_mark.save()
def delete_chastisements(schoolkid):
chastisements = Chastisement.objects.filter(schoolkid=schoolkid)
chastisements.delete()
def create_commendation(schoolkid, subject):
lesson = Lesson.objects.filter(
year_of_study=schoolkid.year_of_study,
group_letter=schoolkid.group_letter,
subject=subject
).order_by('-date').first()
if not lesson:
raise Lesson.DoesNotExist
Commendation.objects.create(
schoolkid=schoolkid,
subject=lesson.subject,
teacher=lesson.teacher,
created=lesson.date,
text=random.choice(PRISE_LIST)
)
def hack_diary(child_name, subject_title):
try:
schoolkid = get_schoolkid_by_name(child_name)
except Schoolkid.MultipleObjectsReturned:
print('Найдено несколько учеников с указанным именем.')
return
except Schoolkid.DoesNotExist:
print('Не найден ученик с указанным именем.')
return
try:
subject = Subject.objects.filter(
title__contains=subject_title,
year_of_study=schoolkid.year_of_study
).get()
except Subject.MultipleObjectsReturned:
print('Найдено несколько предметов с указанным названием.')
return
except Subject.DoesNotExist:
print('Не найден предмет с указанным названием.')
return
fix_marks(schoolkid)
delete_chastisements(schoolkid)
try:
create_commendation(schoolkid, subject)
except Lesson.DoesNotExist:
print('Не найден указанный урок в расписании класса. Похвала не создана')