Skip to content

Commit

Permalink
final improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
MarinaProsche committed Jun 28, 2024
1 parent 139b737 commit 3bd6522
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions app/main/checks/report_checks/empty_task_page_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ class EmptyTaskPageCheck(BaseReportCriterion):

def __init__(self, file_info):
super().__init__(file_info)
self.check_words = {'студент', 'руководитель', 'тема работы'}
self.check_first_pattern = r'^студент+[а-яА-ЯёЁa-zA-Z]+группа\d+$'
self.check_date_pattern = r'^«\d+»[а-яА-ЯёЁa-zA-Z]+20\d+г«\d+»[а-яА-ЯёЁa-zA-Z]+20\d+г$'
self.result = {'Cтудент, Группа', 'Дата выдачи задания, Дата представления ВКР к защите', 'Студент', 'Руководитель', 'Тема работы'}

def check(self):
if self.file.page_counter() < 4:
Expand All @@ -21,25 +25,21 @@ def check(self):
elif len(rows_text) < 4:
return answer(False, f'Страница "{PAGE_NAME}" не содержит текста.')
else:
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тудент, Группа')
if re.match(self.check_first_pattern, row_string):
self.result.discard('Cтудент, Группа')
start_string = row[5]
if re.match(check_date, row_string):
result.discard('Дата выдачи задания, Дата представления ВКР к защите')
check_words = {'студент', 'руководитель', 'консультант', 'тема работы'}
for k in check_words:
if re.match(self.check_date_pattern, row_string):
self.result.discard('Дата выдачи задания, Дата представления ВКР к защите')
for k in self.check_words:
for row in rows_text[start_string+1:]:
row_string = row[4].replace('\n', '').replace(' ', '').replace('_', '').lower()
if k.replace(' ', '') in row_string:
if len(row_string) > (len(k)+2):
result.discard(k)
if not result:
self.result.discard(k.capitalize())
if not self.result:
return answer(True, 'Пройдена!')
else:
return answer(False, f'Некоторые необходимые поля пусты или отсутствуют. Проверьте поля: {", ".join(result)}')
return answer(False, f'Некоторые необходимые поля пусты или отсутствуют. Проверьте поля: «{"», «".join(self.result)}»')

0 comments on commit 3bd6522

Please sign in to comment.