From 569d08711c338634b9f0aba948169dca06059130 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 27 Jul 2025 23:17:14 -0300 Subject: [PATCH] feat(sharing): add action for turning shareable objects into public or private on Django Admin --- app/apps/common/admin.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/apps/common/admin.py b/app/apps/common/admin.py index a5fd486..a83dac5 100644 --- a/app/apps/common/admin.py +++ b/app/apps/common/admin.py @@ -1,7 +1,26 @@ from django.contrib import admin +from django.utils.translation import gettext_lazy as _ + + +@admin.action(description=_("Make public")) +def make_public(modeladmin, request, queryset): + queryset.update(visibility="public") + + +@admin.action(description=_("Make private")) +def make_private(modeladmin, request, queryset): + queryset.update(visibility="private") class SharedObjectModelAdmin(admin.ModelAdmin): + actions = [make_public, make_private] + + list_display = ("__str__", "visibility", "owner", "get_shared_with") + + @admin.display(description=_("Shared with users")) + def get_shared_with(self, obj): + return ", ".join([p.email for p in obj.shared_with.all()]) + def get_queryset(self, request): # Use the all_objects manager to show all transactions, including deleted ones return self.model.all_objects.all()