5151from enterprise_access .apps .subsidy_access_policy .models import SubsidyAccessPolicy
5252from enterprise_access .apps .subsidy_request .constants import (
5353 REUSABLE_REQUEST_STATES ,
54- LearnerCreditAdditionalActionStates ,
5554 LearnerCreditRequestActionErrorReasons ,
55+ LearnerCreditRequestActionTypes ,
56+ LearnerCreditRequestUserMessages ,
5657 SegmentEvents ,
5758 SubsidyRequestStates ,
5859 SubsidyTypeChoices
7273 send_reminder_email_for_pending_learner_credit_request
7374)
7475from enterprise_access .apps .subsidy_request .utils import (
75- get_action_choice ,
7676 get_error_reason_choice ,
77- get_user_message_choice
7877)
7978from enterprise_access .apps .track .segment import track_event
8079from enterprise_access .utils import format_traceback , get_subsidy_model
@@ -898,8 +897,8 @@ def create(self, request, *args, **kwargs):
898897 self ._reuse_existing_request (existing_request , course_price )
899898 LearnerCreditRequestActions .create_action (
900899 learner_credit_request = existing_request ,
901- recent_action = get_action_choice ( SubsidyRequestStates .REQUESTED ) ,
902- status = get_user_message_choice ( SubsidyRequestStates .REQUESTED ) ,
900+ recent_action = LearnerCreditRequestActionTypes .REQUESTED ,
901+ status = LearnerCreditRequestUserMessages .REQUESTED ,
903902 )
904903 # Trigger admin email notification with the latest request
905904 send_learner_credit_bnr_admins_email_with_new_requests_task .delay (
@@ -941,8 +940,8 @@ def create(self, request, *args, **kwargs):
941940 lcr = LearnerCreditRequest .objects .get (uuid = lcr_uuid )
942941 LearnerCreditRequestActions .create_action (
943942 learner_credit_request = lcr ,
944- recent_action = get_action_choice ( SubsidyRequestStates .REQUESTED ) ,
945- status = get_user_message_choice ( SubsidyRequestStates .REQUESTED ) ,
943+ recent_action = LearnerCreditRequestActionTypes .REQUESTED ,
944+ status = LearnerCreditRequestUserMessages .REQUESTED ,
946945 )
947946
948947 # Trigger admin email notification with the latest request
@@ -982,8 +981,8 @@ def approve(self, request, *args, **kwargs):
982981 # Log "approve" as recent action in the Request Action model.
983982 lc_request_action = LearnerCreditRequestActions .create_action (
984983 learner_credit_request = lc_request ,
985- recent_action = get_action_choice ( SubsidyRequestStates .APPROVED ) ,
986- status = get_user_message_choice ( SubsidyRequestStates .APPROVED ) ,
984+ recent_action = LearnerCreditRequestActionTypes .APPROVED ,
985+ status = LearnerCreditRequestUserMessages .APPROVED ,
987986 )
988987
989988 try :
@@ -1014,7 +1013,7 @@ def approve(self, request, *args, **kwargs):
10141013 logger .exception (error_msg )
10151014
10161015 # Update approve action with error reason.
1017- lc_request_action .status = get_user_message_choice ( SubsidyRequestStates .REQUESTED )
1016+ lc_request_action .status = LearnerCreditRequestUserMessages .REQUESTED
10181017 lc_request_action .error_reason = get_error_reason_choice (
10191018 LearnerCreditRequestActionErrorReasons .FAILED_APPROVAL
10201019 )
@@ -1044,8 +1043,8 @@ def cancel(self, request, *args, **kwargs):
10441043 error_msg = None
10451044 lc_action = LearnerCreditRequestActions .create_action (
10461045 learner_credit_request = learner_credit_request ,
1047- recent_action = get_action_choice ( SubsidyRequestStates .CANCELLED ) ,
1048- status = get_user_message_choice ( SubsidyRequestStates .CANCELLED ) ,
1046+ recent_action = LearnerCreditRequestActionTypes .CANCELLED ,
1047+ status = LearnerCreditRequestUserMessages .CANCELLED ,
10491048 )
10501049
10511050 try :
@@ -1059,7 +1058,7 @@ def cancel(self, request, *args, **kwargs):
10591058 lc_action .error_reason = get_error_reason_choice (
10601059 LearnerCreditRequestActionErrorReasons .FAILED_CANCELLATION
10611060 )
1062- lc_action .status = get_user_message_choice ( SubsidyRequestStates .APPROVED )
1061+ lc_action .status = LearnerCreditRequestUserMessages .APPROVED
10631062 lc_action .traceback = error_msg
10641063 lc_action .save ()
10651064 return Response (error_msg , status = status .HTTP_422_UNPROCESSABLE_ENTITY )
@@ -1081,7 +1080,7 @@ def cancel(self, request, *args, **kwargs):
10811080 lc_action .error_reason = get_error_reason_choice (
10821081 LearnerCreditRequestActionErrorReasons .FAILED_CANCELLATION
10831082 )
1084- lc_action .status = get_user_message_choice ( SubsidyRequestStates .APPROVED )
1083+ lc_action .status = LearnerCreditRequestUserMessages .APPROVED
10851084 lc_action .traceback = error_msg
10861085 lc_action .save ()
10871086 return Response (status = status .HTTP_422_UNPROCESSABLE_ENTITY )
@@ -1102,17 +1101,20 @@ def remind(self, request, *args, **kwargs):
11021101
11031102 action_instance = LearnerCreditRequestActions .create_action (
11041103 learner_credit_request = learner_credit_request ,
1105- recent_action = get_action_choice ( LearnerCreditAdditionalActionStates .REMINDED ) ,
1106- status = get_user_message_choice ( LearnerCreditAdditionalActionStates .REMINDED ) ,
1104+ recent_action = LearnerCreditRequestActionTypes .REMINDED ,
1105+ status = LearnerCreditRequestUserMessages .REMINDED ,
11071106 )
11081107
11091108 try :
11101109 send_reminder_email_for_pending_learner_credit_request .delay (assignment .uuid )
11111110 return Response (status = status .HTTP_200_OK )
11121111 except Exception as exc : # pylint: disable=broad-except
11131112 # Optionally log an errored action here if the task couldn't be queued
1114- action_instance .status = get_user_message_choice (LearnerCreditRequestActionErrorReasons .EMAIL_ERROR )
1115- action_instance .error_reason = str (exc )
1113+ action_instance .status = LearnerCreditRequestUserMessages .APPROVED
1114+ action_instance .error_reason = get_error_reason_choice (
1115+ LearnerCreditRequestActionErrorReasons .EMAIL_ERROR
1116+ )
1117+ action_instance .traceback = format_traceback (exc )
11161118 action_instance .save ()
11171119 return Response (status = status .HTTP_422_UNPROCESSABLE_ENTITY )
11181120
@@ -1142,19 +1144,19 @@ def decline(self, *args, **kwargs):
11421144 # Create the action instance before attempting the decline operation
11431145 action_instance = LearnerCreditRequestActions .create_action (
11441146 learner_credit_request = learner_credit_request ,
1145- recent_action = get_action_choice ( SubsidyRequestStates .DECLINED ) ,
1146- status = get_user_message_choice ( SubsidyRequestStates .DECLINED ) ,
1147+ recent_action = LearnerCreditRequestActionTypes .DECLINED ,
1148+ status = LearnerCreditRequestUserMessages .DECLINED ,
11471149 )
11481150
11491151 try :
11501152 with transaction .atomic ():
11511153 learner_credit_request .decline (self .user )
11521154 except (ValidationError , IntegrityError , DatabaseError ) as exc :
1153- action_instance .status = get_user_message_choice ( SubsidyRequestStates .REQUESTED )
1155+ action_instance .status = LearnerCreditRequestActionTypes .REQUESTED
11541156 action_instance .error_reason = get_error_reason_choice (
11551157 LearnerCreditRequestActionErrorReasons .FAILED_DECLINE
11561158 )
1157- action_instance .traceback = str (exc )
1159+ action_instance .traceback = format_traceback (exc )
11581160 action_instance .save ()
11591161
11601162 logger .exception (f"Error declining learner credit request { learner_credit_request_uuid } : { exc } " )
@@ -1178,11 +1180,11 @@ def decline(self, *args, **kwargs):
11781180 try :
11791181 unlink_users_from_enterprise_task .delay (enterprise_customer_uuid , [lms_user_id ])
11801182 except (ConnectionError , TimeoutError , OSError ) as exc :
1181- action_instance .status = get_user_message_choice ( SubsidyRequestStates .REQUESTED )
1183+ action_instance .status = LearnerCreditRequestActionTypes .REQUESTED
11821184 action_instance .error_reason = get_error_reason_choice (
11831185 LearnerCreditRequestActionErrorReasons .FAILED_DECLINE
11841186 )
1185- action_instance .traceback = str (exc )
1187+ action_instance .traceback = format_traceback (exc )
11861188 action_instance .save ()
11871189
11881190 logger .exception (
0 commit comments