feat: add button to download all logs

This commit is contained in:
2025-11-08 00:00:54 +01:00
parent 9511b46af0
commit e2e236d650
3 changed files with 14 additions and 4 deletions

View File

@@ -41,6 +41,7 @@ dependencies = [
"django-super-deduper",
"django-allauth[mfa]",
"django_debug_toolbar",
"django-admin-extra-buttons"
]
dynamic = ["version", "readme"]

View File

@@ -7,6 +7,8 @@ from django.utils.html import format_html
from django.urls import reverse
from django.utils.http import urlencode
from admin_extra_buttons.api import ExtraButtonsMixin, button, link
from .models import Language, Text, ReportComment, ReportAdoptionNotice, Log, Timestamp, SearchSubscription, \
SpeciesSpecificURL, ImportantLocation, SocialMediaPost
@@ -170,18 +172,26 @@ class SocialMediaPostAdmin(admin.ModelAdmin):
@admin.register(Log)
class LogAdmin(admin.ModelAdmin):
class LogAdmin(ExtraButtonsMixin, admin.ModelAdmin):
ordering = ["-created_at"]
list_filter = ("action",)
list_display = ("action", "user", "created_at")
actions = ("export_as_csv",)
@admin.action(description=_("Ausgewählte Logs exportieren"))
def export_as_csv(self, request, queryset):
response = export_to_csv_generic(Log, queryset)
return response
export_as_csv.short_description = _("Ausgewählte Logs exportieren")
@button()
def export_all_as_csv(self, request):
actual_queryset = Log.objects.all()
response = export_to_csv_generic(Log, actual_queryset)
return response
@link(href="https://www.google.com/", visible=lambda btn: True)
def invisible(self, button):
button.visible = False
admin.site.register(Animal)
admin.site.register(Species)

View File

@@ -88,7 +88,6 @@ if config.getboolean('django', 'cache', fallback=False):
}
}
""" DATABASE """
DB_BACKEND = config.get("database", "backend", fallback="sqlite3")
DB_NAME = config.get("database", "name", fallback="notfellchen.sqlite3")
@@ -100,7 +99,6 @@ DB_HOST = config.get("database", "host", fallback='')
BASE_DIR = Path(__file__).resolve().parent.parent
LOCALE_PATHS = [os.path.join(BASE_DIR, 'locale')]
""" CELERY + KEYDB """
CELERY_BROKER_URL = config.get("celery", "broker", fallback="redis://localhost:6379/0")
CELERY_RESULT_BACKEND = config.get("celery", "backend", fallback="redis://localhost:6379/0")
@@ -246,6 +244,7 @@ INSTALLED_APPS = [
'drf_spectacular_sidecar', # required for Django collectstatic discovery
'widget_tweaks',
"debug_toolbar",
'admin_extra_buttons',
]
MIDDLEWARE = [