From 861d1099c99c413e04082f36b01136b15f659176 Mon Sep 17 00:00:00 2001 From: Pawan Verma Date: Fri, 20 Sep 2024 18:28:28 +0530 Subject: [PATCH 1/2] Fix review_status missing from query --- commcare_connect/opportunity/utils/completed_work.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/commcare_connect/opportunity/utils/completed_work.py b/commcare_connect/opportunity/utils/completed_work.py index 0c0adb1d..8f18f349 100644 --- a/commcare_connect/opportunity/utils/completed_work.py +++ b/commcare_connect/opportunity/utils/completed_work.py @@ -11,11 +11,11 @@ def update_status(completed_works, opportunity_access, compute_payment=True): continue if opportunity_access.opportunity.auto_approve_payments: - visits = completed_work.uservisit_set.values_list("status", "reason") - if any(status == "rejected" for status, _ in visits): + visits = completed_work.uservisit_set.values_list("status", "reason", "review_status") + if any(status == "rejected" for status, *_ in visits): completed_work.status = CompletedWorkStatus.rejected - completed_work.reason = "\n".join(reason for _, reason in visits if reason) - elif all(status == "approved" for status, _ in visits): + completed_work.reason = "\n".join(reason for _, reason, _ in visits if reason) + elif all(status == "approved" for status, *_ in visits): completed_work.status = CompletedWorkStatus.approved if ( From 56ac14f95bc9e456845924ac13f50c17ffa2c119 Mon Sep 17 00:00:00 2001 From: Pawan Verma Date: Fri, 20 Sep 2024 18:36:02 +0530 Subject: [PATCH 2/2] Add use model choices instead of strings --- commcare_connect/opportunity/utils/completed_work.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/commcare_connect/opportunity/utils/completed_work.py b/commcare_connect/opportunity/utils/completed_work.py index 8f18f349..202bbb8d 100644 --- a/commcare_connect/opportunity/utils/completed_work.py +++ b/commcare_connect/opportunity/utils/completed_work.py @@ -1,4 +1,4 @@ -from commcare_connect.opportunity.models import CompletedWorkStatus +from commcare_connect.opportunity.models import CompletedWorkStatus, VisitReviewStatus, VisitValidationStatus def update_status(completed_works, opportunity_access, compute_payment=True): @@ -12,15 +12,15 @@ def update_status(completed_works, opportunity_access, compute_payment=True): if opportunity_access.opportunity.auto_approve_payments: visits = completed_work.uservisit_set.values_list("status", "reason", "review_status") - if any(status == "rejected" for status, *_ in visits): + if any(status == VisitValidationStatus.rejected for status, *_ in visits): completed_work.status = CompletedWorkStatus.rejected completed_work.reason = "\n".join(reason for _, reason, _ in visits if reason) - elif all(status == "approved" for status, *_ in visits): + elif all(status == VisitValidationStatus.approved for status, *_ in visits): completed_work.status = CompletedWorkStatus.approved if ( opportunity_access.opportunity.managed - and not all(review_status == "agree" for *_, review_status in visits) + and not all(review_status == VisitReviewStatus.agree for *_, review_status in visits) and completed_work.status == CompletedWorkStatus.approved ): completed_work.status = CompletedWorkStatus.pending