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
c0fd1e99
Commit
c0fd1e99
authored
Sep 12, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
re route and resubmit
parent
26afe2ea
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
112 additions
and
31 deletions
+112
-31
app/applicationlayer/cms/form/serializers.py
app/applicationlayer/cms/form/serializers.py
+17
-5
app/applicationlayer/cms/form/views.py
app/applicationlayer/cms/form/views.py
+95
-26
No files found.
app/applicationlayer/cms/form/serializers.py
View file @
c0fd1e99
...
@@ -63,7 +63,7 @@ class ChangeRequestFormDetailsSerializer(
...
@@ -63,7 +63,7 @@ class ChangeRequestFormDetailsSerializer(
class
ChangeRequestFormHeaderSerializer
(
class
ChangeRequestFormHeaderSerializer
(
serializers
.
ModelSerializer
WritableNested
ModelSerializer
):
):
frm_approvers
=
ChangeRequestFormApproversSerializer
(
frm_approvers
=
ChangeRequestFormApproversSerializer
(
many
=
True
,
required
=
False
)
many
=
True
,
required
=
False
)
...
@@ -73,13 +73,15 @@ class ChangeRequestFormHeaderSerializer(
...
@@ -73,13 +73,15 @@ class ChangeRequestFormHeaderSerializer(
many
=
True
,
required
=
False
)
many
=
True
,
required
=
False
)
frm_details
=
ChangeRequestFormDetailsSerializer
(
frm_details
=
ChangeRequestFormDetailsSerializer
(
many
=
True
,
required
=
False
)
many
=
True
,
required
=
False
)
def
to_representation
(
self
,
instance
):
def
to_representation
(
self
,
instance
):
ret
=
super
()
.
to_representation
(
instance
)
ret
=
super
()
.
to_representation
(
instance
)
try
:
try
:
# id_number = self.context.get('request').META.get('user')
# id_number = self.context.get('request').META.get('user')
user
=
self
.
context
[
'request'
]
.
user
id_number
=
"USER-20190909-0000005"
print
(
user
)
# id_number = "USER-20190909-0000005"
current_level
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
current_level
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
ret
[
'form_code'
])
&
Q
(
form_code
=
ret
[
'form_code'
])
&
Q
(
archived_at
=
None
)
&
Q
(
archived_at
=
None
)
&
...
@@ -105,5 +107,15 @@ class ChangeRequestFormHeaderSerializer(
...
@@ -105,5 +107,15 @@ class ChangeRequestFormHeaderSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestFormHeader
model
=
models
.
ChangeRequestFormHeader
fields
=
'__all__'
# fields = '__all__'
fields
=
(
'form_code'
,
'requested_to_template_name'
,
'requested_to_objective'
,
'requested_to_target_date'
,
'requested_to_priority'
,
'description'
,
'created'
,
'cancel_date'
,
'status'
,
'company_desc'
,
'department_desc'
,
'requested_desc'
,
'requested_to_template_id'
,
'requested_to_company'
,
'requested_to_department'
,
'requested_to_user'
,
'requested_by_user'
,
'requested_by_department'
,
'template_no'
,
'frm_approvers'
,
'frm_stakes'
,
'frm_attachments'
,
'frm_details'
)
read_only_fields
=
[
'created'
,
'archived_at'
,
'form_code'
]
read_only_fields
=
[
'created'
,
'archived_at'
,
'form_code'
]
app/applicationlayer/cms/form/views.py
View file @
c0fd1e99
...
@@ -23,6 +23,8 @@ from django.db import transaction, IntegrityError, connection
...
@@ -23,6 +23,8 @@ from django.db import transaction, IntegrityError, connection
from
app.applicationlayer.utils
import
QuerySetHelper
from
app.applicationlayer.utils
import
QuerySetHelper
from
app.businesslayer.changerequest
import
change_request
from
app.businesslayer.changerequest
import
change_request
from
app.applicationlayer.cms.utils_cr
import
number_generator
from
app.applicationlayer.cms.utils_cr
import
number_generator
from
app.entities
import
enums
from
django.forms.models
import
model_to_dict
APPROVER_MESSAGE
=
settings
.
APPROVER_MESSAGE
APPROVER_MESSAGE
=
settings
.
APPROVER_MESSAGE
...
@@ -263,42 +265,109 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -263,42 +265,109 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
@
transaction
.
atomic
@
action
(
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
're_route'
,
url_name
=
're_route'
partial
=
kwargs
.
pop
(
'partial'
,
False
)
)
instance
=
self
.
get_object
()
def
re_route
(
self
,
request
,
*
args
,
**
kwargs
):
template_no
=
kwargs
[
'template_no'
]
form_code
=
kwargs
[
'form_code'
]
print
(
form_code
)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
update
(
status
=
'Pending'
)
tmp_no_exists
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
template_no
=
template_no
)
form_code
=
form_code
)
.
update
(
action
=
None
,
remarks
=
None
,
date_sent
=
None
)
return
Response
(
"Change request form successfully re routed"
,
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
're_submit'
,
url_name
=
're_submit'
)
def
re_submit
(
self
,
request
,
*
args
,
**
kwargs
):
if
not
tmp_no_exists
:
# get form code to be re created
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
form_code
=
kwargs
[
'form_code'
]
serializer
.
is_valid
(
raise_exception
=
True
)
frm_id
=
models
.
ChangeRequestFormHeader
.
objects
.
get
(
form_code
=
form_code
)
obj
=
models
.
ChangeRequestFormHeader
.
objects
.
get
(
pk
=
frm_id
.
pk
)
obj
.
pk
=
None
obj
.
form_code
=
"Temp-Form-Code"
obj
.
old_form_code
=
form_code
obj
.
status
=
'Draft'
obj
.
save
()
new_frmheader_code
=
number_generator
(
enums
.
GenerateCode
.
FORM
.
value
,
obj
.
id
)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
pk
=
obj
.
id
)
.
update
(
form_code
=
new_frmheader_code
)
old_instance
=
model_to_dict
(
instance
)
# re create approvers
self
.
perform_update
(
serializer
)
approvers
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
new_instance
=
serializer
.
data
form_code
=
form_code
)
# print(new_instance)
counter
=
0
for
approver
in
approvers
:
to_delete
=
approver
.
pk
counter
=
counter
+
1
approver
.
pk
=
None
approver
.
code
=
counter
approver
.
remarks
=
None
approver
.
action
=
None
approver
.
date_sent
=
None
approver
.
save
()
new_frmapp_code
=
number_generator
(
enums
.
GenerateCode
.
FORM_APPROVER
.
value
,
approver
.
id
)
crhistory_save
(
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
enums
.
LogEnum
.
UPDATE
.
value
,
pk
=
approver
.
id
)
.
update
(
code
=
new_frmapp_code
,
enums
.
CREntitiesEnum
.
CR_TMP_HEADER
.
value
,
form_code
=
new_frmheader_code
)
new_instance
[
'template_no'
],
old_instance
,
# delete old data
new_instance
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
)
pk
=
to_delete
)
.
delete
()
# re create stakeholders
stakes
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
form_code
=
form_code
)
return
Response
(
serializer
.
data
)
counter
=
0
for
stake
in
stakes
:
to_delete
=
stake
.
pk
counter
=
counter
+
1
stake
.
pk
=
None
stake
.
code
=
counter
stake
.
save
()
new_frmstake_code
=
number_generator
(
enums
.
GenerateCode
.
FORM_STAKE
.
value
,
stake
.
id
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
stake
.
id
)
.
update
(
code
=
new_frmstake_code
,
form_code
=
new_frmheader_code
)
# delete old data
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
to_delete
)
.
delete
()
return
Response
(
return
Response
(
"
Template cannot edit due to existing transaction/s
"
,
"
Change request form successfully resubmitted
"
,
status
=
status
.
HTTP_
400_BAD_REQUEST
status
=
status
.
HTTP_
200_OK
)
)
class
ChangeRequestFormApproversViewset
(
meviewsets
.
ModelViewSet
):
class
ChangeRequestFormApproversViewset
(
meviewsets
.
ModelViewSet
):
...
...
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