Commit 202b9bf5 authored by Gladys Forte's avatar Gladys Forte

save

parent 06029801
......@@ -69,16 +69,59 @@ class ChangeRequestFormDetailsSerializer(
class ChangeRequestFormHeaderSerializer(
WritableNestedModelSerializer
serializers.ModelSerializer
):
frm_approvers = ChangeRequestFormApproversSerializer(
many=True, required=False)
many=True, read_only=True)
# frm_stakes = ChangeRequestFormStakeHoldersSerializer(
# many=True, required=False)
frm_stakes = ChangeRequestFormStakeHoldersSerializer(
many=True, required=False)
many=True, read_only=True)
frm_attachments = ChangeRequestFormAttachmentsSerializer(
many=True, required=False)
many=True, read_only=True)
frm_details = ChangeRequestFormDetailsSerializer(
many=True, required=False)
many=True, read_only=True)
# def update(self, instance, validated_data):
# Update the book instance
# instance.requested_to_template_name = validated_data['requested_to_template_name']
# instance.requested_to_objective = validated_data['requested_to_objective']
# instance.requested_to_target_date = validated_data['requested_to_target_date']
# instance.requested_to_priority = validated_data['requested_to_priority']
# instance.description = validated_data['description']
# instance.status = validated_data['status']
# instance.company_desc = validated_data['company_desc']
# instance.department_desc = validated_data['department_desc']
# instance.requested_desc = validated_data['requested_desc']
# instance.requested_to_template_id = validated_data['requested_to_template_id']
# instance.requested_to_company = validated_data['requested_to_company']
# instance.requested_to_department = validated_data['requested_to_department']
# instance.requested_to_user = validated_data['requested_to_user']
# instance.requested_by_user = validated_data['requested_by_user']
# instance.requested_by_department = validated_data['requested_by_department']
# instance.template_no = validated_data['template_no']
# instance.save()
# Delete any pages not included in the request
# approvers_ids = [item.id for item in validated_data['frm_approvers']]
# for i in validated_data['frm_approvers']:
# print(i)
# print(approvers_ids)
# for page in instance.frm_approvers:
# if page.id not in approvers_ids:
# page.delete()
# # Create or update page instances that are in the request
# for item in validated_data['pages']:
# page = Page(id=item['page_id'], text=item['text'], book=instance)
# page.save()
# return instance
def to_representation(self, instance):
ret = super().to_representation(instance)
......
......@@ -30,6 +30,7 @@ from app.applicationlayer.cms.utils_cr import (number_generator,
from app.entities import enums
from django.forms.models import model_to_dict
import json
from django.shortcuts import get_object_or_404
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
......@@ -587,8 +588,68 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
url_path='save', url_name='save'
)
def save(self, request, *args, **kwargs):
form_code = kwargs['form_code']
form_header_data = request.data
# get pk
frm_id = models.ChangeRequestFormHeader.objects.get(form_code=form_code)
# get data CR Form Header
form_header = get_object_or_404(
models.ChangeRequestFormHeader.objects.all(), pk=frm_id.id)
serializer = serializers.ChangeRequestFormHeaderSerializer(
form_header, data=form_header_data)
if serializer.is_valid():
serializer.save()
# get approvers data
approver_id = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code)
# list existing id to variable
existing_approver_ids = [item.id for item in approver_id]
frm_approvers = form_header_data['frm_approvers']
updated_approver_ids = []
# get all ids
for frm_approver in frm_approvers:
if "id" in frm_approver:
updated_approver_ids.append(frm_approver['id'])
# Delete any approvers not included in the request
for e in existing_approver_ids:
if e not in updated_approver_ids:
models.ChangeRequestFormApprovers.objects.filter(
pk=e).delete()
# Create or update approver data that are in the request
for frm_approver in frm_approvers:
if "id" in frm_approver:
print(frm_approver['id'])
models.ChangeRequestFormApprovers.objects.filter(
pk=frm_approver['id']).update(level=frm_approver['level'],
delegation=frm_approver['delegation'],
created=datetime.now(),
remarks=None,
action=None,
action_date=None,
date_sent=None,
user='USER-20190913-0000009',
tmp_approver=frm_approver['tmp_approver'])
else:
models.ChangeRequestFormApprovers.objects.create(
level=frm_approver['level'],
delegation=frm_approver['delegation'],
created=datetime.now(),
user='USER-20190913-0000009',
form_code=frm_approver['form_code'])
return Response(serializer.data)
return Response(
"Change request form successfully re routed",
......
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