From 587a0da0001dc2d592bea11a4437e55a2a8e0166 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Tue, 13 Nov 2018 10:45:00 -0500 Subject: [PATCH] More accurate "last saved at" timestamp --- atst/models/request.py | 7 +++++++ atst/models/request_revision.py | 21 +++++++++++++++++++ .../requests/financial_verification.html | 2 +- tests/models/test_requests.py | 7 +++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/atst/models/request.py b/atst/models/request.py index 101c1969..2a4cef41 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -238,6 +238,13 @@ class Request(Base, mixins.TimestampsMixin, mixins.AuditableMixin): else None ) + @property + def last_finver_draft_saved_at(self): + if self.latest_revision.any_finver_fields_saved: + return self.latest_revision.time_updated + else: + return None + def __repr__(self): return "".format( self.status_displayname, diff --git a/atst/models/request_revision.py b/atst/models/request_revision.py index 89c4987a..17ba19c5 100644 --- a/atst/models/request_revision.py +++ b/atst/models/request_revision.py @@ -83,3 +83,24 @@ class RequestRevision(Base, mixins.TimestampsMixin, mixins.AuditableMixin): return "".format( self.request_id, self.id ) + + @property + def any_finver_fields_saved(self): + return any( + getattr(self, n, None) + for n in [ + "pe_id", + "task_order_number", + "fname_co", + "lname_co", + "email_co", + "office_co", + "fname_cor", + "lname_cor", + "email_cor", + "office_cor", + "uii_ids", + "treasury_code", + "ba_code", + ] + ) diff --git a/templates/requests/financial_verification.html b/templates/requests/financial_verification.html index a9d8289e..c266c328 100644 --- a/templates/requests/financial_verification.html +++ b/templates/requests/financial_verification.html @@ -186,7 +186,7 @@ {% endblock form %} {% if saved_draft %} - Draft saved at + Draft saved at {% endif %} {% block next %}
diff --git a/tests/models/test_requests.py b/tests/models/test_requests.py index 3d5bcf72..f2a82528 100644 --- a/tests/models/test_requests.py +++ b/tests/models/test_requests.py @@ -3,6 +3,7 @@ from tests.factories import ( UserFactory, RequestStatusEventFactory, RequestReviewFactory, + RequestRevisionFactory, ) from atst.domain.requests import Requests from atst.models.request_status_event import RequestStatus @@ -113,3 +114,9 @@ def test_review_comment(): ) assert not request.review_comment + + +def test_finver_last_saved_at(): + request = RequestFactory.create() + RequestRevisionFactory.create(fname_co="Amanda", request=request) + assert request.last_finver_draft_saved_at