mirror of
https://github.com/daniviga/django-ram.git
synced 2026-02-03 17:40:39 +01:00
61 lines
1.5 KiB
Python
61 lines
1.5 KiB
Python
from django.conf import settings
|
|
from django.contrib import admin
|
|
from django.core.cache import cache
|
|
|
|
admin.site.site_header = settings.SITE_NAME
|
|
|
|
|
|
def publish(modeladmin, request, queryset):
|
|
queryset.update(published=True)
|
|
cache.clear()
|
|
|
|
|
|
publish.short_description = "Publish selected items"
|
|
|
|
|
|
def unpublish(modeladmin, request, queryset):
|
|
queryset.update(published=False)
|
|
cache.clear()
|
|
|
|
|
|
unpublish.short_description = "Unpublish selected items"
|
|
|
|
|
|
def set_featured(modeladmin, request, queryset):
|
|
count = queryset.count()
|
|
if count > settings.FEATURED_ITEMS_MAX:
|
|
modeladmin.message_user(
|
|
request,
|
|
"You can only mark up to {} items as featured.".format(
|
|
settings.FEATURED_ITEMS_MAX
|
|
),
|
|
level="error",
|
|
)
|
|
return
|
|
featured = modeladmin.model.objects.filter(featured=True).count()
|
|
if featured + count > settings.FEATURED_ITEMS_MAX:
|
|
modeladmin.message_user(
|
|
request,
|
|
"There are already {} featured items. You can only mark {} more items as featured.".format( # noqa: E501
|
|
featured,
|
|
settings.FEATURED_ITEMS_MAX - featured,
|
|
),
|
|
level="error",
|
|
)
|
|
return
|
|
queryset.update(featured=True)
|
|
cache.clear()
|
|
|
|
|
|
set_featured.short_description = "Mark selected items as featured"
|
|
|
|
|
|
def unset_featured(modeladmin, request, queryset):
|
|
queryset.update(featured=False)
|
|
cache.clear()
|
|
|
|
|
|
unset_featured.short_description = (
|
|
"Unmark selected items as featured"
|
|
)
|