From e2e236d6502f1a112554af95a97759c829eaf6f5 Mon Sep 17 00:00:00 2001 From: moanos Date: Sat, 8 Nov 2025 00:00:54 +0100 Subject: [PATCH 1/3] feat: add button to download all logs --- pyproject.toml | 1 + src/fellchensammlung/admin.py | 14 ++++++++++++-- src/notfellchen/settings.py | 3 +-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3157b25..98513a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,6 +41,7 @@ dependencies = [ "django-super-deduper", "django-allauth[mfa]", "django_debug_toolbar", + "django-admin-extra-buttons" ] dynamic = ["version", "readme"] diff --git a/src/fellchensammlung/admin.py b/src/fellchensammlung/admin.py index 0d43450..933f7e0 100644 --- a/src/fellchensammlung/admin.py +++ b/src/fellchensammlung/admin.py @@ -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) diff --git a/src/notfellchen/settings.py b/src/notfellchen/settings.py index dfe8cf1..9a92a6c 100644 --- a/src/notfellchen/settings.py +++ b/src/notfellchen/settings.py @@ -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 = [ From 527ab07b6f2f7d102505173eacc5d1d7c07b2035 Mon Sep 17 00:00:00 2001 From: moanos Date: Sat, 8 Nov 2025 00:33:35 +0100 Subject: [PATCH 2/3] trans: fis various --- src/locale/en/LC_MESSAGES/django.po | 40 ++++++++++++++++------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/locale/en/LC_MESSAGES/django.po b/src/locale/en/LC_MESSAGES/django.po index 27e7cf5..73bb644 100644 --- a/src/locale/en/LC_MESSAGES/django.po +++ b/src/locale/en/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Notfellchen\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-11-07 14:28+0000\n" -"PO-Revision-Date: 2025-11-07 18:11+0100\n" +"PO-Revision-Date: 2025-11-08 00:33+0100\n" "Last-Translator: Julian-Samuel \n" "Language-Team: English\n" "Language: en\n" @@ -1455,14 +1455,18 @@ msgid "" "\n" " Folgende Nachricht wurde zur Meldung hinzugefügt:\n" " " -msgstr "The following message was added to the report" +msgstr "" +"\n" +"The following message was added to the report" #: src/fellchensammlung/templates/fellchensammlung/mail/notifications/report.html:28 msgid "" "\n" " Bitte bearbeite die Meldung möglichst bald.\n" " " -msgstr "Please check the report soon." +msgstr "" +"\n" +"Please check the report soon." #: src/fellchensammlung/templates/fellchensammlung/mail/notifications/report.html:33 msgid "Report bearbeiten" @@ -1512,7 +1516,7 @@ msgstr "Adoption Notice deactivated" #: src/fellchensammlung/templates/fellchensammlung/misc/deactivate-an.html:10 msgid "Warum schließt du die Vermittlung?" -msgstr "Why are you closing the adoption notice" +msgstr "Why are you closing the adoption notice?" #: src/fellchensammlung/templates/fellchensammlung/misc/deactivate-an.html:14 msgid "Vermittelt mit Hilfe von Notfellchen" @@ -1562,9 +1566,9 @@ msgid "" "href=%(post_url)s>%(post_url)s\n" " " msgstr "" -"\r\n" +"\n" " Link to Post: %(post_url)s\r\n" +"href=%(post_url)s>%(post_url)s\n" " " #: src/fellchensammlung/templates/fellchensammlung/mod-tool-overview.html:39 @@ -1666,9 +1670,9 @@ msgid "" " Die Vermittlung %(adoption_notice_title)s wurde " "deaktiviert.\n" msgstr "" -"\r\n" +"\n" " The adoption notice %(adoption_notice_title)s was " -"deactivated.\r\n" +"deactivated.\n" #: src/fellchensammlung/templates/fellchensammlung/partials/notifications/body-an-for-search.html:2 msgid "" @@ -1676,8 +1680,8 @@ msgid "" " Es wurde eine neue Vermittlung gefunden, die deinen Kriterien " "entspricht:\n" msgstr "" -"\r\n" -" There is a new adoption notice that fits your search criteria:\r\n" +"\n" +" There is a new adoption notice that fits your search criteria:\n" #: src/fellchensammlung/templates/fellchensammlung/partials/notifications/body-an-to-be-checked.html:2 #, python-format @@ -1686,9 +1690,9 @@ msgid "" " Die Vermittlung %(adoption_notice_title)s muss " "überprüft werden.\n" msgstr "" -"\r\n" +"\n" " The adoption notice %(adoption_notice_title)s must be " -"checked.\r\n" +"checked.\n" #: src/fellchensammlung/templates/fellchensammlung/partials/notifications/body-new-comment.html:4 #, python-format @@ -1698,9 +1702,9 @@ msgid "" "%(adoption_notice_title)s hinzugefügt:\n" " " msgstr "" -"\r\n" +"\n" " There is a new comment on the adoption notice " -"%(adoption_notice_title)s.\r\n" +"%(adoption_notice_title)s.\n" " " #: src/fellchensammlung/templates/fellchensammlung/partials/notifications/body-new-report.html:3 @@ -1709,8 +1713,8 @@ msgid "" " Es gibt eine neue Meldung. Folgende Nachricht wurde zur Meldung " "hinzugefügt:\n" msgstr "" -"\r\n" -" There is a new report. The following message was added to it:\r\n" +"\n" +" There is a new report. The following message was added to it:\n" #: src/fellchensammlung/templates/fellchensammlung/partials/notifications/body-new-report.html:13 msgid "Meldung anzeigen" @@ -1893,8 +1897,8 @@ msgid "" " %(number_of_adoption_notices)s\n" " Vermittlungen gefunden" msgstr "" -"\r\n" -" %(number_of_adoption_notices)s\r\n" +"\n" +" %(number_of_adoption_notices)s\n" " adoption notices found" #: src/fellchensammlung/templates/fellchensammlung/search.html:58 From a498971d6681bb67ec06f4d8dded4575a265f91d Mon Sep 17 00:00:00 2001 From: moanos Date: Sun, 9 Nov 2025 17:36:48 +0100 Subject: [PATCH 3/3] feat: create directory in one go, don't use cache dir and use more standard entrypoint.sh --- Dockerfile | 7 +++---- docker/{notfellchen.bash => entrypoint.sh} | 0 2 files changed, 3 insertions(+), 4 deletions(-) rename docker/{notfellchen.bash => entrypoint.sh} (100%) diff --git a/Dockerfile b/Dockerfile index def4af9..cd89d8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,15 +9,14 @@ RUN apt install gettext -y RUN apt install libpq-dev gcc -y COPY . /app WORKDIR /app -RUN mkdir /app/data -RUN mkdir /app/data/static +RUN mkdir /app/data/static -p RUN mkdir /app/data/media -RUN pip install -e . # Without the -e the library static folder will not be copied by collectstatic! +RUN pip install --no-cache-dir -e . # Without the -e the library static folder will not be copied by collectstatic! RUN nf collectstatic --noinput RUN nf compilemessages --ignore venv -COPY docker/notfellchen.bash /bin/notfellchen +COPY docker/entrypoint.sh /bin/notfellchen EXPOSE 7345 CMD ["notfellchen"] diff --git a/docker/notfellchen.bash b/docker/entrypoint.sh similarity index 100% rename from docker/notfellchen.bash rename to docker/entrypoint.sh