diff --git a/claims/models.py b/claims/models.py index f08af18..9f97cbd 100644 --- a/claims/models.py +++ b/claims/models.py @@ -122,6 +122,7 @@ class ClaimLog(models.Model): CREATED = "created", _("Submitted") STATUS_CHANGED = "status_changed", _("Status changed") MARKED_PAID = "marked_paid", _("Marked as paid") + PROJECT_CHANGED = "project_changed", _("Project changed") claim = models.ForeignKey(Claim, related_name="logs", on_delete=models.CASCADE) action = models.CharField(max_length=32, choices=Action.choices) @@ -147,4 +148,3 @@ class ClaimLog(models.Model): def __str__(self): return f"{self.get_action_display()} ({self.created_at:%Y-%m-%d %H:%M})" - diff --git a/claims/tests.py b/claims/tests.py index 7fc67ac..5dbd6c0 100644 --- a/claims/tests.py +++ b/claims/tests.py @@ -9,7 +9,7 @@ from django.urls import reverse from django.utils import timezone from .forms import ClaimDecisionForm -from .models import Claim, Project +from .models import Claim, ClaimLog, Project from .validators import validate_receipt_file from .views import SubmitClaimView @@ -144,3 +144,6 @@ class DashboardViewTests(TestCase): self.assertEqual(response.status_code, 200) claim.refresh_from_db() self.assertEqual(claim.project, project_new) + self.assertTrue( + claim.logs.filter(action=ClaimLog.Action.PROJECT_CHANGED, note__icontains="Project updated").exists() + ) diff --git a/claims/views.py b/claims/views.py index e556eca..363e211 100644 --- a/claims/views.py +++ b/claims/views.py @@ -221,6 +221,12 @@ class ClaimDashboardView(LoginRequiredMixin, PermissionRequiredMixin, ListView): to_status=claim.status, note=decision_note, ) + if project_changed: + claim.add_log( + action=ClaimLog.Action.PROJECT_CHANGED, + performed_by=request.user, + note=_("Project updated during decision."), + ) return redirect(request.get_full_path()) def _handle_payment(self, request): diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo index 1f2c5a6..b56925e 100644 Binary files a/locale/en/LC_MESSAGES/django.mo and b/locale/en/LC_MESSAGES/django.mo differ diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 30d2986..f49fee9 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: claims-system 0.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-09 13:48+0100\n" +"POT-Creation-Date: 2025-11-09 14:00+0100\n" "PO-Revision-Date: 2025-11-08 23:40+0100\n" "Last-Translator: ChatGPT \n" "Language-Team: English\n" @@ -160,6 +160,10 @@ msgstr "Status changed" msgid "Marked as paid" msgstr "Marked as paid" +#: claims/models.py:125 +msgid "Project changed" +msgstr "Project changed" + #: claims/templates/claims/base.html:8 msgid "Claims" msgstr "Claims" @@ -840,7 +844,7 @@ msgstr "" msgid "Kunde inte spara utläggen. Kontrollera formuläret." msgstr "" -#: claims/views.py:182 claims/views.py:231 +#: claims/views.py:182 claims/views.py:237 #, fuzzy #| msgid "Ge behörighet att besluta utlägg" msgid "Du har inte behörighet att uppdatera utlägg." @@ -856,71 +860,73 @@ msgstr "The claim is marked as paid. Decision/comments are locked." #: claims/views.py:208 #, python-format msgid "%(claim)s markerades som godkänd." -msgstr "" +msgstr "%(claim)s was marked as approved." #: claims/views.py:211 -#, fuzzy, python-format -#| msgid "Ej markerad som betald" +#, python-format msgid "%(claim)s markerades som nekad." -msgstr "Not marked as paid" +msgstr "%(claim)s was marked as rejected." #: claims/views.py:228 +msgid "Project updated during decision." +msgstr "Project updated during decision." + +#: claims/views.py:234 msgid "Betalningshantering är inte aktiverad." -msgstr "" +msgstr "Payment handling is not enabled." -#: claims/views.py:236 +#: claims/views.py:242 msgid "Endast godkända utlägg kan markeras som betalda." -msgstr "" +msgstr "Only approved claims can be marked as paid." -#: claims/views.py:239 +#: claims/views.py:245 msgid "Detta utlägg är redan markerat som betalt." -msgstr "" +msgstr "This claim is already marked as paid." -#: claims/views.py:250 -#, fuzzy, python-format -#| msgid "Ej markerad som betald" +#: claims/views.py:256 +#, python-format msgid "%(claim)s markerades som betald." -msgstr "Not marked as paid" +msgstr "%(claim)s was marked as paid." -#: claims/views.py:316 +#: claims/views.py:322 msgid "Du saknar behörighet för åtgärden." msgstr "" -#: claims/views.py:363 +#: claims/views.py:369 #, python-format msgid "Användaren %(user)s skapades." msgstr "" -#: claims/views.py:374 +#: claims/views.py:380 msgid "Du kan inte ta bort din egen staff-status." msgstr "" -#: claims/views.py:380 +#: claims/views.py:386 #, python-format msgid "Behörigheter uppdaterades för %(user)s." msgstr "" -#: claims/views.py:382 +#: claims/views.py:388 #, fuzzy #| msgid "Justera behörigheter" msgid "Kunde inte uppdatera behörigheter." msgstr "Adjust permissions" -#: claims/views.py:392 +#: claims/views.py:398 msgid "Du kan inte ta bort ditt eget konto." msgstr "" -#: claims/views.py:394 +#: claims/views.py:400 msgid "Du kan inte ta bort en superuser via detta gränssnitt." msgstr "" -#: claims/views.py:397 +#: claims/views.py:403 #, fuzzy #| msgid "Användare" msgid "Användaren togs bort." msgstr "Users" -#: claims/views.py:400 +#: claims/views.py:406 msgid "Okänd åtgärd." msgstr ""