Skip to content

Commit

Permalink
second part of improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
MarinaProsche committed Jun 27, 2024
1 parent bc911b9 commit 139b737
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions app/main/checks/report_checks/empty_task_page_check.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import re
from ..base_check import BaseReportCriterion, answer

PAGE_NAME = "ЗАДАНИЕ НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ"
Expand All @@ -15,22 +16,30 @@ def check(self):
if self.file.page_counter() < 4:
return answer(False, "В отчете недостаточно страниц. Нечего проверять.")
rows_text = self.file.pdf_file.page_rows_text(1)
print(rows_text)
if 'ЗАДАНИЕ' not in rows_text[0][4]:
return answer(False, f'Страница "{PAGE_NAME}" не найдена. Убедитесь, что она является второй в документе и не содержит ошибок в заголовке.')
elif len(rows_text) < 4:
return answer(False, f'Страница "{PAGE_NAME}" не содержит текста.')
else:
result = {"студент", 'темаработы', 'руководитель'}
check_words = {"студент", 'темаработы', 'руководитель'}
result = {'Cтудент, Группа', 'Дата выдачи задания, Дата представления ВКР к защите', 'студент', 'руководитель', 'консультант', 'тема работы'}
check_first_pattern = r'^студент+[а-яА-ЯёЁa-zA-Z]+группа\d+$'
check_date = r'^«\d+»[а-яА-ЯёЁa-zA-Z]+20\d+г«\d+»[а-яА-ЯёЁa-zA-Z]+20\d+г$'
start_string = 0
for row in rows_text:
row_string = row[4].replace('\n', '').replace('.', '').replace(' ', '').replace('_', '').lower()
if re.match(check_first_pattern, row_string):
result.discard('Cтудент, Группа')
start_string = row[5]
if re.match(check_date, row_string):
result.discard('Дата выдачи задания, Дата представления ВКР к защите')
check_words = {'студент', 'руководитель', 'консультант', 'тема работы'}
for k in check_words:
for row in rows_text:
for row in rows_text[start_string+1:]:
row_string = row[4].replace('\n', '').replace(' ', '').replace('_', '').lower()
if k in row_string:
clear_row_string = row_string.replace(k, '')
if len(clear_row_string) > 2:
if k.replace(' ', '') in row_string:
if len(row_string) > (len(k)+2):
result.discard(k)
if not result:
return answer(True, 'Пройдена!')
else:
return answer(False, f'Некоторые необходимые поля пусты или отсутствуют. Проверьте: {result}')
return answer(False, f'Некоторые необходимые поля пусты или отсутствуют. Проверьте поля: {", ".join(result)}')

0 comments on commit 139b737

Please sign in to comment.