diff --git a/jdav_web/finance/admin.py b/jdav_web/finance/admin.py index ea4ff77..ed70b8f 100644 --- a/jdav_web/finance/admin.py +++ b/jdav_web/finance/admin.py @@ -91,7 +91,7 @@ class StatementUnSubmittedAdmin(CommonAdminMixin, admin.ModelAdmin): messages.success(request, _("Successfully submited %(name)s. The finance department will notify the requestors as soon as possible.") % {'name': str(statement)}) return HttpResponseRedirect(reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name))) - + if statement.excursion: memberlist = statement.excursion context = dict(self.admin_site.each_context(request), @@ -120,16 +120,16 @@ class TransactionOnSubmittedStatementInline(admin.TabularInline): } readonly_fields = ['text_length_warning'] extra = 0 - + def text_length_warning(self, obj): """Display reference length, warn if exceeds 140 characters.""" len_reference = len(obj.reference) len_string = f"{len_reference}/140" if len_reference > 140: return mark_safe(f'{len_string}') - + return len_string - text_length_warning.short_description = "Länge" + text_length_warning.short_description = _("Length") class BillOnSubmittedStatementInline(BillOnStatementInline): @@ -213,8 +213,9 @@ class StatementSubmittedAdmin(admin.ModelAdmin): messages.success(request, _("Successfully confirmed %(name)s. I hope you executed the associated transactions, I wont remind you again.") % {'name': str(statement)}) + download_link = reverse('admin:finance_statementconfirmed_summary', args=(statement.pk,)) messages.success(request, - mark_safe(f"Hier kannst du den Abrechnungsbeleg herunterladen.")) #TODO: nice path resolution + mark_safe(_("You can download a receipt.") % {'link': download_link})) return HttpResponseRedirect(reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name))) if "confirm" in request.POST: res = statement.validity @@ -351,21 +352,25 @@ class StatementConfirmedAdmin(admin.ModelAdmin): statement=statement) return render(request, 'admin/unconfirm_statement.html', context=context) - + def statement_summary_view(self, request, object_id): - statement = StatementConfirmed.objects.get(pk=object_id) - + try: + statement = StatementConfirmed.objects.get(pk=object_id) + except StatementConfirmed.DoesNotExist: + messages.error(request, _('Statement not found.')) + return HttpResponseRedirect(reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name))) + if not statement.confirmed: messages.error(request, _("%(name)s is not yet confirmed.") % {'name': str(statement)}) return HttpResponseRedirect(reverse('admin:%s_%s_change' % (self.opts.app_label, self.opts.model_name), args=(statement.pk,))) excursion = statement.excursion context = dict(statement=statement.template_context(), excursion=excursion, settings=settings) - + pdf_filename = f"{excursion.code}_{excursion.name}_Zuschussbeleg" if excursion else f"Abrechnungsbeleg" attachments = [bill.proof.path for bill in statement.bills_covered] return render_tex_with_attachments(pdf_filename, 'finance/statement_summary.tex', context, attachments) - + statement_summary_view.short_description = _('Download summary') diff --git a/jdav_web/finance/locale/de/LC_MESSAGES/django.po b/jdav_web/finance/locale/de/LC_MESSAGES/django.po index 26c7c24..e3377b4 100644 --- a/jdav_web/finance/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/finance/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-06 15:55+0200\n" +"POT-Creation-Date: 2025-04-06 16:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -40,6 +40,10 @@ msgstr "Kostenübersicht" msgid "Submit statement" msgstr "Rechnung einreichen" +#: finance/admin.py +msgid "Length" +msgstr "Länge" + #: finance/admin.py #, python-format msgid "%(name)s is not yet submitted." @@ -61,6 +65,13 @@ msgstr "" "Erfolgreich %(name)s abgewickelt. Ich hoffe du hast die zugehörigen " "Überweisungen ausgeführt, ich werde dich nicht nochmal erinnern." +#: finance/admin.py +#, python-format +msgid "You can download a receipt." +msgstr "" +"Hier kannst du den Abrechnungsbeleg herunterladen." + #: finance/admin.py msgid "Statement confirmed" msgstr "Abrechnung abgewickelt" @@ -152,6 +163,10 @@ msgstr "" msgid "Unconfirm statement" msgstr "Bestätigung zurücknehmen" +#: finance/admin.py +msgid "Statement not found." +msgstr "Abrechnung existiert nicht." + #: finance/admin.py msgid "Download summary" msgstr "Beleg herunterladen" @@ -556,12 +571,9 @@ msgstr "Aufwandsentschädigung" msgid "Contributions by the association" msgstr "Sektionszuschüsse" - #: finance/templates/admin/overview_submitted_statement.html -#, fuzzy -#| msgid "Pay ljp contributions to" msgid "ljp contributions" -msgstr "LJP-Zuschüsse auszahlen an" +msgstr "LJP-Zuschüsse" #: finance/templates/admin/overview_submitted_statement.html #, python-format diff --git a/jdav_web/finance/templates/admin/overview_submitted_statement.html b/jdav_web/finance/templates/admin/overview_submitted_statement.html index 0bab00d..309fa36 100644 --- a/jdav_web/finance/templates/admin/overview_submitted_statement.html +++ b/jdav_web/finance/templates/admin/overview_submitted_statement.html @@ -132,9 +132,6 @@ Once their proposal was approved, the ljp contributions of should be paid to:{% {% endif %} -{% endif %} - - {% endif %}

{% trans "Summary" %}