Clean up code for sending invitations.

- Move subject lines to translations file.
- Use keyword arguments for invitation function.
This commit is contained in:
dandds 2019-06-05 14:51:16 -04:00
parent bd4f2b3dde
commit aefc86e908
3 changed files with 18 additions and 5 deletions

View File

@ -14,6 +14,7 @@ from atst.forms.application_member import NewForm as NewMemberForm
from atst.forms.team import TeamForm from atst.forms.team import TeamForm
from atst.models import Permissions from atst.models import Permissions
from atst.utils.flash import formatted_flash as flash from atst.utils.flash import formatted_flash as flash
from atst.utils.localization import translate
from atst.queue import queue from atst.queue import queue
@ -131,7 +132,7 @@ def send_application_invitation(invitee_email, inviter_name, token):
) )
queue.send_mail( queue.send_mail(
[invitee_email], [invitee_email],
"{} has invited you to a JEDI cloud application".format(inviter_name), translate("email.application_invite", {"inviter_name": inviter_name}),
body, body,
) )
@ -155,7 +156,9 @@ def create_member(application_id):
) )
send_application_invitation( send_application_invitation(
invite.email, g.current_user.full_name, invite.token invitee_email=invite.email,
inviter_name=g.current_user.full_name,
token=invite.token,
) )
flash("new_application_member", user_name=invite.user_name) flash("new_application_member", user_name=invite.user_name)

View File

@ -8,6 +8,7 @@ from atst.domain.portfolios import Portfolios
from atst.models import Permissions from atst.models import Permissions
from atst.queue import queue from atst.queue import queue
from atst.utils.flash import formatted_flash as flash from atst.utils.flash import formatted_flash as flash
from atst.utils.localization import translate
import atst.forms.portfolio_member as member_forms import atst.forms.portfolio_member as member_forms
@ -17,7 +18,7 @@ def send_portfolio_invitation(invitee_email, inviter_name, token):
) )
queue.send_mail( queue.send_mail(
[invitee_email], [invitee_email],
"{} has invited you to a JEDI cloud portfolio".format(inviter_name), translate("email.portfolio_invite", {"inviter_name": inviter_name}),
body, body,
) )
@ -54,7 +55,11 @@ def revoke_invitation(portfolio_id, portfolio_token):
@user_can(Permissions.EDIT_PORTFOLIO_USERS, message="resend invitation") @user_can(Permissions.EDIT_PORTFOLIO_USERS, message="resend invitation")
def resend_invitation(portfolio_id, portfolio_token): def resend_invitation(portfolio_id, portfolio_token):
invite = PortfolioInvitations.resend(g.current_user, portfolio_token) invite = PortfolioInvitations.resend(g.current_user, portfolio_token)
send_portfolio_invitation(invite.email, g.current_user.full_name, invite.token) send_portfolio_invitation(
invitee_email=invite.email,
inviter_name=g.current_user.full_name,
token=invite.token,
)
flash("resend_portfolio_invitation", user_name=invite.user_name) flash("resend_portfolio_invitation", user_name=invite.user_name)
return redirect( return redirect(
url_for( url_for(
@ -76,7 +81,9 @@ def invite_member(portfolio_id):
try: try:
invite = Portfolios.invite(portfolio, g.current_user, form.update_data) invite = Portfolios.invite(portfolio, g.current_user, form.update_data)
send_portfolio_invitation( send_portfolio_invitation(
invite.email, g.current_user.full_name, invite.token invitee_email=invite.email,
inviter_name=g.current_user.full_name,
token=invite.token,
) )
flash( flash(

View File

@ -65,6 +65,9 @@ components:
The <strong>https://</strong> ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely. The <strong>https://</strong> ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.
</p> </p>
title: Heres how you know title: Heres how you know
email:
application_invite: "{inviter_name} has invited you to a JEDI cloud application"
portfolio_invite: "{inviter_name} has invited you to a JEDI cloud portfolio"
flash: flash:
application: application:
deleted: 'You have successfully deleted the {application_name} application. To view the retained activity log, visit the portfolio administration page.' deleted: 'You have successfully deleted the {application_name} application. To view the retained activity log, visit the portfolio administration page.'