Commit 563a638b authored by Gladys Forte's avatar Gladys Forte

Merge pull request #762 in RMS/api-main-service from core-dev-gladys to RMSv2

* commit '59a98920':
  {dev bugfix} fix server error 500 on form post due to remove key company_desc, deprtment_desc, requested_desc
parents e8135d70 59a98920
......@@ -881,14 +881,14 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
form_code = kwargs['form_code']
form_data = request.data
# Restrict a requestor to submit a CR without atleast 1 approver
counter = change_request_template.validation_existing_approver(
form_data['frm_approvers'])
if counter == 0:
return error_message('400', 'Please select at least 1 approver before submitting this request.',
'failed', status.HTTP_400_BAD_REQUEST)
# generate batchno history
batchno = get_max_batchno("batch")
......@@ -1194,13 +1194,14 @@ class ChangeRequestFormPost(APIView):
@FormValidation
@transaction.atomic()
def post(self, request):
form_header = request.data
try:
data_list_approver = []
data_list_stake = []
data_list_attach = []
data_list_detail = []
form_header_data = {
'requested_to_template_name': form_header['requested_to_template_name'],
'requested_to_template_id': form_header['requested_to_template_id'],
......@@ -1209,9 +1210,9 @@ class ChangeRequestFormPost(APIView):
'requested_to_priority': form_header['requested_to_priority'],
'description': form_header['description'],
'status': form_header['status'],
'company_desc': form_header['company_desc'],
'department_desc': form_header['department_desc'],
'requested_desc': form_header['requested_desc'],
'company_desc': None,
'department_desc': None,
'requested_desc': None,
'requested_by_department': form_header['requested_by_department'],
'requested_by_user': form_header['requested_by_user'],
'requested_to_company': form_header['requested_to_company'],
......@@ -1219,7 +1220,7 @@ class ChangeRequestFormPost(APIView):
'requested_to_user': form_header['requested_to_user'],
'template_no': form_header['template_no']
}
sp1 = transaction.savepoint() # nothing will save to db
serializer = ChangeRequestFormHeaderSerializer(
......@@ -1239,7 +1240,7 @@ class ChangeRequestFormPost(APIView):
serializer.save()
frm_id = serializer.data['form_code']
# create form approvers
frm_approvers = form_header['frm_approvers']
for frm_approver in frm_approvers:
......@@ -1387,7 +1388,7 @@ class ChangeRequestFormPost(APIView):
except Exception as e:
transaction.savepoint_rollback(sp1)
message = {
'code': 500,
'status': 'failed',
......
......@@ -138,8 +138,9 @@ def validation_approver_same_level(approvers):
for approver in approvers:
if 'user' in approver and 'level' in approver:
data_list_appr.append(approver)
if not approver['user'] is None:
data_list_appr.append(approver)
# add checking
approvers_data = sorted(data_list_appr,
key=itemgetter('level', 'user'))
......
......@@ -358,7 +358,7 @@ def FormValidation(function):
@wraps(function)
def wrapper(self, request, *args, **kwargs):
form_header = request.data
required = {'requested_to_template_name': 'CR Name',
'requested_to_target_date': 'Date Required',
'requested_to_company': 'Company',
......@@ -391,9 +391,10 @@ def FormValidation(function):
return error_message('400', 'Please add Vendor/Implementor and Requestor into routing table',
'failed', status.HTTP_400_BAD_REQUEST)
# Do not allow adding an approver for the same level
validation_result = validation_approver_same_level(frm_approvers)
if validation_result is not None:
return error_message('400', validation_result + ' is already exist for the same level of approval.',
'failed', status.HTTP_400_BAD_REQUEST)
......@@ -416,6 +417,6 @@ def FormValidation(function):
if validate is True:
return error_message('400', 'Vendor/Implementor cannot have same level with other delegation/s',
'failed', status.HTTP_400_BAD_REQUEST)
return function(self, request, *args, **kwargs)
return wrapper
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment