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
f0ee6fd3
Commit
f0ee6fd3
authored
Sep 18, 2019
by
Gladys Forte
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save or submit initial
parent
f150778f
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
187 additions
and
178 deletions
+187
-178
app/applicationlayer/cms/form/serializers.py
app/applicationlayer/cms/form/serializers.py
+18
-13
app/applicationlayer/cms/form/views.py
app/applicationlayer/cms/form/views.py
+89
-35
app/applicationlayer/cms/template/views.py
app/applicationlayer/cms/template/views.py
+2
-4
app/applicationlayer/cms/utils_cr.py
app/applicationlayer/cms/utils_cr.py
+49
-42
app/businesslayer/changerequest/change_request.py
app/businesslayer/changerequest/change_request.py
+3
-7
app/entities/enums.py
app/entities/enums.py
+6
-0
app/helper/email_service/sender.py
app/helper/email_service/sender.py
+20
-77
No files found.
app/applicationlayer/cms/form/serializers.py
View file @
f0ee6fd3
...
...
@@ -2,6 +2,9 @@ from app.entities import models
from
rest_framework
import
serializers
from
django.db.models
import
Q
from
drf_writable_nested
import
WritableNestedModelSerializer
from
app.applicationlayer.cms.utils_cr
import
(
get_account_details
,
get_dept_details
,
get_companies_details
)
class
ChangeRequestFormApproversSerializer
(
...
...
@@ -12,13 +15,17 @@ class ChangeRequestFormApproversSerializer(
try
:
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'
]
user_details
=
get_account_details
(
user
.
code
)
name
=
user_details
.
values_list
(
'name'
,
flat
=
True
)[
0
]
dept_code
=
user_details
.
values_list
(
'department'
,
flat
=
True
)[
0
]
department_details
=
get_dept_details
(
dept_code
)
department
=
department_details
.
values_list
(
'name'
,
flat
=
True
)[
0
]
comp_code
=
department_details
.
values_list
(
'company'
,
flat
=
True
)[
0
]
company_details
=
get_companies_details
(
comp_code
)
company
=
company_details
.
values_list
(
'name'
,
flat
=
True
)[
0
]
ret
[
'name'
]
=
name
ret
[
'department'
]
=
group
ret
[
'department'
]
=
department
ret
[
'company'
]
=
company
return
ret
...
...
@@ -31,7 +38,7 @@ class ChangeRequestFormApproversSerializer(
class
Meta
:
model
=
models
.
ChangeRequestFormApprovers
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestFormStakeHoldersSerializer
(
...
...
@@ -40,7 +47,7 @@ class ChangeRequestFormStakeHoldersSerializer(
class
Meta
:
model
=
models
.
ChangeRequestFormStakeHolders
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestFormAttachmentsSerializer
(
...
...
@@ -49,7 +56,7 @@ class ChangeRequestFormAttachmentsSerializer(
class
Meta
:
model
=
models
.
ChangeRequestFormAttachments
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestFormDetailsSerializer
(
...
...
@@ -58,7 +65,7 @@ class ChangeRequestFormDetailsSerializer(
class
Meta
:
model
=
models
.
ChangeRequestFormDetails
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'
archived_at'
,
'
code'
]
read_only_fields
=
[
'created'
,
'code'
]
class
ChangeRequestFormHeaderSerializer
(
...
...
@@ -77,12 +84,10 @@ class ChangeRequestFormHeaderSerializer(
ret
=
super
()
.
to_representation
(
instance
)
try
:
user
=
self
.
context
[
'request'
]
.
user
print
(
user
.
code
)
id_number
=
user
.
code
current_level
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
ret
[
'form_code'
])
&
Q
(
archived_at
=
None
)
&
Q
(
form_code
=
ret
[
'form_code'
])
(
Q
(
action
=
''
)
|
Q
(
action
=
None
))
)
.
order_by
(
'level'
)
...
...
app/applicationlayer/cms/form/views.py
View file @
f0ee6fd3
...
...
@@ -265,7 +265,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
queryset
.
filter
(
archived_at
=
None
,
form_code
=
str
(
self
.
kwargs
.
get
(
'form_code'
))
)
.
first
()
serializer
=
self
.
get_serializer
(
instance
)
...
...
@@ -435,18 +434,41 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# get request data
id
=
request
.
data
[
'id'
]
current_user
=
request
.
data
[
'user'
]
# current_user = self.request.user
form_code
=
request
.
data
[
'form_code'
]
delegation
=
request
.
data
[
'delegation'
]
action
=
request
.
data
[
'action'
]
level
=
request
.
data
[
'level'
]
next_level
=
int
(
request
.
data
[
'level'
])
+
1
remarks
=
request
.
data
[
'remarks'
]
# get old data
old_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
id
)
.
values
()
old_instance
=
list
(
old_instance
)
# update current row in routing table
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
id
)
.
update
(
action
=
action
,
remarks
=
remarks
,
action_date
=
datetime
.
now
())
# get new data
new_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
pk
=
id
)
.
values
()
new_instance
=
list
(
new_instance
)
crenum
=
action
.
upper
()
# save history in form approver
crhistory_save
(
crenum
,
enums
.
CREntitiesEnum
.
CR_FRM_APPROVER
.
value
,
form_code
,
old_instance
,
new_instance
)
# get details of next approver/s
next_approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
...
...
@@ -470,8 +492,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# LOOP on next approver for sending email
for
n_approver
in
next_approver
:
print
(
n_approver
.
user
.
code
)
if
n_approver
.
delegation
.
lower
()
==
'vendor/implementor'
:
notification_msg
=
VENDOR_ACKNOWLEDGE_MESSAGE
.
split
(
';'
)[
0
]
...
...
@@ -479,7 +500,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
n_approver
.
user
.
code
,
form_code
,
delegation
,
notification_msg
)
# update next approver details
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
level
=
str
(
next_level
))
...
...
@@ -489,12 +510,13 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
elif
action
.
lower
()
==
'rejected'
:
# send email to vendor
if
delegation
.
lower
()
==
'requestor'
:
notification_msg
=
VENDOR_REJECT_MESSAGE
.
split
(
';'
)[
0
]
send_mail_vendor
(
current_user
,
form_code
,
delegation
,
requestor_
notification_msg
,
action
,
notification_msg
,
action
,
remarks
,
level
)
...
...
@@ -511,37 +533,29 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
elif
action
.
lower
()
==
'completed'
:
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
archived_at
=
None
)
&
Q
(
level
=
str
(
next_level
))
)
.
update
(
date_sent
=
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d,
%
H:
%
M:
%
S'
)
)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg
=
REQUESTOR_COMPLETION_MESSAGE
.
split
(
';'
)[
0
]
requestor_email_code
=
REQUESTOR_COMPLETION_MESSAGE
.
split
(
';'
)[
1
]
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
requestor_email_code
,
requestor_notification_msg
,
action
,
remarks
,
level
)
elif
action
.
lower
()
==
'acknowledged'
:
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
level
=
str
(
next_level
))
)
.
update
(
date_sent
=
datetime
.
now
()
)
# models.ChangeRequestFormApprovers.objects.filter(
# level=str(next_level)
# ).update(
# date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# )
elif
action
.
lower
()
==
'acknowledged'
:
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg
=
REQUESTOR_ACKNOWLEDGE_MESSAGE
.
split
(
';'
)[
0
]
requestor_email_code
=
REQUESTOR_ACKNOWLEDGE_MESSAGE
.
split
(
';'
)[
1
]
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
requestor_email_code
,
requestor_notification_msg
,
action
,
remarks
,
level
)
...
...
@@ -549,29 +563,50 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# EMAIL CODE FOR VENDOR
requestor_notification_msg
=
VENDOR_ACCEPTANCE_MESSAGE
.
split
(
';'
)[
0
]
requestor_email_code
=
VENDOR_ACCEPTANCE_MESSAGE
.
split
(
';'
)[
1
]
send_mail_vendor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
requestor_email_code
,
requestor_notification_msg
,
action
,
remarks
,
level
)
# elif action.lower() == 'cancelled':
elif
action
.
lower
()
==
'cancelled'
:
# changed form status to cancelled
# action_cancelled(self, request, *args, **kwargs)
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code
=
form_code
)
.
update
(
status
=
'Cancelled'
)
# headers = self.get_success_headers(serializer.data)
return
Response
(
"Action performed"
,
status
=
status
.
HTTP_200_OK
)
# return Response(
# serializer.data, status=status.HTTP_201_CREATED
# )
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'save'
,
url_name
=
'save'
)
def
save
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
kwargs
[
'form_code'
]
return
Response
(
"
Action perform
ed"
,
"
Change request form successfully re rout
ed"
,
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'submit'
,
url_name
=
'submit'
)
def
submit
(
self
,
request
,
*
args
,
**
kwargs
):
form_code
=
kwargs
[
'form_code'
]
return
Response
(
"Change request form successfully re routed"
,
status
=
status
.
HTTP_200_OK
)
class
ChangeRequestFormApproversViewset
(
meviewsets
.
ModelViewSet
):
...
...
@@ -634,9 +669,7 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
# )
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
queryset
=
self
.
queryset
.
filter
(
archived_at
=
None
)
self
.
queryset
=
QuerySetHelper
.
Sort
(
self
)
self
.
queryset
=
QuerySetHelper
.
Filter
(
self
)
return
super
(
ChangeRequestFormApproversViewset
,
self
)
.
list
(
request
)
def
retrieve
(
self
,
request
,
*
args
,
**
kwargs
):
...
...
@@ -841,17 +874,38 @@ class ChangeRequestFormPost(APIView):
requested_to_template_id
=
generate_tmp
)
# create template approvers
counter
=
0
for
frm_approver
in
frm_approvers
:
frm_approver
[
'form_code'
]
=
frm_id
counter
=
counter
+
1
data_list_approver
.
append
(
frm_approver
)
counter
=
counter
+
1
vendor_data
=
{
'level'
:
counter
,
'delegation'
:
'Vendor/Implementor'
,
'user'
:
form_header
[
'requested_to_user'
],
'form_code'
:
frm_id
}
data_list_approver
.
append
(
vendor_data
)
counter
=
counter
+
1
requestor_data
=
{
'level'
:
counter
,
'delegation'
:
'Requestor'
,
'user'
:
form_header
[
'requested_by_user'
],
'form_code'
:
frm_id
}
data_list_approver
.
append
(
requestor_data
)
serializerApprover
=
serializers
.
ChangeRequestFormApproversSerializer
(
data
=
data_list_approver
,
many
=
True
)
if
serializerApprover
.
is_valid
(
raise_exception
=
True
):
serializerApprover
.
save
()
# create template stakes
for
frm_stake
in
frm_stakes
:
...
...
app/applicationlayer/cms/template/views.py
View file @
f0ee6fd3
...
...
@@ -91,8 +91,6 @@ class UserList(APIView):
return
self
.
paginator
.
get_paginated_response
(
data
)
class
ChangeRequestTemplatesViewset
(
meviewsets
.
ModelViewSet
):
queryset
=
models
.
ChangeRequestTemplateHeader
.
objects
.
all
()
...
...
@@ -129,7 +127,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
@
transaction
.
atomic
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
...
...
@@ -141,7 +139,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
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
...
...
app/applicationlayer/cms/utils_cr.py
View file @
f0ee6fd3
...
...
@@ -88,7 +88,8 @@ class QuerySetHelper:
def
ApproverStatus
(
status
):
choices
=
[
"pending"
,
"rejected"
,
"approved"
,
"completed"
,
"cancelled"
,
'acknowledged'
,
'accepted'
]
choices
=
[
"pending"
,
"rejected"
,
"approved"
,
"completed"
,
"cancelled"
,
'acknowledged'
,
'accepted'
]
if
status
not
in
choices
:
return
False
else
:
...
...
@@ -110,7 +111,7 @@ def get_template_instance(form_code):
return
template_instance
def
send_mail_vendor
(
current_use
r
,
def
send_mail_vendor
(
requesto
r
,
form_code
,
delegation
,
msg
,
...
...
@@ -127,54 +128,59 @@ def send_mail_vendor(current_user,
requested_to_department
=
template_instance
.
requested_to_department
.
code
requested_by_user
=
template_instance
.
requested_by_user
.
code
requested_to_priority
=
template_instance
.
requested_to_priority
vendor_instance
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
delegation
=
"Vendor/Implementor"
)
&
Q
(
form_code
=
form_code
)
)
.
first
()
status
=
template_instance
.
status
requested_to_user
=
template_instance
.
requested_to_user
.
code
# receiver details
vendor
=
get_account_details
(
vendor_instance
.
user
)
requestor_name
=
vendor
[
'name'
]
requestor_email
=
vendor
[
'email'
]
requestor_account_id
=
vendor
[
'id_number'
]
vendor
_instance
=
get_account_details
(
requested_to_
user
)
vendor_name
=
vendor_instance
.
values_list
(
'name'
,
flat
=
True
)[
0
]
vendor_email
=
vendor_instance
.
values_list
(
'email'
,
flat
=
True
)[
0
]
vendor_code
=
vendor_instance
.
values_list
(
'code'
,
flat
=
True
)[
0
]
# sender details
sender_instance
=
get_account_details
(
current_user
)
sender_account_username
=
sender_instance
[
'username'
]
sender_account_id
=
sender_instance
[
'id_number'
]
sender_name
=
sender_instance
[
'name'
]
group
=
get_dept_details
(
requested_to_department
)
group_name
=
group
[
'name'
]
sender_instance
=
get_account_details
(
requestor
)
sender_name
=
sender_instance
.
values_list
(
'name'
,
flat
=
True
)[
0
]
sender_code
=
sender_instance
.
values_list
(
'code'
,
flat
=
True
)[
0
]
sender_email
=
sender_instance
.
values_list
(
'email'
,
flat
=
True
)[
0
]
# department details
department
=
get_dept_details
(
requested_to_department
)
dept_name
=
department
.
values_list
(
'name'
,
flat
=
True
)[
0
]
company
=
get_companies_details
(
requested_to_company
)
company_name
=
company
[
'name'
]
company_name
=
company
.
values_list
(
'name'
,
flat
=
True
)[
0
]
container
=
receiver_body
(
sender_account_id
,
requestor_account_id
,
code
,
requestor_email
,
app
,
"False"
,
requestor_name
,
routing_level
,
action
,
cr_number
,
template_name
,
company_name
,
group_name
,
requested_to_priority
,
cr_link
)
# call sender email
if
action
.
lower
()
==
'rejected'
:
new_body
=
{
"rejected_by"
:
requestor_name
,
"remarks"
:
remarks
}
elif
action
.
lower
()
==
'accepted'
:
new_body
=
{
"approved_by"
:
requestor_name
}
data
=
{
**
container
,
**
new_body
}
email_status
=
requests
.
post
(
EMAIL
,
data
=
data
)
name
=
vendor_name
action_by
=
sender_name
routing_level
=
routing_level
status
=
status
cr_number
=
cr_number
cr_name
=
template_name
company_requestedto
=
company_name
department_requestedto
=
dept_name
priority_level
=
requested_to_priority
url
=
cr_link
remarks
=
remarks
recipient
=
vendor_email
action_type
=
action
delegation_type
=
delegation
admin
=
sender_email
args
=
[
name
,
action_by
,
routing_level
,
status
,
cr_number
,
cr_name
,
company_requestedto
,
department_requestedto
,
priority_level
,
url
,
remarks
,
recipient
,
action_type
,
delegation_type
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions
)
message
=
f
"{sender_name} {msg} ({template_name})"
send_notification
(
form_code
,
cr_number
,
requestor_account_id
,
requestor_name
,
message
,
app
,
sender_account_id
,
sender_account_username
)
# create notification
notification_create
(
form_code
,
message
,
vendor_code
,
sender_code
)
def
send_mail_requestor
(
current_user
,
...
...
@@ -228,11 +234,12 @@ def send_mail_requestor(current_user,
recipient
=
requestor_email
action_type
=
action
delegation_type
=
delegation
admin
=
sender_email
args
=
[
name
,
action_by
,
routing_level
,
status
,
cr_number
,
cr_name
,
company_requestedto
,
department_requestedto
,
priority_level
,
url
,
re
cipient
,
ac
tion_type
,
admin
]
url
,
re
marks
,
recipient
,
action_type
,
delega
tion_type
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions
)
...
...
app/businesslayer/changerequest/change_request.py
View file @
f0ee6fd3
...
...
@@ -21,20 +21,17 @@ def list_by_user(user_id_number):
try
:
approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
user
=
user_id_number
)
&
Q
(
archived_at
=
None
)
Q
(
user
=
user_id_number
)
)
approver
=
[
data
.
form_code
for
data
in
approver
]
stake
=
models
.
ChangeRequestFormStakeHolders
.
objects
.
filter
(
Q
(
user
=
user_id_number
)
&
Q
(
archived_at
=
None
)
Q
(
user
=
user_id_number
)
)
stake
=
[
data
.
form_code
for
data
in
stake
]
headers
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
archived_at
=
None
,
requested_by_user
=
user_id_number
)
headers
=
[
data
.
form_code
for
data
in
headers
]
...
...
@@ -61,8 +58,7 @@ def list_by_user(user_id_number):
form_code
=
list
(
set
(
stake
+
approver
+
headers
))
return_queryset
=
models
.
ChangeRequestFormHeader
.
objects
.
filter
(
form_code__in
=
form_code
,
archived_at
=
None
,
form_code__in
=
form_code
)
exclude
=
return_queryset
.
filter
(
status__iexact
=
'Draft'
,
...
...
app/entities/enums.py
View file @
f0ee6fd3
...
...
@@ -92,6 +92,12 @@ class CREnum(Enum):
RESUBMIT
=
"RESUBMIT"
SUBMIT
=
"SUBMIT"
SAVE
=
"SAVE"
APPROVED
=
"APPROVED"
COMPLETED
=
"COMPLETED"
CANCELLED
=
"CANCELLED"
ACCEPTED
=
"ACCEPTED"
ACKNOWLEDGED
=
"ACKNOWLEDGED"
REJECTED
=
"REJECTED"
class
CREntitiesEnum
(
Enum
):
...
...
app/helper/email_service/sender.py
View file @
f0ee6fd3
...
...
@@ -478,7 +478,9 @@ def admin_changepassword(args):
# # html_message=FC
# # )
# RMS-CRAPPROVED ; RMS-CRACKNOWLEDGE ; RMS-CRCOMPLETED ; RMS-CRACCEPTED
# RMS-CRAPPROVED ; RMS-CRACKNOWLEDGE ; RMS-CRCOMPLETED ; RMS-CRACCEPTED ;
# RMS-CRREJECTED ; RMS-CRREJECTED-VENDOR
def
routing_table_actions
(
args
):
name
=
args
[
0
]
action_by
=
args
[
1
]
...
...
@@ -490,92 +492,31 @@ def routing_table_actions(args):
department_requestedto
=
args
[
7
]
priority_level
=
args
[
8
]
url
=
args
[
9
]
remarks
=
args
[
10
]
recipient
=
args
[
10
]
action_type
=
args
[
11
]
admin
=
args
[
12
]
recipient
=
args
[
11
]
action_type
=
args
[
12
]
delegation_type
=
args
[
13
]
admin
=
args
[
14
]
if
a
ction_type
.
lower
()
==
'approved'
:
if
a
rgs
[
12
]
.
lower
()
==
'approved'
:
email_template
=
'RMS-CRAPPROVED.html'
subject
=
'Resource Management System - Change Request Approved'
elif
a
ction_type
.
lower
()
==
'acknowledged'
:
elif
a
rgs
[
12
]
.
lower
()
==
'acknowledged'
:
email_template
=
'RMS-CRACKNOWLEDGE.html'
subject
=
'Resource Management System - Change Request Acknowledged'
elif
a
ction_by
.
lower
()
==
'completed'
:
elif
a
rgs
[
12
]
.
lower
()
==
'completed'
:
email_template
=
'RMS-CRCOMPLETED.html'
subject
=
'Resource Management System - Change Request Completed'
elif
a
ction_type
.
lower
()
==
'accepted'
:
elif
a
rgs
[
12
]
.
lower
()
==
'accepted'
:
email_template
=
'RMS-CRACCEPTED.html'
subject
=
'Resource Management System - Change Request Accepted'
F
=
open
(
os
.
path
.
join
(
settings
.
EMAIL_TEMPLATES_ROOT
,
email_template
),
'r'
)
FC
=
F
.
read
()
FC
=
FC
.
replace
(
'{name}'
,
name
)
FC
=
FC
.
replace
(
'{action_by}'
,
action_by
)
FC
=
FC
.
replace
(
'{routing_level}'
,
routing_level
)
FC
=
FC
.
replace
(
'{status}'
,
status
)
FC
=
FC
.
replace
(
'{cr_number}'
,
cr_number
)
FC
=
FC
.
replace
(
'{cr_name}'
,
cr_name
)
FC
=
FC
.
replace
(
'{company_requestedto}'
,
company_requestedto
)
FC
=
FC
.
replace
(
'{department_requestedto}'
,
department_requestedto
)
FC
=
FC
.
replace
(
'{priority_level}'
,
priority_level
)
FC
=
FC
.
replace
(
'{url}'
,
url
)
try
:
send_mail
(
subject
=
subject
,
message
=
''
,
from_email
=
settings
.
EMAIL_DEFAULT_SENDER
,
recipient_list
=
(
recipient
,),
html_message
=
FC
,
fail_silently
=
False
)
models
.
EmailLogs
.
objects
.
create
(
template
=
email_template
,
recipients
=
recipient
,
content
=
FC
,
is_sent
=
True
,
createdby
=
admin
,
modifiedby
=
admin
)
except
Exception
as
e
:
models
.
EmailLogs
.
objects
.
create
(
template
=
email_template
,
recipients
=
recipient
,
content
=
FC
,
is_sent
=
False
,
createdby
=
admin
,
modifiedby
=
admin
)
return
True
# RMS-CRREJECTED ; RMS-CRREJECTED-VENDOR
def
routing_table_actions_rejected
(
args
):
name
=
args
[
0
]
action_by
=
args
[
1
]
routing_level
=
args
[
2
]
status
=
args
[
3
]
cr_number
=
args
[
4
]
cr_name
=
args
[
5
]
company_requestedto
=
args
[
6
]
department_requestedto
=
args
[
7
]
priority_level
=
args
[
8
]
url
=
args
[
9
]
remarks
=
args
[
10
]
recipient
=
args
[
11
]
rejected_type
=
args
[
12
]
admin
=
args
[
13
]
if
rejected_type
==
'requestor'
:
email_template
=
'RMS-CRREJECTED.html'
subject
=
'Resource Management System - Change Request Rejected'
elif
rejected_type
==
'vendor'
:
email_template
=
'RMS-CRREJECTED-VENDOR.html'
elif
args
[
12
]
.
lower
()
==
'rejected'
:
subject
=
'Resource Management System - Change Request Rejected'
if
args
[
13
]
.
lower
()
==
'requestor'
:
email_template
=
'RMS-CRREJECTED.html'
elif
args
[
13
]
.
lower
()
==
'vendor/implementor'
:
email_template
=
'RMS-CRREJECTED-VENDOR.html'
F
=
open
(
os
.
path
.
join
(
settings
.
EMAIL_TEMPLATES_ROOT
,
email_template
),
'r'
)
...
...
@@ -591,7 +532,9 @@ def routing_table_actions_rejected(args):
FC
=
FC
.
replace
(
'{department_requestedto}'
,
department_requestedto
)
FC
=
FC
.
replace
(
'{priority_level}'
,
priority_level
)
FC
=
FC
.
replace
(
'{url}'
,
url
)
FC
=
FC
.
replace
(
'{remarks}'
,
remarks
)
if
args
[
11
]
.
lower
()
==
'rejected'
:
FC
=
FC
.
replace
(
'{remarks}'
,
remarks
)
try
:
send_mail
(
...
...
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