Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
312 changes: 162 additions & 150 deletions app/locale/de/LC_MESSAGES/django.po

Large diffs are not rendered by default.

312 changes: 162 additions & 150 deletions app/locale/en/LC_MESSAGES/django.po

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion app/my_practice/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,15 @@ class ClientAdmin(admin.ModelAdmin):
),
(
gettext_lazy("Additional"),
{"fields": ("notes", "active", "is_online_client", "needs_gebueh_invoice")},
{
"fields": (
"notes",
"active",
"is_online_client",
"needs_gebueh_invoice",
"gebueh_no_diagnosis",
)
},
),
(
gettext_lazy("Timestamps"),
Expand Down
2 changes: 2 additions & 0 deletions app/my_practice/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class Meta:
"active",
"is_online_client",
"needs_gebueh_invoice",
"gebueh_no_diagnosis",
"hourly_rate_60",
"hourly_rate_90",
"notes",
Expand Down Expand Up @@ -105,6 +106,7 @@ class Meta:
"active": _("Active client"),
"is_online_client": _("Online client (video sessions)"),
"needs_gebueh_invoice": _("GebüH-Abrechnung"),
"gebueh_no_diagnosis": _("No diagnosis on invoice"),
"hourly_rate_60": _("Fee 60 min (€)"),
"hourly_rate_90": _("Fee 90 min (€)"),
"notes": _("Notes"),
Expand Down
21 changes: 21 additions & 0 deletions app/my_practice/migrations/0019_gebueh_no_diagnosis.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 6.0.7 on 2026-07-30 10:35

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("my_practice", "0018_remove_practicetodo_is_focus"),
]

operations = [
migrations.AddField(
model_name="client",
name="gebueh_no_diagnosis",
field=models.BooleanField(
default=False,
help_text="Omit the diagnosis line from GebüH invoices for this client",
verbose_name="No diagnosis on invoice",
),
),
]
5 changes: 5 additions & 0 deletions app/my_practice/models/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,11 @@ class Language(StrEnum):
verbose_name=_("GebüH-Rechnung"),
help_text=_("GebüH-Ziffern und Diagnose auf der Rechnung ausweisen (PKV / Beihilfe)"),
)
gebueh_no_diagnosis = models.BooleanField(
default=False,
verbose_name=_("No diagnosis on invoice"),
help_text=_("Omit the diagnosis line from GebüH invoices for this client"),
)
is_online_client = models.BooleanField(
default=False,
verbose_name=_("Online client"),
Expand Down
11 changes: 11 additions & 0 deletions app/my_practice/tests/test_gebueh.py
Original file line number Diff line number Diff line change
Expand Up @@ -503,6 +503,17 @@ def test_gebueh_gesamt_total_hidden_when_no_leistungen(self):
html = self._render()
self.assertNotIn("GebüH gesamt", html)

def test_diagnosis_line_shown_by_default(self):
html = self._render()
self.assertIn("gebueh-diagnose", html)
self.assertIn("Probatorik", html)

def test_diagnosis_line_hidden_when_gebueh_no_diagnosis_set(self):
self.client_obj.gebueh_no_diagnosis = True
self.client_obj.save()
html = self._render()
self.assertNotIn("gebueh-diagnose", html)


class GebuhInvoiceDetailViewTest(TestCase):
"""Tests the tightened GebüH block on the web invoice_detail.html view:
Expand Down
9 changes: 9 additions & 0 deletions app/templates/my_practice/client_intake.html
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,15 @@
</div>
</div>

<div class="form-group">
{{ form.gebueh_no_diagnosis.label_tag }}
{{ form.gebueh_no_diagnosis }}
{{ form.gebueh_no_diagnosis.errors }}
<div class="helptext">
{% trans "Omit the diagnosis line from this client's GebüH invoices." %}
</div>
</div>

<div class="form-group">
{{ form.full_name.label_tag }}
{{ form.full_name }}
Expand Down
2 changes: 1 addition & 1 deletion app/templates/my_practice/invoice_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ <h3 class="mb-2">📋 {% trans "Line items" %}</h3>
</thead>
<tbody>
{% if gebueh_blocks %}
{% if arbeitsdiagnose %}
{% if arbeitsdiagnose and not invoice.client.gebueh_no_diagnosis %}
<tr>
<td colspan="5" class="text-secondary italic">
{% trans "Diagnosis" %}: {{ arbeitsdiagnose }}
Expand Down
2 changes: 2 additions & 0 deletions app/templates/my_practice/invoice_pdf_de.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,13 @@ <h1>Rechnung</h1>

<!-- Line items -->
{% if invoice.client.needs_gebueh_invoice and gebueh_blocks %}
{% if not invoice.client.gebueh_no_diagnosis %}
{% if arbeitsdiagnose %}
<div class="gebueh-diagnose"><strong>Diagnose:</strong> {{ arbeitsdiagnose }}</div>
{% else %}
<div class="gebueh-diagnose"><strong>Diagnose:</strong> Probatorik</div>
{% endif %}
{% endif %}
<table class="items">
<thead>
<tr>
Expand Down
2 changes: 2 additions & 0 deletions app/templates/my_practice/invoice_pdf_en.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,13 @@ <h1>Invoice</h1>

<!-- Line items -->
{% if invoice.client.needs_gebueh_invoice and gebueh_blocks %}
{% if not invoice.client.gebueh_no_diagnosis %}
{% if arbeitsdiagnose %}
<div class="gebueh-diagnose"><strong>Diagnosis:</strong> {{ arbeitsdiagnose }}</div>
{% else %}
<div class="gebueh-diagnose"><strong>Diagnosis:</strong> Probatory phase</div>
{% endif %}
{% endif %}
<table class="items">
<thead>
<tr>
Expand Down