Commit 93ea28fe authored by Gladys Forte's avatar Gladys Forte

clean resubmit

parent 507a79aa
......@@ -383,37 +383,30 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
)
def re_submit(self, request, *args, **kwargs):
form_code = kwargs['form_code']
# generate batchno history
batchno = get_max_batchno("batch")
# get old data
old_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
# partial update
partial = kwargs.pop('partial', True)
instance = self.get_object()
old_instance = list(old_instance)
# get template no
tmp_no = models.ChangeRequestFormHeader.objects.values_list(
'template_no', flat=True).get(form_code=form_code)
form_code = kwargs['form_code']
status_update = {"status": 'Draft'}
# get prefix of template
CR_Prefix = models.ChangeRequestTemplateHeader.objects.values_list(
'requested_to_template_id', flat=True).get(template_no=tmp_no)
serializer = self.get_serializer(instance,
data=status_update,
partial=partial)
# update form header to draft and template id to prefix
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update(
requested_to_template_id=CR_Prefix,
status='Draft')
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
# get new data
new_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
form_header = get_object_or_404(models.ChangeRequestFormHeader,
pk=instance.id)
new_instance = model_to_dict(form_header)
new_instance = list(new_instance)
# save history in form header
crhistory_save(
batchno,
......@@ -425,46 +418,43 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
new_instance
)
approver_data = []
# get all approvers of form
approvers = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code)
form_code=form_code)
for approver in approvers:
# get old data
old_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
approver_add = {
'id': approver.id,
'action': None,
'remarks': None,
'date_sent': None,
'action_date': None
}
old_instance = list(old_instance)
approver_data.append(approver_add)
# reset details
models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).update(action=None,
remarks=None,
date_sent=None,
action_date=None)
# get new data
new_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
new_instance = list(new_instance)
change_request.form_add_edit_delete(
approver_data,
models.ChangeRequestFormApprovers,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
serializers.ChangeRequestFormApproversSerializer,
partial,
self,
form_code,
batchno,
enums.CREnum.RESUBMIT.value
)
# save history in form approver
crhistory_save(
batchno,
enums.CREnum.RESUBMIT.value,
enums.CREnum.UPDATE.value,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
form_code,
old_instance,
new_instance
)
return Response(
"Change request form successfully resubmitted",
status=status.HTTP_200_OK
message = status_message_response(
200, 'success',
'Change request form successfully re submitted',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
# actions
@action(
methods=['PATCH'], detail=False,
......
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