minor: улучшена читаемость кода
This commit is contained in:
+40
-50
@@ -609,8 +609,10 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
|
|||||||
metadata_field_name=metadata_field_name,
|
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]
|
match_type = result[VALIDATE_KEY__MATCH_TYPE]
|
||||||
duplicates_queryset = result[VALIDATE_KEY__VALUE]
|
duplicates_queryset = result[VALIDATE_KEY__VALUE]
|
||||||
|
|
||||||
@@ -674,23 +676,19 @@ def validate_entity_for_admin_form(form_instance, cleaned_data,
|
|||||||
# Вотчер видит этот класс и добавляет onclick обработчик к кнопкам
|
# Вотчер видит этот класс и добавляет onclick обработчик к кнопкам
|
||||||
# для добавления GET параметра ignore_validate=1 перед отправкой формы.
|
# для добавления GET параметра ignore_validate=1 перед отправкой формы.
|
||||||
# Весь JS код находится в form-field-watcher.js для чистоты и переиспользования.
|
# Весь 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(
|
raise ValidationError(
|
||||||
mark_safe(
|
mark_safe(
|
||||||
f"ВНИМАНИЕ: Найдено совпадение в синонимах! "
|
f"ВНИМАНИЕ: Найдено совпадение в синонимах! "
|
||||||
f"Проверьте {dup_list} "
|
f"Проверьте {dup_list} "
|
||||||
f"или используйте синонимы из найденной записи."
|
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 "Синонимы не найдены"
|
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(
|
raise ValidationError(
|
||||||
mark_safe(
|
mark_safe(
|
||||||
f"ВНИМАНИЕ: Найдено совпадение синонимов!<br/>"
|
f"ВНИМАНИЕ: Найдено совпадение синонимов!<br/>"
|
||||||
f"Синонимы совпадают:<br/>{synonym_details_text}<br/>"
|
f"Синонимы совпадают:<br/>{synonym_details_text}<br/>"
|
||||||
f"Проверьте и уточните синонимы если нужно."
|
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)
|
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(
|
raise ValidationError(
|
||||||
mark_safe(
|
mark_safe(
|
||||||
f"ИНФОРМАЦИЯ: Найдены похожие записи со схожими словами! "
|
f"ИНФОРМАЦИЯ: Найдены похожие записи со схожими словами! "
|
||||||
f"Проверьте: {dup_list} "
|
f"Проверьте: {dup_list} "
|
||||||
f"Это просто информация, не ошибка. Но неточности на сайте могут рассмешить"
|
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)
|
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(
|
raise ValidationError(
|
||||||
mark_safe(
|
mark_safe(
|
||||||
f"ВНИМАНИЕ: ВЫСОКИЙ РИСК ОШИБКИ! Найдены похожие записи с ОЧЕНЬ КОРОТКИМИ словами! "
|
f"ВНИМАНИЕ: ВЫСОКИЙ РИСК ОШИБКИ! Найдены похожие записи с ОЧЕНЬ КОРОТКИМИ словами! "
|
||||||
f"Проверьте ОЧЕНЬ ВНИМАТЕЛЬНО: {dup_list} "
|
f"Проверьте ОЧЕНЬ ВНИМАТЕЛЬНО: {dup_list} "
|
||||||
f"Совпадения могут быть с однобуквенными или двухбуквенными словами (например: 'B'Z' → 'B Z'). "
|
f"Совпадения могут быть двухбуквенными и даже однобуквенными словами (например:"
|
||||||
f"Велик риск ложных срабатываний! {confirmation_button}"
|
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
|
pass
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
def validate_and_raise_for_duplicates(
|
def validate_and_raise_for_duplicates(
|
||||||
instance,
|
instance,
|
||||||
|
|||||||
Reference in New Issue
Block a user