Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
R
red-ci-cd
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
red-group-test
red-ci-cd
Commits
202b9bf5
Commit
202b9bf5
authored
Sep 19, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save
parent
06029801
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
6 deletions
+110
-6
app/applicationlayer/cms/form/serializers.py
app/applicationlayer/cms/form/serializers.py
+48
-5
app/applicationlayer/cms/form/views.py
app/applicationlayer/cms/form/views.py
+62
-1
No files found.
app/applicationlayer/cms/form/serializers.py
View file @
202b9bf5
...
...
@@ -69,16 +69,59 @@ class ChangeRequestFormDetailsSerializer(
class
ChangeRequestFormHeaderSerializer
(
WritableNested
ModelSerializer
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
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
frm_attachments
=
ChangeRequestFormAttachmentsSerializer
(
many
=
True
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
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
)
...
...
app/applicationlayer/cms/form/views.py
View file @
202b9bf5
...
...
@@ -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"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment