More accurate "last saved at" timestamp
This commit is contained in:
parent
480a88aff7
commit
587a0da000
@ -238,6 +238,13 @@ class Request(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
else None
|
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):
|
def __repr__(self):
|
||||||
return "<Request(status='{}', name='{}', creator='{}', is_approved='{}', time_created='{}', id='{}')>".format(
|
return "<Request(status='{}', name='{}', creator='{}', is_approved='{}', time_created='{}', id='{}')>".format(
|
||||||
self.status_displayname,
|
self.status_displayname,
|
||||||
|
@ -83,3 +83,24 @@ class RequestRevision(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
return "<RequestRevision(request='{}', id='{}')>".format(
|
return "<RequestRevision(request='{}', id='{}')>".format(
|
||||||
self.request_id, self.id
|
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",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
@ -186,7 +186,7 @@
|
|||||||
|
|
||||||
{% endblock form %}
|
{% endblock form %}
|
||||||
{% if saved_draft %}
|
{% if saved_draft %}
|
||||||
Draft saved at <localdatetime :timestamp="new Date().toString()"></localdatetime>
|
Draft saved at <localdatetime :timestamp="'{{ jedi_request.last_finver_draft_saved_at.isoformat() }}'"></localdatetime>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% block next %}
|
{% block next %}
|
||||||
<div class='action-group'>
|
<div class='action-group'>
|
||||||
|
@ -3,6 +3,7 @@ from tests.factories import (
|
|||||||
UserFactory,
|
UserFactory,
|
||||||
RequestStatusEventFactory,
|
RequestStatusEventFactory,
|
||||||
RequestReviewFactory,
|
RequestReviewFactory,
|
||||||
|
RequestRevisionFactory,
|
||||||
)
|
)
|
||||||
from atst.domain.requests import Requests
|
from atst.domain.requests import Requests
|
||||||
from atst.models.request_status_event import RequestStatus
|
from atst.models.request_status_event import RequestStatus
|
||||||
@ -113,3 +114,9 @@ def test_review_comment():
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert not request.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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user