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
346e1c02
Commit
346e1c02
authored
Dec 03, 2019
by
John Red Medrano
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'RMSv2' of
http://42.61.118.105:7990/scm/rms/api-main-service
into red-develop
parents
44477674
1f78d80c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
179 additions
and
57 deletions
+179
-57
app/accesslayer/views.py
app/accesslayer/views.py
+1
-1
app/applicationlayer/cms/form/header/views.py
app/applicationlayer/cms/form/header/views.py
+2
-4
app/applicationlayer/cms/utils_cr.py
app/applicationlayer/cms/utils_cr.py
+81
-3
app/businesslayer/changerequest/change_request.py
app/businesslayer/changerequest/change_request.py
+79
-32
app/helper/decorators.py
app/helper/decorators.py
+1
-1
app/helper/email_service/sender.py
app/helper/email_service/sender.py
+14
-15
app/helper/email_service/templates/RMS-CRREVISED.html
app/helper/email_service/templates/RMS-CRREVISED.html
+1
-1
No files found.
app/accesslayer/views.py
View file @
346e1c02
...
...
@@ -164,7 +164,7 @@ class ForgotPassword(APIView):
created
=
date_now
,
timeout_at
=
timeout_at
)
.
save
()
url
=
f
"{settings.FRONT_END_URL}/forgot-password/reset"
\
f
"?token={TOKEN}"
...
...
app/applicationlayer/cms/form/header/views.py
View file @
346e1c02
...
...
@@ -698,11 +698,9 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
action_body
=
request
.
data
id
=
action_body
.
get
(
'id'
,
False
)
form_code
=
action_body
.
get
(
'form_code'
,
False
)
# delegation = action_body.get('delegation', False)
action
=
action_body
.
get
(
'action'
,
False
)
# level = action_body.get('level', False)
# next_level = int(level) + 1
remarks
=
action_body
.
get
(
'remarks'
,
False
)
move_to_level
=
action_body
.
get
(
'move_to_level'
,
False
)
# generate batchno history
batchno
=
get_max_batchno
(
"batch"
)
...
...
@@ -739,7 +737,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
new_instance
)
change_request
.
cr_routing_actions
(
new_instance
,
current_user
)
change_request
.
cr_routing_actions
(
new_instance
,
current_user
,
move_to_level
)
# ---------------- removed code
message
=
status_message_response
(
200
,
'success'
,
...
...
app/applicationlayer/cms/utils_cr.py
View file @
346e1c02
...
...
@@ -208,6 +208,7 @@ def send_mail_vendor(requestor,
recipient
=
vendor_email
action_type
=
action
delegation_type
=
delegation
delegation_recipient
=
'vendor'
admin
=
sender_email
args
=
[
name
,
action_by
,
routing_level
,
status
,
cr_number
,
cr_name
,
...
...
@@ -276,11 +277,13 @@ def send_mail_requestor(current_user,
recipient
=
requestor_email
action_type
=
action
delegation_type
=
delegation
delegation_recipient
=
'requestor'
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
]
url
,
remarks
,
recipient
,
action_type
,
delegation_type
,
delegation_recipient
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions
)
...
...
@@ -292,6 +295,77 @@ def send_mail_requestor(current_user,
current_user
,
'cms'
)
def
send_mail_approver
(
current_user
,
form_code
,
delegation
,
msg
,
action
,
remarks
,
routing_level
,
approver_code
):
cr_link
=
f
'{CR_FRONT_LINK}/{form_code}'
template_instance
=
get_template_instance
(
form_code
)
cr_number
=
template_instance
.
requested_to_template_id
template_name
=
template_instance
.
requested_to_template_name
requested_to_company
=
template_instance
.
requested_to_company
.
code
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
cr_status
=
template_instance
.
status
# receiver details --------------------------------------------------
approver_instance
=
get_account_details
(
approver_code
)
approver_name
=
approver_instance
.
values_list
(
'name'
,
flat
=
True
)[
0
]
approver_email
=
approver_instance
.
values_list
(
'email'
,
flat
=
True
)[
0
]
approver_code
=
approver_instance
.
values_list
(
'code'
,
flat
=
True
)[
0
]
# sender details --------------------------------------------------
sender_instance
=
get_account_details
(
current_user
)
sender_email
=
sender_instance
.
values_list
(
'email'
,
flat
=
True
)[
0
]
sender_name
=
sender_instance
.
values_list
(
'name'
,
flat
=
True
)[
0
]
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
.
values_list
(
'name'
,
flat
=
True
)[
0
]
# call sender email
name
=
approver_name
action_by
=
sender_name
routing_level
=
routing_level
status
=
cr_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
recipient
=
approver_email
action_type
=
action
delegation_type
=
delegation
delegation_recipient
=
'approver'
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
,
delegation_recipient
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions
)
message
=
f
"{sender_name} {msg} ({template_name})"
# create notification
notification_create
(
form_code
,
message
,
approver_code
,
current_user
,
'cms'
)
def
next_approver_email
(
form_code
,
next_level
):
cr_link
=
f
'{CR_FRONT_LINK}/{form_code}'
template_instance
=
get_template_instance
(
form_code
)
...
...
@@ -352,11 +426,13 @@ def next_approver_email(form_code, next_level):
recipient
=
receiver_email
delegation_type
=
n_approver
.
delegation
.
name
.
lower
()
delegation_recipient
=
'None'
admin
=
sender_email
args
=
[
name
,
cr_number
,
cr_name
,
company_requestedto
,
department_requestedto
,
priority_level
,
status
,
url
,
recipient
,
delegation_type
,
admin
]
status
,
url
,
recipient
,
delegation_type
,
delegation_recipient
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions_required
)
...
...
@@ -731,11 +807,13 @@ def cancelled_user_trigger(form_code,
recipient
=
receiver_email
action_type
=
action
delegation_type
=
'others'
delegation_recipient
=
'None'
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
]
url
,
remarks
,
recipient
,
action_type
,
delegation_type
,
delegation_recipient
,
admin
]
main_threading
(
args
,
sender
.
routing_table_actions
)
...
...
app/businesslayer/changerequest/change_request.py
View file @
346e1c02
...
...
@@ -25,7 +25,8 @@ from app.applicationlayer.cms.utils_cr import (
reminder_trigger_save
,
overdue_trigger_save
,
reset_autoemail_tables
,
cancelled_user_trigger
cancelled_user_trigger
,
send_mail_approver
)
from
app.applicationlayer.utils
import
model_to_dict
from
app.entities
import
enums
,
models
...
...
@@ -517,7 +518,7 @@ def update_form_header_status(form_code, status):
return
True
def
cr_routing_actions
(
approver_instance
,
current_user
):
def
cr_routing_actions
(
approver_instance
,
current_user
,
move_to_level
):
form_code
=
approver_instance
[
'form_code'
]
delegation
=
approver_instance
[
'delegation'
][
'name'
]
...
...
@@ -562,12 +563,12 @@ def cr_routing_actions(approver_instance, current_user):
#save details for reminder trigger
reminder_trigger_save
(
form_code
,
date_now
,
date_now
)
elif
approver_instance
[
'action'
]
.
lower
()
==
're
vis
ed'
:
elif
approver_instance
[
'action'
]
.
lower
()
==
're
ject
ed'
:
# send email to vendor
if
delegation
.
lower
()
==
'requestor'
:
notification_msg
=
REVISED
_MESSAGE
.
split
(
';'
)[
0
]
notification_msg
=
VENDOR_REJECT
_MESSAGE
.
split
(
';'
)[
0
]
# send reject email to vendor
send_mail_vendor
(
...
...
@@ -590,34 +591,94 @@ def cr_routing_actions(approver_instance, current_user):
else
:
prev_vendor
=
check_vendor_level
(
'prev'
,
level
,
form_code
)
# move_to_level
back_to_approver
=
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
level
=
move_to_level
)
&
(
~
Q
(
action
=
None
)
|
Q
(
delegation__name
=
'Requestor'
))
)
.
first
()
print
(
back_to_approver
.
delegation
.
name
)
if
prev_vendor
.
count
()
>
0
:
if
back_to_approver
.
delegation
.
name
.
lower
()
==
'requestor'
:
notification_msg
=
REVISED
_MESSAGE
.
split
(
';'
)[
0
]
requestor_notification_msg
=
REQUESTOR_REJECT
_MESSAGE
.
split
(
';'
)[
0
]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
remarks
,
level
)
update_form_header_status
(
form_code
,
'Rejected'
)
elif
back_to_approver
.
delegation
.
name
.
lower
()
==
'vendor/implementor'
:
vendor_notification_msg
=
REVISED_MESSAGE
.
split
(
';'
)[
0
]
# send reject email to vendor
send_mail_vendor
(
current_user
,
form_code
,
'others'
,
notification_msg
,
action
,
current_user
,
form_code
,
delegation
,
vendor_
notification_msg
,
action
,
remarks
,
level
)
last_action_vendor
=
prev_vendor
.
last
()
requestor_notification_msg
=
REQUESTOR_REJECT_MESSAGE
.
split
(
';'
)[
0
]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
remarks
,
level
)
# reset selected vendor details
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
code
=
last_action_vendor
Q
(
form_code
=
form_code
)
&
Q
(
level
=
int
(
move_to_level
))
)
.
update
(
is_action
=
True
,
action
=
'Acknowledged'
,
action_date
=
datetime
.
now
(),
date_sent
=
datetime
.
now
()
)
)
else
:
approver_code
=
back_to_approver
.
user
.
code
approver_notification_msg
=
REVISED_MESSAGE
.
split
(
';'
)[
0
]
send_mail_approver
(
current_user
,
form_code
,
delegation
,
approver_notification_msg
,
action
,
remarks
,
level
,
approver_code
)
requestor_notification_msg
=
REQUESTOR_REJECT_MESSAGE
.
split
(
';'
)[
0
]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
remarks
,
level
)
# level = last_action_vendor.level
# print(level)
# reset selected vendor details
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
level
=
int
(
move_to_level
))
)
.
update
(
is_action
=
True
,
action
=
None
,
action_date
=
None
,
date_sent
=
datetime
.
now
()
)
models
.
ChangeRequestFormApprovers
.
objects
.
filter
(
Q
(
form_code
=
form_code
)
&
Q
(
level__gt
e
=
int
(
level
))
Q
(
form_code
=
form_code
)
&
Q
(
level__gt
=
int
(
move_to_
level
))
)
.
update
(
is_action
=
False
,
action
=
None
,
...
...
@@ -625,20 +686,6 @@ def cr_routing_actions(approver_instance, current_user):
action_date
=
None
,
date_sent
=
None
)
elif
approver_instance
[
'action'
]
.
lower
()
==
'rejected'
:
update_form_header_status
(
form_code
,
'Rejected'
)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg
=
REQUESTOR_REJECT_MESSAGE
.
split
(
';'
)[
0
]
# SEND EMAIL AND NOTIF TO REQUESTOR
send_mail_requestor
(
current_user
,
form_code
,
delegation
,
requestor_notification_msg
,
action
,
remarks
,
level
)
elif
approver_instance
[
'action'
]
.
lower
()
==
'completed'
:
...
...
app/helper/decorators.py
View file @
346e1c02
...
...
@@ -13,7 +13,7 @@ def error_safe(function):
def
wrap
(
request
,
*
args
,
**
kwargs
):
stat
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
try
:
return
function
(
request
,
*
args
,
**
kwargs
)
return
function
(
request
,
*
args
,
**
kwargs
)
# except 'DoesNotExist' as ex:
# print('ddd')
# stat = status.HTTP_404_NOT_FOUND
...
...
app/helper/email_service/sender.py
View file @
346e1c02
...
...
@@ -243,7 +243,8 @@ def routing_table_actions(args):
recipient
=
args
[
11
]
action_type
=
args
[
12
]
delegation_type
=
args
[
13
]
admin
=
args
[
14
]
delegation_recipient
=
args
[
14
]
admin
=
args
[
15
]
if
args
[
12
]
.
lower
()
==
'approved'
:
email_template
=
'RMS-CRAPPROVED.html'
...
...
@@ -258,20 +259,18 @@ def routing_table_actions(args):
email_template
=
'RMS-CRACCEPTED.html'
subject
=
'Resource Management System - Change Request Accepted'
elif
args
[
12
]
.
lower
()
==
'rejected'
:
subject
=
'Resource Management System - Change Request Rejected'
if
args
[
13
]
.
lower
()
==
'requestor'
or
args
[
13
]
.
lower
()
==
'others'
:
email_template
=
'RMS-CRREJECTED-VENDOR.html'
else
:
if
args
[
14
]
.
lower
()
==
'requestor'
:
subject
=
'Resource Management System - Change Request Rejected'
email_template
=
'RMS-CRREJECTED.html'
elif
args
[
12
]
.
lower
()
==
'revised
'
:
subject
=
'Resource Management System - Action Required for Change Request'
email_template
=
'RMS-CRREVISED.html'
elif
args
[
14
]
.
lower
()
==
'vendor'
or
args
[
14
]
.
lower
()
==
'approver
'
:
subject
=
'Resource Management System - Action Required for Change Request'
email_template
=
'RMS-CRREVISED.html'
elif
args
[
12
]
.
lower
()
==
'cancelled'
:
subject
=
'Resource Management System - Change Request Cancelled'
email_template
=
'RMS-CRCANCELLED-USERTRIGGER.html'
F
=
open
(
os
.
path
.
join
(
settings
.
EMAIL_TEMPLATES_ROOT
,
email_template
),
'r'
)
FC
=
F
.
read
()
FC
=
FC
.
replace
(
'{name}'
,
name
)
...
...
@@ -285,15 +284,15 @@ def routing_table_actions(args):
FC
=
FC
.
replace
(
'{priority_level}'
,
priority_level
)
FC
=
FC
.
replace
(
'{url}'
,
url
)
if
args
[
12
]
.
lower
()
==
'rejected'
or
args
[
12
]
.
lower
()
==
'revised'
:
if
args
[
12
]
.
lower
()
==
'rejected'
:
FC
=
FC
.
replace
(
'{remarks}'
,
remarks
)
if
email_template
==
'RMS-CRRE
JECTED-VENDOR
.html'
:
if
email_template
==
'RMS-CRRE
VISED
.html'
:
if
args
[
1
3
]
.
lower
()
==
'request
or'
:
FC
=
FC
.
replace
(
'{
delegation}'
,
'requestor
'
)
if
args
[
1
4
]
.
lower
()
==
'vend
or'
:
FC
=
FC
.
replace
(
'{
action_revise}'
,
'acknowledgement
'
)
else
:
FC
=
FC
.
replace
(
'{
delegation}'
,
'approver
'
)
FC
=
FC
.
replace
(
'{
action_revise}'
,
'approval
'
)
try
:
send_mail
(
...
...
app/helper/email_service/templates/RMS-CRREVISED.html
View file @
346e1c02
...
...
@@ -9,7 +9,7 @@
<h3
style=
"color:#888888;"
>
Change Request Revision
</h3><br>
<p>
Dear {name},
</p><br>
<p>
A change request has been submitted for your
acknowledgement
to revise. Please see the details of the change request below.
</p><br>
<p>
A change request has been submitted for your
{action_revise}
to revise. Please see the details of the change request below.
</p><br>
<b>
Rejected By
</b><br>
{action_by}
<br><br>
<b>
Routing Level
</b><br>
{routing_level}
<br><br>
...
...
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