minor: улучшена читаемость кода

This commit is contained in:
2026-06-26 18:21:55 +03:00
parent d53330554b
commit 01710200b2
+40 -50
View File
@@ -609,8 +609,10 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
metadata_field_name=metadata_field_name,
)
if VALIDATE_KEY__MATCH_TYPE not in result:
return # Нет совпадений, продолжаем обработку формы
# Обрабатываем результаты проверки в зависимости от типа найденного совпадения
if VALIDATE_KEY__MATCH_TYPE in result:
match_type = result[VALIDATE_KEY__MATCH_TYPE]
duplicates_queryset = result[VALIDATE_KEY__VALUE]
@@ -674,23 +676,19 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
# Вотчер видит этот класс и добавляет onclick обработчик к кнопкам
# для добавления GET параметра ignore_validate=1 перед отправкой формы.
# Весь JS код находится в form-field-watcher.js для чистоты и переиспользования.
confirmation_button = '''
<div class="confirmation-button-container">
<button type="button" onclick="markSubmitButtonsToIgnoreValidation();">
<big>Я проверил и уверен!</big><br/>
Сохранить, несмотря на синонимы.<br/>
<i>Точные совпадения в синонимах других записей будут удалены.</i>
</button>
<em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>
</div>
'''
raise ValidationError(
mark_safe(
f"ВНИМАНИЕ: Найдено совпадение в синонимах! "
f"Проверьте {dup_list} "
f"или используйте синонимы из найденной записи."
f"{confirmation_button}"
f"<div class=\"confirmation-button-container\">"
f" <button type=\"button\" onclick=\"markSubmitButtonsToIgnoreValidation();\">"
f" <big>Я проверил и уверен!</big><br/>"
f" Сохранить, несмотря на синонимы.<br/>"
f" <i>Точные совпадения в синонимах других записей будут удалены.</i>"
f" </button>"
f" <em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>"
f"</div>"
)
)
@@ -758,23 +756,19 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
synonym_details_text = "<br/>".join(synonym_details) if synonym_details else "Синонимы не найдены"
# Кнопка подтверждения создания несмотря на совпадение синонимов
confirmation_button = '''
<div class="confirmation-button-container">
<button type="button" onclick="markSubmitButtonsToIgnoreValidation();">
<big>Я проверил и уверен!</big><br/>
Сохранить, несмотря на совпадение синонимов.<br/>
<i>Совпадающие синонимы в других записях будут удалены.</i>
</button>
<em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>
</div>
'''
raise ValidationError(
mark_safe(
f"ВНИМАНИЕ: Найдено совпадение синонимов!<br/>"
f"Синонимы совпадают:<br/>{synonym_details_text}<br/>"
f"Проверьте и уточните синонимы если нужно."
f"{confirmation_button}"
f"<div class=\"confirmation-button-container\">"
f" <button type=\"button\" onclick=\"markSubmitButtonsToIgnoreValidation();\">"
f" <big>Я проверил и уверен!</big><br/>"
f" Сохранить, несмотря на совпадение синонимов.<br/>"
f" <i>Совпадающие синонимы в других записях будут удалены.</i>"
f" </button>"
f" <em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>"
f"</div>"
)
)
@@ -798,23 +792,20 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
dup_list = ", ".join(dup_links)
# Кнопка для игнорирования предупреждения (без критичности)
confirmation_button = '''
<div class="confirmation-button-container">
<button type="button" onclick="markSubmitButtonsToIgnoreValidation();">
<big>OK, Я ПРОВЕРИЛ. ПРОБЛЕМ НЕ БУДЕТ</big><br/>
Сохранить запись<br/>
<i>Я уверен в своих действиях.</i>
</button>
<em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>
</div>
'''
raise ValidationError(
mark_safe(
f"ИНФОРМАЦИЯ: Найдены похожие записи со схожими словами! "
f"Проверьте: {dup_list} "
f"Это просто информация, не ошибка. Но неточности на сайте могут рассмешить"
f" (или огорчить) пользователей. {confirmation_button}"
f" (или огорчить) пользователей."
f"<div class=\"confirmation-button-container\">"
f" <button type=\"button\" onclick=\"markSubmitButtonsToIgnoreValidation();\">"
f" <big>OK, Я ПРОВЕРИЛ. ПРОБЛЕМ НЕ БУДЕТ</big><br/>"
f" Сохранить запись<br/>"
f" <i>Я уверен в своих действиях.</i>"
f" </button>"
f" <em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>"
f"</div>"
)
)
@@ -839,23 +830,20 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
dup_list = ", ".join(dup_links)
# Кнопка для подтверждения с указанием на риск
confirmation_button = '''
<div class="confirmation-button-container">
<button type="button" onclick="markSubmitButtonsToIgnoreValidation();">
<big>ВНИМАНИЕ: ВЫСОКИЙ РИСК!</big><br/>
Я уверен в своих действиях<br/>
<i>Найдены очень короткие слова (< 4 символов), высокий риск ошибки!</i>
</button>
<em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>
</div>
'''
raise ValidationError(
mark_safe(
f"ВНИМАНИЕ: ВЫСОКИЙ РИСК ОШИБКИ! Найдены похожие записи с ОЧЕНЬ КОРОТКИМИ словами! "
f"Проверьте ОЧЕНЬ ВНИМАТЕЛЬНО: {dup_list} "
f"Совпадения могут быть с однобуквенными или двухбуквенными словами (например: 'B'Z''B Z'). "
f"Велик риск ложных срабатываний! {confirmation_button}"
f"Совпадения могут быть двухбуквенными и даже однобуквенными словами (например:"
f" \"B'Z\"\"B Z\" или \"R&B\"\"R B\" ). ОЧЕНЬ ВЕЛИК РИСК ложных срабатываний!"
f"<div class=\"confirmation-button-container\">"
f" <button type=\"button\" onclick=\"markSubmitButtonsToIgnoreValidation();\">"
f" <big>ВНИМАНИЕ: ВЫСОКИЙ РИСК!</big><br/>"
f" Я всё проверил и уверен в своих действиях.<br/>"
f" <i>Очень короткие слова (символов менее {MIN_SYNONYM_WORD_LENGTH}), подтверждаю!</i>"
f" </button>"
f" <em>Теперь нажмите стандартные кнопки сохранения снизу, чтобы сохранить.</em>"
f"</div>"
)
)
@@ -864,6 +852,8 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
# В будущем сюда можно добавить логирование неожиданных типов
pass
return
def validate_and_raise_for_duplicates(
instance,