minor: валидатор форм, парсера и моделей (23) немного улучшен код, подготовлено для подключения типографа etpgrf для html-полей
This commit is contained in:
+20
-19
@@ -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> '
|
||||||
' <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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user