Skip to content

Commit

Permalink
Changes to show the env email belongs to (#2010)
Browse files Browse the repository at this point in the history
* updates on engagement publish

* update email template

* adding action drop down

* updated changes for User Management

* access user details page for users without a role

* updating variable name

* updating the schema

* updating as per review comments

* updating schema

* adding changes for clone and delete

* fixing linting

* update

* fix for report setting on analytics

* fixing lint

* fixing update on submission

* fixing linting

* updating rejection email arguments

* changes to show the env email belongs to

* fixing linting
  • Loading branch information
VineetBala-AOT authored Aug 14, 2023
1 parent 72d3923 commit fa9e134
Show file tree
Hide file tree
Showing 12 changed files with 54 additions and 7 deletions.
2 changes: 2 additions & 0 deletions met-api/src/met_api/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ class _Config(): # pylint: disable=too-few-public-methods
# Rejected comments
REJECTED_EMAIL_TEMPLATE_ID = os.getenv('REJECTED_EMAIL_TEMPLATE_ID')
REJECTED_EMAIL_SUBJECT = os.getenv('REJECTED_EMAIL_SUBJECT', '{engagement_name} - About your Comments')
# Environment from which email is sent
EMAIL_ENVIRONMENT = os.getenv('EMAIL_ENVIRONMENT', '')
# New User Registration
ACCESS_REQUEST_EMAIL_TEMPLATE_ID = os.getenv('ACCESS_REQUEST_EMAIL_TEMPLATE_ID')
ACCESS_REQUEST_EMAIL_SUBJECT = os.getenv('ACCESS_REQUEST_EMAIL_SUBJECT', 'MET - New User Access Request')
Expand Down
14 changes: 14 additions & 0 deletions met-api/src/met_api/services/email_verification_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ def _render_email_template(survey: SurveyModel, token, email_type: EmailVerifica
return EmailVerificationService._render_survey_email_template(survey, token)

@staticmethod
# pylint: disable-msg=too-many-locals
def _render_subscribe_email_template(survey: SurveyModel, token, participant_id):
# url is origin url excluding context path
engagement: EngagementModel = EngagementModel.find_by_id(
Expand All @@ -144,16 +145,24 @@ def _render_subscribe_email_template(survey: SurveyModel, token, participant_id)
engagement.tenant_id, confirm_path)
unsubscribe_url = notification.get_tenant_site_url(
engagement.tenant_id, unsubscribe_path)
email_environment = current_app.config.get(
'EMAIL_ENVIRONMENT', '')
tenant_name = EmailVerificationService._get_tenant_name(
engagement.tenant_id)
args = {
'engagement_name': engagement_name,
'confirm_url': confirm_url,
'unsubscribe_url': unsubscribe_url,
'email_environment': email_environment,
'tenant_name': tenant_name,
}
subject = subject_template.format(engagement_name=engagement_name)
body = template.render(
engagement_name=args.get('engagement_name'),
confirm_url=args.get('confirm_url'),
unsubscribe_url=args.get('unsubscribe_url'),
email_environment=args.get('email_environment'),
tenant_name=args.get('tenant_name'),
)
return subject, body, args, template_id

Expand All @@ -165,6 +174,8 @@ def _render_survey_email_template(survey: SurveyModel, token):
engagement_name = engagement.name
template_id = current_app.config.get(
'VERIFICATION_EMAIL_TEMPLATE_ID', None)
email_environment = current_app.config.get(
'EMAIL_ENVIRONMENT', '')
template = Template.get_template('email_verification.html')
subject_template = current_app.config.get('VERIFICATION_EMAIL_SUBJECT')
survey_path = current_app.config.get('SURVEY_PATH'). \
Expand All @@ -180,13 +191,16 @@ def _render_survey_email_template(survey: SurveyModel, token):
'engagement_url': f'{site_url}{engagement_path}',
'tenant_name': tenant_name,
'end_date': datetime.strftime(engagement.end_date, EmailVerificationService.full_date_format),
'email_environment': email_environment,
}
subject = subject_template.format(engagement_name=engagement_name)
body = template.render(
engagement_name=args.get('engagement_name'),
survey_url=args.get('survey_url'),
engagement_url=args.get('engagement_url'),
tenant_name=args.get('tenant_name'),
end_date=args.get('end_date'),
email_environment=args.get('email_environment'),
)
return subject, body, args, template_id

Expand Down
14 changes: 14 additions & 0 deletions met-api/src/met_api/services/engagement_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from met_api.utils.roles import Role
from met_api.utils.template import Template
from met_api.utils.token_info import TokenInfo
from met_api.models import Tenant as TenantModel


class EngagementService:
Expand Down Expand Up @@ -272,16 +273,29 @@ def _render_email_template(engagement: EngagementModel):
engagement_url = notification.get_tenant_site_url(engagement.tenant_id, dashboard_path)
subject = current_app.config.get('ENGAGEMENT_CLOSEOUT_EMAIL_SUBJECT'). \
format(engagement_name=engagement.name)
email_environment = current_app.config.get(
'EMAIL_ENVIRONMENT', '')
tenant_name = EngagementService._get_tenant_name(
engagement.tenant_id)
args = {
'engagement_name': engagement.name,
'engagement_url': engagement_url,
'tenant_name': tenant_name,
'email_environment': email_environment,
}
body = template.render(
engagement_name=args.get('engagement_name'),
engagement_url=args.get('engagement_url'),
tenant_name=args.get('tenant_name'),
email_environment=args.get('email_environment'),
)
return subject, body, args

@staticmethod
def _get_tenant_name(tenant_id):
tenant = TenantModel.find_by_id(tenant_id)
return tenant.name

@staticmethod
def _get_dashboard_path(engagement: EngagementModel):
engagement_slug = EngagementSlugModel.find_by_engagement_id(engagement.id)
Expand Down
5 changes: 4 additions & 1 deletion met-api/src/met_api/services/staff_user_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,19 +80,22 @@ def _render_email_template(user: StaffUserModel):
subject = current_app.config.get('ACCESS_REQUEST_EMAIL_SUBJECT')
grant_access_url = \
notification.get_tenant_site_url(user.tenant_id, current_app.config.get('USER_MANAGEMENT_PATH'))
email_environment = current_app.config.get('EMAIL_ENVIRONMENT', '')
args = {
'first_name': user.first_name,
'last_name': user.last_name,
'username': user.username,
'email_address': user.email_address,
'grant_access_url': grant_access_url
'grant_access_url': grant_access_url,
'email_environment': email_environment,
}
body = template.render(
first_name=args.get('first_name'),
last_name=args.get('last_name'),
username=args.get('username'),
email_address=args.get('email_address'),
grant_access_url=args.get('grant_access_url'),
email_environment=args.get('email_environment'),
)
return subject, body, args

Expand Down
5 changes: 5 additions & 0 deletions met-api/src/met_api/services/submission_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,7 @@ def _send_rejected_email(staff_review_details: dict, submission: SubmissionModel
status_code=HTTPStatus.INTERNAL_SERVER_ERROR) from exc

@staticmethod
# pylint: disable-msg=too-many-locals
def _render_email_template(staff_review_details: dict, submission: SubmissionModel, review_note, token):
template = Template.get_template('email_rejected_comment.html')
engagement: EngagementModel = EngagementModel.find_by_id(
Expand All @@ -345,6 +346,8 @@ def _render_email_template(staff_review_details: dict, submission: SubmissionMod
engagement.tenant_id, submission_path)
subject = current_app.config.get('REJECTED_EMAIL_SUBJECT'). \
format(engagement_name=engagement_name)
email_environment = current_app.config.get(
'EMAIL_ENVIRONMENT', '')
args = {
'engagement_name': engagement_name,
'survey_name': survey_name,
Expand All @@ -356,6 +359,7 @@ def _render_email_template(staff_review_details: dict, submission: SubmissionMod
'review_note': review_note,
'end_date': datetime.strftime(engagement.end_date, EmailVerificationService.full_date_format),
'tenant_name': tenant_name,
'email_environment': email_environment,
}
body = template.render(
engagement_name=args.get('engagement_name'),
Expand All @@ -366,5 +370,6 @@ def _render_email_template(staff_review_details: dict, submission: SubmissionMod
other_reason=args.get('other_reason'),
review_note=args.get('review_note'),
end_date=args.get('end_date'),
email_environment=args.get('email_environment'),
)
return subject, body, args
3 changes: 2 additions & 1 deletion met-api/templates/email_access_request.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ <h1>A new user is requesting access to MET.</h1>
<br />
<p>Thank you</p>
<br />
<p>The MET Team</p>
<p>The MET Team</p>
<p>{{email_environment}}</p>
3 changes: 2 additions & 1 deletion met-api/templates/email_engagement_closeout.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ <h1>Thank you for your interest in sharing your thoughts about {{ engagement_nam
<br />
<p>Thank you,</p>
<br />
<p>The EAO Team</p>
<p>The {{ tenant_name }} Team</p>
<p>{{email_environment}}</p>
3 changes: 2 additions & 1 deletion met-api/templates/email_rejected_comment.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ <h1>Thank you for taking the time to provide your feedback on {{ engagement_name
your feedback before the comment period closes.
</p>
<br />
<p><a href='{{ submission_url }}'>Edit Feedback</a></p>
<p><a href='{{ submission_url }}'>Edit your feedback</a></p>
<br />
<p>Thank you,</p>
<br />
<p>The {{tenant_name}} Team</p>
<p>{{email_environment}}</p>
3 changes: 2 additions & 1 deletion met-api/templates/email_verification.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ <h1>Thank you for sharing your feedback about {{engagement_name}}.</h1>
<br />
<p>Access will expire in 24 hours and is only valid once. If your access has expired, you can request access again at <a href='{{ engagement_url }}'>{{ engagement_url }}</a>.</p>
<br />
<p><a href='{{ survey_url }}'>Provide Feedback</a></p>
<p><a href='{{ survey_url }}'>Provide your feedback</a></p>
<br />
<p>Written public feedback will be posted as soon as it is reviewed and approved (within 7 days). A report will be available after the public comment period is over, starting on {{ end_date }}.</p>
<br />
<p>Thank you,</p>
<br />
<p>The {{ tenant_name }} Team</p>
<p>{{email_environment}}</p>
3 changes: 2 additions & 1 deletion met-api/templates/publish_engagement.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ <h1>Thank you for subscribing to our feedback tool.</h1>
<br />
<p>Thank you,</p>
<br />
<p>The Team at the Environmental Assessment Office</p>
<p>The Team at the Environmental Assessment Office</p>
<p>{{email_environment}}</p>
3 changes: 2 additions & 1 deletion met-api/templates/subscribe_email.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ <h1>Thank you for subscribing to {{ engagement_name }}.</h1>
<br />
<p>Thank you,</p>
<br />
<p>The EAO Team</p>
<p>The {{ tenant_name }} Team</p>
<p>{{email_environment}}</p>
3 changes: 3 additions & 0 deletions met-cron/src/met_cron/services/mail_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,17 @@ def _render_email_template(eng):
format(engagement_id=eng.id)
template = Template.get_template('publish_engagement.html')
subject_template = current_app.config.get('PUBLISH_ENGAGEMENT_EMAIL_SUBJECT')
email_environment = current_app.config.get('EMAIL_ENVIRONMENT', '')
args = {
'engagement_name': eng.name,
'link': f'{site_url}{view_path}',
'email_environment': email_environment,
}
subject = subject_template.format(engagement_name=eng.name)
body = template.render(
engagement_name=args.get('engagement_name'),
link=args.get('link'),
email_environment=args.get('email_environment'),
)
return subject, body, args

Expand Down

0 comments on commit fa9e134

Please sign in to comment.