Add better (jinja-based) messaging to the notifications and add some fixes for the email templates
This commit is contained in:
parent
ea96dbb2ad
commit
5db9cd948b
13 changed files with 216 additions and 128 deletions
|
@ -1,58 +1,11 @@
|
|||
from flask.ext.mail import Message
|
||||
|
||||
from app import mail, app, get_app_url
|
||||
from jinja2 import Template, Environment, FileSystemLoader, contextfilter
|
||||
from data import model
|
||||
from util.gravatar import compute_hash
|
||||
from util.jinjautil import get_template_env
|
||||
|
||||
def user_reference(username):
|
||||
user = model.get_user_or_org(username)
|
||||
if not user:
|
||||
return username
|
||||
|
||||
return """
|
||||
<span>
|
||||
<img src="http://www.gravatar.com/avatar/%s?s=16&d=identicon" style="vertical-align: middle; margin-left: 6px; margin-right: 4px;">
|
||||
<b>%s</b>
|
||||
</span>""" % (compute_hash(user.email), username)
|
||||
|
||||
|
||||
def repository_reference(pair):
|
||||
(namespace, repository) = pair
|
||||
|
||||
owner = model.get_user(namespace)
|
||||
if not owner:
|
||||
return "%s/%s" % (namespace, repository)
|
||||
|
||||
return """
|
||||
<span style="white-space: nowrap;">
|
||||
<img src="http://www.gravatar.com/avatar/%s?s=16&d=identicon" style="vertical-align: middle; margin-left: 6px; margin-right: 4px;">
|
||||
<a href="%s/repository/%s/%s">%s/%s</a>
|
||||
</span>
|
||||
""" % (compute_hash(owner.email), get_app_url(), namespace, repository, namespace, repository)
|
||||
|
||||
|
||||
def admin_reference(username):
|
||||
user = model.get_user(username)
|
||||
if not user:
|
||||
return 'account settings'
|
||||
|
||||
if user.organization:
|
||||
return """
|
||||
<a href="%s/organization/%s/admin">organization's admin setting</a>
|
||||
""" % (get_app_url(), username)
|
||||
else:
|
||||
return """
|
||||
<a href="%s/user/">account settings</a>
|
||||
""" % (get_app_url())
|
||||
|
||||
|
||||
template_loader = FileSystemLoader(searchpath="emails")
|
||||
template_env = Environment(loader=template_loader)
|
||||
template_env.filters['user_reference'] = user_reference
|
||||
template_env.filters['admin_reference'] = admin_reference
|
||||
template_env.filters['repository_reference'] = repository_reference
|
||||
|
||||
template_env = get_template_env("emails")
|
||||
|
||||
def send_email(recipient, subject, template_file, parameters):
|
||||
app_title = app.config['REGISTRY_TITLE_SHORT']
|
||||
|
|
Reference in a new issue