mirror of
https://git.hiabuto.net/C3MA/CCMA.git
synced 2026-07-01 11:14:52 +02:00
feat: add OpenDocument PDF templates
This commit is contained in:
@@ -4,6 +4,7 @@ import tkinter as tk
|
||||
from collections.abc import Callable
|
||||
from datetime import date
|
||||
from decimal import Decimal
|
||||
from pathlib import Path
|
||||
from tkinter import messagebox, ttk
|
||||
|
||||
from ccma.domain.contributions import (
|
||||
@@ -19,6 +20,7 @@ from ccma.domain.contributions import (
|
||||
)
|
||||
from ccma.domain.dates import date_input_hint, format_date_for_display
|
||||
from ccma.storage.repository import MemberRepository, RepositoryError
|
||||
from ccma.ui.document_dialog import DocumentTemplateDialog
|
||||
from ccma.ui.labels import (
|
||||
CLAIM_ITEM_TYPE_LABELS,
|
||||
REMINDER_CHANNEL_LABELS,
|
||||
@@ -145,6 +147,9 @@ class ClaimTab(ttk.Frame):
|
||||
)
|
||||
self.send_reminder_button.pack(side="right", padx=(8, 0))
|
||||
ttk.Button(buttons, text="Mahnung vorbereiten", command=self._add_reminder).pack(side="right")
|
||||
ttk.Button(buttons, text="Dokument erzeugen", command=self._create_document).pack(
|
||||
side="right", padx=(0, 8)
|
||||
)
|
||||
|
||||
def refresh(self) -> None:
|
||||
try:
|
||||
@@ -307,6 +312,20 @@ class ClaimTab(ttk.Frame):
|
||||
def _add_reminder(self) -> None:
|
||||
ReminderDialog(self, self.repository, self.member_id, self.claim_id, self._changed)
|
||||
|
||||
def _create_document(self) -> None:
|
||||
reminder = self._selected_reminder()
|
||||
DocumentTemplateDialog(
|
||||
self,
|
||||
self.repository,
|
||||
self.member_id,
|
||||
self._document_generated,
|
||||
claim_id=self.claim_id,
|
||||
reminder_id=str(reminder["reminder_id"]) if reminder else None,
|
||||
)
|
||||
|
||||
def _document_generated(self, _path: Path) -> None:
|
||||
self._changed()
|
||||
|
||||
def _selected_reminder(self) -> dict | None:
|
||||
selected = self.ledger.selection()
|
||||
if not selected or not selected[0].startswith("reminder:"):
|
||||
|
||||
Reference in New Issue
Block a user