mod: админка (15) для Лейблов LabelAdminForm и LabelAdmin добавлен кастомный save_model (вывод после добавления/изменения записи) и универсальная хелпер-функция. + микро-хелпер для описания связанной статьи.
This commit is contained in:
+36
-25
@@ -14,9 +14,41 @@ from .utils import validate_entity_for_admin_form, generate_admin_save_message
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# МИКСИНЫ ДЛЯ АДМИНКИ
|
||||
# ЛОКАЛЬНЫЕ ХЕЛПЕРЫ ДЛЯ АДМИНКИ
|
||||
# ============================================================================
|
||||
|
||||
def get_related_article_description(model_class):
|
||||
"""
|
||||
Генерирует HTML-описание для fieldset'а 'Связанная публикация'.
|
||||
|
||||
Описание объясняет роль связанной статьи и предлагает создавать её вручную.
|
||||
Использует verbose_name из модели для универсальности.
|
||||
|
||||
Args:
|
||||
model_class: Класс модели (TbLabel, TbArtist, TbMusicStyle и т.д.)
|
||||
|
||||
Returns:
|
||||
str: HTML-описание для fieldset'а
|
||||
|
||||
Пример:
|
||||
'description': get_related_article_description(TbLabel)
|
||||
"""
|
||||
# Получаем наименование модели в родительном падеже (для описания)
|
||||
verbose_name = model_class._meta.verbose_name.upper()
|
||||
|
||||
# Получаем наименование во множественном числе (для списков альбомов)
|
||||
verbose_name_plural = model_class._meta.verbose_name_plural.upper()
|
||||
|
||||
return (f'Прикреп­ленная статья (если есть) будет отображаться на странице <u>{verbose_name}</u>'
|
||||
f' на сайте. Также позволяет получать список всех альбомов <u>{verbose_name_plural}</u>,'
|
||||
f' управлять SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
||||
f' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
||||
f' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
||||
f' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
||||
f' то она будет создана автоматически (пустая) при сохранении <u>{verbose_name}</u>,'
|
||||
f' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ')
|
||||
|
||||
|
||||
class RequestInFormMixin(admin.ModelAdmin):
|
||||
"""
|
||||
Миксин для передачи request объекта в форму.
|
||||
@@ -360,14 +392,7 @@ class MusicStyleAdmin(admin.ModelAdmin):
|
||||
}),
|
||||
('Связанная публикация', {
|
||||
'fields': ('k_style_to_article',),
|
||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице музыкального'
|
||||
' стиля на сайте. Также позволяет получать список всех альбомов музыкального стиля,'
|
||||
' управлять SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
||||
' то она будет создана автоматически (пустая) при сохранении музыкального стиля,'
|
||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
||||
'description': get_related_article_description(TbMusicStyle),
|
||||
# 'classes': ('collapse',),
|
||||
}),
|
||||
('Служебная информация', {
|
||||
@@ -439,14 +464,7 @@ class ArtistAdmin(admin.ModelAdmin):
|
||||
}),
|
||||
('Связанная публикация', {
|
||||
'fields': ('k_artist_to_article', ),
|
||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице исполнителя'
|
||||
' на сайте. Также позволяет получать список всех альбомов исполнителя, управлять'
|
||||
' SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
||||
' то она будет создана автоматически (пустая) при сохранении исполнителя,'
|
||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
||||
'description': get_related_article_description(TbArtist),
|
||||
# 'classes': ('collapse',),
|
||||
}),
|
||||
('Служебная информация', {
|
||||
@@ -573,14 +591,7 @@ class LabelAdmin(RequestInFormMixin, admin.ModelAdmin):
|
||||
}),
|
||||
('Связанная публикация', {
|
||||
'fields': ('k_label_to_article', ),
|
||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице лейбла'
|
||||
' на сайте. Также позволяет получать список всех альбомов лейбла, управлять'
|
||||
' SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
||||
' то она будет создана автоматически (пустая) при сохранении лейбла,'
|
||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
||||
'description': get_related_article_description(TbLabel),
|
||||
# 'classes': ('collapse',),
|
||||
}),
|
||||
('Служебная информация', {
|
||||
|
||||
Reference in New Issue
Block a user