feat: add button to download all logs
This commit is contained in:
@@ -41,6 +41,7 @@ dependencies = [
|
||||
"django-super-deduper",
|
||||
"django-allauth[mfa]",
|
||||
"django_debug_toolbar",
|
||||
"django-admin-extra-buttons"
|
||||
]
|
||||
|
||||
dynamic = ["version", "readme"]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user