Log project changes during approvals

This commit is contained in:
Victor Andersson
2025-11-09 14:05:28 +01:00
parent 70aeca6187
commit 0d68c75fef
5 changed files with 41 additions and 26 deletions

View File

@@ -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})"

View File

@@ -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()
)

View File

@@ -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):

Binary file not shown.

View File

@@ -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 <noreply@example.com>\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 ""