From 5bfd3c71cedcd161657d8ab3d1cf829d02845f9d Mon Sep 17 00:00:00 2001
From: Carlos Vega <carlos.vega@uni.lu>
Date: Thu, 19 Mar 2020 17:24:56 +0100
Subject: [PATCH] added provenance on marking visit as finished

---
 smash/web/views/visit.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/smash/web/views/visit.py b/smash/web/views/visit.py
index 10f2f80c..05d0ac44 100644
--- a/smash/web/views/visit.py
+++ b/smash/web/views/visit.py
@@ -9,7 +9,7 @@ from web.models.study_visit_list import VISIT_LIST_GENERIC, VISIT_LIST_MISSING_A
     VISIT_LIST_UNFINISHED, VISIT_LIST_CHOICES
 from . import wrap_response
 from ..forms import VisitDetailForm, VisitAddForm, SubjectDetailForm, StudySubjectDetailForm
-from ..models import Visit, Appointment, StudySubject, MailTemplate
+from ..models import Visit, Appointment, StudySubject, MailTemplate, Worker, Provenance
 
 logger = logging.getLogger(__name__)
 
@@ -93,7 +93,17 @@ def visit_details(request, id):
 def visit_mark(request, id, as_what):
     visit = get_object_or_404(Visit, id=id)
     if as_what == 'finished':
+        worker = Worker.get_by_user(request.user)
+        p = Provenance(modified_table = Visit._meta.db_table,
+                    modified_table_id = id,
+                    modification_author = worker,
+                    previous_value = visit.is_finished,
+                    new_value = True,
+                    modification_description = 'Worker "{}" marked visit from "{}" as finished'.format(worker, visit.subject),
+                    modified_field = 'is_finished',
+            )
         visit.mark_as_finished()
+        p.save()
 
     return redirect('web.views.visit_details', id=id)
 
-- 
GitLab