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):
|
class RequestInFormMixin(admin.ModelAdmin):
|
||||||
"""
|
"""
|
||||||
Миксин для передачи request объекта в форму.
|
Миксин для передачи request объекта в форму.
|
||||||
@@ -360,14 +392,7 @@ class MusicStyleAdmin(admin.ModelAdmin):
|
|||||||
}),
|
}),
|
||||||
('Связанная публикация', {
|
('Связанная публикация', {
|
||||||
'fields': ('k_style_to_article',),
|
'fields': ('k_style_to_article',),
|
||||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице музыкального'
|
'description': get_related_article_description(TbMusicStyle),
|
||||||
' стиля на сайте. Также позволяет получать список всех альбомов музыкального стиля,'
|
|
||||||
' управлять SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
|
||||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
|
||||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
|
||||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
|
||||||
' то она будет создана автоматически (пустая) при сохранении музыкального стиля,'
|
|
||||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
|
||||||
# 'classes': ('collapse',),
|
# 'classes': ('collapse',),
|
||||||
}),
|
}),
|
||||||
('Служебная информация', {
|
('Служебная информация', {
|
||||||
@@ -439,14 +464,7 @@ class ArtistAdmin(admin.ModelAdmin):
|
|||||||
}),
|
}),
|
||||||
('Связанная публикация', {
|
('Связанная публикация', {
|
||||||
'fields': ('k_artist_to_article', ),
|
'fields': ('k_artist_to_article', ),
|
||||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице исполнителя'
|
'description': get_related_article_description(TbArtist),
|
||||||
' на сайте. Также позволяет получать список всех альбомов исполнителя, управлять'
|
|
||||||
' SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
|
||||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
|
||||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
|
||||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
|
||||||
' то она будет создана автоматически (пустая) при сохранении исполнителя,'
|
|
||||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
|
||||||
# 'classes': ('collapse',),
|
# 'classes': ('collapse',),
|
||||||
}),
|
}),
|
||||||
('Служебная информация', {
|
('Служебная информация', {
|
||||||
@@ -573,14 +591,7 @@ class LabelAdmin(RequestInFormMixin, admin.ModelAdmin):
|
|||||||
}),
|
}),
|
||||||
('Связанная публикация', {
|
('Связанная публикация', {
|
||||||
'fields': ('k_label_to_article', ),
|
'fields': ('k_label_to_article', ),
|
||||||
'description': 'Прикреп­ленная статья (если есть) будет отображаться на странице лейбла'
|
'description': get_related_article_description(TbLabel),
|
||||||
' на сайте. Также позволяет получать список всех альбомов лейбла, управлять'
|
|
||||||
' SEO-атрибутами для улучшения видимости поисковых систем, иметь красивый'
|
|
||||||
' slag для URL-странички, подсчитывать число просмотров и добавлений'
|
|
||||||
' в избранные. <b style=\'color: green;\'>ОЧЕНЬ РЕКОМЕН­ДУЕТСЯ СОЗДАВАТЬ'
|
|
||||||
' И ПРИВЯЗЫВАТЬ СТАТЬЮ ВРУЧНУЮ</b>. Если публикация не создана вручную,'
|
|
||||||
' то она будет создана автоматически (пустая) при сохранении лейбла,'
|
|
||||||
' со всеми SEO-атрибутами и slag, но автоматика несовершенна.<br /> ',
|
|
||||||
# 'classes': ('collapse',),
|
# 'classes': ('collapse',),
|
||||||
}),
|
}),
|
||||||
('Служебная информация', {
|
('Служебная информация', {
|
||||||
|
|||||||
Reference in New Issue
Block a user