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
4695d626
Commit
4695d626
authored
Sep 13, 2019
by
John Red Medrano
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pulled cms
parent
4e294247
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
4687 additions
and
1731 deletions
+4687
-1731
app/applicationlayer/cms/form/serializers.py
app/applicationlayer/cms/form/serializers.py
+121
-144
app/applicationlayer/cms/form/views.py
app/applicationlayer/cms/form/views.py
+949
-1086
app/applicationlayer/cms/template/serializers.py
app/applicationlayer/cms/template/serializers.py
+66
-0
app/applicationlayer/cms/template/views.py
app/applicationlayer/cms/template/views.py
+340
-0
app/applicationlayer/cms/user_privilege/serializers.py
app/applicationlayer/cms/user_privilege/serializers.py
+0
-0
app/applicationlayer/cms/user_privilege/views.py
app/applicationlayer/cms/user_privilege/views.py
+0
-0
app/applicationlayer/cms/utils_cr.py
app/applicationlayer/cms/utils_cr.py
+449
-438
app/applicationlayer/urls_cms.py
app/applicationlayer/urls_cms.py
+14
-13
app/businesslayer/changerequest/change_request.py
app/businesslayer/changerequest/change_request.py
+20
-30
app/entities/migrations/0007_auto_20190911_1102.py
app/entities/migrations/0007_auto_20190911_1102.py
+18
-0
app/entities/migrations/0008_auto_20190911_1715.py
app/entities/migrations/0008_auto_20190911_1715.py
+18
-0
app/entities/migrations/0009_auto_20190911_1845.py
app/entities/migrations/0009_auto_20190911_1845.py
+63
-0
app/entities/migrations/0010_auto_20190913_1143.py
app/entities/migrations/0010_auto_20190913_1143.py
+33
-0
app/entities/models.py
app/entities/models.py
+44
-20
requirements/RMSv2.postman_collection_091319
requirements/RMSv2.postman_collection_091319
+2551
-0
requirements/local.txt
requirements/local.txt
+1
-0
No files found.
app/applicationlayer/
management/changerequest
/serializers.py
→
app/applicationlayer/
cms/form
/serializers.py
View file @
4695d626
from
app.entities
import
models
from
app.entities
import
models
from
rest_framework
import
serializers
from
rest_framework
import
serializers
from
django.db.models
import
Q
from
django.db.models
import
Q
from
app.applicationlayer.management.changerequest.utils_cr
import
logged_user
from
app.applicationlayer.cms.utils_cr
import
logged_user
from
drf_writable_nested
import
WritableNestedModelSerializer
class
ChangeRequest
TemplatesSerializer
(
class
ChangeRequest
FormApproversSerializer
(
serializers
.
ModelSerializer
serializers
.
ModelSerializer
):
):
class
Meta
:
# def to_representation(self, instance):
model
=
models
.
ChangeRequestTemplateHeader
# ret = super().to_representation(instance)
fields
=
'__all__'
# try:
read_only_fields
=
[
'created'
,
'deleted_at'
,
'template_no'
]
# user = instance.user
# user_details = get_account_details(user)
# name = user_details['name']
# group = user_details['groups'][0]['name']
# company = user_details['groups'][0]['company__name']
# ret['name'] = name
# ret['department'] = group
# ret['company'] = company
# return ret
# except Exception as e:
# ret['name'] = "none"
# ret['department'] = "none"
# ret['company'] = "none"
# return ret
class
ChangeRequestTemplateApproversSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequest
TemplateApprovers
model
=
models
.
ChangeRequest
FormApprovers
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
deleted_at'
,
'code'
]
read_only_fields
=
[
'created'
,
'
archived_at'
,
'code'
]
class
ChangeRequest
TemplateStakeHoldersSerializer
(
class
ChangeRequest
FormStakeHoldersSerializer
(
serializers
.
ModelSerializer
serializers
.
ModelSerializer
):
):
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequest
TemplateStakeHolders
model
=
models
.
ChangeRequest
FormStakeHolders
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
deleted_at'
,
'code'
]
read_only_fields
=
[
'created'
,
'
archived_at'
,
'code'
]
class
ChangeRequest
TemplateAttachmentsSerializer
(
class
ChangeRequest
FormAttachmentsSerializer
(
serializers
.
ModelSerializer
serializers
.
ModelSerializer
):
):
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequest
TemplateAttachments
model
=
models
.
ChangeRequest
FormAttachments
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
deleted_at'
,
'code'
]
read_only_fields
=
[
'created'
,
'
archived_at'
,
'code'
]
class
ChangeRequest
TemplateDetailsSerializer
(
class
ChangeRequest
FormDetailsSerializer
(
serializers
.
ModelSerializer
serializers
.
ModelSerializer
):
):
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequest
TemplateDetails
model
=
models
.
ChangeRequest
FormDetails
fields
=
'__all__'
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
deleted_at'
,
'code'
]
read_only_fields
=
[
'created'
,
'
archived_at'
,
'code'
]
class
ChangeRequestFormHeaderSerializer
(
class
ChangeRequestFormHeaderSerializer
(
serializers
.
ModelSerializer
WritableNestedModelSerializer
):
):
frm_approvers
=
ChangeRequestFormApproversSerializer
(
many
=
True
,
required
=
False
)
frm_stakes
=
ChangeRequestFormStakeHoldersSerializer
(
many
=
True
,
required
=
False
)
frm_attachments
=
ChangeRequestFormAttachmentsSerializer
(
many
=
True
,
required
=
False
)
frm_details
=
ChangeRequestFormDetailsSerializer
(
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
print
(
user
)
id_number
=
"USER-20190909-0000005"
# 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
(
deleted_at
=
None
)
&
Q
(
archived_at
=
None
)
&
(
Q
(
action
=
''
)
|
Q
(
action
=
None
))
(
Q
(
action
=
''
)
|
Q
(
action
=
None
))
)
.
order_by
(
'level'
)
)
.
order_by
(
'level'
)
...
@@ -83,62 +107,15 @@ class ChangeRequestFormHeaderSerializer(
...
@@ -83,62 +107,15 @@ class ChangeRequestFormHeaderSerializer(
class
Meta
:
class
Meta
:
model
=
models
.
ChangeRequestFormHeader
model
=
models
.
ChangeRequestFormHeader
fields
=
'__all__'
# fields = '__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
,
'form_code'
]
fields
=
(
'form_code'
,
'requested_to_template_name'
,
'requested_to_objective'
,
'requested_to_target_date'
,
'requested_to_priority'
,
'description'
,
'created'
,
'cancel_date'
,
'status'
,
class
ChangeRequestFormApproversSerializer
(
'company_desc'
,
'department_desc'
,
'requested_desc'
,
serializers
.
ModelSerializer
'requested_to_template_id'
,
'requested_to_company'
,
):
'requested_to_department'
,
'requested_to_user'
,
# def to_representation(self, instance):
'requested_by_user'
,
'requested_by_department'
,
# ret = super().to_representation(instance)
'template_no'
,
'frm_approvers'
,
'frm_stakes'
,
# try:
'frm_attachments'
,
'frm_details'
)
# user = instance.user
read_only_fields
=
[
'created'
,
'archived_at'
,
'form_code'
]
# user_details = get_account_details(user)
# name = user_details['name']
# group = user_details['groups'][0]['name']
# company = user_details['groups'][0]['company__name']
# ret['name'] = name
# ret['department'] = group
# ret['company'] = company
# return ret
# except Exception as e:
# ret['name'] = "none"
# ret['department'] = "none"
# ret['company'] = "none"
# return ret
class
Meta
:
model
=
models
.
ChangeRequestFormApprovers
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
,
'code'
]
class
ChangeRequestFormStakeHoldersSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormStakeHolders
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
,
'code'
]
class
ChangeRequestFormAttachmentsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormAttachments
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
,
'code'
]
class
ChangeRequestFormDetailsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestFormDetails
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'deleted_at'
,
'code'
]
app/applicationlayer/
management/changerequest
/views.py
→
app/applicationlayer/
cms/form
/views.py
View file @
4695d626
...
@@ -2,7 +2,7 @@ from django.shortcuts import render
...
@@ -2,7 +2,7 @@ from django.shortcuts import render
from
rest_framework
import
viewsets
as
meviewsets
from
rest_framework
import
viewsets
as
meviewsets
from
rest_framework.views
import
APIView
from
rest_framework.views
import
APIView
from
app.applicationlayer.
management.changerequest
import
serializers
from
app.applicationlayer.
cms.form
import
serializers
from
app.entities
import
models
from
app.entities
import
models
from
app.applicationlayer
import
paginators
from
app.applicationlayer
import
paginators
...
@@ -22,6 +22,9 @@ from rest_framework.exceptions import ValidationError
...
@@ -22,6 +22,9 @@ 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
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.entities
import
enums
from
django.forms.models
import
model_to_dict
APPROVER_MESSAGE
=
settings
.
APPROVER_MESSAGE
APPROVER_MESSAGE
=
settings
.
APPROVER_MESSAGE
...
@@ -34,256 +37,6 @@ VENDOR_ACCEPTANCE_MESSAGE = settings.VENDOR_ACCEPTANCE_MESSAGE
...
@@ -34,256 +37,6 @@ VENDOR_ACCEPTANCE_MESSAGE = settings.VENDOR_ACCEPTANCE_MESSAGE
VENDOR_REJECT_MESSAGE
=
settings
.
VENDOR_REJECT_MESSAGE
VENDOR_REJECT_MESSAGE
=
settings
.
VENDOR_REJECT_MESSAGE
class
ChangeRequestTemplatesViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateHeader
.
objects
.
all
()
lookup_field
=
'template_no'
serializer_class
=
serializers
.
ChangeRequestTemplatesSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplatesViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
,
template_no
=
str
(
self
.
kwargs
.
get
(
'template_no'
))
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
template_no
=
self
.
kwargs
[
'template_no'
]
instance
=
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
Q
(
template_no
=
template_no
)
&
Q
(
deleted_at
=
None
)
)
.
update
(
deleted_at
=
datetime
.
now
())
return
Response
({
"message"
:
"Deleted"
},
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
return
Response
(
e
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
kwargs
[
'partial'
]
=
True
template_no
=
self
.
kwargs
[
'template_no'
]
instance
=
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
template_no
=
template_no
)
.
order_by
(
'-deleted_at'
)
instance
.
update
(
deleted_at
=
None
)
message
=
"Archived Change Request restored"
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
{
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
class
ChangeRequestTemplateApproversViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateApprovers
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateApproversSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateApproversViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplateAttachmentsViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateAttachments
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateAttachmentsSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateAttachmentsViewset
,
self
)
.
list
(
request
)
class
ChangeRequestTemplateStakeHoldersViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateStakeHoldersSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateStakeHoldersViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplateDetailsViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateDetails
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateDetailsSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateDetailsViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
class
ChangeRequestTemplatePost
(
APIView
):
@
transaction
.
atomic
()
def
post
(
self
,
request
):
template_header
=
request
.
data
try
:
data_list_approver
=
[]
data_list_stake
=
[]
data_list_attach
=
[]
data_list_detail
=
[]
template_header_data
=
{
'requested_to_template_name'
:
template_header
[
'requested_to_template_name'
],
'requested_to_template_id'
:
template_header
[
'requested_to_template_id'
],
'requested_to_objective'
:
template_header
[
'requested_to_objective'
],
'requested_to_target_date'
:
template_header
[
'requested_to_target_date'
],
'requested_to_priority'
:
template_header
[
'requested_to_priority'
],
'description'
:
template_header
[
'description'
],
'created_by_department'
:
template_header
[
'created_by_department'
],
'created_by_user'
:
template_header
[
'created_by_user'
],
'requested_to_company'
:
template_header
[
'requested_to_company'
],
'requested_to_department'
:
template_header
[
'requested_to_department'
],
'requested_to_user'
:
template_header
[
'requested_to_user'
]
}
tmp_approvers
=
template_header
[
'tmp_approvers'
]
tmp_stakes
=
template_header
[
'tmp_stakes'
]
tmp_attachments
=
template_header
[
'tmp_attachments'
]
tmp_details
=
template_header
[
'tmp_details'
]
sp1
=
transaction
.
savepoint
()
# nothing will save to db
serializer
=
serializers
.
ChangeRequestTemplatesSerializer
(
data
=
template_header_data
)
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
()
tmp_id
=
serializer
.
data
[
'template_no'
]
# create template approvers
for
tmp_approver
in
tmp_approvers
:
tmp_approver
[
'template_no'
]
=
tmp_id
data_list_approver
.
append
(
tmp_approver
)
serializerApprover
=
serializers
.
ChangeRequestTemplateApproversSerializer
(
data
=
data_list_approver
,
many
=
True
)
if
serializerApprover
.
is_valid
(
raise_exception
=
True
):
serializerApprover
.
save
()
# create template stakes
for
tmp_stake
in
tmp_stakes
:
tmp_stake
[
'template_no'
]
=
tmp_id
data_list_stake
.
append
(
tmp_stake
)
serializerStake
=
serializers
.
ChangeRequestTemplateStakeHoldersSerializer
(
data
=
data_list_stake
,
many
=
True
)
if
serializerStake
.
is_valid
(
raise_exception
=
True
):
serializerStake
.
save
()
# create template attachments
for
tmp_attachment
in
tmp_attachments
:
tmp_attachment
[
'template_no'
]
=
tmp_id
data_list_attach
.
append
(
tmp_attachment
)
serializerAttach
=
serializers
.
ChangeRequestTemplateAttachmentsSerializer
(
data
=
data_list_attach
,
many
=
True
)
if
serializerAttach
.
is_valid
(
raise_exception
=
True
):
serializerAttach
.
save
()
# create template details
for
tmp_detail
in
tmp_details
:
tmp_detail
[
'template_no'
]
=
tmp_id
data_list_detail
.
append
(
tmp_detail
)
serializerDetail
=
serializers
.
ChangeRequestTemplateDetailsSerializer
(
data
=
data_list_detail
,
many
=
True
)
if
serializerDetail
.
is_valid
(
raise_exception
=
True
):
serializerDetail
.
save
()
message
=
{
'code'
:
201
,
'status'
:
'success'
,
'message'
:
'Template Details successfully saved!'
,
'results'
:
serializer
.
data
}
return
Response
(
message
,
status
=
status
.
HTTP_201_CREATED
)
except
ValidationError
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
400
,
'status'
:
'failed'
,
'message'
:
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
Exception
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
500
,
'status'
:
'failed'
,
'message'
:
'Request was not able to process'
+
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
# Change Request Form Views
# Change Request Form Views
class
ChangeRequestFormsViewset
(
meviewsets
.
ModelViewSet
):
class
ChangeRequestFormsViewset
(
meviewsets
.
ModelViewSet
):
...
@@ -328,10 +81,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -328,10 +81,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
url_path
=
'dashboard'
,
url_path
=
'dashboard'
,
name
=
"Dashboard Summary"
)
name
=
"Dashboard Summary"
)
def
dashboard_view
(
self
,
request
):
def
dashboard_view
(
self
,
request
):
id_number
=
self
.
request
.
user
id_number
=
self
.
request
.
user
# id_number = 'Acct-20190813-0000138'
print
(
id_number
)
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
...
@@ -395,7 +147,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -395,7 +147,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
overdue
=
overdue_filtered
.
count
()
overdue
=
overdue_filtered
.
count
()
message
=
{
message
=
{
'account_no'
:
id_number
,
'account_no'
:
id_number
.
code
,
'pending'
:
pending
,
'pending'
:
pending
,
'approved'
:
approved
,
'approved'
:
approved
,
'rejected'
:
rejected
,
'rejected'
:
rejected
,
...
@@ -412,7 +164,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -412,7 +164,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
@
action
(
detail
=
False
,
@
action
(
detail
=
False
,
methods
=
[
'get'
],
methods
=
[
'get'
],
url_path
=
'status'
,
url_path
=
'status'
,
...
@@ -421,8 +172,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -421,8 +172,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number
=
self
.
request
.
user
id_number
=
self
.
request
.
user
# id_number = 'Acct-20190531-0000002'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
filter_status
(
self
.
queryset
=
change_request
.
filter_status
(
...
@@ -455,8 +204,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -455,8 +204,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number
=
self
.
request
.
user
id_number
=
self
.
request
.
user
# id_number = 'Acct-20190531-0000002'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
filter_overdue
(
self
.
queryset
)
self
.
queryset
=
change_request
.
filter_overdue
(
self
.
queryset
)
...
@@ -485,11 +232,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -485,11 +232,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number
=
self
.
request
.
user
id_number
=
self
.
request
.
user
# id_number = 'Acct-20190813-0000137'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
list_by_user
(
id_number
.
code
)
self
.
queryset
=
change_request
.
filter_awaiting
(
self
.
queryset
,
id_number
)
self
.
queryset
=
change_request
.
filter_awaiting
(
self
.
queryset
,
id_number
.
code
)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
self
.
queryset
,
...
@@ -502,149 +247,261 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
...
@@ -502,149 +247,261 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
request
.
query_params
.
get
(
'form_type'
),
request
.
query_params
.
get
(
'form_type'
),
)
)
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Rejected'
)
self
.
queryset
=
self
.
queryset
.
filter
(
~
Q
(
status
=
'Rejected'
)
|
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Closed'
)
~
Q
(
status
=
'Closed'
)
|
~
Q
(
status
=
'Cancelled'
))
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Cancelled'
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestFormsViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestFormsViewset
,
self
)
.
list
(
request
)
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
# instance = self.get_object()
form_code
=
self
.
kwargs
[
'form_code'
]
instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
first
()
if
instance
.
status
.
lower
()
==
'draft'
:
models
.
ChangeRequestFormApprovers
.
objects
(
form_code
=
form_code
)
.
delete
()
models
.
ChangeRequestFormDetails
.
objects
(
form_code
=
form_code
)
.
delete
()
models
.
ChangeRequestFormStakeHolders
.
objects
(
form_code
=
form_code
)
.
delete
()
models
.
ChangeRequestFormAttachments
.
objects
(
form_code
=
form_code
)
.
delete
()
models
.
ChangeRequestFormTasks
.
objects
(
form_code
=
form_code
)
.
delete
()
models
.
ChangeRequestFormHeader
.
objects
(
form_code
=
form_code
)
.
delete
()
# self.perform_destroy(instance)
return
Response
({
"message"
:
"Change Request Deleted"
},
status
=
status
.
HTTP_200_OK
)
else
:
message
=
{
"message"
:
"Cant delete this record, it has an ongoing tansaction"
}
return
Response
(
message
,
status
=
status
.
HTTP_204_NO_CONTENT
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
,
archived_at
=
None
,
form_code
=
str
(
self
.
kwargs
.
get
(
'form_code'
))
form_code
=
str
(
self
.
kwargs
.
get
(
'form_code'
))
)
.
first
()
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
@
action
(
detail
=
True
,
@
action
(
methods
=
[
'
get'
],
methods
=
[
'
PATCH'
],
detail
=
True
,
url_path
=
'
history'
,
url_path
=
'
re_route'
,
url_name
=
're_route'
name
=
"CR History"
)
)
def
list_cr_history
(
self
,
request
,
form_code
=
None
,
**
kwargs
):
def
re_route
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
self
.
kwargs
[
'form_code'
]
form_code
=
kwargs
[
'form_code'
]
form_code_list
=
[]
print
(
form_code
)
form_code_list
.
append
(
form_code
)
for
frmitem
in
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
old_form_code__ne
=
None
)
.
order_by
(
'created'
):
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
update
(
status
=
'Pending'
)
if
frmitem
.
form_code
==
form_code
:
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
form_code_list
.
append
(
frmitem
.
old_form_code
)
form_code
=
form_code
)
.
update
(
action
=
None
,
remarks
=
None
,
form_code
=
frmitem
.
old_form_code
date_sent
=
None
)
# remove duplicates
return
Response
(
mylist
=
list
(
dict
.
fromkeys
(
form_code_list
))
"Change request form successfully re routed"
,
print
(
mylist
)
status
=
status
.
HTTP_200_OK
)
queryset
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
@
action
(
(
Q
(
action__ne
=
None
)
&
Q
(
action__ne
=
''
)),
methods
=
[
'PATCH'
],
detail
=
True
,
form_code__in
=
mylist
)
.
order_by
(
'created'
)
url_path
=
're_submit'
,
url_name
=
're_submit'
)
def
re_submit
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
serializer_class
=
serializers
.
ChangeRequestFormApproversSerializer
# get form code to be re created
form_code
=
kwargs
[
'form_code'
]
page
=
self
.
paginate_queryset
(
queryset
)
frm_id
=
models
.
ChangeRequestFormHeader
.
objects
.
get
(
if
page
is
not
None
:
form_code
=
form_code
)
serializer
=
self
.
get_serializer
(
page
,
many
=
True
)
return
self
.
get_paginated_response
(
serializer
.
data
)
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
)
class
ChangeRequestFormApproversViewset
(
meviewsets
.
ModelViewSet
):
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
pk
=
obj
.
id
)
.
update
(
form_code
=
new_frmheader_code
)
queryset
=
models
.
ChangeRequestFormApprovers
.
objects
.
all
()
# re create approvers
serializer_class
=
serializers
.
ChangeRequestFormApproversSerializer
approvers
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pagination_class
=
paginators
.
SimplePageNumberPagination
form_code
=
form_code
)
counter
=
0
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
for
approver
in
approvers
:
ObjectId
=
request
.
data
.
get
(
'id'
)
to_delete
=
approver
.
pk
sent
=
False
counter
=
counter
+
1
if
'form_status'
in
request
.
data
:
approver
.
pk
=
None
approver
.
code
=
counter
approver
.
remarks
=
None
approver
.
action
=
None
approver
.
date_sent
=
None
approver
.
save
()
# for email
new_frmapp_code
=
number_generator
(
if
str
(
request
.
data
[
'level'
])
==
'1'
and
request
.
data
[
'form_status'
]
.
lower
()
==
'pending'
:
enums
.
GenerateCode
.
FORM_APPROVER
.
value
,
approver
.
id
)
user
=
request
.
data
[
'user'
]
form_code
=
request
.
data
[
'form_code'
]
delegation
=
request
.
data
[
'delegation'
]
# initial_email(user, form_code, delegation)
# EMAIL CODE FOR APPROVER
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
notification_msg
=
APPROVER_MESSAGE
.
split
(
';'
)[
0
]
pk
=
approver
.
id
)
.
update
(
code
=
new_frmapp_code
,
email_code
=
APPROVER_MESSAGE
.
split
(
';'
)[
1
]
form_code
=
new_frmheader_code
)
next_appover_email
(
# delete old data
user
,
form_code
,
delegation
,
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
notification_msg
,
'initial'
,
email_code
pk
=
to_delete
)
.
delete
()
)
request
.
data
[
'date_sent'
]
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
# re create stakeholders
request
.
data
[
'created'
]
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
#correct
stakes
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
sent
=
True
form_code
=
form_code
)
serializer
=
self
.
get_serializer
(
data
=
request
.
data
)
counter
=
0
serializer
.
is_valid
(
raise_exception
=
True
)
if
ObjectId
:
for
stake
in
stakes
:
dbExisting
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
to_delete
=
stake
.
pk
id
=
ObjectId
,
counter
=
counter
+
1
deleted_at
=
None
)
.
first
()
stake
.
pk
=
None
stake
.
code
=
counter
stake
.
save
()
if
dbExisting
:
new_frmstake_code
=
number_generator
(
dbExisting
.
deleted_at
=
datetime
.
now
()
enums
.
GenerateCode
.
FORM_STAKE
.
value
,
stake
.
id
)
dbExisting
.
save
()
# x = self.perform_create(serializer)
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
serializer
.
id
=
None
pk
=
stake
.
id
)
.
update
(
code
=
new_frmstake_code
,
form_code
=
new_frmheader_code
)
x
=
serializer
.
save
()
# delete old data
if
sent
==
True
:
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
x
.
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
pk
=
to_delete
)
.
delete
()
x
.
created
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
#correct
x
.
save
()
# re create details
details
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
form_code
=
form_code
)
counter
=
0
for
detail
in
details
:
to_delete
=
detail
.
pk
counter
=
counter
+
1
detail
.
pk
=
None
detail
.
code
=
counter
detail
.
save
()
new_frmdetail_code
=
number_generator
(
enums
.
GenerateCode
.
FORM_DETAIL
.
value
,
detail
.
id
)
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
detail
.
id
)
.
update
(
code
=
new_frmdetail_code
,
form_code
=
new_frmheader_code
)
# delete old data
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
pk
=
to_delete
)
.
delete
()
# re create attachments
attachments
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
form_code
=
form_code
)
counter
=
0
for
attachment
in
attachments
:
to_delete
=
attachment
.
pk
counter
=
counter
+
1
attachment
.
pk
=
None
attachment
.
code
=
counter
attachment
.
save
()
new_frmattach_code
=
number_generator
(
enums
.
GenerateCode
.
FORM_ATTACH
.
value
,
attachment
.
id
)
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
attachment
.
id
)
.
update
(
code
=
new_frmattach_code
,
form_code
=
new_frmheader_code
)
# delete old data
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
pk
=
to_delete
)
.
delete
()
# delete old data form header
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
delete
()
headers
=
self
.
get_success_headers
(
serializer
.
data
)
return
Response
(
return
Response
(
serializer
.
data
,
"Change request form successfully resubmitted"
,
status
=
status
.
HTTP_201_CREATED
,
status
=
status
.
HTTP_200_OK
headers
=
headers
)
# actions
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'actions'
,
url_name
=
'actions'
)
)
def
actions
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
kwargs
[
'form_code'
]
print
(
form_code
)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
update
(
status
=
'Pending'
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
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
)
class
ChangeRequestFormApproversViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestFormApprovers
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestFormApproversSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
'code'
# def create(self, request, *args, **kwargs):
# ObjectId = request.data.get('id')
# sent = False
# if 'form_status' in request.data:
# # for email
# if str(request.data['level']) == '1' and request.data['form_status'].lower() == 'pending':
# user = request.data['user']
# form_code = request.data['form_code']
# delegation = request.data['delegation']
# # initial_email(user, form_code, delegation)
# # EMAIL CODE FOR APPROVER
# notification_msg = APPROVER_MESSAGE.split(';')[0]
# email_code = APPROVER_MESSAGE.split(';')[1]
# next_appover_email(
# user, form_code, delegation,
# notification_msg, 'initial', email_code
# )
# request.data['date_sent'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# request.data['created'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# sent = True
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# if ObjectId:
# dbExisting = models.ChangeRequestFormApprovers.objects.filter(
# id=ObjectId,
# archived_at=None).first()
# if dbExisting:
# dbExisting.archived_at = datetime.now()
# dbExisting.save()
# # x = self.perform_create(serializer)
# serializer.id = None
# x = serializer.save()
# if sent == True:
# x.date_sent = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# x.created = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# x.save()
# headers = self.get_success_headers(serializer.data)
# return Response(
# serializer.data,
# status=status.HTTP_201_CREATED,
# headers=headers
# )
@
action
(
@
action
(
methods
=
[
'PATCH'
],
detail
=
False
,
methods
=
[
'PATCH'
],
detail
=
False
,
...
@@ -656,22 +513,15 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
...
@@ -656,22 +513,15 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
id
=
objectid
id
=
objectid
)
)
# .update(
# set__deleted_at=datetime.utcnow()
# )
instance
=
instance
.
first
()
instance
=
instance
.
first
()
current_remarks
=
instance
.
remarks
current_remarks
=
instance
.
remarks
print
(
current_remarks
)
instance
.
update
(
instance
.
update
(
set__
deleted_at
=
datetime
.
utcnow
()
set__
archived_at
=
datetime
.
utcnow
()
)
)
# request.data['date_sent'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
request
.
data
[
'created'
]
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
# correct
request
.
data
[
'created'
]
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
# correct
# request.data['remarks'] = current_remarks
print
(
"hello"
)
print
(
"hello"
)
print
(
request
.
data
[
'remarks'
])
print
(
request
.
data
[
'remarks'
])
...
@@ -695,13 +545,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
...
@@ -695,13 +545,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
next_approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
next_approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
level
=
str
(
next_level
),
level
=
str
(
next_level
),
form_code
=
form_code
,
form_code
=
form_code
,
deleted_at
=
None
archived_at
=
None
)
)
if
action
.
lower
()
==
'approved'
:
if
action
.
lower
()
==
'approved'
:
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
deleted_at
=
None
)
&
Q
(
level
=
str
(
next_level
))
Q
(
archived_at
=
None
)
&
Q
(
level
=
str
(
next_level
))
)
.
update
(
)
.
update
(
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
)
)
...
@@ -758,7 +608,7 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
...
@@ -758,7 +608,7 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
elif
action
.
lower
()
==
'completed'
:
elif
action
.
lower
()
==
'completed'
:
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
deleted_at
=
None
)
&
Q
(
level
=
str
(
next_level
))
Q
(
archived_at
=
None
)
&
Q
(
level
=
str
(
next_level
))
)
.
update
(
)
.
update
(
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
)
)
...
@@ -816,13 +666,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
...
@@ -816,13 +666,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
#------------
#------------
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
return
super
(
ChangeRequestFormApproversViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestFormApproversViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
...
@@ -833,7 +683,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
...
@@ -833,7 +683,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
pagination_class
=
paginators
.
SimplePageNumberPagination
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
return
super
(
return
super
(
...
@@ -849,10 +699,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
...
@@ -849,10 +699,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
if
ObjectId
:
if
ObjectId
:
dbExisting
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
dbExisting
=
models
.
ChangeRequestFormAttachments
.
objects
.
filter
(
id
=
ObjectId
,
id
=
ObjectId
,
deleted_at
=
None
)
.
first
()
archived_at
=
None
)
.
first
()
if
dbExisting
:
if
dbExisting
:
dbExisting
.
deleted_at
=
datetime
.
now
()
dbExisting
.
archived_at
=
datetime
.
now
()
dbExisting
.
save
()
dbExisting
.
save
()
self
.
perform_create
(
serializer
)
self
.
perform_create
(
serializer
)
...
@@ -875,7 +725,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
...
@@ -875,7 +725,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
)
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
...
@@ -887,7 +737,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
...
@@ -887,7 +737,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
pagination_class
=
paginators
.
SimplePageNumberPagination
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
return
super
(
ChangeRequestFormStakeHoldersViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestFormStakeHoldersViewset
,
self
)
.
list
(
request
)
...
@@ -900,10 +750,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
...
@@ -900,10 +750,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
if
ObjectId
:
if
ObjectId
:
dbExisting
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
dbExisting
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
id
=
ObjectId
,
id
=
ObjectId
,
deleted_at
=
None
)
.
first
()
archived_at
=
None
)
.
first
()
if
dbExisting
:
if
dbExisting
:
dbExisting
.
deleted_at
=
datetime
.
now
()
dbExisting
.
archived_at
=
datetime
.
now
()
dbExisting
.
save
()
dbExisting
.
save
()
self
.
perform_create
(
serializer
)
self
.
perform_create
(
serializer
)
...
@@ -916,7 +766,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
...
@@ -916,7 +766,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
)
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
...
@@ -928,7 +778,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
...
@@ -928,7 +778,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
pagination_class
=
paginators
.
SimplePageNumberPagination
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
return
super
(
ChangeRequestFormDetailsViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestFormDetailsViewset
,
self
)
.
list
(
request
)
...
@@ -941,10 +791,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
...
@@ -941,10 +791,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
if
ObjectId
:
if
ObjectId
:
dbExisting
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
dbExisting
=
models
.
ChangeRequestFormDetails
.
objects
.
filter
(
id
=
ObjectId
,
id
=
ObjectId
,
deleted_at
=
None
)
.
first
()
archived_at
=
None
)
.
first
()
if
dbExisting
:
if
dbExisting
:
dbExisting
.
deleted_at
=
datetime
.
now
()
dbExisting
.
archived_at
=
datetime
.
now
()
dbExisting
.
save
()
dbExisting
.
save
()
self
.
perform_create
(
serializer
)
self
.
perform_create
(
serializer
)
...
@@ -957,7 +807,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
...
@@ -957,7 +807,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
)
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
.
first
()
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
data
)
...
@@ -1007,9 +857,22 @@ class ChangeRequestFormPost(APIView):
...
@@ -1007,9 +857,22 @@ class ChangeRequestFormPost(APIView):
if
serializer
.
is_valid
(
raise_exception
=
True
):
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
()
serializer
.
save
()
template_no
=
serializer
.
data
[
'template_no'
]
tmp_counter
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
template_no
=
template_no
)
.
count
()
# tmp_counter = tmp_counter + 1
CR_Prefix
=
serializer
.
data
[
'requested_to_template_id'
]
generate_tmp
=
number_generator
(
CR_Prefix
,
tmp_counter
)
frm_id
=
serializer
.
data
[
'form_code'
]
frm_id
=
serializer
.
data
[
'form_code'
]
print
(
frm_id
)
print
(
frm_id
)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
frm_id
)
.
update
(
requested_to_template_id
=
generate_tmp
)
# create template approvers
# create template approvers
for
frm_approver
in
frm_approvers
:
for
frm_approver
in
frm_approvers
:
...
...
app/applicationlayer/cms/template/serializers.py
0 → 100644
View file @
4695d626
from
app.entities
import
models
from
rest_framework
import
serializers
from
django.db.models
import
Q
from
drf_writable_nested
import
WritableNestedModelSerializer
class
ChangeRequestTemplateApproversSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateApprovers
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'archived_at'
,
'code'
]
class
ChangeRequestTemplateStakeHoldersSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateStakeHolders
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'archived_at'
,
'code'
]
class
ChangeRequestTemplateAttachmentsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateAttachments
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'archived_at'
,
'code'
]
class
ChangeRequestTemplateDetailsSerializer
(
serializers
.
ModelSerializer
):
class
Meta
:
model
=
models
.
ChangeRequestTemplateDetails
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'archived_at'
,
'code'
]
# comment
class
ChangeRequestTemplatesSerializer
(
WritableNestedModelSerializer
):
tmp_approvers
=
ChangeRequestTemplateApproversSerializer
(
many
=
True
,
required
=
False
)
tmp_stakes
=
ChangeRequestTemplateStakeHoldersSerializer
(
many
=
True
,
required
=
False
)
tmp_attachments
=
ChangeRequestTemplateAttachmentsSerializer
(
many
=
True
,
required
=
False
)
tmp_details
=
ChangeRequestTemplateDetailsSerializer
(
many
=
True
,
required
=
False
)
class
Meta
:
model
=
models
.
ChangeRequestTemplateHeader
# fields = '__all__'
fields
=
(
'template_no'
,
'requested_to_template_name'
,
'requested_to_objective'
,
'requested_to_target_date'
,
'requested_to_priority'
,
'description'
,
'created'
,
'requested_to_template_id'
,
'requested_to_company'
,
'requested_to_department'
,
'requested_to_user'
,
'created_by_user'
,
'created_by_department'
,
'tmp_approvers'
,
'tmp_stakes'
,
'tmp_attachments'
,
'tmp_details'
)
read_only_fields
=
[
'created'
,
'archived_at'
,
'template_no'
]
\ No newline at end of file
app/applicationlayer/cms/template/views.py
0 → 100644
View file @
4695d626
from
django.shortcuts
import
render
from
rest_framework
import
viewsets
as
meviewsets
from
rest_framework.views
import
APIView
from
app.applicationlayer.cms.template
import
serializers
from
app.entities
import
models
from
app.applicationlayer
import
paginators
from
datetime
import
datetime
from
datetime
import
timedelta
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
import
requests
from
django.conf
import
settings
from
rest_framework.exceptions
import
ValidationError
from
django.db
import
transaction
,
IntegrityError
,
connection
from
app.applicationlayer.utils
import
QuerySetHelper
from
app.businesslayer.changerequest
import
change_request
from
app.applicationlayer.cms.utils_cr
import
number_generator
,
crhistory_save
from
django.shortcuts
import
get_object_or_404
from
rest_framework.generics
import
GenericAPIView
from
rest_framework.mixins
import
UpdateModelMixin
from
django.forms.models
import
model_to_dict
from
app.entities
import
enums
class
ChangeRequestTemplatesViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateHeader
.
objects
.
all
()
lookup_field
=
'template_no'
serializer_class
=
serializers
.
ChangeRequestTemplatesSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplatesViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
template_no
=
str
(
self
.
kwargs
.
get
(
'template_no'
))
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
template_no
=
self
.
kwargs
[
'template_no'
]
instance
=
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
Q
(
template_no
=
template_no
)
&
Q
(
archived_at
=
None
)
)
.
update
(
archived_at
=
datetime
.
now
())
return
Response
({
"message"
:
"Deleted"
},
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
return
Response
(
e
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
@
transaction
.
atomic
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
template_no
=
kwargs
[
'template_no'
]
tmp_no_exists
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
template_no
=
template_no
)
if
not
tmp_no_exists
:
serializer
=
self
.
get_serializer
(
instance
,
data
=
request
.
data
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
# print(new_instance)
crhistory_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
CREntitiesEnum
.
CR_TMP_HEADER
.
value
,
new_instance
[
'template_no'
],
old_instance
,
new_instance
)
return
Response
(
serializer
.
data
)
return
Response
(
"Unable to edit due to existing transaction"
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
@
action
(
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
(
template_no
=
template_no
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateHeader
.
objects
.
filter
(
template_no
=
template_no
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateApprovers
.
objects
.
filter
(
template_no
=
template_no
)
.
update
(
archived_at
=
datetime
.
now
())
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
filter
(
template_no
=
template_no
)
.
update
(
archived_at
=
datetime
.
now
())
return
Response
(
"Template successfully archived"
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
"Unable to archive due to existing transaction"
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
class
ChangeRequestTemplatePost
(
APIView
):
@
transaction
.
atomic
()
def
post
(
self
,
request
):
template_header
=
request
.
data
try
:
data_list_approver
=
[]
data_list_stake
=
[]
data_list_attach
=
[]
data_list_detail
=
[]
template_header_data
=
{
'requested_to_template_name'
:
template_header
[
'requested_to_template_name'
],
'requested_to_template_id'
:
template_header
[
'requested_to_template_id'
],
'requested_to_objective'
:
template_header
[
'requested_to_objective'
],
'requested_to_target_date'
:
template_header
[
'requested_to_target_date'
],
'requested_to_priority'
:
template_header
[
'requested_to_priority'
],
'description'
:
template_header
[
'description'
],
'created_by_department'
:
template_header
[
'created_by_department'
],
'created_by_user'
:
template_header
[
'created_by_user'
],
'requested_to_company'
:
template_header
[
'requested_to_company'
],
'requested_to_department'
:
template_header
[
'requested_to_department'
],
'requested_to_user'
:
template_header
[
'requested_to_user'
]
}
tmp_approvers
=
template_header
[
'tmp_approvers'
]
tmp_stakes
=
template_header
[
'tmp_stakes'
]
tmp_attachments
=
template_header
[
'tmp_attachments'
]
tmp_details
=
template_header
[
'tmp_details'
]
sp1
=
transaction
.
savepoint
()
# nothing will save to db
serializer
=
serializers
.
ChangeRequestTemplatesSerializer
(
data
=
template_header_data
)
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
()
tmp_id
=
serializer
.
data
[
'template_no'
]
# create template approvers
for
tmp_approver
in
tmp_approvers
:
tmp_approver
[
'template_no'
]
=
tmp_id
data_list_approver
.
append
(
tmp_approver
)
serializerApprover
=
serializers
.
ChangeRequestTemplateApproversSerializer
(
data
=
data_list_approver
,
many
=
True
)
if
serializerApprover
.
is_valid
(
raise_exception
=
True
):
serializerApprover
.
save
()
# create template stakes
for
tmp_stake
in
tmp_stakes
:
tmp_stake
[
'template_no'
]
=
tmp_id
data_list_stake
.
append
(
tmp_stake
)
serializerStake
=
serializers
.
ChangeRequestTemplateStakeHoldersSerializer
(
data
=
data_list_stake
,
many
=
True
)
if
serializerStake
.
is_valid
(
raise_exception
=
True
):
serializerStake
.
save
()
# create template attachments
for
tmp_attachment
in
tmp_attachments
:
tmp_attachment
[
'template_no'
]
=
tmp_id
data_list_attach
.
append
(
tmp_attachment
)
serializerAttach
=
serializers
.
ChangeRequestTemplateAttachmentsSerializer
(
data
=
data_list_attach
,
many
=
True
)
if
serializerAttach
.
is_valid
(
raise_exception
=
True
):
serializerAttach
.
save
()
# create template details
for
tmp_detail
in
tmp_details
:
tmp_detail
[
'template_no'
]
=
tmp_id
data_list_detail
.
append
(
tmp_detail
)
serializerDetail
=
serializers
.
ChangeRequestTemplateDetailsSerializer
(
data
=
data_list_detail
,
many
=
True
)
if
serializerDetail
.
is_valid
(
raise_exception
=
True
):
serializerDetail
.
save
()
message
=
{
'code'
:
201
,
'status'
:
'success'
,
'message'
:
'Template Details successfully saved!'
,
'results'
:
serializer
.
data
}
return
Response
(
message
,
status
=
status
.
HTTP_201_CREATED
)
except
ValidationError
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
400
,
'status'
:
'failed'
,
'message'
:
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
except
Exception
as
e
:
transaction
.
savepoint_rollback
(
sp1
)
message
=
{
'code'
:
500
,
'status'
:
'failed'
,
'message'
:
'Request was not able to process'
+
str
(
e
),
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
class
ChangeRequestTemplateApproversViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateApprovers
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateApproversSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
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
):
queryset
=
models
.
ChangeRequestTemplateAttachments
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateAttachmentsSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestTemplateAttachmentsViewset
,
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
ChangeRequestTemplateStakeHoldersViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateStakeHolders
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateStakeHoldersSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
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
):
queryset
=
models
.
ChangeRequestTemplateDetails
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateDetailsSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
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/user_privilege/serializers.py
0 → 100644
View file @
4695d626
app/applicationlayer/cms/user_privilege/views.py
0 → 100644
View file @
4695d626
app/applicationlayer/
management/changerequest
/utils_cr.py
→
app/applicationlayer/
cms
/utils_cr.py
View file @
4695d626
...
@@ -153,7 +153,7 @@ def receiver_body(
...
@@ -153,7 +153,7 @@ def receiver_body(
def
get_template_instance
(
form_code
):
def
get_template_instance
(
form_code
):
template_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
template_instance
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
form_code
=
form_code
)
&
Q
(
deleted_at
=
None
)
Q
(
archived_at
=
None
)
)
.
first
()
)
.
first
()
return
template_instance
return
template_instance
...
@@ -436,3 +436,14 @@ def cancel_overdue(request):
...
@@ -436,3 +436,14 @@ def cancel_overdue(request):
email_content
=
email_content_cancel
email_content
=
email_content_cancel
)
)
return
True
return
True
def
crhistory_save
(
action
,
entity
,
form_code
,
fromValue
,
toValue
):
models
.
ChangeRequestHistory
.
objects
.
create
(
action
=
action
,
entity
=
entity
,
form_code
=
form_code
,
fromValue
=
fromValue
,
toValue
=
toValue
)
return
True
\ No newline at end of file
app/applicationlayer/urls_cms.py
View file @
4695d626
...
@@ -3,27 +3,28 @@ from rest_framework import routers
...
@@ -3,27 +3,28 @@ from rest_framework import routers
from
django.conf.urls
import
url
from
django.conf.urls
import
url
from
app.applicationlayer.management.notification.views
import
NotificationsViewset
from
app.applicationlayer.management.notification.views
import
NotificationsViewset
from
app.applicationlayer.management.changerequest
import
views
as
crviews
from
app.applicationlayer.cms.template
import
views
as
crtemplate_views
from
app.applicationlayer.cms.form
import
views
as
crform_views
router
=
routers
.
DefaultRouter
()
router
=
routers
.
DefaultRouter
()
router
.
register
(
r'notifications'
,
NotificationsViewset
)
router
.
register
(
r'notifications'
,
NotificationsViewset
)
router
.
register
(
r'template'
,
crviews
.
ChangeRequestTemplatesViewset
)
router
.
register
(
r'template'
,
cr
template_
views
.
ChangeRequestTemplatesViewset
)
router
.
register
(
r'template-approvers'
,
crviews
.
ChangeRequestTemplateApproversViewset
)
router
.
register
(
r'template-approvers'
,
cr
template_
views
.
ChangeRequestTemplateApproversViewset
)
router
.
register
(
r'template-attachments'
,
crviews
.
ChangeRequestTemplateAttachmentsViewset
)
router
.
register
(
r'template-attachments'
,
cr
template_
views
.
ChangeRequestTemplateAttachmentsViewset
)
router
.
register
(
r'template-stakeholders'
,
crviews
.
ChangeRequestTemplateStakeHoldersViewset
)
router
.
register
(
r'template-stakeholders'
,
cr
template_
views
.
ChangeRequestTemplateStakeHoldersViewset
)
router
.
register
(
r'template-details'
,
crviews
.
ChangeRequestTemplateDetailsViewset
)
router
.
register
(
r'template-details'
,
cr
template_
views
.
ChangeRequestTemplateDetailsViewset
)
router
.
register
(
r'form'
,
crviews
.
ChangeRequestFormsViewset
)
router
.
register
(
r'form'
,
cr
form_
views
.
ChangeRequestFormsViewset
)
router
.
register
(
r'form-approvers'
,
crviews
.
ChangeRequestFormApproversViewset
)
router
.
register
(
r'form-approvers'
,
cr
form_
views
.
ChangeRequestFormApproversViewset
)
router
.
register
(
r'form-stakeholders'
,
crviews
.
ChangeRequestFormStakeHoldersViewset
)
router
.
register
(
r'form-stakeholders'
,
cr
form_
views
.
ChangeRequestFormStakeHoldersViewset
)
router
.
register
(
r'form-attachments'
,
crviews
.
ChangeRequestFormAttachmentsViewset
)
router
.
register
(
r'form-attachments'
,
cr
form_
views
.
ChangeRequestFormAttachmentsViewset
)
router
.
register
(
r'form-details'
,
crviews
.
ChangeRequestFormDetailsViewset
)
router
.
register
(
r'form-details'
,
cr
form_
views
.
ChangeRequestFormDetailsViewset
)
urlpatterns
=
(
urlpatterns
=
(
path
(
''
,
include
(
router
.
urls
)),
path
(
''
,
include
(
router
.
urls
)),
path
(
'template-post/'
,
crviews
.
ChangeRequestTemplatePost
.
as_view
()),
path
(
'template-post/'
,
cr
template_
views
.
ChangeRequestTemplatePost
.
as_view
()),
path
(
'form-post/'
,
crviews
.
ChangeRequestFormPost
.
as_view
()),
path
(
'form-post/'
,
cr
form_
views
.
ChangeRequestFormPost
.
as_view
()),
)
)
app/businesslayer/changerequest/change_request.py
View file @
4695d626
...
@@ -22,19 +22,19 @@ def list_by_user(user_id_number):
...
@@ -22,19 +22,19 @@ def list_by_user(user_id_number):
approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
user
=
user_id_number
)
&
Q
(
user
=
user_id_number
)
&
Q
(
delet
ed_at
=
None
)
Q
(
archiv
ed_at
=
None
)
)
)
approver
=
[
data
.
form_code
for
data
in
approver
]
approver
=
[
data
.
form_code
for
data
in
approver
]
stake
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
stake
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
Q
(
user
=
user_id_number
)
&
Q
(
user
=
user_id_number
)
&
Q
(
delet
ed_at
=
None
)
Q
(
archiv
ed_at
=
None
)
)
)
stake
=
[
data
.
form_code
for
data
in
stake
]
stake
=
[
data
.
form_code
for
data
in
stake
]
headers
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
headers
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
delet
ed_at
=
None
,
archiv
ed_at
=
None
,
requested_by_user
=
user_id_number
requested_by_user
=
user_id_number
)
)
headers
=
[
data
.
form_code
for
data
in
headers
]
headers
=
[
data
.
form_code
for
data
in
headers
]
...
@@ -52,7 +52,7 @@ def list_by_user(user_id_number):
...
@@ -52,7 +52,7 @@ def list_by_user(user_id_number):
# priviledgedList = models.ChangeRequestFormHeader.objects.filter(
# priviledgedList = models.ChangeRequestFormHeader.objects.filter(
# requested_to_department__in=crViews,
# requested_to_department__in=crViews,
#
delet
ed_at=None,
#
archiv
ed_at=None,
# )
# )
# priviledgedCrs = [data['form_code'] for data in priviledgedList]
# priviledgedCrs = [data['form_code'] for data in priviledgedList]
...
@@ -62,7 +62,7 @@ def list_by_user(user_id_number):
...
@@ -62,7 +62,7 @@ def list_by_user(user_id_number):
return_queryset
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
return_queryset
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code__in
=
form_code
,
form_code__in
=
form_code
,
delet
ed_at
=
None
,
archiv
ed_at
=
None
,
)
)
exclude
=
return_queryset
.
filter
(
exclude
=
return_queryset
.
filter
(
status__iexact
=
'Draft'
,
status__iexact
=
'Draft'
,
...
@@ -179,29 +179,13 @@ def filter_overdue(base_queryset):
...
@@ -179,29 +179,13 @@ def filter_overdue(base_queryset):
overdue
=
[]
overdue
=
[]
for
query
in
return_queryset
:
for
query
in
return_queryset
:
if
(
query
.
requested_to_target_date
<
now
):
try
:
if
query
.
requested_to_target_date
:
requested_to_target_date
=
datetime
.
strptime
(
query
.
requested_to_target_date
[:
-
1
],
"
%
Y-
%
m-
%
dT
%
H:
%
M:
%
S.
%
f"
)
if
(
requested_to_target_date
<
now
):
overdue
.
append
(
query
.
form_code
)
except
ValueError
:
#convert now
if
query
.
requested_to_target_date
:
requested_to_target_date
=
datetime
.
strptime
(
query
.
requested_to_target_date
[:
-
1
],
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
if
(
requested_to_target_date
<
now
):
overdue
.
append
(
query
.
form_code
)
overdue
.
append
(
query
.
form_code
)
return_queryset
=
return_queryset
.
filter
(
return_queryset
=
return_queryset
.
filter
(
form_code__in
=
overdue
form_code__in
=
overdue
)
)
return_queryset
except
Exception
as
e
:
except
Exception
as
e
:
pass
pass
...
@@ -241,14 +225,20 @@ def filter_awaiting(base_queryset,
...
@@ -241,14 +225,20 @@ def filter_awaiting(base_queryset,
current_level
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
current_level
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
query
.
form_code
)
&
Q
(
form_code
=
query
.
form_code
)
&
Q
(
deleted_at
=
None
)
&
(
Q
(
action
=
''
)
|
Q
(
action
=
None
))
(
Q
(
action
=
''
)
|
Q
(
action
=
None
))
)
.
order_by
(
'level'
)
)
.
order_by
(
'level'
)
if
current_level
:
if
current_level
:
first_level
=
current_level
.
first
()
first_user
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
code
=
first_level
)
.
values
(
'user'
)
print
(
first_user
.
user
)
# if x == user_id_number:
if
current_level
[
0
][
'user'
]
==
user_id_number
:
# awaiting_included.append(query.form_code)
awaiting_included
.
append
(
query
.
form_code
)
return_queryset
=
return_queryset
.
filter
(
form_code__in
=
awaiting_included
)
return_queryset
=
return_queryset
.
filter
(
form_code__in
=
awaiting_included
)
...
...
app/entities/migrations/0007_auto_20190911_1102.py
0 → 100644
View file @
4695d626
# Generated by Django 2.2 on 2019-09-11 11:02
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0006_emaillogs_is_sent'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'changerequestformheader'
,
name
=
'requested_to_template_id'
,
field
=
models
.
CharField
(
max_length
=
255
),
),
]
app/entities/migrations/0008_auto_20190911_1715.py
0 → 100644
View file @
4695d626
# Generated by Django 2.2 on 2019-09-11 17:15
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0007_auto_20190911_1102'
),
]
operations
=
[
migrations
.
AlterField
(
model_name
=
'changerequesthistory'
,
name
=
'form_code'
,
field
=
models
.
CharField
(
blank
=
True
,
max_length
=
255
,
null
=
True
),
),
]
app/entities/migrations/0009_auto_20190911_1845.py
0 → 100644
View file @
4695d626
# Generated by Django 2.2 on 2019-09-11 18:45
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0008_auto_20190911_1715'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'changerequestformapprovers'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequestformattachments'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequestformdetails'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequestformheader'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequestformstakeholders'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequesttemplateapprovers'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequesttemplateattachments'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequesttemplatedetails'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequesttemplateheader'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
migrations
.
RenameField
(
model_name
=
'changerequesttemplatestakeholders'
,
old_name
=
'deleted_at'
,
new_name
=
'archived_at'
,
),
]
app/entities/migrations/0010_auto_20190913_1143.py
0 → 100644
View file @
4695d626
# Generated by Django 2.2 on 2019-09-13 11:43
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0009_auto_20190911_1845'
),
]
operations
=
[
migrations
.
RemoveField
(
model_name
=
'changerequestformapprovers'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequestformattachments'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequestformdetails'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequestformheader'
,
name
=
'archived_at'
,
),
migrations
.
RemoveField
(
model_name
=
'changerequestformstakeholders'
,
name
=
'archived_at'
,
),
]
app/entities/models.py
View file @
4695d626
...
@@ -354,7 +354,6 @@ class BaseHeader(models.Model):
...
@@ -354,7 +354,6 @@ class BaseHeader(models.Model):
to_field
=
'code'
)
to_field
=
'code'
)
requested_to_template_name
=
models
.
CharField
(
max_length
=
255
)
requested_to_template_name
=
models
.
CharField
(
max_length
=
255
)
requested_to_template_id
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
requested_to_objective
=
models
.
CharField
(
requested_to_objective
=
models
.
CharField
(
max_length
=
255
,
max_length
=
255
,
...
@@ -374,10 +373,6 @@ class BaseHeader(models.Model):
...
@@ -374,10 +373,6 @@ class BaseHeader(models.Model):
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
abstract
=
True
abstract
=
True
...
@@ -399,9 +394,6 @@ class BaseApprover(models.Model):
...
@@ -399,9 +394,6 @@ class BaseApprover(models.Model):
created
=
models
.
DateTimeField
(
created
=
models
.
DateTimeField
(
blank
=
True
,
blank
=
True
,
null
=
True
)
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
abstract
=
True
abstract
=
True
...
@@ -421,9 +413,6 @@ class BaseStakeholder(models.Model):
...
@@ -421,9 +413,6 @@ class BaseStakeholder(models.Model):
created
=
models
.
DateTimeField
(
created
=
models
.
DateTimeField
(
blank
=
True
,
blank
=
True
,
null
=
True
)
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
abstract
=
True
abstract
=
True
...
@@ -452,9 +441,6 @@ class BaseAttachment(models.Model):
...
@@ -452,9 +441,6 @@ class BaseAttachment(models.Model):
created
=
models
.
DateTimeField
(
created
=
models
.
DateTimeField
(
blank
=
True
,
blank
=
True
,
null
=
True
)
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
abstract
=
True
abstract
=
True
...
@@ -469,9 +455,6 @@ class BaseDetails(models.Model):
...
@@ -469,9 +455,6 @@ class BaseDetails(models.Model):
created
=
models
.
DateTimeField
(
created
=
models
.
DateTimeField
(
blank
=
True
,
blank
=
True
,
null
=
True
)
null
=
True
)
deleted_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
abstract
=
True
abstract
=
True
...
@@ -488,6 +471,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
...
@@ -488,6 +471,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
unique
=
True
,
unique
=
True
,
max_length
=
255
)
max_length
=
255
)
requested_to_template_id
=
models
.
CharField
(
max_length
=
255
,
unique
=
True
)
created_by_user
=
models
.
ForeignKey
(
created_by_user
=
models
.
ForeignKey
(
User
,
User
,
on_delete
=
models
.
DO_NOTHING
,
on_delete
=
models
.
DO_NOTHING
,
...
@@ -500,6 +487,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
...
@@ -500,6 +487,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
to_field
=
'code'
,
to_field
=
'code'
,
related_name
=
'created_by_department'
)
related_name
=
'created_by_department'
)
archived_at
=
models
.
DateTimeField
(
blank
=
True
,
null
=
True
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_template_headers'
db_table
=
'change_request_template_headers'
...
@@ -515,7 +506,7 @@ class ChangeRequestTemplateHeader(BaseHeader):
...
@@ -515,7 +506,7 @@ class ChangeRequestTemplateHeader(BaseHeader):
self
.
save
()
self
.
save
()
def
delete
(
self
):
def
delete
(
self
):
self
.
delet
ed_at
=
datetime
.
utcnow
self
.
archiv
ed_at
=
datetime
.
utcnow
self
.
save
()
self
.
save
()
...
@@ -528,6 +519,9 @@ class ChangeRequestTemplateApprovers(BaseApprover):
...
@@ -528,6 +519,9 @@ 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'
...
@@ -544,6 +538,10 @@ class ChangeRequestTemplateApprovers(BaseApprover):
...
@@ -544,6 +538,10 @@ 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
(
unique
=
True
,
unique
=
True
,
...
@@ -553,6 +551,9 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
...
@@ -553,6 +551,9 @@ 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'
...
@@ -569,6 +570,10 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
...
@@ -569,6 +570,10 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
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
):
code
=
models
.
CharField
(
code
=
models
.
CharField
(
...
@@ -579,6 +584,9 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
...
@@ -579,6 +584,9 @@ 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'
...
@@ -595,6 +603,10 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
...
@@ -595,6 +603,10 @@ 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
(
...
@@ -605,6 +617,9 @@ class ChangeRequestTemplateDetails(BaseDetails):
...
@@ -605,6 +617,9 @@ 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'
...
@@ -621,6 +636,10 @@ class ChangeRequestTemplateDetails(BaseDetails):
...
@@ -621,6 +636,10 @@ 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
...
@@ -666,6 +685,8 @@ class ChangeRequestFormHeader(BaseHeader):
...
@@ -666,6 +685,8 @@ class ChangeRequestFormHeader(BaseHeader):
max_length
=
255
,
max_length
=
255
,
null
=
True
,
null
=
True
,
blank
=
True
)
blank
=
True
)
requested_to_template_id
=
models
.
CharField
(
max_length
=
255
)
class
Meta
:
class
Meta
:
db_table
=
'change_request_form_headers'
db_table
=
'change_request_form_headers'
...
@@ -840,7 +861,10 @@ class ChangeRequestHistory(AuditClass):
...
@@ -840,7 +861,10 @@ class ChangeRequestHistory(AuditClass):
(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
CREntitiesEnum
],
(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
CREntitiesEnum
],
default
=
enums
.
CREntitiesEnum
.
CR_FRM_HEADER
.
value
,
default
=
enums
.
CREntitiesEnum
.
CR_FRM_HEADER
.
value
,
max_length
=
50
)
max_length
=
50
)
form_code
=
models
.
IntegerField
()
form_code
=
models
.
CharField
(
max_length
=
255
,
blank
=
True
,
null
=
True
)
fromValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
fromValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
toValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
toValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
...
...
requirements/RMSv2.postman_collection_091319
0 → 100644
View file @
4695d626
{
"info": {
"_postman_id": "8f54e04b-ae4d-49cc-a560-1e7f94f5313d",
"name": "RMSv2",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Access Token",
"item": [
{
"name": "current-user",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "e53b51ddf459852812a56435aaea934d107cde82",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/auth/current-user/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"auth",
"current-user",
""
]
}
},
"response": []
},
{
"name": "Login",
"request": {
"auth": {
"type": "noauth"
},
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNTU2OTM5MDI4LCJlbWFpbCI6IiJ9.eAA6vSTOhrto5yfy3IQsCdR7iaZxfApNcvdJsFdFmsc",
"type": "text",
"disabled": true
}
],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "username",
"value": "superuser",
"type": "text"
},
{
"key": "password",
"value": "password123",
"type": "text"
}
]
},
"url": {
"raw": "http://localhost:8000/api/v1/auth/login/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"auth",
"login",
""
]
}
},
"response": []
}
]
},
{
"name": "Management",
"item": [
{
"name": "Application Management",
"item": [
{
"name": "List of Applications",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/applications/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"applications",
""
]
}
},
"response": []
},
{
"name": "View Application",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/applications/1/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"applications",
"1",
""
]
}
},
"response": []
},
{
"name": "Create Application",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"Assets Management System\",\n\t\"app_code\": \"AMS\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/applications/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"applications",
""
]
}
},
"response": []
},
{
"name": "Edit Application",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "4bf6b1bed4066b3712bd3ca6d6e0466c14767cf0",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"rms2\",\n\t\"app_code\": \"rms\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/applications/1/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"applications",
"1",
""
]
}
},
"response": []
},
{
"name": "Delete Application",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"rms2\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/applications/3/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"applications",
"3",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "Companies Management",
"item": [
{
"name": "List of Companies",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/companies/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"companies",
""
]
}
},
"response": []
},
{
"name": "View Company",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/companies/1/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"companies",
"1",
""
]
}
},
"response": []
},
{
"name": "Create Company",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"Oneberry\",\n\t\"contact_details\": \"2152509\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/companies/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"companies",
""
]
}
},
"response": []
},
{
"name": "Edit Company",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"TIR2\",\n\t\"contact_details\": \"2152509\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/companies/4/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"companies",
"4",
""
]
}
},
"response": []
},
{
"name": "Delete Company",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"name\": \"TIR2\",\n\t\"contact_details\": \"2152509\"\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/companies/4/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"companies",
"4",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "Department Management",
"item": [
{
"name": "List of Department",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/departments/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"departments",
""
]
}
},
"response": []
},
{
"name": "View Department",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/departments/1/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"departments",
"1",
""
]
}
},
"response": []
},
{
"name": "Create Department",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Super User\",\n \"company\": 2\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/departments/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"departments",
""
]
}
},
"response": []
},
{
"name": "Edit Department",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Business Developments\",\n \"company\": 2\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/departments/2/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"departments",
"2",
""
]
}
},
"response": []
},
{
"name": "Delete Department",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Business Developments\",\n \"company\": 2\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/departments/2/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"departments",
"2",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "Module Management",
"item": [
{
"name": "List of Module",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/modules/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"modules",
""
]
}
},
"response": []
},
{
"name": "View Module",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/modules/5/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"modules",
"5",
""
]
}
},
"response": []
},
{
"name": "Create Module",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "ee0a1398b999f2ab1953447e2c733734d0cb0413",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"User Management\",\n \"parent\": 0,\n \"sort_id\": 6,\n \"application\": 1\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/modules/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"modules",
""
]
}
},
"response": []
},
{
"name": "Edit Module",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Assets NVM\",\n \"parent\": 10,\n \"sort_id\": 1,\n \"application\": 2\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/modules/12/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"modules",
"12",
""
]
}
},
"response": []
},
{
"name": "Edit Module Copy",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "46fcda76895239b0fdfa998165780fd451fe049d",
"type": "string"
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Assets NVM\",\n \"parent\": 10,\n \"sort_id\": 1,\n \"application\": 2\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/modules/12/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"modules",
"12",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "User",
"item": [
{
"name": "List of Users",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "7bb27437597c6598d7cffefa7953d28983af6644",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/management/users/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"users",
""
]
}
},
"response": []
},
{
"name": "View Users",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "4bf6b1bed4066b3712bd3ca6d6e0466c14767cf0",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/users/3/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"users",
"3",
""
]
}
},
"response": []
},
{
"name": "Create User",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "7bb27437597c6598d7cffefa7953d28983af6644",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"application\":[1,3],\r\n\t\"department\": 1,\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"Kath\",\r\n\t\"username\": \"kath\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"RMS\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"test@gmail.com\"\r\n}\r\n"
},
"url": {
"raw": "http://localhost:8000/api/v1/management/users/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"users",
""
]
}
},
"response": []
},
{
"name": "Edit User",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "4bf6b1bed4066b3712bd3ca6d6e0466c14767cf0",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"application\":[1,3],\r\n\t\"department\": 1,\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"Ritas\",\r\n\t\"username\": \"OBRITA\",\r\n\t\"password\": \"password123\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"RMS\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"test@gmail.com\"\r\n}\r\n"
},
"url": {
"raw": "http://localhost:8000/api/v1/users/3/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"users",
"3",
""
]
}
},
"response": []
},
{
"name": "Change Password",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "4bf6b1bed4066b3712bd3ca6d6e0466c14767cf0",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"application\":[1,3],\r\n\t\"department\": 1,\r\n\t\"user_type\": \"OUA\",\r\n\t\"name\": \"Ritas\",\r\n\t\"username\": \"OBRITA\",\r\n\t\"password\": \"password123\",\r\n\t\"doa\":\"\",\r\n\t\"default_app\": \"RMS\",\r\n\t\"contact_no\": \"1312313\",\r\n\t\"email\": \"test@gmail.com\"\r\n}\r\n"
},
"url": {
"raw": "http://localhost:8000/api/v1/users/3/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"users",
"3",
""
]
}
},
"response": []
},
{
"name": "Delete User",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "4bf6b1bed4066b3712bd3ca6d6e0466c14767cf0",
"type": "string"
}
]
},
"method": "DELETE",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "http://localhost:8000/api/v1/users/3/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"users",
"3",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
}
]
},
{
"name": "Change Request",
"item": [
{
"name": "CR Templates",
"item": [
{
"name": "CR Template Header",
"item": [
{
"name": "Template Header Post",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "7bb27437597c6598d7cffefa7953d28983af6644",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"requested_to_template_name\": \"Sample Template\",\r\n\t\"requested_to_template_id\": \"JTC\",\r\n\t\"requested_to_objective\": \"Sample Objective\",\r\n\t\"requested_to_target_date\": \"10\",\r\n\t\"requested_to_priority\": \"High\",\r\n\t\"description\": \"sample description\",\r\n\t\"created_by_department\": \"Super User\",\r\n\t\"created_by_user\": \"USER-20190913-0000006\",\r\n\t\"requested_to_company\": \"COMPANY-20190909-0000002\",\r\n\t\"requested_to_department\": \"DEPARTMENT-20190909-0000002\",\r\n\t\"requested_to_user\": \"USER-20190913-0000007\",\r\n\t\r\n\t\r\n\t\"tmp_approvers\": [{\r\n\t\t\t\"level\": \"1\",\r\n\t\t\t\"delegation\": \"Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"level\": \"2\",\r\n\t\t\t\"delegation\": \"Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"tmp_stakes\": [{\r\n\t\t\t\"delegation\": \"Mandatory Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"delegation\": \"Stake Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"tmp_attachments\": [{\r\n\t\t\t\"attachment_type\": \"Hello\",\r\n\t\t\t\"attachment_name\": \"heyu\",\r\n\t\t\t\"file_name\": \"Sample\",\r\n\t\t\t\"description\": \"Sameple Desc\",\r\n\t\t\t\"uploaded_by\": \"USER-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"attachment_type\": \"Hello\",\r\n\t\t\t\"attachment_name\": \"heyu\",\r\n\t\t\t\"file_name\": \"Sample\",\r\n\t\t\t\"description\": \"Sameple Desc\",\r\n\t\t\t\"uploaded_by\": \"USER-20190911-0000005\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"tmp_details\": [{\r\n\t\t\t\"field_idx\": \"Hello\",\r\n\t\t\t\"field_ref\": \"heyu\",\r\n\t\t\t\"field_val\": \"Sample\",\r\n\t\t\t\"field_props\": \"Sameple Desc\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"field_idx\": \"Hello\",\r\n\t\t\t\"field_ref\": \"heyu\",\r\n\t\t\t\"field_val\": \"Sample\",\r\n\t\t\t\"field_props\": \"Sameple Desc\"\r\n\t\t}\r\n\t]\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-post/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-post",
""
]
}
},
"response": []
},
{
"name": "List of Templates",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "7bb27437597c6598d7cffefa7953d28983af6644",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
""
]
}
},
"response": []
},
{
"name": "View Template",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/TMP-20190911-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
"TMP-20190911-0000001",
""
]
}
},
"response": []
},
{
"name": "Edit Template",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"template_no\": \"TMP-20190911-0000001\",\r\n \"requested_to_template_name\": \"Sample Template\",\r\n \"requested_to_objective\": \"hello objective\",\r\n \"requested_to_target_date\": \"2019-09-03T13:59:29.694560\",\r\n \"requested_to_priority\": \"High\",\r\n \"description\": \"sample description\",\r\n \"archived_at\": \"2019-09-11T18:59:09.296883\",\r\n \"requested_to_template_id\": \"temp\",\r\n \"requested_to_company\": \"COMPANY-20190909-0000002\",\r\n \"requested_to_department\": \"DEPARTMENT-20190909-0000002\",\r\n \"requested_to_user\": \"USER-20190909-0000005\",\r\n \"created_by_user\": \"USER-20190909-0000005\",\r\n \"created_by_department\": \"admin\",\r\n \r\n \"tmp_approvers\": [\r\n {\r\n \"id\": 1,\r\n \"level\": \"1\",\r\n \"delegation\": \"Approver\",\r\n \"created\": \"2019-09-11T18:59:09.509901\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPAPR-20190911-0000001\",\r\n \"user\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n },\r\n {\r\n \"id\": 2,\r\n \"level\": \"2\",\r\n \"delegation\": \"Approver\",\r\n \"created\": \"2019-09-11T18:59:09.607909\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPAPR-20190911-0000002\",\r\n \"user\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n }\r\n ],\r\n \"tmp_stakes\": [\r\n {\r\n \"id\": 1,\r\n \"delegation\": \"Mandatory Approver\",\r\n \"created\": \"2019-09-11T18:59:09.618924\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPSTK-20190911-0000001\",\r\n \"user\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n },\r\n {\r\n \"id\": 2,\r\n \"delegation\": \"Stake Approver\",\r\n \"created\": \"2019-09-11T18:59:09.619886\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPSTK-20190911-0000002\",\r\n \"user\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n }\r\n ],\r\n \"tmp_attachments\": [\r\n {\r\n \"id\": 1,\r\n \"attachment_type\": \"Hello\",\r\n \"attachment_name\": \"heyu\",\r\n \"file_name\": \"Sample\",\r\n \"description\": \"Sameple Desc\",\r\n \"file_upload\": null,\r\n \"created\": \"2019-09-11T18:59:09.631923\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPATCH-20190911-0000001\",\r\n \"uploaded_by\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n },\r\n {\r\n \"id\": 2,\r\n \"attachment_type\": \"Hello\",\r\n \"attachment_name\": \"heyu\",\r\n \"file_name\": \"Sample\",\r\n \"description\": \"Sameple Desc\",\r\n \"file_upload\": null,\r\n \"created\": \"2019-09-11T18:59:09.674881\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPATCH-20190911-0000002\",\r\n \"uploaded_by\": \"USER-20190909-0000005\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n }\r\n ],\r\n \"tmp_details\": [\r\n {\r\n \"id\": 1,\r\n \"field_idx\": \"Hello\",\r\n \"field_ref\": \"heyu\",\r\n \"field_val\": \"Sample\",\r\n \"field_props\": \"Sameple Desc\",\r\n \"created\": \"2019-09-11T18:59:09.684922\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPDETAIL-20190911-0000001\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n },\r\n {\r\n \"id\": 2,\r\n \"field_idx\": \"Hello\",\r\n \"field_ref\": \"heyu\",\r\n \"field_val\": \"Sample\",\r\n \"field_props\": \"Sameple Desc\",\r\n \"created\": \"2019-09-11T18:59:09.685887\",\r\n \"archived_at\": null,\r\n \"code\": \"TMPDETAIL-20190911-0000002\",\r\n \"template_no\": \"TMP-20190911-0000001\"\r\n }\r\n ]\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/TMP-20190911-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
"TMP-20190911-0000001",
""
]
}
},
"response": []
},
{
"name": "Archive Template",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "PATCH",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/archived/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
"archived",
""
]
}
},
"response": []
},
{
"name": "Retrieve Template",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "PATCH",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/TMP-20190909-0000002/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
"TMP-20190909-0000002",
""
]
}
},
"response": []
},
{
"name": "Delete Template",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "9a1e3cb331a5191193365413058dcec1ad8fb42a",
"type": "string"
}
]
},
"method": "DELETE",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template/TMP-20190909-0000002/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template",
"TMP-20190909-0000002",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Template Approver",
"item": [
{
"name": "List of Approvers",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-approvers/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-approvers",
""
]
}
},
"response": []
},
{
"name": "View Approver",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-approvers/TMPAPR-20190911-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-approvers",
"TMPAPR-20190911-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Template Stakeholder",
"item": [
{
"name": "List of Stakeholders",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-stakeholders/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-stakeholders",
""
]
}
},
"response": []
},
{
"name": "View Stakeholder",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-stakeholders/TMPSTK-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-stakeholders",
"TMPSTK-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Template Attachment",
"item": [
{
"name": "List of Attachments",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-attachments/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-attachments",
""
]
}
},
"response": []
},
{
"name": "View Attachment",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-attachments/TMPATCH-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-attachments",
"TMPATCH-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Template Detail",
"item": [
{
"name": "List of Details",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-details/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-details",
""
]
}
},
"response": []
},
{
"name": "View Detail",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/template-details/TMPDETAIL-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"template-details",
"TMPDETAIL-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Forms",
"item": [
{
"name": "CR Form Header",
"item": [
{
"name": "Create Form Header",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n\t\"requested_to_template_name\": \"Sample Template\",\r\n\t\"requested_to_template_id\": \"gg\",\r\n\t\"requested_to_objective\": \"hello objective\",\r\n\t\"requested_to_target_date\": \"2019-09-03 13:59:29.694560\",\r\n\t\"requested_to_priority\": \"High\",\r\n\t\"description\": \"sample description\",\r\n\t\"status\": \"Pending\",\r\n\t\"company_desc\": \"Oneberry\",\r\n\t\"department_desc\": \"Oneberry Superuser\",\r\n\t\"requested_desc\": \"Super User\",\r\n\t\"old_form_code\": \"\",\r\n\t\"requested_by_department\": \"admin\",\r\n\t\"requested_by_user\": \"USER-20190911-0000005\",\r\n\t\"requested_to_company\": \"COMPANY-20190909-0000002\",\r\n\t\"requested_to_department\": \"DEPARTMENT-20190909-0000002\",\r\n\t\"requested_to_user\": \"USER-20190911-0000005\",\r\n\t\"template_no\": \"TMP-20190911-0000003\",\r\n\t\r\n\t\"frm_approvers\": [{\r\n\t\t\t\"level\": \"1\",\r\n\t\t\t\"delegation\": \"Approver\",\r\n\t\t\t\"remarks\": \"Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\",\r\n\t\t\t\"action\": \"Approved\",\r\n\t\t\t\"date_sent\": \"2019-09-03 13:59:29.694560\",\r\n\t\t\t\"tmp_approver\": \"TMPAPR-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"level\": \"2\",\r\n\t\t\t\"delegation\": \"Approver\",\r\n\t\t\t\"remarks\": \"Approver\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\",\r\n\t\t\t\"action\": \"Approved\",\r\n\t\t\t\"date_sent\": \"2019-09-03 13:59:29.694560\",\r\n\t\t\t\"tmp_approver\": \"TMPAPR-20190911-0000006\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"frm_stakes\": [{\r\n\t\t\t\"date_added\": \"2019-09-03 13:59:29.694560\",\r\n\t\t\t\"delegation\": \"Mandatory Stakeholder\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\",\r\n\t\t\t\"tmp_stake\": \"TMPSTK-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"date_added\": \"2019-09-03 13:59:29.694560\",\r\n\t\t\t\"delegation\": \"Mandatory Stakeholder\",\r\n\t\t\t\"user\": \"USER-20190911-0000005\",\r\n\t\t\t\"tmp_stake\": \"TMPSTK-20190911-0000006\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"frm_attachments\": [{\r\n\t\t\t\"attachment_type\": \"Mandatory Attache\",\r\n\t\t\t\"attachment_name\": \"Mandatory Stakeholder\",\r\n\t\t\t\"file_name\": \"sss\",\r\n\t\t\t\"description\": \"Sample Desc 1\",\r\n\t\t\t\"uploaded_by\": \"USER-20190911-0000005\",\r\n\t\t\t\"tmp_attach\": \"TMPATCH-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"attachment_type\": \"Mandatory Attache 2\",\r\n\t\t\t\"attachment_name\": \"Mandatory Stakeholder\",\r\n\t\t\t\"file_name\": \"Sample Desc 2\",\r\n\t\t\t\"description\": \"Sample Desc\",\r\n\t\t\t\"uploaded_by\": \"USER-20190911-0000005\",\r\n\t\t\t\"tmp_attach\": \"TMPATCH-20190911-0000006\"\r\n\t\t}\r\n\t],\r\n\t\r\n\t\"frm_details\": [{\r\n\t\t\t\"field_idx\": \"Hello\",\r\n\t\t\t\"field_ref\": \"heyu\",\r\n\t\t\t\"field_val\": \"Sample\",\r\n\t\t\t\"field_props\": \"Sameple Desc\",\r\n\t\t\t\"tmp_detail\": \"TMPDETAIL-20190911-0000005\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"field_idx\": \"Hello\",\r\n\t\t\t\"field_ref\": \"heyu\",\r\n\t\t\t\"field_val\": \"Sample\",\r\n\t\t\t\"field_props\": \"Sameple Desc\",\r\n\t\t\t\"tmp_detail\": \"TMPDETAIL-20190911-0000006\"\r\n\t\t}\r\n\t]\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-post/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-post",
""
]
}
},
"response": []
},
{
"name": "List of Forms",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "f19b85056e3e3e7c095239f6701cb2ef4f7eeb09",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
""
]
}
},
"response": []
},
{
"name": "View Form",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "defb141318b540c9df8698150a68b59af14cca20",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/FRM-20190912-0000002/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
"FRM-20190912-0000002",
""
]
}
},
"response": []
},
{
"name": "Edit Form",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "PUT",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"requested_to_template_name\": \"Sample Templates\",\r\n \"requested_to_template_id\": \"Samp\",\r\n \"requested_to_objective\": \"hello objective\",\r\n \"requested_to_target_date\": \"2019-09-03T13:59:29.694560\",\r\n \"requested_to_priority\": \"High\",\r\n \"description\": \"sample description\",\r\n \"form_code\": \"FRM-20190909-0000006\",\r\n \"cancel_date\": null,\r\n \"status\": \"Pending\",\r\n \"company_desc\": \"Oneberry\",\r\n \"department_desc\": \"Oneberry Superuser\",\r\n \"requested_desc\": \"Super User\",\r\n \"old_form_code\": \"\",\r\n \"requested_to_company\": \"COMPANY-20190909-0000002\",\r\n \"requested_to_department\": \"DEPARTMENT-20190909-0000002\",\r\n \"requested_to_user\": \"USER-20190909-0000005\",\r\n \"requested_by_user\": \"USER-20190909-0000005\",\r\n \"requested_by_department\": \"admin\",\r\n \"template_no\": \"TMP-20190909-0000001\",\r\n \"action\": \"No\"\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/FRM-20190909-0000006/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
"FRM-20190909-0000006",
""
]
}
},
"response": []
},
{
"name": "Delete Form",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "DELETE",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/FRM-20190909-0000006/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
"FRM-20190909-0000006",
""
]
}
},
"response": []
},
{
"name": "Re Route for Approval",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "67f8d147a33e90055f19a47bc60ad559e4b556e7",
"type": "string"
}
]
},
"method": "PATCH",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/FRM-20190912-0000002/re_route/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
"FRM-20190912-0000002",
"re_route",
""
]
}
},
"response": []
},
{
"name": "Resubmit",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "22259ad4dd11ee87dd0735366694979dc419228f",
"type": "string"
}
]
},
"method": "PATCH",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form/FRM-20190912-0000002/re_submit/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form",
"FRM-20190912-0000002",
"re_submit",
""
]
}
},
"response": []
},
{
"name": "CR Action",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "6fb3fbceeab432bbe8102481c2fdf11db55dbf72",
"type": "string"
}
]
},
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"id\": 1,\r\n \"level\": \"1\",\r\n \"delegation\": \"Approver\",\r\n \"created\": \"2019-09-10T17:21:10.794834\",\r\n \"deleted_at\": null,\r\n \"code\": \"FRMAPR-20190910-0000001\",\r\n \"remarks\": \"Approver\",\r\n \"action\": \"Approved\",\r\n \"date_sent\": \"2019-09-03T13:59:29.694560\",\r\n \"user\": \"USER-20190909-0000005\",\r\n \"form_code\": \"FRM-20190910-0000001\",\r\n \"tmp_approver\": \"TMPAPR-20190910-0000001\"\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-approvers/approved/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-approvers",
"approved",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Form Approver",
"item": [
{
"name": "List of Approvers",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "6fb3fbceeab432bbe8102481c2fdf11db55dbf72",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-approvers/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-approvers",
""
]
}
},
"response": []
},
{
"name": "View Approver",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-approvers/TMPAPR-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-approvers",
"TMPAPR-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Form Stakeholder",
"item": [
{
"name": "List of Stakeholders",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-stakeholders/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-stakeholders",
""
]
}
},
"response": []
},
{
"name": "View Stakeholder",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-stakeholders/TMPSTK-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-stakeholders",
"TMPSTK-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Form Attachment",
"item": [
{
"name": "List of Attachments",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-attachments/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-attachments",
""
]
}
},
"response": []
},
{
"name": "View Attachment",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\r\n \"attachment_type\": \"Mandatory Attached\",\r\n \"attachment_name\": \"Mandatory Stakeholder\",\r\n \"file_name\": \"USER-20190909-0000005\",\r\n \"description\": \"Sample Desc 1\",\r\n \"file_upload\": null,\r\n \"code\": \"FRMATCH-20190909-0000001\",\r\n \"uploaded_by\": \"USER-20190909-0000005\",\r\n \"form_code\": \"FRM-20190909-0000005\",\r\n \"tmp_attach\": \"TMPATCH-20190909-0000001\"\r\n}"
},
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-attachments/FRMATCH-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-attachments",
"FRMATCH-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
},
{
"name": "CR Form Detail",
"item": [
{
"name": "List of Details",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-details/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-details",
""
]
}
},
"response": []
},
{
"name": "View Detail",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "http://localhost:8000/api/v1/change-request/form-details/FRMDETAIL-20190909-0000001/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"change-request",
"form-details",
"FRMDETAIL-20190909-0000001",
""
]
}
},
"response": []
}
],
"_postman_isSubFolder": true
}
],
"_postman_isSubFolder": true
}
]
},
{
"name": "Notifications",
"item": [
{
"name": "List Notifications by account_no",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "951574546a6d45af34dfef101840bba27f1ab574",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "http://localhost:8000/api/v1/management/notifications/",
"protocol": "http",
"host": [
"localhost"
],
"port": "8000",
"path": [
"api",
"v1",
"management",
"notifications",
""
]
}
},
"response": []
},
{
"name": "Create Notification",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "37d5c7c08f82cc0f8a3a73634d3b6a78ead3da37",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"form_header_code\": \"FRM-20190902-000001\",\n \"notif_type\": \"ACTIVITY\",\n \"message\": \"Oneberry CCTV Replacement Request due in 5 days\",\n \"is_read\": false,\n \"app\": \"APP-20190903-0000002\",\n \"account_no\": \"USER-20190904-0000002\",\n \"sender_account_no\": \"USER-20190904-0000002\"\n}"
},
"url": {
"raw": "http://devapi.rmsv2.oneberrysystem.com:7020/api/v1/notifications/",
"protocol": "http",
"host": [
"devapi",
"rmsv2",
"oneberrysystem",
"com"
],
"port": "7020",
"path": [
"api",
"v1",
"notifications",
""
]
}
},
"response": []
},
{
"name": "Update Read Status by ids",
"request": {
"auth": {
"type": "basic",
"basic": [
{
"key": "password",
"value": "password123",
"type": "string"
},
{
"key": "username",
"value": "admin",
"type": "string"
}
]
},
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n\t\"ids\": [8]\n}"
},
"url": {
"raw": "http://devapi.rmsv2.oneberrysystem.com/api/v1/notifications/USER-20190903-0000002/seen/",
"protocol": "http",
"host": [
"devapi",
"rmsv2",
"oneberrysystem",
"com"
],
"path": [
"api",
"v1",
"notifications",
"USER-20190903-0000002",
"seen",
""
]
}
},
"response": []
},
{
"name": "Update Read Status by account_no",
"request": {
"auth": {
"type": "basic",
"basic": [
{
"key": "password",
"value": "password123",
"type": "string"
},
{
"key": "username",
"value": "admin",
"type": "string"
}
]
},
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "http://devapi.rmsv2.oneberrysystem.com/api/v1/notifications/USER-20190903-0000002/seenall/",
"protocol": "http",
"host": [
"devapi",
"rmsv2",
"oneberrysystem",
"com"
],
"path": [
"api",
"v1",
"notifications",
"USER-20190903-0000002",
"seenall",
""
]
}
},
"response": []
}
]
}
]
}
\ No newline at end of file
requirements/local.txt
View file @
4695d626
...
@@ -19,6 +19,7 @@ Django==2.2
...
@@ -19,6 +19,7 @@ Django==2.2
django-cors-headers==2.5.2
django-cors-headers==2.5.2
django-filter==2.1.0
django-filter==2.1.0
djangorestframework==3.9.2
djangorestframework==3.9.2
drf-writable-nested==0.5.1
gevent==1.4.0
gevent==1.4.0
greenlet==0.4.15
greenlet==0.4.15
hiredis==1.0.0
hiredis==1.0.0
...
...
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