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
c9e9ad2e
Commit
c9e9ad2e
authored
Sep 25, 2019
by
John Red Medrano
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'gladys-dev2' of
http://42.61.118.105:7990/scm/rms/api-main-service
into red-develop
parents
ccd3ed86
e913cfde
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
429 additions
and
1080 deletions
+429
-1080
app/applicationlayer/cms/form/views.py
app/applicationlayer/cms/form/views.py
+121
-946
app/applicationlayer/cms/template/serializers.py
app/applicationlayer/cms/template/serializers.py
+11
-11
app/applicationlayer/cms/template/views.py
app/applicationlayer/cms/template/views.py
+69
-83
app/applicationlayer/cms/utils_cr.py
app/applicationlayer/cms/utils_cr.py
+22
-2
app/businesslayer/changerequest/change_request.py
app/businesslayer/changerequest/change_request.py
+83
-0
app/businesslayer/changerequest/change_request_template.py
app/businesslayer/changerequest/change_request_template.py
+87
-0
app/entities/migrations/0007_auto_20190924_1206.py
app/entities/migrations/0007_auto_20190924_1206.py
+33
-0
app/entities/models.py
app/entities/models.py
+3
-38
No files found.
app/applicationlayer/cms/form/views.py
View file @
c9e9ad2e
...
@@ -598,44 +598,33 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -598,44 +598,33 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
status
=
status
.
HTTP_200_OK
status
=
status
.
HTTP_200_OK
)
)
@
transaction
.
atomic
@
action
(
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'save'
,
url_name
=
'save'
url_path
=
'save'
,
url_name
=
'save'
)
)
def
save
(
self
,
request
,
*
args
,
**
kwargs
):
def
save
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
kwargs
[
'form_code'
]
partial
=
kwargs
.
pop
(
'partial'
,
False
)
form_header_data
=
request
.
data
instance
=
self
.
get_object
()
# get pk
form_code
=
kwargs
[
'form_code'
]
f
rm_id
=
models
.
ChangeRequestFormHeader
.
objects
.
get
(
form_code
=
form_code
)
f
orm_data
=
request
.
data
# generate batchno history
# generate batchno history
batchno
=
get_max_batchno
(
"batch"
)
batchno
=
get_max_batchno
(
"batch"
)
# get old data
old_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
values
()
old_instance
=
list
(
old_instance
)
# get data CR Form Header
# update form header
form_header
=
get_object_or_404
(
serializer
=
self
.
get_serializer
(
instance
,
models
.
ChangeRequestFormHeader
.
objects
.
all
(),
pk
=
frm_id
.
id
)
data
=
form_data
,
partial
=
partial
)
serializer
=
serializers
.
ChangeRequestFormHeaderSerializer
(
form_header
,
data
=
form_header_data
)
if
serializer
.
is_valid
():
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
# get new data
new_instance
=
serializer
.
data
new_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
print
(
serializer
.
errors
)
form_code
=
form_code
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form header
# save history in form header
crhistory_save
(
crhistory_save
(
batchno
,
batchno
,
...
@@ -647,504 +636,91 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -647,504 +636,91 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
new_instance
new_instance
)
)
# ---------------------------------------------------------------------
change_request
.
form_add_edit_delete
(
# get approvers data
form_data
[
'frm_approvers'
],
approver_id
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
models
.
ChangeRequestFormApprovers
,
form_code
=
form_code
)
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
serializers
.
ChangeRequestFormApproversSerializer
,
# list existing id to variable
partial
,
existing_approver_ids
=
[
item
.
id
for
item
in
approver_id
]
self
,
form_code
,
frm_approvers
=
form_header_data
[
'frm_approvers'
]
batchno
,
enums
.
CREnum
.
SAVE
.
value
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
:
# get old data
old_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
old_instance
,
None
)
# Create or update approver data that are in the request
for
frm_approver
in
frm_approvers
:
if
"id"
in
frm_approver
:
# get old data
old_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
frm_approver
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
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
=
frm_approver
[
'user'
],
tmp_approver
=
frm_approver
[
'tmp_approver'
])
# get new data
new_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
frm_approver
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_approver
[
'user'
])
cre
=
models
.
ChangeRequestFormApprovers
.
objects
.
create
(
level
=
frm_approver
[
'level'
],
delegation
=
frm_approver
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
user_instance
,
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_APPROVER
.
value
,
cre
.
id
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get stakes data
stakes_id
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_stakes_ids
=
[
item
.
id
for
item
in
stakes_id
]
frm_stakes
=
form_header_data
[
'frm_stakes'
]
updated_stakes_ids
=
[]
# get all ids
for
frm_stake
in
frm_stakes
:
if
"id"
in
frm_stake
:
updated_stakes_ids
.
append
(
frm_stake
[
'id'
])
# Delete any stakes not included in the request
for
e
in
existing_stakes_ids
:
if
e
not
in
updated_stakes_ids
:
# get old data
old_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
old_instance
,
None
)
# Create or update stake data that are in the request
for
frm_stake
in
frm_stakes
:
if
"id"
in
frm_stake
:
# get old data
old_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
update
(
delegation
=
frm_stake
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
frm_stake
[
'user'
],
tmp_stake
=
frm_stake
[
'tmp_stake'
])
# get new data
new_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_stake
[
'user'
])
cre
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
create
(
delegation
=
frm_stake
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
user_instance
,
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_STAKE
.
value
,
cre
.
id
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get attachments data
attach_id
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_attach_ids
=
[
item
.
id
for
item
in
attach_id
]
frm_attach
=
form_header_data
[
'frm_attachments'
]
updated_attach_ids
=
[]
# get all ids
for
frm_att
in
frm_attach
:
if
"id"
in
frm_att
:
updated_attach_ids
.
append
(
frm_att
[
'id'
])
# Delete any attachments not included in the request
for
e
in
existing_attach_ids
:
if
e
not
in
updated_attach_ids
:
# get old data
old_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
old_instance
,
None
)
# Create or update attachments data that are in the request
change_request
.
form_add_edit_delete
(
for
frm_att
in
frm_attach
:
form_data
[
'frm_stakes'
],
models
.
ChangeRequestFormStakeHolders
,
if
"id"
in
frm_att
:
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
serializers
.
ChangeRequestFormStakeHoldersSerializer
,
# get old data
partial
,
old_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
self
,
pk
=
frm_att
[
'id'
])
.
values
()
form_code
,
batchno
,
old_instance
=
list
(
old_instance
)
enums
.
CREnum
.
SAVE
.
value
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
frm_att
[
'id'
])
.
update
(
attachment_type
=
frm_att
[
'attachment_type'
],
attachment_name
=
frm_att
[
'attachment_name'
],
file_name
=
frm_att
[
'file_name'
],
description
=
frm_att
[
'description'
],
file_upload
=
frm_att
[
'file_upload'
],
uploaded_by
=
frm_att
[
'uploaded_by'
],
created
=
datetime
.
now
())
# get new data
new_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
frm_att
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_att
[
'uploaded_by'
])
cre
=
models
.
ChangeRequestFormAttachments
.
objects
.
create
(
attachment_type
=
frm_att
[
'attachment_type'
],
attachment_name
=
frm_att
[
'attachment_name'
],
file_name
=
frm_att
[
'file_name'
],
description
=
frm_att
[
'description'
],
file_upload
=
frm_att
[
'file_upload'
],
uploaded_by
=
user_instance
,
created
=
datetime
.
now
(),
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_ATTACH
.
value
,
cre
.
id
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get details data
detail_id
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_detail_ids
=
[
item
.
id
for
item
in
detail_id
]
frm_details
=
form_header_data
[
'frm_details'
]
change_request
.
form_add_edit_delete
(
form_data
[
'frm_attachments'
],
models
.
ChangeRequestFormAttachments
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
serializers
.
ChangeRequestFormAttachmentsSerializer
,
partial
,
self
,
form_code
,
batchno
,
enums
.
CREnum
.
SAVE
.
value
)
updated_detail_ids
=
[]
change_request
.
form_add_edit_delete
(
form_data
[
'frm_details'
],
# get all ids
models
.
ChangeRequestFormDetails
,
for
frm_detail
in
frm_details
:
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
if
"id"
in
frm_detail
:
serializers
.
ChangeRequestFormDetailsSerializer
,
updated_detail_ids
.
append
(
frm_detail
[
'id'
])
partial
,
self
,
# Delete any attachments not included in the request
form_code
,
for
e
in
existing_detail_ids
:
batchno
,
if
e
not
in
updated_detail_ids
:
enums
.
CREnum
.
SAVE
.
value
)
# get old data
old_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
old_instance
,
None
)
# Create or update attachments data that are in the request
serializer
=
self
.
get_serializer
(
instance
)
for
frm_detail
in
frm_details
:
if
"id"
in
frm_detail
:
# get old data
old_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
update
(
field_idx
=
frm_detail
[
'field_idx'
],
field_ref
=
frm_detail
[
'field_ref'
],
field_val
=
frm_detail
[
'field_val'
],
field_props
=
frm_detail
[
'field_props'
],
created
=
datetime
.
now
())
# get new data
new_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
cre
=
models
.
ChangeRequestFormDetails
.
objects
.
create
(
field_idx
=
frm_detail
[
'field_idx'
],
field_ref
=
frm_detail
[
'field_ref'
],
field_val
=
frm_detail
[
'field_val'
],
field_props
=
frm_detail
[
'field_props'
],
created
=
datetime
.
now
(),
code
=
'try'
,
form_code
=
frm_id
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_DETAIL
.
value
,
cre
.
id
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SAVE
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
None
,
new_instance
)
serializer
=
self
.
get_serializer
(
frm_id
)
message
=
status_message_response
(
message
=
status_message_response
(
200
,
'success'
,
200
,
'success'
,
'Change Request successfully saved'
,
serializer
.
data
'Change Request successfully saved'
,
serializer
.
data
)
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
@
transaction
.
atomic
@
action
(
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'submit'
,
url_name
=
'submit'
url_path
=
'submit'
,
url_name
=
'submit'
)
)
def
submit
(
self
,
request
,
*
args
,
**
kwargs
):
def
submit
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
kwargs
[
'form_code'
]
partial
=
kwargs
.
pop
(
'partial'
,
False
)
form_header_data
=
request
.
data
instance
=
self
.
get_object
()
# get pk
form_code
=
kwargs
[
'form_code'
]
f
rm_id
=
models
.
ChangeRequestFormHeader
.
objects
.
get
(
form_code
=
form_code
)
f
orm_data
=
request
.
data
# generate batchno history
# generate batchno history
batchno
=
get_max_batchno
(
"batch"
)
batchno
=
get_max_batchno
(
"batch"
)
# get old data
old_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
values
()
old_instance
=
list
(
old_instance
)
# get data CR Form Header
form_header
=
get_object_or_404
(
models
.
ChangeRequestFormHeader
.
objects
.
all
(),
pk
=
frm_id
.
id
)
serializer
=
serializers
.
ChangeRequestFormHeaderSerializer
(
# update form header
form_header
,
data
=
form_header_data
)
serializer
=
self
.
get_serializer
(
instance
,
data
=
form_data
,
partial
=
partial
)
if
serializer
.
is_valid
():
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
save
()
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
print
(
serializer
.
errors
)
print
(
serializer
.
errors
)
# get new data
new_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form header
# save history in form header
crhistory_save
(
crhistory_save
(
batchno
,
batchno
,
...
@@ -1156,461 +732,60 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -1156,461 +732,60 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
new_instance
new_instance
)
)
# ---------------------------------------------------------------------
change_request
.
form_add_edit_delete
(
# get approvers data
form_data
[
'frm_approvers'
],
approver_id
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
models
.
ChangeRequestFormApprovers
,
form_code
=
form_code
)
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
serializers
.
ChangeRequestFormApproversSerializer
,
# list existing id to variable
partial
,
existing_approver_ids
=
[
item
.
id
for
item
in
approver_id
]
self
,
form_code
,
frm_approvers
=
form_header_data
[
'frm_approvers'
]
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
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
:
# get old data
old_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
old_instance
,
None
)
# Create or update approver data that are in the request
for
frm_approver
in
frm_approvers
:
if
"id"
in
frm_approver
:
# get old data
old_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
frm_approver
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
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
=
frm_approver
[
'user'
],
tmp_approver
=
frm_approver
[
'tmp_approver'
])
# get new data
new_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
frm_approver
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_approver
[
'user'
])
cre
=
models
.
ChangeRequestFormApprovers
.
objects
.
create
(
level
=
frm_approver
[
'level'
],
delegation
=
frm_approver
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
user_instance
,
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_APPROVER
.
value
,
cre
.
id
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get stakes data
stakes_id
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_stakes_ids
=
[
item
.
id
for
item
in
stakes_id
]
frm_stakes
=
form_header_data
[
'frm_stakes'
]
updated_stakes_ids
=
[]
# get all ids
for
frm_stake
in
frm_stakes
:
if
"id"
in
frm_stake
:
updated_stakes_ids
.
append
(
frm_stake
[
'id'
])
# Delete any stakes not included in the request
for
e
in
existing_stakes_ids
:
if
e
not
in
updated_stakes_ids
:
# get old data
old_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
old_instance
,
None
)
# Create or update stake data that are in the request
for
frm_stake
in
frm_stakes
:
if
"id"
in
frm_stake
:
# get old data
old_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
update
(
delegation
=
frm_stake
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
frm_stake
[
'user'
],
tmp_stake
=
frm_stake
[
'tmp_stake'
])
# get new data
new_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
frm_stake
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_stake
[
'user'
])
cre
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
create
(
delegation
=
frm_stake
[
'delegation'
],
created
=
datetime
.
now
(),
user
=
user_instance
,
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_STAKE
.
value
,
cre
.
id
)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get attachments data
attach_id
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_attach_ids
=
[
item
.
id
for
item
in
attach_id
]
frm_attach
=
form_header_data
[
'frm_attachments'
]
updated_attach_ids
=
[]
# get all ids
for
frm_att
in
frm_attach
:
if
"id"
in
frm_att
:
updated_attach_ids
.
append
(
frm_att
[
'id'
])
# Delete any attachments not included in the request
for
e
in
existing_attach_ids
:
if
e
not
in
updated_attach_ids
:
# get old data
old_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
old_instance
,
None
)
# Create or update attachments data that are in the request
change_request
.
form_add_edit_delete
(
for
frm_att
in
frm_attach
:
form_data
[
'frm_stakes'
],
models
.
ChangeRequestFormStakeHolders
,
if
"id"
in
frm_att
:
enums
.
CREntitiesEnum
.
CR_FRM_STAKE
.
value
,
serializers
.
ChangeRequestFormStakeHoldersSerializer
,
# get old data
partial
,
old_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
self
,
pk
=
frm_att
[
'id'
])
.
values
()
form_code
,
batchno
,
old_instance
=
list
(
old_instance
)
enums
.
CREnum
.
SUBMIT
.
value
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
frm_att
[
'id'
])
.
update
(
attachment_type
=
frm_att
[
'attachment_type'
],
attachment_name
=
frm_att
[
'attachment_name'
],
file_name
=
frm_att
[
'file_name'
],
description
=
frm_att
[
'description'
],
file_upload
=
frm_att
[
'file_upload'
],
uploaded_by
=
frm_att
[
'uploaded_by'
],
created
=
datetime
.
now
())
# get new data
new_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
frm_att
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
user_instance
=
models
.
User
.
objects
.
get
(
code
=
frm_att
[
'uploaded_by'
])
cre
=
models
.
ChangeRequestFormAttachments
.
objects
.
create
(
attachment_type
=
frm_att
[
'attachment_type'
],
attachment_name
=
frm_att
[
'attachment_name'
],
file_name
=
frm_att
[
'file_name'
],
description
=
frm_att
[
'description'
],
file_upload
=
frm_att
[
'file_upload'
],
uploaded_by
=
user_instance
,
created
=
datetime
.
now
(),
form_code
=
frm_id
,
code
=
'try'
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_ATTACH
.
value
,
cre
.
id
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
form_code
,
None
,
new_instance
)
# ---------------------------------------------------------------------
# get details data
detail_id
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
form_code
=
form_code
)
# list existing id to variable
existing_detail_ids
=
[
item
.
id
for
item
in
detail_id
]
frm_details
=
form_header_data
[
'frm_details'
]
change_request
.
form_add_edit_delete
(
form_data
[
'frm_attachments'
],
models
.
ChangeRequestFormAttachments
,
enums
.
CREntitiesEnum
.
CR_FRM_ATTACHMENT
.
value
,
serializers
.
ChangeRequestFormAttachmentsSerializer
,
partial
,
self
,
form_code
,
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
)
updated_detail_ids
=
[]
change_request
.
form_add_edit_delete
(
form_data
[
'frm_details'
],
# get all ids
models
.
ChangeRequestFormDetails
,
for
frm_detail
in
frm_details
:
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
if
"id"
in
frm_detail
:
serializers
.
ChangeRequestFormDetailsSerializer
,
updated_detail_ids
.
append
(
frm_detail
[
'id'
])
partial
,
self
,
# Delete any attachments not included in the request
form_code
,
for
e
in
existing_detail_ids
:
batchno
,
if
e
not
in
updated_detail_ids
:
enums
.
CREnum
.
SUBMIT
.
value
)
# get old data
old_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
e
)
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
e
)
.
delete
()
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
DELETED
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
old_instance
,
None
)
# Create or update attachments data that are in the request
serializer
=
self
.
get_serializer
(
instance
)
for
frm_detail
in
frm_details
:
if
"id"
in
frm_detail
:
# get old data
old_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
values
()
old_instance
=
list
(
old_instance
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
update
(
field_idx
=
frm_detail
[
'field_idx'
],
field_ref
=
frm_detail
[
'field_ref'
],
field_val
=
frm_detail
[
'field_val'
],
field_props
=
frm_detail
[
'field_props'
],
created
=
datetime
.
now
())
# get new data
new_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
frm_detail
[
'id'
])
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
old_instance
,
new_instance
)
else
:
cre
=
models
.
ChangeRequestFormDetails
.
objects
.
create
(
field_idx
=
frm_detail
[
'field_idx'
],
field_ref
=
frm_detail
[
'field_ref'
],
field_val
=
frm_detail
[
'field_val'
],
field_props
=
frm_detail
[
'field_props'
],
created
=
datetime
.
now
(),
code
=
'try'
,
form_code
=
frm_id
)
code
=
number_generator
(
enums
.
GenerateCode
.
FORM_DETAIL
.
value
,
cre
.
id
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
id
=
cre
.
id
)
.
update
(
code
=
code
)
# get new data
new_instance
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
cre
.
id
)
.
values
()
new_instance
=
list
(
new_instance
)
# save history in form approver
crhistory_save
(
batchno
,
enums
.
CREnum
.
SUBMIT
.
value
,
enums
.
CREnum
.
ADD
.
value
,
enums
.
CREntitiesEnum
.
CR_FRM_DETAIL
.
value
,
form_code
,
None
,
new_instance
)
serializer
=
self
.
get_serializer
(
frm_id
)
message
=
status_message_response
(
message
=
status_message_response
(
200
,
'success'
,
200
,
'success'
,
'Change Request successfully submitted'
,
serializer
.
data
'Change Request successfully submitted'
,
serializer
.
data
)
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
...
...
app/applicationlayer/cms/template/serializers.py
View file @
c9e9ad2e
...
@@ -10,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer(
...
@@ -10,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestTemplateApprovers
model
=
models
.
ChangeRequestTemplateApprovers
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestTemplateStakeHoldersSerializer
(
class
ChangeRequestTemplateStakeHoldersSerializer
(
...
@@ -19,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer(
...
@@ -19,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestTemplateStakeHolders
model
=
models
.
ChangeRequestTemplateStakeHolders
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestTemplateAttachmentsSerializer
(
class
ChangeRequestTemplateAttachmentsSerializer
(
...
@@ -28,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer(
...
@@ -28,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestTemplateAttachments
model
=
models
.
ChangeRequestTemplateAttachments
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestTemplateDetailsSerializer
(
class
ChangeRequestTemplateDetailsSerializer
(
...
@@ -37,20 +37,20 @@ class ChangeRequestTemplateDetailsSerializer(
...
@@ -37,20 +37,20 @@ class ChangeRequestTemplateDetailsSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestTemplateDetails
model
=
models
.
ChangeRequestTemplateDetails
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'archived_at'
,
'code'
]
read_only_fields
=
[
'created'
,
'code'
]
# comment
class
ChangeRequestTemplatesSerializer
(
class
ChangeRequestTemplatesSerializer
(
WritableNested
ModelSerializer
serializers
.
ModelSerializer
):
):
tmp_approvers
=
ChangeRequestTemplateApproversSerializer
(
tmp_approvers
=
ChangeRequestTemplateApproversSerializer
(
many
=
True
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
tmp_stakes
=
ChangeRequestTemplateStakeHoldersSerializer
(
tmp_stakes
=
ChangeRequestTemplateStakeHoldersSerializer
(
many
=
True
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
tmp_attachments
=
ChangeRequestTemplateAttachmentsSerializer
(
tmp_attachments
=
ChangeRequestTemplateAttachmentsSerializer
(
many
=
True
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
tmp_details
=
ChangeRequestTemplateDetailsSerializer
(
tmp_details
=
ChangeRequestTemplateDetailsSerializer
(
many
=
True
,
re
quired
=
Fals
e
)
many
=
True
,
re
ad_only
=
Tru
e
)
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestTemplateHeader
model
=
models
.
ChangeRequestTemplateHeader
...
@@ -63,4 +63,4 @@ class ChangeRequestTemplatesSerializer(
...
@@ -63,4 +63,4 @@ class ChangeRequestTemplatesSerializer(
'created_by_user'
,
'created_by_department'
,
'tmp_approvers'
,
'created_by_user'
,
'created_by_department'
,
'tmp_approvers'
,
'tmp_stakes'
,
'tmp_attachments'
,
'tmp_details'
)
'tmp_stakes'
,
'tmp_attachments'
,
'tmp_details'
)
read_only_fields
=
[
'created'
,
'archived_at'
,
'template_no'
]
read_only_fields
=
[
'created'
,
'template_no'
]
\ No newline at end of file
\ No newline at end of file
app/applicationlayer/cms/template/views.py
View file @
c9e9ad2e
...
@@ -20,7 +20,9 @@ import requests
...
@@ -20,7 +20,9 @@ import requests
from
django.conf
import
settings
from
django.conf
import
settings
from
rest_framework.exceptions
import
ValidationError
from
rest_framework.exceptions
import
ValidationError
from
django.db
import
transaction
,
IntegrityError
,
connection
from
django.db
import
transaction
,
IntegrityError
,
connection
from
app.applicationlayer.utils
import
QuerySetHelper
,
CustomPagination
,
status_message_response
from
app.applicationlayer.utils
import
(
QuerySetHelper
,
CustomPagination
,
status_message_response
)
from
app.businesslayer.changerequest
import
change_request
from
app.businesslayer.changerequest
import
change_request
from
app.applicationlayer.cms.utils_cr
import
(
from
app.applicationlayer.cms.utils_cr
import
(
number_generator
,
crhistory_save
,
entity_log_bulk
number_generator
,
crhistory_save
,
entity_log_bulk
...
@@ -36,6 +38,9 @@ from django.db.models import Q
...
@@ -36,6 +38,9 @@ from django.db.models import Q
from
app.applicationlayer.management.account.serializer
import
ChangeRequestList
from
app.applicationlayer.management.account.serializer
import
ChangeRequestList
from
app.applicationlayer.utils
import
log_save
,
CustomPagination
from
app.applicationlayer.utils
import
log_save
,
CustomPagination
from
rest_framework.exceptions
import
ParseError
from
rest_framework.exceptions
import
ParseError
from
app.businesslayer.changerequest.change_request_template
import
(
tmp_add_edit_delete
)
class
UserList
(
APIView
):
class
UserList
(
APIView
):
...
@@ -163,14 +168,14 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
...
@@ -163,14 +168,14 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
approver
,
enum_approver
,
approver
,
enum_approver
,
models
.
ChangeRequestTemplateApprovers
models
.
ChangeRequestTemplateApprovers
)
)
stake
=
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
filter
(
stake
=
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
filter
(
template_no
=
template_no
template_no
=
template_no
)
)
if
stake
.
count
()
>
0
:
if
stake
.
count
()
>
0
:
entity_log_bulk
(
entity_log_bulk
(
approver
,
enum_stake
,
stake
,
enum_stake
,
models
.
ChangeRequestTemplateStakeHolders
models
.
ChangeRequestTemplateStakeHolders
)
)
...
@@ -180,7 +185,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
...
@@ -180,7 +185,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if
attachment
.
count
()
>
0
:
if
attachment
.
count
()
>
0
:
entity_log_bulk
(
entity_log_bulk
(
a
pprover
,
enum_attach
,
a
ttachment
,
enum_attach
,
models
.
ChangeRequestTemplateAttachments
models
.
ChangeRequestTemplateAttachments
)
)
...
@@ -190,18 +195,20 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
...
@@ -190,18 +195,20 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if
details
.
count
()
>
0
:
if
details
.
count
()
>
0
:
entity_log_bulk
(
entity_log_bulk
(
approver
,
enum_detail
,
details
,
enum_detail
,
models
.
ChangeRequestTemplateDetails
models
.
ChangeRequestTemplateDetails
)
)
header
=
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
header
=
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
template_no
=
template_no
template_no
=
template_no
)
)
if
header
.
count
()
>
0
:
if
header
.
count
()
>
0
:
entity_log_bulk
(
entity_log_bulk
(
approver
,
enum_header
,
header
,
enum_header
,
models
.
ChangeRequestTemplateHeader
models
.
ChangeRequestTemplateHeader
)
)
return
Response
({
"message"
:
"Deleted"
},
status
=
status
.
HTTP_200_OK
)
return
Response
({
"message"
:
"Deleted"
},
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
except
Exception
as
e
:
return
Response
(
e
,
return
Response
(
e
,
...
@@ -214,78 +221,85 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
...
@@ -214,78 +221,85 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
instance
=
self
.
get_object
()
instance
=
self
.
get_object
()
template_no
=
kwargs
[
'template_no'
]
template_no
=
kwargs
[
'template_no'
]
body_data
=
request
.
data
tmp_no_exists
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
tmp_no_exists
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
template_no
=
template_no
)
template_no
=
template_no
)
if
not
tmp_no_exists
:
if
not
tmp_no_exists
:
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
new_instance
=
serializer
.
data
# print(new_instance)
log_save
(
crhistory_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_TMP_HEADER
.
value
,
enums
.
LogEntitiesEnum
.
ChangeRequestTemplateHeader
.
value
,
new_instance
[
'template_no
'
],
old_instance
[
'id
'
],
old_instance
,
old_instance
,
new_instance
new_instance
)
)
return
Response
(
serializer
.
data
)
tmp_add_edit_delete
(
body_data
[
'tmp_approvers'
],
return
Response
(
models
.
ChangeRequestTemplateApprovers
,
"Unable to edit due to existing transaction"
,
enums
.
LogEntitiesEnum
.
ChangeRequestTemplateApprovers
.
value
,
status
=
status
.
HTTP_400_BAD_REQUEST
serializers
.
ChangeRequestTemplateApproversSerializer
,
)
partial
,
self
,
@
action
(
template_no
methods
=
[
'PATCH'
],
detail
=
True
,
)
url_path
=
'archived'
,
url_name
=
'archived'
)
def
archived
(
self
,
request
,
*
args
,
**
kwargs
):
template_no
=
kwargs
[
'template_no'
]
tmp_no_exists
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
template_no
=
template_no
)
if
not
tmp_no_exists
:
models
.
ChangeRequestTemplateDetails
.
objects
.
filter
(
template_no
=
template_no
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateAttachments
.
objects
.
filter
(
tmp_add_edit_delete
(
template_no
=
template_no
body_data
[
'tmp_stakes'
],
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateStakeHolders
,
enums
.
LogEntitiesEnum
.
ChangeRequestTemplateStakeHolders
.
value
,
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
serializers
.
ChangeRequestTemplateStakeHoldersSerializer
,
template_no
=
template_no
partial
,
)
.
update
(
archived_at
=
datetime
.
now
())
self
,
template_no
)
models
.
ChangeRequestTemplateApprovers
.
objects
.
filter
(
tmp_add_edit_delete
(
template_no
=
template_no
body_data
[
'tmp_attachments'
],
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateAttachments
,
enums
.
LogEntitiesEnum
.
ChangeRequestTemplateAttachments
.
value
,
serializers
.
ChangeRequestTemplateAttachmentsSerializer
,
partial
,
self
,
template_no
)
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
filter
(
tmp_add_edit_delete
(
template_no
=
template_no
body_data
[
'tmp_details'
],
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateDetails
,
enums
.
LogEntitiesEnum
.
ChangeRequestTemplateDetails
.
value
,
serializers
.
ChangeRequestTemplateDetailsSerializer
,
partial
,
self
,
template_no
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
message
=
status_message_response
(
"Template successfully archived"
,
200
,
'success'
,
status
=
status
.
HTTP_200_OK
'Change Request Template successfully updated'
,
serializer
.
data
)
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
return
Response
(
"Unable to
archive
due to existing transaction"
,
"Unable to
edit
due to existing transaction"
,
status
=
status
.
HTTP_400_BAD_REQUEST
status
=
status
.
HTTP_400_BAD_REQUEST
)
)
class
ChangeRequestTemplatePost
(
APIView
):
class
ChangeRequestTemplatePost
(
APIView
):
...
@@ -413,17 +427,9 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
...
@@ -413,17 +427,9 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
lookup_field
=
"code"
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateApproversViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestTemplateApproversViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplateAttachmentsViewset
(
meviewsets
.
ModelViewSet
):
class
ChangeRequestTemplateAttachmentsViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateAttachments
.
objects
.
all
()
queryset
=
models
.
ChangeRequestTemplateAttachments
.
objects
.
all
()
...
@@ -432,17 +438,11 @@ class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
...
@@ -432,17 +438,11 @@ class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
lookup_field
=
"code"
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
return
super
(
ChangeRequestTemplateAttachmentsViewset
,
self
ChangeRequestTemplateAttachmentsViewset
,
self
)
.
list
(
request
)
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplateStakeHoldersViewset
(
meviewsets
.
ModelViewSet
):
class
ChangeRequestTemplateStakeHoldersViewset
(
meviewsets
.
ModelViewSet
):
...
@@ -452,16 +452,9 @@ class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
...
@@ -452,16 +452,9 @@ class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
lookup_field
=
"code"
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateStakeHoldersViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestTemplateStakeHoldersViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplateDetailsViewset
(
meviewsets
.
ModelViewSet
):
class
ChangeRequestTemplateDetailsViewset
(
meviewsets
.
ModelViewSet
):
...
@@ -471,12 +464,5 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
...
@@ -471,12 +464,5 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
lookup_field
=
"code"
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateDetailsViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestTemplateDetailsViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
\ No newline at end of file
app/applicationlayer/cms/utils_cr.py
View file @
c9e9ad2e
...
@@ -22,7 +22,7 @@ CR_FRONT_LINK = settings.CR_FRONT_LINK
...
@@ -22,7 +22,7 @@ CR_FRONT_LINK = settings.CR_FRONT_LINK
def
entity_log_bulk
(
queryset
,
entity
,
tbl
):
def
entity_log_bulk
(
queryset
,
entity
,
tbl
):
try
:
try
:
print
(
entity
)
#
print(entity)
for
data
in
queryset
:
for
data
in
queryset
:
test
=
model_to_dict
(
data
)
test
=
model_to_dict
(
data
)
log_save
(
log_save
(
...
@@ -427,4 +427,24 @@ def crhistory_save(batch_no, main_action,
...
@@ -427,4 +427,24 @@ def crhistory_save(batch_no, main_action,
toValue
=
toValue
toValue
=
toValue
)
)
return
True
return
True
\ No newline at end of file
def
crhistory_log_bulk_delete
(
queryset
,
entity
,
tbl
,
form_code
,
batch_no
,
main_action
):
try
:
# print(entity)
for
data
in
queryset
:
test
=
model_to_dict
(
data
)
crhistory_save
(
batch_no
,
main_action
,
enums
.
CREnum
.
DELETED
.
value
,
entity
,
form_code
,
test
,
''
)
tbl
.
objects
.
filter
(
id
=
test
[
'id'
])
.
delete
()
return
True
except
IntegrityError
as
exc
:
raise
APIException
(
detail
=
exc
)
\ No newline at end of file
app/businesslayer/changerequest/change_request.py
View file @
c9e9ad2e
...
@@ -13,6 +13,14 @@ from django.http import Http404
...
@@ -13,6 +13,14 @@ from django.http import Http404
from
django.db.models
import
Q
from
django.db.models
import
Q
from
app.applicationlayer.cms.utils_cr
import
(
number_generator
,
crhistory_save
,
entity_log_bulk
,
crhistory_log_bulk_delete
)
from
django.forms.models
import
model_to_dict
from
app.entities
import
enums
,
models
from
app.applicationlayer.utils
import
log_save
,
CustomPagination
from
app.applicationlayer.cms.template
import
serializers
def
list_by_user
(
user_id_number
):
def
list_by_user
(
user_id_number
):
...
@@ -242,3 +250,78 @@ def filter_awaiting(base_queryset,
...
@@ -242,3 +250,78 @@ def filter_awaiting(base_queryset,
pass
pass
return
return_queryset
return
return_queryset
def
form_add_edit_delete
(
form_request_body
,
queryset
,
entity
,
serializer_data
,
partial
,
self
,
form_code
,
batch_no
,
main_action
):
# delete ids not in request body
request_ids
=
[
i
[
'id'
]
for
i
in
form_request_body
if
"id"
in
i
]
delete_query
=
queryset
.
objects
.
filter
(
form_code
=
form_code
)
.
exclude
(
id__in
=
request_ids
)
if
delete_query
.
count
()
>
0
:
crhistory_log_bulk_delete
(
delete_query
,
entity
,
queryset
,
form_code
,
batch_no
,
main_action
)
# update or create
for
i
in
form_request_body
:
if
"id"
in
i
:
frm_instance
=
queryset
.
objects
.
get
(
pk
=
i
[
'id'
]
)
serializer
=
serializer_data
(
frm_instance
,
data
=
i
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
frm_instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
crhistory_save
(
batch_no
,
main_action
,
enums
.
CREnum
.
UPDATE
.
value
,
entity
,
form_code
,
old_instance
,
new_instance
)
else
:
serializer
=
serializer_data
(
data
=
i
)
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
\ No newline at end of file
app/businesslayer/changerequest/change_request_template.py
0 → 100644
View file @
c9e9ad2e
from
django.shortcuts
import
render
from
app.entities
import
models
from
app.applicationlayer
import
paginators
from
datetime
import
datetime
from
rest_framework.response
import
Response
from
rest_framework
import
status
,
views
from
rest_framework.decorators
import
action
from
django.http
import
Http404
from
django.db.models
import
Q
from
app.applicationlayer.cms.utils_cr
import
(
number_generator
,
crhistory_save
,
entity_log_bulk
)
from
django.forms.models
import
model_to_dict
from
app.entities
import
enums
,
models
from
app.applicationlayer.utils
import
log_save
,
CustomPagination
from
app.applicationlayer.cms.template
import
serializers
def
tmp_add_edit_delete
(
tmp_request_body
,
queryset
,
enum_type
,
serializer_data
,
partial
,
self
,
template_no
):
# delete ids not in request body
request_ids
=
[
i
[
'id'
]
for
i
in
tmp_request_body
if
"id"
in
i
]
delete_query
=
queryset
.
objects
.
filter
(
template_no
=
template_no
)
.
exclude
(
id__in
=
request_ids
)
if
delete_query
.
count
()
>
0
:
entity_log_bulk
(
delete_query
,
enum_type
,
queryset
)
# update or create
for
i
in
tmp_request_body
:
if
"id"
in
i
:
tmp_instance
=
queryset
.
objects
.
get
(
pk
=
i
[
'id'
]
)
serializer
=
serializer_data
(
tmp_instance
,
data
=
i
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
tmp_instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enum_type
,
i
[
'id'
],
old_instance
,
new_instance
)
else
:
serializer
=
serializer_data
(
data
=
i
)
serializer
.
is_valid
(
raise_exception
=
True
)
self
.
perform_create
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
ADD
.
value
,
enum_type
,
new_instance
[
'id'
],
''
,
new_instance
)
return
True
app/entities/migrations/0007_auto_20190924_1206.py
0 → 100644
View file @
c9e9ad2e
# Generated by Django 2.2 on 2019-09-24 12:06
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0006_auto_20190920_1623'
),
]
operations
=
[
migrations
.
RemoveField
(
model_name
=
'changerequesttemplateapprovers'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequesttemplateattachments'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequesttemplatedetails'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequesttemplateheader'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequesttemplatestakeholders'
,
name
=
'archived_at'
,
),
]
app/entities/models.py
View file @
c9e9ad2e
...
@@ -508,10 +508,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
...
@@ -508,10 +508,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
blank
=
True
,
blank
=
True
,
null
=
True
)
null
=
True
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_headers'
db_table
=
'change_request_template_headers'
...
@@ -526,10 +522,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
...
@@ -526,10 +522,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
self
.
template_no
=
code
self
.
template_no
=
code
self
.
save
()
self
.
save
()
def
delete
(
self
):
self
.
archived_at
=
datetime
.
utcnow
self
.
save
()
class
ChangeRequestTemplateApprovers
(
BaseApprover
):
class
ChangeRequestTemplateApprovers
(
BaseApprover
):
code
=
models
.
CharField
(
code
=
models
.
CharField
(
...
@@ -540,10 +532,7 @@ class ChangeRequestTemplateApprovers(BaseApprover):
...
@@ -540,10 +532,7 @@ class ChangeRequestTemplateApprovers(BaseApprover):
on_delete
=
models
.
DO_NOTHING
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
to_field
=
'template_no'
,
related_name
=
'tmp_approvers'
)
related_name
=
'tmp_approvers'
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_approvers'
db_table
=
'change_request_template_approvers'
...
@@ -559,9 +548,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
...
@@ -559,9 +548,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
self
.
created
=
datetime
.
now
()
self
.
created
=
datetime
.
now
()
self
.
save
()
self
.
save
()
def
delete
(
self
):
self
.
archived_at
=
datetime
.
utcnow
self
.
save
()
class
ChangeRequestTemplateStakeHolders
(
BaseStakeholder
):
class
ChangeRequestTemplateStakeHolders
(
BaseStakeholder
):
code
=
models
.
CharField
(
code
=
models
.
CharField
(
...
@@ -572,10 +558,7 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
...
@@ -572,10 +558,7 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
on_delete
=
models
.
DO_NOTHING
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
to_field
=
'template_no'
,
related_name
=
'tmp_stakes'
)
related_name
=
'tmp_stakes'
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_stakeholders'
db_table
=
'change_request_template_stakeholders'
...
@@ -590,10 +573,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
...
@@ -590,10 +573,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
self
.
code
=
code
self
.
code
=
code
self
.
created
=
datetime
.
now
()
self
.
created
=
datetime
.
now
()
self
.
save
()
self
.
save
()
def
delete
(
self
):
self
.
archived_at
=
datetime
.
utcnow
self
.
save
()
class
ChangeRequestTemplateAttachments
(
BaseAttachment
):
class
ChangeRequestTemplateAttachments
(
BaseAttachment
):
...
@@ -605,9 +584,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
...
@@ -605,9 +584,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
on_delete
=
models
.
DO_NOTHING
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
to_field
=
'template_no'
,
related_name
=
'tmp_attachments'
)
related_name
=
'tmp_attachments'
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_attachments'
db_table
=
'change_request_template_attachments'
...
@@ -624,10 +600,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
...
@@ -624,10 +600,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
self
.
created
=
datetime
.
now
()
self
.
created
=
datetime
.
now
()
self
.
save
()
self
.
save
()
def
delete
(
self
):
self
.
archived_at
=
datetime
.
utcnow
self
.
save
()
class
ChangeRequestTemplateDetails
(
BaseDetails
):
class
ChangeRequestTemplateDetails
(
BaseDetails
):
code
=
models
.
CharField
(
code
=
models
.
CharField
(
...
@@ -638,10 +610,7 @@ class ChangeRequestTemplateDetails(BaseDetails):
...
@@ -638,10 +610,7 @@ class ChangeRequestTemplateDetails(BaseDetails):
on_delete
=
models
.
DO_NOTHING
,
on_delete
=
models
.
DO_NOTHING
,
to_field
=
'template_no'
,
to_field
=
'template_no'
,
related_name
=
'tmp_details'
)
related_name
=
'tmp_details'
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_details'
db_table
=
'change_request_template_details'
...
@@ -657,10 +626,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
...
@@ -657,10 +626,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
self
.
created
=
datetime
.
now
()
self
.
created
=
datetime
.
now
()
self
.
save
()
self
.
save
()
def
delete
(
self
):
self
.
archived_at
=
datetime
.
utcnow
self
.
save
()
'''
'''
*****
*****
FORMS
FORMS
...
...
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