Commit 9706b976 authored by Gladys Forte's avatar Gladys Forte

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

* commit 'fe07283f':
  {dev bugfix} Validation required Form Post
parents d0dad250 fe07283f
...@@ -303,7 +303,7 @@ def TemplateValidation(function): ...@@ -303,7 +303,7 @@ def TemplateValidation(function):
'requested_to_department': 'Department'} 'requested_to_department': 'Department'}
for key in required.keys(): for key in required.keys():
if not key in template_header or template_header[key] == '': if not key in template_header or template_header[key].strip() == '':
return error_message('400', required[key] + ' is required', return error_message('400', required[key] + ' is required',
'failed', status.HTTP_400_BAD_REQUEST) 'failed', status.HTTP_400_BAD_REQUEST)
...@@ -362,72 +362,63 @@ def FormValidation(function): ...@@ -362,72 +362,63 @@ def FormValidation(function):
def wrapper(self, request, *args, **kwargs): def wrapper(self, request, *args, **kwargs):
form_header = request.data form_header = request.data
required = {'requested_to_template_name': 'CR Name',
'requested_to_target_date': 'Date Required',
'requested_to_company': 'Company',
'requested_to_department': 'Department',
'requested_to_user': 'Point of Contact',
'requested_to_priority': 'Priority Level'}
for key in required.keys():
if not key in form_header or form_header[key].strip() == '':
return error_message('400', required[key] + ' is required',
'failed', status.HTTP_400_BAD_REQUEST)
# restrict superuser department # restrict superuser department
if (form_header['requested_by_department'] == 'DEPARTMENT-20190923-0000001' or if (form_header['requested_by_department'] == 'DEPARTMENT-20190923-0000001' or
form_header['requested_to_department'] == 'DEPARTMENT-20190923-0000001'): form_header['requested_to_department'] == 'DEPARTMENT-20190923-0000001'):
message = { return error_message('400', 'Superuser department cannot be selected',
'code': 400, 'failed', status.HTTP_400_BAD_REQUEST)
'status': 'failed',
'message': 'Superuser department cannot be selected',
}
return Response(message,
status=status.HTTP_400_BAD_REQUEST)
frm_approvers = form_header['frm_approvers'] frm_approvers = form_header['frm_approvers']
# Check if Vendor and Requestor are existing on routing table # Check if Vendor and Requestor are existing on routing table
if len(frm_approvers) < 2: if len(frm_approvers) < 2:
message = {
'code': 400, return error_message('400', 'Please make sure to add an Approver, Vendor and Requestor into routing table',
'status': 'failed', 'failed', status.HTTP_400_BAD_REQUEST)
'message': 'Please make sure to add an Approver, Vendor and Requestor into routing table',
}
return Response(message,
status=status.HTTP_400_BAD_REQUEST)
else: else:
result = validation_existing_vendor_requestor(frm_approvers) result = validation_existing_vendor_requestor(frm_approvers)
if result is False: if result is False:
message = {
'code': 400, return error_message('400', 'Please add Vendor/Implementor and Requestor into routing table',
'status': 'failed', 'failed', status.HTTP_400_BAD_REQUEST)
'message': 'Please add Vendor/Implementor and Requestor into routing table',
}
return Response(message,
status=status.HTTP_400_BAD_REQUEST)
# Do not allow adding an approver for the same level # Do not allow adding an approver for the same level
validation_result = validation_approver_same_level(frm_approvers) validation_result = validation_approver_same_level(frm_approvers)
if validation_result is not None: if validation_result is not None:
message = { return error_message('400', validation_result + ' is already exist for the same level of approval.',
'code': 400, 'failed', status.HTTP_400_BAD_REQUEST)
'status': 'failed',
'message': validation_result + ' is already exist for the same level of approval.',
}
return Response(message,
status=status.HTTP_400_BAD_REQUEST)
# Restrict a requestor to submit a CR without atleast 1 approver # Restrict a requestor to submit a CR without atleast 1 approver
counter = validation_existing_approver(frm_approvers) counter = validation_existing_approver(frm_approvers)
if form_header['status'].lower() == 'pending' and counter == 0: if form_header['status'].lower() == 'pending' and counter == 0:
message = { return error_message('400', 'Please select at least 1 approver before submitting this request.',
'code': 400, 'failed', status.HTTP_400_BAD_REQUEST)
'status': 'failed',
'message': 'Please select at least 1 approver before submitting this request.',
}
return Response(message, status=status.HTTP_400_BAD_REQUEST)
# Do not allow saving user as Vendor and other delegation # Do not allow saving user as Vendor and other delegation
validate = validation_poc_vendor_only( validate = validation_poc_vendor_only(
form_header['requested_to_user'], frm_approvers) form_header['requested_to_user'], frm_approvers)
if validate is True: if validate is True:
message = { return error_message('400', 'Point of contact can only be assign to Vendor/Implementor',
'code': 400, 'failed', status.HTTP_400_BAD_REQUEST)
'status': 'failed',
'message': 'Point of contact can only be assign to Vendor/Implementor', # Do not allow to save Vendor same level to other delegation
} validate = validation_vendor_unique_level(frm_approvers)
return Response(message, if validate is True:
status=status.HTTP_400_BAD_REQUEST) 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 function(self, request, *args, **kwargs)
return wrapper 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