From 1e7f72e9ecb50ff0a07e9e947941fd936a3f733a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Wed, 8 Jan 2025 23:47:58 +0100 Subject: [PATCH] Implement publish, unpublish actions --- ram/bookshelf/admin.py | 5 +++-- ram/consist/admin.py | 2 ++ ram/portal/admin.py | 2 ++ ram/ram/__init__.py | 2 +- ram/ram/admin.py | 18 ++++++++++++++++++ ram/roster/admin.py | 3 ++- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ram/bookshelf/admin.py b/ram/bookshelf/admin.py index 7983c62..808caf5 100644 --- a/ram/bookshelf/admin.py +++ b/ram/bookshelf/admin.py @@ -5,6 +5,7 @@ from django.contrib import admin from django.utils.html import strip_tags from adminsortable2.admin import SortableAdminBase, SortableInlineAdminMixin +from ram.admin import publish, unpublish from ram.utils import generate_csv from portal.utils import get_site_conf from bookshelf.models import ( @@ -170,7 +171,7 @@ class BookAdmin(SortableAdminBase, admin.ModelAdmin): return generate_csv(header, data, "bookshelf_books.csv") download_csv.short_description = "Download selected items as CSV" - actions = [download_csv] + actions = [publish, unpublish, download_csv] @admin.register(Author) @@ -312,4 +313,4 @@ class CatalogAdmin(SortableAdminBase, admin.ModelAdmin): return generate_csv(header, data, "bookshelf_catalogs.csv") download_csv.short_description = "Download selected items as CSV" - actions = [download_csv] + actions = [publish, unpublish, download_csv] diff --git a/ram/consist/admin.py b/ram/consist/admin.py index 3d61b01..3551770 100644 --- a/ram/consist/admin.py +++ b/ram/consist/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin from adminsortable2.admin import SortableAdminBase, SortableInlineAdminMixin +from ram.admin import publish, unpublish from consist.models import Consist, ConsistItem @@ -58,3 +59,4 @@ class ConsistAdmin(SortableAdminBase, admin.ModelAdmin): }, ), ) + actions = [publish, unpublish] diff --git a/ram/portal/admin.py b/ram/portal/admin.py index 7a61808..510bced 100644 --- a/ram/portal/admin.py +++ b/ram/portal/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin from solo.admin import SingletonModelAdmin +from ram.admin import publish, unpublish from portal.models import SiteConfiguration, Flatpage @@ -67,3 +68,4 @@ class FlatpageAdmin(admin.ModelAdmin): }, ), ) + actions = [publish, unpublish] diff --git a/ram/ram/__init__.py b/ram/ram/__init__.py index e89914c..bee9cff 100644 --- a/ram/ram/__init__.py +++ b/ram/ram/__init__.py @@ -1,4 +1,4 @@ from ram.utils import git_suffix -__version__ = "0.15.4" +__version__ = "0.15.5" __version__ += git_suffix(__file__) diff --git a/ram/ram/admin.py b/ram/ram/admin.py index 5862f90..8c85cfc 100644 --- a/ram/ram/admin.py +++ b/ram/ram/admin.py @@ -2,3 +2,21 @@ from django.contrib import admin from django.conf import settings admin.site.site_header = settings.SITE_NAME + + +def publish(modeladmin, request, queryset): + for obj in queryset: + obj.published = True + obj.save() + + +publish.short_description = "Publish selected items" + + +def unpublish(modeladmin, request, queryset): + for obj in queryset: + obj.published = False + obj.save() + + +unpublish.short_description = "Unpublish selected items" diff --git a/ram/roster/admin.py b/ram/roster/admin.py index d06372c..b6e4edd 100644 --- a/ram/roster/admin.py +++ b/ram/roster/admin.py @@ -6,6 +6,7 @@ from django.utils.html import strip_tags from adminsortable2.admin import SortableAdminBase, SortableInlineAdminMixin +from ram.admin import publish, unpublish from ram.utils import generate_csv from portal.utils import get_site_conf from roster.models import ( @@ -263,4 +264,4 @@ class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin): return generate_csv(header, data, "rolling_stock.csv") download_csv.short_description = "Download selected items as CSV" - actions = [download_csv] + actions = [publish, unpublish, download_csv]