Log project changes during approvals
This commit is contained in:
@@ -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})"
|
||||
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user