Commit 9aef46b1 authored by Gladys Forte's avatar Gladys Forte

Merge pull request #781 in RMS/api-main-service from staging to demo

* commit 'ddea55ac':
  {dev bugfix} added condition for id=null add_edit_delete functions on header childs
parents d1c80aa6 ddea55ac
...@@ -1192,6 +1192,13 @@ class ChangeRequestFormPost(APIView): ...@@ -1192,6 +1192,13 @@ class ChangeRequestFormPost(APIView):
form_header = request.data form_header = request.data
try: try:
# Restrict a requestor to submit a CR without atleast 1 approver
counter = validation_existing_approver(form_header['frm_approvers'])
if form_header['status'].lower() == 'pending' and counter == 0:
return error_message('400', 'Please select at least 1 approver before submitting this request.',
'failed', status.HTTP_400_BAD_REQUEST)
data_list_approver = [] data_list_approver = []
data_list_stake = [] data_list_stake = []
data_list_attach = [] data_list_attach = []
...@@ -1213,10 +1220,6 @@ class ChangeRequestFormPost(APIView): ...@@ -1213,10 +1220,6 @@ class ChangeRequestFormPost(APIView):
'template_no': form_header['template_no'] 'template_no': form_header['template_no']
} }
# 'company_desc': None,
# 'department_desc': None,
# 'requested_desc': None,
sp1 = transaction.savepoint() # nothing will save to db sp1 = transaction.savepoint() # nothing will save to db
serializer = ChangeRequestFormHeaderSerializer( serializer = ChangeRequestFormHeaderSerializer(
......
...@@ -293,6 +293,7 @@ def form_add_edit_delete(form_request_body, ...@@ -293,6 +293,7 @@ def form_add_edit_delete(form_request_body,
# update or create # update or create
for i in form_request_body: for i in form_request_body:
if "id" in i: if "id" in i:
if not i['id'] is None:
frm_instance = queryset.objects.get( frm_instance = queryset.objects.get(
pk=i['id'] pk=i['id']
) )
...@@ -305,13 +306,12 @@ def form_add_edit_delete(form_request_body, ...@@ -305,13 +306,12 @@ def form_add_edit_delete(form_request_body,
serializer = serializer_data(frm_instance, serializer = serializer_data(frm_instance,
data=data, data=data,
partial=partial, partial=partial,
context={"request":self.request}) context={"request": self.request})
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(frm_instance) old_instance = model_to_dict(frm_instance)
self.perform_update(serializer) self.perform_update(serializer)
new_instance = serializer.data new_instance = serializer.data
# comment
crhistory_save( crhistory_save(
batch_no, batch_no,
main_action, main_action,
...@@ -328,7 +328,29 @@ def form_add_edit_delete(form_request_body, ...@@ -328,7 +328,29 @@ def form_add_edit_delete(form_request_body,
} }
data = {**i, **frm_code} data = {**i, **frm_code}
serializer = serializer_data(data=data, serializer = serializer_data(data=data,
context={"request":self.request}) context={"request": self.request})
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
new_instance = serializer.data
crhistory_save(
batch_no,
main_action,
enums.CREnum.ADD.value,
entity,
form_code,
None,
new_instance
)
else:
frm_code = {
"form_code": form_code
}
data = {**i, **frm_code}
serializer = serializer_data(data=data,
context={"request": self.request})
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) self.perform_create(serializer)
...@@ -379,6 +401,7 @@ def attachment_add_edit_delete(form_request_body, ...@@ -379,6 +401,7 @@ def attachment_add_edit_delete(form_request_body,
# update or create # update or create
for i in form_request_body: for i in form_request_body:
if "id" in i: if "id" in i:
if not i['id'] is None:
frm_instance = queryset.objects.get( frm_instance = queryset.objects.get(
pk=i['id'] pk=i['id']
) )
...@@ -453,6 +476,29 @@ def attachment_add_edit_delete(form_request_body, ...@@ -453,6 +476,29 @@ def attachment_add_edit_delete(form_request_body,
new_instance new_instance
) )
else:
frm_code = {
"form_code": form_code,
"uploaded_by": id_number
}
data = {**i, **frm_code}
serializer = serializer_data(data=data,
context={"request":self.request})
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
new_instance = serializer.data
crhistory_save(
batch_no,
main_action,
enums.CREnum.ADD.value,
entity,
form_code,
None,
new_instance
)
return True return True
......
...@@ -51,6 +51,7 @@ def tmp_add_edit_delete(tmp_request_body, ...@@ -51,6 +51,7 @@ def tmp_add_edit_delete(tmp_request_body,
# update or create # update or create
for i in tmp_request_body: for i in tmp_request_body:
if "id" in i: if "id" in i:
if not i['id'] is None:
tmp_instance = queryset.objects.get( tmp_instance = queryset.objects.get(
pk=i['id'] pk=i['id']
) )
...@@ -76,6 +77,34 @@ def tmp_add_edit_delete(tmp_request_body, ...@@ -76,6 +77,34 @@ def tmp_add_edit_delete(tmp_request_body,
old_instance, old_instance,
new_instance new_instance
) )
else:
tmp_code = {
"template_no": template_no
}
data = {**i, **tmp_code}
serializer = serializer_data(data=data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
new_instance = serializer.data
try:
log_save(
enums.LogEnum.ADD.value,
enum_type,
old_instance['id'],
'',
new_instance
)
except Exception as e:
log_save(
enums.LogEnum.ADD.value,
enum_type,
new_instance['id'],
'',
new_instance
)
else: else:
tmp_code = { tmp_code = {
"template_no": template_no "template_no": template_no
......
...@@ -399,12 +399,6 @@ def FormValidation(function): ...@@ -399,12 +399,6 @@ def FormValidation(function):
return error_message('400', validation_result + ' is already exist for the same level of approval.', return error_message('400', validation_result + ' is already exist for the same level of approval.',
'failed', status.HTTP_400_BAD_REQUEST) 'failed', status.HTTP_400_BAD_REQUEST)
# Restrict a requestor to submit a CR without atleast 1 approver
counter = validation_existing_approver(frm_approvers)
if form_header['status'].lower() == 'pending' and counter == 0:
return error_message('400', 'Please select at least 1 approver before submitting this request.',
'failed', 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)
......
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