diff --git a/config/default.py b/config/default.py index bac744fd..ae17bcfa 100644 --- a/config/default.py +++ b/config/default.py @@ -44,5 +44,11 @@ PB_STUDY_DETAILS_URL = environ.get('PB_STUDY_DETAILS_URL', default=PB_BASE_URL + LDAP_URL = environ.get('LDAP_URL', default="ldap.virginia.edu").strip('/') # No trailing slash or http:// LDAP_TIMEOUT_SEC = int(environ.get('LDAP_TIMEOUT_SEC', default=3)) -# Fallback emails +# Email configuration FALLBACK_EMAILS = ['askresearch@virginia.edu', 'sartographysupport@googlegroups.com'] +MAIL_SERVER = environ.get('MAIL_SERVER', default='smtp.mailtrap.io') +MAIL_PORT = environ.get('MAIL_PORT', default=2525) +MAIL_USE_SSL = environ.get('MAIL_USE_SSL', default=False) +MAIL_USE_TLS = environ.get('MAIL_USE_TLS', default=True) +MAIL_USERNAME = environ.get('MAIL_USERNAME', default='5f012d0108d374') +MAIL_PASSWORD = environ.get('MAIL_PASSWORD', default='08442c04e98d50') diff --git a/crc/__init__.py b/crc/__init__.py index 66b91b63..e77864b9 100644 --- a/crc/__init__.py +++ b/crc/__init__.py @@ -54,12 +54,6 @@ if app.config['ENABLE_SENTRY']: template_dir = os.getcwd() + '/crc/static/templates/mails' env = Environment(loader=FileSystemLoader(template_dir)) # Mail settings -app.config['MAIL_SERVER']='smtp.mailtrap.io' -app.config['MAIL_PORT'] = 2525 -app.config['MAIL_USERNAME'] = '5f012d0108d374' -app.config['MAIL_PASSWORD'] = '08442c04e98d50' -app.config['MAIL_USE_TLS'] = True -app.config['MAIL_USE_SSL'] = False mail = Mail(app) print('=== USING THESE CONFIG SETTINGS: ===') diff --git a/crc/api/approval.py b/crc/api/approval.py index 9c42c82e..5c403eec 100644 --- a/crc/api/approval.py +++ b/crc/api/approval.py @@ -111,5 +111,9 @@ def update_approval(approval_id, body): session.add(approval_model) session.commit() + # Called only to send emails + approver = body['approver']['uid'] + ApprovalService.update_approval(approval_id, approver) + result = ApprovalSchema().dump(approval_model) return result diff --git a/crc/services/approval_service.py b/crc/services/approval_service.py index 04b0db65..86547cb3 100644 --- a/crc/services/approval_service.py +++ b/crc/services/approval_service.py @@ -85,13 +85,14 @@ class ApprovalService(object): @staticmethod - def update_approval(approval_id, approver_uid, status): + def update_approval(approval_id, approver_uid): """Update a specific approval""" db_approval = session.query(ApprovalModel).get(approval_id) + status = db_approval.status if db_approval: - db_approval.status = status - session.add(db_approval) - session.commit() + # db_approval.status = status + # session.add(db_approval) + # session.commit() if status == ApprovalStatus.APPROVED.value: # second_approval = ApprovalModel().query.filter_by( # study_id=db_approval.study_id, workflow_id=db_approval.workflow_id, @@ -99,7 +100,7 @@ class ApprovalService(object): # if second_approval: # send rrp approval request for second approver ldap_service = LdapService() - pi_user_info = ldap_service.user_info(model.study.primary_investigator_id) + pi_user_info = ldap_service.user_info(db_approval.study.primary_investigator_id) approver_info = ldap_service.user_info(approver_uid) # send rrp submission send_ramp_up_approved_email( @@ -109,7 +110,7 @@ class ApprovalService(object): ) elif status == ApprovalStatus.DECLINED.value: ldap_service = LdapService() - pi_user_info = ldap_service.user_info(model.study.primary_investigator_id) + pi_user_info = ldap_service.user_info(db_approval.study.primary_investigator_id) approver_info = ldap_service.user_info(approver_uid) # send rrp submission send_ramp_up_denied_email( diff --git a/crc/services/mails.py b/crc/services/mails.py index d6de3ff6..994914d4 100644 --- a/crc/services/mails.py +++ b/crc/services/mails.py @@ -11,7 +11,6 @@ def send_ramp_up_submission_email(sender, recipients, approver_1, approver_2=Non msg = Message('Research Ramp-up Plan Submitted', sender=sender, recipients=recipients) - from crc import env, mail template = env.get_template('ramp_up_submission.txt') template_vars = {'approver_1': approver_1, 'approver_2': approver_2} @@ -28,7 +27,6 @@ def send_ramp_up_approval_request_email(sender, recipients, primary_investigator msg = Message('Research Ramp-up Plan Approval Request', sender=sender, recipients=recipients) - from crc import env, mail template = env.get_template('ramp_up_approval_request.txt') template_vars = {'primary_investigator': primary_investigator} @@ -45,7 +43,6 @@ def send_ramp_up_approval_request_first_review_email(sender, recipients, primary msg = Message('Research Ramp-up Plan Approval Request', sender=sender, recipients=recipients) - from crc import env, mail template = env.get_template('ramp_up_approval_request_first_review.txt') template_vars = {'primary_investigator': primary_investigator} diff --git a/crc/static/templates/mails/ramp_up_denied.html b/crc/static/templates/mails/ramp_up_denied.html index 9c978a80..7a40c1ea 100644 --- a/crc/static/templates/mails/ramp_up_denied.html +++ b/crc/static/templates/mails/ramp_up_denied.html @@ -1 +1 @@ -
Your Research Ramp-up Plan has been denied by {{ approver_1 }}. Please return to the Research Ramp-up Plan application and review the comments from {{ approver_1 }} on the home page. Next, open the application and locate the first step where changes are needed. Continue to complete additional steps saving your work along the way. Review your revised Research Ramp-up Plan and res-submit for approval.
\ No newline at end of file +Your Research Ramp-up Plan has been denied by {{ approver }}. Please return to the Research Ramp-up Plan application and review the comments from {{ approver }} on the home page. Next, open the application and locate the first step where changes are needed. Continue to complete additional steps saving your work along the way. Review your revised Research Ramp-up Plan and res-submit for approval.
\ No newline at end of file diff --git a/tests/test_approvals_api.py b/tests/test_approvals_api.py index 6d95be39..da1c2076 100644 --- a/tests/test_approvals_api.py +++ b/tests/test_approvals_api.py @@ -106,7 +106,7 @@ class TestApprovals(BaseTest): def test_accept_approval(self): approval = session.query(ApprovalModel).filter_by(approver_uid='dhf8r').first() data = {'id': approval.id, - "approver_uid": "dhf8r", + "approver": {"uid": "dhf8r"}, 'message': "Approved. I like the cut of your jib.", 'status': ApprovalStatus.APPROVED.value} @@ -127,7 +127,7 @@ class TestApprovals(BaseTest): def test_decline_approval(self): approval = session.query(ApprovalModel).filter_by(approver_uid='dhf8r').first() data = {'id': approval.id, - "approver_uid": "dhf8r", + "approver": {"uid": "dhf8r"}, 'message': "Approved. I find the cut of your jib lacking.", 'status': ApprovalStatus.DECLINED.value}