Commit 985df577 authored by Gladys Forte's avatar Gladys Forte

{dev bugfix} added condition for id=null add_edit_delete functions on header childs

parent 1667c2f5
......@@ -1192,6 +1192,13 @@ class ChangeRequestFormPost(APIView):
form_header = request.data
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_stake = []
data_list_attach = []
......@@ -1213,10 +1220,6 @@ class ChangeRequestFormPost(APIView):
'template_no': form_header['template_no']
}
# 'company_desc': None,
# 'department_desc': None,
# 'requested_desc': None,
sp1 = transaction.savepoint() # nothing will save to db
serializer = ChangeRequestFormHeaderSerializer(
......
......@@ -293,6 +293,7 @@ def form_add_edit_delete(form_request_body,
# update or create
for i in form_request_body:
if "id" in i:
if not i['id'] is None:
frm_instance = queryset.objects.get(
pk=i['id']
)
......@@ -305,13 +306,12 @@ def form_add_edit_delete(form_request_body,
serializer = serializer_data(frm_instance,
data=data,
partial=partial,
context={"request":self.request})
context={"request": self.request})
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(frm_instance)
self.perform_update(serializer)
new_instance = serializer.data
# comment
crhistory_save(
batch_no,
main_action,
......@@ -328,7 +328,29 @@ def form_add_edit_delete(form_request_body,
}
data = {**i, **frm_code}
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)
self.perform_create(serializer)
......@@ -379,6 +401,7 @@ def attachment_add_edit_delete(form_request_body,
# update or create
for i in form_request_body:
if "id" in i:
if not i['id'] is None:
frm_instance = queryset.objects.get(
pk=i['id']
)
......@@ -453,6 +476,29 @@ def attachment_add_edit_delete(form_request_body,
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
......
......@@ -51,6 +51,7 @@ def tmp_add_edit_delete(tmp_request_body,
# update or create
for i in tmp_request_body:
if "id" in i:
if not i['id'] is None:
tmp_instance = queryset.objects.get(
pk=i['id']
)
......@@ -76,6 +77,34 @@ def tmp_add_edit_delete(tmp_request_body,
old_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:
tmp_code = {
"template_no": template_no
......
......@@ -399,12 +399,6 @@ def FormValidation(function):
return error_message('400', validation_result + ' is already exist for the same level of approval.',
'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
validate = validation_poc_vendor_only(
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