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
9d701a28
Commit
9d701a28
authored
Sep 08, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
do not merge
parent
1a61c3d3
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
560 additions
and
4 deletions
+560
-4
app/applicationlayer/management/changerequest/views.py
app/applicationlayer/management/changerequest/views.py
+480
-1
app/applicationlayer/urls.py
app/applicationlayer/urls.py
+3
-3
app/entities/enums.py
app/entities/enums.py
+19
-0
app/entities/migrations/0013_changerequesthistory.py
app/entities/migrations/0013_changerequesthistory.py
+31
-0
app/entities/models.py
app/entities/models.py
+27
-0
media/uploads/Badge_Printing.pdf
media/uploads/Badge_Printing.pdf
+0
-0
media/uploads/Notification__Emails_-_ExistingFlow.pdf
media/uploads/Notification__Emails_-_ExistingFlow.pdf
+0
-0
No files found.
app/applicationlayer/management/changerequest/views.py
View file @
9d701a28
...
@@ -165,11 +165,12 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
...
@@ -165,11 +165,12 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
queryset
=
models
.
ChangeRequestTemplateApprovers
.
objects
.
all
()
queryset
=
models
.
ChangeRequestTemplateApprovers
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestTemplateApproversSerializer
serializer_class
=
serializers
.
ChangeRequestTemplateApproversSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
pagination_class
=
paginators
.
SimplePageNumberPagination
lookup_field
=
"code"
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
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
# self.queryset = QuerySetHelper.Filter(self)
return
super
(
ChangeRequestTemplateApproversViewset
,
self
)
.
list
(
request
)
return
super
(
ChangeRequestTemplateApproversViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
...
@@ -178,6 +179,57 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
...
@@ -178,6 +179,57 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
return
Response
(
serializer
.
data
)
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
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
# self.queryset = QuerySetHelper.Filter(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
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
deleted_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
# self.queryset = QuerySetHelper.Filter(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
):
class
ChangeRequestTemplatePost
(
APIView
):
@
transaction
.
atomic
()
@
transaction
.
atomic
()
...
@@ -296,6 +348,433 @@ class ChangeRequestTemplatePost(APIView):
...
@@ -296,6 +348,433 @@ class ChangeRequestTemplatePost(APIView):
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
class
ChangeRequestFormsViewset
(
meviewsets
.
ModelViewSet
):
lookup_field
=
'form_code'
queryset
=
models
.
ChangeRequestFormHeader
.
objects
.
all
()
serializer_class
=
serializers
.
ChangeRequestFormHeaderSerializer
pagination_class
=
paginators
.
SimplePageNumberPagination
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
# id_number = logged_user(self)
# id_number = 'Acct-20190813-0000138'
# self.queryset = change_request.list_by_user(id_number)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
request
.
query_params
.
get
(
'company_requested_to'
),
request
.
query_params
.
get
(
'department_requested_to'
),
request
.
query_params
.
get
(
'date_modified_from'
),
request
.
query_params
.
get
(
'date_modified_to'
),
request
.
query_params
.
get
(
'date_required_from'
),
request
.
query_params
.
get
(
'date_required_to'
),
request
.
query_params
.
get
(
'form_type'
),
)
if
self
.
request
.
query_params
.
get
(
'search'
):
search_key
=
self
.
request
.
query_params
.
get
(
'search'
)
self
.
queryset
=
self
.
queryset
.
filter
(
Q
(
requested_to_template_name__icontains
=
search_key
.
lower
())
|
Q
(
requested_to_template_id__icontains
=
search_key
.
lower
())
)
# self.queryset = self.queryset.order_by('-created')
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
# self.queryset = QuerySetHelper.Search(self) # comment
return
super
(
ChangeRequestFormsViewset
,
self
)
.
list
(
request
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
url_path
=
'dashboard'
,
name
=
"Dashboard Summary"
)
def
dashboard_view
(
self
,
request
):
id_number
=
logged_user
(
self
)
# id_number = 'Acct-20190813-0000138'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
request
.
query_params
.
get
(
'company_requested_to'
),
request
.
query_params
.
get
(
'department_requested_to'
),
request
.
query_params
.
get
(
'date_modified_from'
),
request
.
query_params
.
get
(
'date_modified_to'
),
request
.
query_params
.
get
(
'date_required_from'
),
request
.
query_params
.
get
(
'date_required_to'
),
request
.
query_params
.
get
(
'form_type'
),
)
pending
=
self
.
queryset
.
filter
(
status__iexact
=
'Pending'
)
.
count
()
approved
=
self
.
queryset
.
filter
(
status__iexact
=
'Approved'
)
.
count
()
rejected
=
self
.
queryset
.
filter
(
status__iexact
=
'Rejected'
)
.
count
()
cancelled
=
self
.
queryset
.
filter
(
status__iexact
=
'Cancelled'
)
.
count
()
completed
=
self
.
queryset
.
filter
(
status__iexact
=
'Closed'
#Completed
)
.
count
()
high
=
self
.
queryset
.
filter
(
requested_to_priority
=
'High'
)
.
count
()
normal
=
self
.
queryset
.
filter
(
requested_to_priority
=
'Normal'
)
.
count
()
awaiting_filtered
=
change_request
.
filter_awaiting
(
self
.
queryset
,
id_number
)
# awaiting = awaiting_filtered.count()
awaiting
=
0
for
awaits
in
awaiting_filtered
:
if
awaits
.
status
.
lower
()
==
'rejected'
:
print
(
"rejected"
)
elif
awaits
.
status
.
lower
()
==
'closed'
:
print
(
"closed"
)
elif
awaits
.
status
.
lower
()
==
'cancelled'
:
print
(
"cancelled"
)
else
:
awaiting
=
awaiting
+
1
overdue_filtered
=
change_request
.
filter_overdue
(
self
.
queryset
)
overdue
=
overdue_filtered
.
count
()
message
=
{
'account_no'
:
id_number
,
'pending'
:
pending
,
'approved'
:
approved
,
'rejected'
:
rejected
,
'cancelled'
:
cancelled
,
'completed'
:
completed
,
'high'
:
high
,
'normal'
:
normal
,
'awaiting'
:
awaiting
,
'overdue'
:
overdue
,
'code'
:
200
,
'status'
:
'success'
,
'message'
:
'Dashboard Summary'
}
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
url_path
=
'status'
,
name
=
"Dashboard Summary Status"
)
def
list_by_status_view
(
self
,
request
):
id_number
=
logged_user
(
self
)
# id_number = 'Acct-20190531-0000002'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
)
self
.
queryset
=
change_request
.
filter_status
(
self
.
queryset
,
request
.
query_params
.
get
(
'status'
)
)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
request
.
query_params
.
get
(
'company_requested_to'
),
request
.
query_params
.
get
(
'department_requested_to'
),
request
.
query_params
.
get
(
'date_modified_from'
),
request
.
query_params
.
get
(
'date_modified_to'
),
request
.
query_params
.
get
(
'date_required_from'
),
request
.
query_params
.
get
(
'date_required_to'
),
request
.
query_params
.
get
(
'form_type'
),
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
# self.queryset = QuerySetHelper.Filter(self)
return
super
(
ChangeRequestFormsViewset
,
self
)
.
list
(
request
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
url_path
=
'overdue'
,
name
=
"Dashboard Summary Overdue"
)
def
list_by_overdue_view
(
self
,
request
):
id_number
=
logged_user
(
self
)
# id_number = 'Acct-20190531-0000002'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
)
self
.
queryset
=
change_request
.
filter_overdue
(
self
.
queryset
)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
request
.
query_params
.
get
(
'company_requested_to'
),
request
.
query_params
.
get
(
'department_requested_to'
),
request
.
query_params
.
get
(
'date_modified_from'
),
request
.
query_params
.
get
(
'date_modified_to'
),
request
.
query_params
.
get
(
'date_required_from'
),
request
.
query_params
.
get
(
'date_required_to'
),
request
.
query_params
.
get
(
'form_type'
),
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
return
super
(
ChangeRequestFormsViewset
,
self
)
.
list
(
request
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
url_path
=
'awaiting'
,
name
=
"Dashboard Summary Awaiting"
)
def
list_by_awaiting_view
(
self
,
request
):
id_number
=
logged_user
(
self
)
# id_number = 'Acct-20190813-0000137'
self
.
queryset
=
change_request
.
list_by_user
(
id_number
)
self
.
queryset
=
change_request
.
filter_awaiting
(
self
.
queryset
,
id_number
)
self
.
queryset
=
change_request
.
filter_base
(
self
.
queryset
,
request
.
query_params
.
get
(
'company_requested_to'
),
request
.
query_params
.
get
(
'department_requested_to'
),
request
.
query_params
.
get
(
'date_modified_from'
),
request
.
query_params
.
get
(
'date_modified_to'
),
request
.
query_params
.
get
(
'date_required_from'
),
request
.
query_params
.
get
(
'date_required_to'
),
request
.
query_params
.
get
(
'form_type'
),
)
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Rejected'
)
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Closed'
)
self
.
queryset
=
self
.
queryset
.
filter
(
status__ne
=
'Cancelled'
)
self
.
queryset
=
self
.
queryset
.
order_by
(
'-created'
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
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
):
instance
=
self
.
queryset
.
filter
(
deleted_at
=
None
,
form_code
=
str
(
self
.
kwargs
.
get
(
'form_code'
))
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
return
Response
(
serializer
.
data
)
# @transaction.atomic
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
form_code
=
request
.
data
[
'form_code'
]
created
=
''
if
not
form_code
.
lower
()
==
'frm'
:
header
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
deleted_at
=
None
)
)
instance
=
header
.
first
()
# if instance.requested_by_user != logged_user(self):
# return Response(
# {"message": "access denied, this form is not for the logged user"},
# status=status.HTTP_406_NOT_ACCEPTABLE
# )
header
.
update
(
deleted_at
=
datetime
.
now
()
)
# request.data['created'] = instance.created
created
=
instance
.
created
# models.ChangeRequestFormStakeHolders.objects.filter(
# form_code=form_code
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestFormAttachments.objects.filter(
# form_code=form_code
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestFormDetails.objects.filter(
# form_code=form_code
# ).update(
# deleted_at=datetime.now()
# )
# models.ChangeRequestFormApprovers.objects.filter(
# form_code=form_code
# ).update(
# deleted_at=datetime.now()
# )
series
=
form_code
if
request
.
data
[
'status'
]
==
'Pending'
:
if
instance
.
status
==
'Draft'
:
CR_Prefix
=
request
.
data
[
'requested_to_template_id'
]
if
CR_Prefix
:
db_counter
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
deleted_at
=
None
)
.
count
()
db_counter
=
db_counter
+
2
db_counter
=
db_counter
-
1
request
.
data
[
'requested_to_template_id'
]
=
number_generator
(
CR_Prefix
,
db_counter
)
# get all details needed for report
company_desc
=
get_companies_details
(
request
.
data
[
'requested_to_company'
]
)
department_desc
=
get_group_details
(
request
.
data
[
'requested_to_department'
]
)
requested_desc
=
get_account_details
(
request
.
data
[
'requested_by_user'
]
)
request
.
data
[
'company_desc'
]
=
company_desc
[
'name'
]
request
.
data
[
'department_desc'
]
=
department_desc
[
'name'
]
request
.
data
[
'requested_desc'
]
=
requested_desc
[
'name'
]
serializer
=
self
.
get_serializer
(
data
=
request
.
data
)
serializer
.
is_valid
(
raise_exception
=
True
)
if
serializer
.
is_valid
():
x
=
serializer
.
save
()
if
not
created
==
''
:
x
.
created
=
instance
.
created
x
.
save
()
else
:
x
.
created
=
datetime
.
now
()
x
.
save
()
# self.perform_create(serializer)
if
form_code
.
lower
()
==
'frm'
:
id
=
serializer
.
data
[
'id'
]
template_id
=
request
.
data
[
'requested_to_template_id'
]
db_counter
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
deleted_at
=
None
)
.
count
()
db_counter
=
db_counter
+
2
db_counter
=
db_counter
-
1
series
=
number_generator
(
"FRM"
,
db_counter
)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
id
=
id
)
.
update
(
set__form_code
=
series
)
if
template_id
and
request
.
data
[
'status'
]
==
'Pending'
:
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
id
=
id
)
.
update
(
set__requested_to_template_id
=
number_generator
(
template_id
,
db_counter
)
)
# test = cancel_overdue(request)
headers
=
self
.
get_success_headers
(
serializer
.
data
)
return
Response
(
data
=
{
"code"
:
series
},
status
=
status
.
HTTP_201_CREATED
,
headers
=
headers
)
except
Exception
as
e
:
message
=
{
'code'
:
500
,
'status'
:
'failed'
,
'message'
:
'Request was not able to process'
+
str
(
e
.
__class__
)
}
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
@
action
(
detail
=
True
,
methods
=
[
'get'
],
url_path
=
'history'
,
name
=
"CR History"
)
def
list_cr_history
(
self
,
request
,
form_code
=
None
,
**
kwargs
):
form_code
=
self
.
kwargs
[
'form_code'
]
form_code_list
=
[]
form_code_list
.
append
(
form_code
)
for
frmitem
in
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
old_form_code__ne
=
None
)
.
order_by
(
'created'
):
if
frmitem
.
form_code
==
form_code
:
form_code_list
.
append
(
frmitem
.
old_form_code
)
form_code
=
frmitem
.
old_form_code
# remove duplicates
mylist
=
list
(
dict
.
fromkeys
(
form_code_list
))
print
(
mylist
)
queryset
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
(
Q
(
action__ne
=
None
)
&
Q
(
action__ne
=
''
)),
form_code__in
=
mylist
)
.
order_by
(
'created'
)
self
.
serializer_class
=
serializers
.
ChangeRequestFormApproversSerializer
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
serializer
=
self
.
get_serializer
(
page
,
many
=
True
)
return
self
.
get_paginated_response
(
serializer
.
data
)
class
ChangeRequestFormPost
(
APIView
):
class
ChangeRequestFormPost
(
APIView
):
# @transaction.atomic()
# @transaction.atomic()
...
...
app/applicationlayer/urls.py
View file @
9d701a28
...
@@ -20,9 +20,9 @@ router.register(r'notifications', NotificationsViewset)
...
@@ -20,9 +20,9 @@ router.register(r'notifications', NotificationsViewset)
router
.
register
(
r'template'
,
crviews
.
ChangeRequestTemplatesViewset
)
router
.
register
(
r'template'
,
crviews
.
ChangeRequestTemplatesViewset
)
router
.
register
(
r'template-approvers'
,
crviews
.
ChangeRequestTemplateApproversViewset
)
router
.
register
(
r'template-approvers'
,
crviews
.
ChangeRequestTemplateApproversViewset
)
# router.register(r'template-stakeholders', crviews.ChangeRequestTemplateStakeHolder
sViewset)
router
.
register
(
r'template-attachments'
,
crviews
.
ChangeRequestTemplateAttachment
sViewset
)
# router.register(r'template-attachments', crviews.ChangeRequestTemplateAttachment
sViewset)
router
.
register
(
r'template-stakeholders'
,
crviews
.
ChangeRequestTemplateStakeHolder
sViewset
)
#
router.register(r'template-details', crviews.ChangeRequestTemplateDetailsViewset)
router
.
register
(
r'template-details'
,
crviews
.
ChangeRequestTemplateDetailsViewset
)
# router.register(r'form', crviews.ChangeRequestFormsViewset)
# router.register(r'form', crviews.ChangeRequestFormsViewset)
# router.register(r'form-approvers', crviews.ChangeRequestFormApproversViewset)
# router.register(r'form-approvers', crviews.ChangeRequestFormApproversViewset)
...
...
app/entities/enums.py
View file @
9d701a28
...
@@ -78,6 +78,25 @@ class LogEntitiesEnum(Enum):
...
@@ -78,6 +78,25 @@ class LogEntitiesEnum(Enum):
# STOCK_ITEM = "Stock Item"
# STOCK_ITEM = "Stock Item"
# REQUISITION = "Requisition Header"
# REQUISITION = "Requisition Header"
'''
*********
CR HISTORY ENUMS
*********
'''
class
CREntitiesEnum
(
Enum
):
CR_FRM_APPROVER
=
"CR_FRM_APPROVER"
CR_FRM_ATTACHMENT
=
"CR_FRM_ATTACHMENT"
CR_FRM_DETAIL
=
"CR_FRM_DETAIL"
CR_FRM_HEADER
=
"CR_FRM_HEADER"
CR_FRM_STAKE
=
"CR_FRM_STAKE"
CR_TMP_APPROVER
=
"CR_TMP_APPROVER"
CR_TMP_ATTACHMENT
=
"CR_TMP_ATTACHMENT"
CR_TMP_DETAIL
=
"CR_TMP_DETAIL"
CR_TMP_HEADER
=
"CR_TMP_HEADER"
CR_TMP_STAKE
=
"CR_TMP_STAKE"
'''
'''
*********
*********
NOTIFICATION ENUMS
NOTIFICATION ENUMS
...
...
app/entities/migrations/0013_changerequesthistory.py
0 → 100644
View file @
9d701a28
# Generated by Django 2.2 on 2019-09-08 20:08
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'entities'
,
'0012_auto_20190906_1429'
),
]
operations
=
[
migrations
.
CreateModel
(
name
=
'ChangeRequestHistory'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'created'
,
models
.
DateTimeField
(
auto_now_add
=
True
)),
(
'createdby'
,
models
.
CharField
(
max_length
=
255
)),
(
'modified'
,
models
.
DateTimeField
(
auto_now
=
True
)),
(
'modifiedby'
,
models
.
CharField
(
max_length
=
255
)),
(
'action'
,
models
.
CharField
(
choices
=
[(
'Add'
,
'Add'
),
(
'Update'
,
'Update'
),
(
'DELETED'
,
'DELETED'
)],
default
=
'Add'
,
max_length
=
50
)),
(
'entity'
,
models
.
CharField
(
choices
=
[(
'CR_FRM_APPROVER'
,
'CR_FRM_APPROVER'
),
(
'CR_FRM_ATTACHMENT'
,
'CR_FRM_ATTACHMENT'
),
(
'CR_FRM_DETAIL'
,
'CR_FRM_DETAIL'
),
(
'CR_FRM_HEADER'
,
'CR_FRM_HEADER'
),
(
'CR_FRM_STAKE'
,
'CR_FRM_STAKE'
),
(
'CR_TMP_APPROVER'
,
'CR_TMP_APPROVER'
),
(
'CR_TMP_ATTACHMENT'
,
'CR_TMP_ATTACHMENT'
),
(
'CR_TMP_DETAIL'
,
'CR_TMP_DETAIL'
),
(
'CR_TMP_HEADER'
,
'CR_TMP_HEADER'
),
(
'CR_TMP_STAKE'
,
'CR_TMP_STAKE'
)],
default
=
'CR_FRM_HEADER'
,
max_length
=
50
)),
(
'row_id'
,
models
.
IntegerField
()),
(
'fromValue'
,
models
.
TextField
(
blank
=
True
,
null
=
True
)),
(
'toValue'
,
models
.
TextField
(
blank
=
True
,
null
=
True
)),
],
options
=
{
'db_table'
:
'change_request_history'
,
},
),
]
app/entities/models.py
View file @
9d701a28
...
@@ -805,6 +805,33 @@ class ChangeRequestFormAttachments(BaseAttachment):
...
@@ -805,6 +805,33 @@ class ChangeRequestFormAttachments(BaseAttachment):
self
.
created
=
datetime
.
now
()
self
.
created
=
datetime
.
now
()
self
.
save
()
self
.
save
()
'''
*****
CR HISTORY
*****
'''
class
ChangeRequestHistory
(
AuditClass
):
action
=
models
.
CharField
(
choices
=
[
(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
LogEnum
],
default
=
enums
.
LogEnum
.
ADD
.
value
,
max_length
=
50
)
entity
=
models
.
CharField
(
choices
=
[
(
tag
.
value
,
tag
.
value
)
for
tag
in
enums
.
CREntitiesEnum
],
default
=
enums
.
CREntitiesEnum
.
CR_FRM_HEADER
.
value
,
max_length
=
50
)
row_id
=
models
.
IntegerField
()
fromValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
toValue
=
models
.
TextField
(
blank
=
True
,
null
=
True
)
def
__str__
(
self
):
return
self
.
entity
class
Meta
:
db_table
=
'change_request_history'
"""
"""
**********************
**********************
...
...
media/uploads/Badge_Printing.pdf
0 → 100644
View file @
9d701a28
File added
media/uploads/Notification__Emails_-_ExistingFlow.pdf
0 → 100644
View file @
9d701a28
File added
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