minor: валидатор форм, парсера и моделей (23) немного улучшен код, подготовлено для подключения типографа etpgrf для html-полей

This commit is contained in:
2026-07-12 00:32:16 +03:00
parent f43af593ce
commit 0681c3d67b
+20 -19
View File
@@ -981,25 +981,26 @@ class ArticleAdminForm(CodeMirrorFormMixin):
title_source = cleaned_data.get('s_article_title_html') or cleaned_data.get('s_article_title') or '' title_source = cleaned_data.get('s_article_title_html') or cleaned_data.get('s_article_title') or ''
new_potential_slug = make_slug(title_source) new_potential_slug = make_slug(title_source)
# Если новый slug совпадает с началом текущего, то менять ничего не нужно # Если новый slug не совпадает с началом текущего...
# Текущий slug уже был сгенерирован из этого заголовка (циферка добавилась только для уникальности) if not self.instance.slug.startswith(new_potential_slug):
if self.instance.slug.startswith(new_potential_slug): # ...предлагаем изменить slug
return cleaned_data error_html = (
'<div class="confirmation-button-container">'
# Иначе предлагаем изменить slug ' <big>Ой! Кажется, вы изменили заголовок статьи!</big></br>'
error_html = ( f' Текущий slug: <b><tt><u>{self.instance.slug}</u></tt></b></br>'
'<div class="confirmation-button-container">' f' Для измененного заголовка «<tt><i><u>{cleaned_data.get('s_article_title_html')}</u></i></tt>»'
' <big>Ой! Кажется вы изменили заголовок статьи!</big></br>' f' лучше сделать slug <b><tt><u>{new_potential_slug}</u></tt></b></br></br>'
f' Текущий slug: <b><tt><u>{self.instance.slug}</u></tt></b></br>' ' Пожалуйста, проверьте, что это правильно. Если вы уверены — нажмите подтверждение.<br></br>'
f' Для измененного заголовка «<tt><i><u>{cleaned_data.get('s_article_title_html')}</u></i></tt>»' ' <button type="button" onclick="markSubmitButtonsToIgnoreValidation();">'
f' лучше сделать slug <b><tt><u>{new_potential_slug}</u></tt></b></br></br>' ' ✓ Я ПРОВЕРИЛ И УВЕРЕН!'
' Пожалуйста, проверьте, что это правильно. Если вы уверены — нажмите подтверждение.<br></br>' ' </button></br>&nbsp;'
' <button type="button" onclick="markSubmitButtonsToIgnoreValidation();">' '</div>'
' ✓ Я ПРОВЕРИЛ И УВЕРЕН!' )
' </button>' raise ValidationError(mark_safe(error_html))
'</div>'
) # Типографика для HTML-полей (s_article_title_html, s_article_teaser_html, s_article_content_html)
raise ValidationError(mark_safe(error_html)) for field_name in ['s_article_title_html', 's_article_teaser_html', 's_article_content_html']:
continue
return cleaned_data return cleaned_data