Improving mail design

remotes/origin/issue/4217/improving-mail-design
Alejandro Alonso 2017-03-17 12:43:44 +01:00 committed by xaviju
parent 1c569edd96
commit db971f7c79
48 changed files with 1356 additions and 1747 deletions

2
.gitignore vendored
View File

@ -7,7 +7,7 @@ settings/celery_local.py
database.sqlite
logs
media
static
/static
*.pyc
*.mo
.venv

View File

@ -16,29 +16,15 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf import settings
from djmail import template_mail
from djmail.template_mail import TemplateMail
from djmail.template_mail import MagicMailBuilder
import premailer
import logging
# Hide CSS warnings messages if debug mode is disable
if not getattr(settings, "DEBUG", False):
premailer.premailer.cssutils.log.setLevel(logging.CRITICAL)
class InlineCSSTemplateMail(template_mail.TemplateMail):
def _render_message_body_as_html(self, context):
html = super()._render_message_body_as_html(context)
# Transform CSS into line style attributes
return premailer.transform(html)
class MagicMailBuilder(template_mail.MagicMailBuilder):
class MagicMailBuilder(MagicMailBuilder):
pass
mail_builder = MagicMailBuilder(template_mail_cls=InlineCSSTemplateMail)
mail_builder = MagicMailBuilder(template_mail_cls=TemplateMail)

View File

@ -23,7 +23,7 @@ from django.contrib.auth import get_user_model
from django.core.management.base import BaseCommand
from django.utils import timezone
from taiga.base.mails import InlineCSSTemplateMail
from djmail.template_mail import TemplateMail
from taiga.base.mails import mail_builder
from taiga.projects.models import Project, Membership
@ -186,7 +186,7 @@ class Command(BaseCommand):
break
context["snapshot"] = snapshot
cls = type("InlineCSSTemplateMail", (InlineCSSTemplateMail,), {"name": notification_email[1]})
cls = type("TemplateMail", (TemplateMail,), {"name": notification_email[1]})
email = cls()
email.send(email_address, context)

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -1,466 +1,256 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{ _("Taiga") }}</title>
<head>
<title></title>
<!--[if !mso]><!-- -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
/* /\/\/\/\/\/\/\/\/ CLIENT-SPECIFIC STYLES /\/\/\/\/\/\/\/\/ */
#outlook a{padding:0;} /* Force Outlook to provide a "view in browser" message */
.ReadMsgBody{width:100%;} .ExternalClass{width:100%;} /* Force Hotmail to display emails at full width */
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;} /* Prevent WebKit and Windows mobile changing default text sizes */
table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;} /* Remove spacing between tables in Outlook 2007 and up */
img{-ms-interpolation-mode:bicubic;} /* Allow smoother rendering of resized image in Internet Explorer */
/* /\/\/\/\/\/\/\/\/ RESET STYLES /\/\/\/\/\/\/\/\/ */
body{margin:0; padding:0;}
img{border:0; height:auto; line-height:100%; outline:none; text-decoration:none;}
table{border-collapse:collapse !important;}
body, #bodyTable, #bodyCell{height:100% !important; margin:0; padding:0; width:100% !important;}
/* /\/\/\/\/\/\/\/\/ TEMPLATE STYLES /\/\/\/\/\/\/\/\/ */
#bodyCell{padding:20px;}
#templateContainer{width:600px;}
/* ========== Page Styles ========== */
body, #bodyTable{
background-color:#f5f5f5;
#outlook a {
padding: 0;
}
/**
* @section email border
*/
#templateContainer{
background-color:#FFF;
border:1px solid #CDCDCD;
.ReadMsgBody {
width: 100%;
}
/**
* @section heading 1
*/
h1{
color: #6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:25px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
.ExternalClass {
width: 100%;
}
/**
* @style heading 2
*/
h2{
color: #6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:20px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
.ExternalClass * {
line-height: 100%;
}
/**
* @tab Page
* @section heading 3
*/
h3{
color:#6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
font-weight:normal;
line-height:100%;
font-weight:bold;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
/**
* @tab Page
* @section heading 4
*/
h4{
color:#808080 !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:left;
table,
td {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
/* ========== Header Styles ========== */
.headerContent {
text-align: center;
color:#8D8D8D !important;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
margin-bottom:16px;
text-align:center;
}
#headerImage{
height:auto;
width:80px;
margin: 20px auto;
}
/* ========== Body Styles ========== */
/**
* @tab Body
* @section body style
* @tip Set the background color and borders for your email's body area.
*/
#templateBody{
background-color:#FFF;
}
/**
* @section body text
*/
.bodyContent{
color:#505050;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
line-height:150%;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
padding-top:20px;
}
/**
* @section body link
*/
.bodyContent a:link, .bodyContent a:visited, /* Yahoo! Mail Override */ .bodyContent a .yshortcuts /* Yahoo! Mail Override */{
color:#699b05;
font-weight:normal;
text-decoration:underline;
}
/**
* @section body link button class
*/
a.button {
background: #699b05;
color: #fff;
display: block;
width: 50%;
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
text-align: center;
margin: 0 auto 16px;
text-transform: uppercase;
padding: .8rem 3rem;
-ms-interpolation-mode: bicubic;
}
a.button:hover {
background: #aad400;
}
hr {
width: 90%;
margin: 0 auto;
border-bottom: 1px solid #e1e1e1;
border-top: 0;
}
.bodyContent img{
display:inline;
height:auto;
max-width:560px;
}
.update-row h1,
.update-row h2,
.update-row h3 {
text-align: left;
}
.update-row tr {
border-bottom: 1px solid #cdcdcd;
padding: 10px;
}
.update-row tr:first-child,
.update-row tr:last-child {
border-bottom: 3px solid #cdcdcd;
}
.update-row td {
padding: 15px;
text-align: left;
}
.update-row td.update-row-name {
width: 40%;
text-align: center;
}
.update-row td.update-row-from {
border-bottom: 1px solid #f5f5f5;
}
.social-links {
font-family: 'Open Sans', Arial, Helvetica;
font-size:13px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:center;
}
.social-links a:link, .social-links a:visited{
color:#699b05;
font-weight:normal;
text-decoration:underline;
text-align: center;
margin: 0 5px;
}
/* ========== Footer Styles ========== */
/**
* @section footer style
*/
#templateFooter{
background-color:#555555;
}
/**
* @section footer text
*/
.footerContent{
color:#f5f5f5;
font-family: 'Open Sans', Arial, Helvetica;
font-size:10px;
line-height:150%;
padding-top:20px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:left;
}
/**
* @tab Footer
* @section footer link
* @tip Set the styling for your email's footer links. Choose a color that helps them stand out from your text.
*/
.footerContent a:link, .footerContent a:visited, /* Yahoo! Mail Override */ .footerContent a .yshortcuts, .footerContent a span /* Yahoo! Mail Override */{
/*@editable*/ color:#699b05;
/*@editable*/ font-weight:normal;
/*@editable*/ text-decoration:underline;
}
/* /\/\/\/\/\/\/\/\/ MOBILE STYLES /\/\/\/\/\/\/\/\/ */
@media only screen and (max-width: 480px){
/* /\/\/\/\/\/\/ CLIENT-SPECIFIC MOBILE STYLES /\/\/\/\/\/\/ */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:none !important;} /* Prevent Webkit platforms from changing default text sizes */
body{width:100% !important; min-width:100% !important;} /* Prevent iOS Mail from adding padding to the body */
/* /\/\/\/\/\/\/ MOBILE RESET STYLES /\/\/\/\/\/\/ */
#bodyCell{padding:10px !important;}
/* /\/\/\/\/\/\/ MOBILE TEMPLATE STYLES /\/\/\/\/\/\/ */
/* ======== Page Styles ======== */
/**
* @section template width
*/
#templateContainer{
max-width:600px !important;
width:100% !important;
}
/**
* @section heading 1
*/
h1{
font-size:18px !important;
line-height:100% !important;
}
/**
* @section heading 2
*/
h2{
font-size:16px !important;
line-height:100% !important;
}
/**
* @section heading 3
*/
h3{
font-size:14px !important;
line-height:100% !important;
}
/* ======== Header Styles ======== */
#templatePreheader{display:none !important;} /* Hide the template preheader to save space */
/**
* @section header image
*/
#headerImage{
height:auto !important;
max-width:600px !important;
width:20% !important;
}
/* ======== Body Styles ======== */
/**
* @tab Mobile Styles
* @section body image
* @tip Make the main body image fluid for portrait or landscape view adaptability, and set the image's original width as the max-width. If a fluid setting doesn't work, set the image width to half its original size instead.
*/
#bodyImage{
height:auto !important;
max-width:560px !important;
width:100% !important;
}
/**
* @section body text
*/
.bodyContent{
font-size:16px !important;
line-height:125% !important;
}
/**
* @section body link button class
*/
.bodyContent a.button {
font-size:14px !important;
width: auto;
}
/* ======== Footer Styles ======== */
/**
* @section footer text
*/
.footerContent{
font-size:14px !important;
line-height:115% !important;
}
.footerContent a{display:block !important;} /* Place footer social and utility links on their own lines, for easier access */
p {
display: block;
margin: 13px 0;
}
</style>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" alink="#699b05" link="#699b05" bgcolor="#FFFFFF" text="#444444">
<center>
<table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable">
<!--[if !mso]><!-->
<style type="text/css">
@media only screen and (max-width:480px) {
@-ms-viewport {
width: 320px;
}
@viewport {
width: 320px;
}
}
</style>
<!--<![endif]-->
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.outlook-group-fix {
width:100% !important;
}
</style>
<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
width: 100%!important;
}
.mj-column-per-80 {
width: 80%!important;
}
.mj-column-per-20 {
width: 20%!important;
}
}
</style>
</head>
<body style="background: #F5F5F5;">
<div style="background-color:#F5F5F5;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top" id="bodyCell">
<!-- BEGIN TEMPLATE // -->
<table border="0" cellpadding="0" cellspacing="0" id="templateContainer">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0">
<tbody>
<tr>
<td align="center" valign="top">
<!-- BEGIN HEADER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateHeader">
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:middle;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:middle;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" style="vertical-align:middle;" width="100%" border="0">
<tbody>
<tr>
<td valign="top" class="headerContent">
<img src="{{ static("emails/top-bg-update.png") }}" />
<a href="{{ resolve_front_url("home") }}" title="Taiga">
<img src="{{ static("emails/logo-color.png") }}" id="headerImage" alt="Taiga" />
</a>
</td>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center" border="0">
<tbody>
<tr>
<td style="width:30px;"><img alt="Taiga logo" title="" height="auto" src="{{ static('emails/taiga-logo-email.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;"
width="30"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;background:#fff;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;background:#fff;" align="center" border="0">
<tbody>
<tr>
<td valign="top" class="bodyContent">
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px 10px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:480px;">
<![endif]-->
<div class="mj-column-per-80 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:20px;font-weight:bold;line-height:22px;text-align:left;">
{% block title %}{% endblock %}
</div>
</td>
</tr>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:14px;line-height:22px;text-align:left;">
{% block body %}{% endblock %}
</div>
</td>
</tr>
{% block social %}
<tr>
<td valign="top" class="social-links">
<a href="{{ sr('social.twitter_url') }}" title="{{ _('Follow us on Twitter') }}" style="color: #9dce0a">{{ _("Twitter") }}</a>
<a href="{{ sr('social.github_url') }}" title="{{ _('Get the code on GitHub') }}" style="color: #9dce0a">{{ _("GitHub") }}</a>
<a href="{{ sr('taigaio_url') }}" title="{{ _('Visit our website') }}" style="color: #9dce0a">{{ _("Taiga.io") }}</a>
</td>
</tr>
{% endblock %}
</tbody>
</table>
<!-- // END HEADER -->
</div>
<!--[if mso | IE]>
</td><td style="vertical-align:middle;width:120px;">
<![endif]-->
<div class="mj-column-per-20 outlook-group-fix" style="vertical-align:middle;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" style="vertical-align:middle;" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center" border="0">
<tbody>
<tr>
<td style="width:60px;">
{% block logo %}{% endblock %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0">
<tbody>
<tr>
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:0px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<a href="#">taiga Support</a>
<a href="#">Contact us</a>
<a href="#">mailing list</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="top">
<!-- BEGIN FOOTER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateFooter">
<tr>
<td valign="top" class="footerContent">
{% block footer %}
{% trans support_url=sr("support.url"), support_email=sr("support.email"), mailing_list_url=sr("support.mailing_list") %}
<strong>Taiga Support:</strong>
<a href="{{ support_url }}" title="Support page" style="color: #9dce0a">{{ support_url}}</a>
<br>
<strong>Contact us:</strong>
<a href="mailto:{{ support_email }}" title="Support email" style="color: #9dce0a">
{{ support_email }}
</a>
<br>
<strong>Mailing list:</strong>
<a href="{{ mailing_list_url }}" title="Mailing list" style="color: #9dce0a">
{{ mailing_list_url }}
</a>
{% endtrans %}
{% endblock %}
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<p>(ɔ) 2017, Taiga Agile, LLC<br>This mail is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License</p>
</div>
</td>
</tr>
</tbody>
</table>
<!-- // END FOOTER -->
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
<!-- // END TEMPLATE -->
</td>
</tr>
</table>
</center>
</body>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</div>
</body>
</html>

View File

@ -1,425 +1,125 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{ _("You have been Taigatized") }}</title>
<style type="text/css">
/* /\/\/\/\/\/\/\/\/ CLIENT-SPECIFIC STYLES /\/\/\/\/\/\/\/\/ */
#outlook a{padding:0;} /* Force Outlook to provide a "view in browser" message */
.ReadMsgBody{width:100%;} .ExternalClass{width:100%;} /* Force Hotmail to display emails at full width */
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;} /* Prevent WebKit and Windows mobile changing default text sizes */
table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;} /* Remove spacing between tables in Outlook 2007 and up */
img{-ms-interpolation-mode:bicubic;} /* Allow smoother rendering of resized image in Internet Explorer */
/* /\/\/\/\/\/\/\/\/ RESET STYLES /\/\/\/\/\/\/\/\/ */
body{margin:0; padding:0;}
img{border:0; height:auto; line-height:100%; outline:none; text-decoration:none;}
table{border-collapse:collapse !important;}
body, #bodyTable, #bodyCell{height:100% !important; margin:0; padding:0; width:100% !important;}
/* /\/\/\/\/\/\/\/\/ TEMPLATE STYLES /\/\/\/\/\/\/\/\/ */
#bodyCell{padding:20px;}
#templateContainer{width:600px;}
/* ========== Page Styles ========== */
body, #bodyTable{
background-color:#f5f5f5;
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<title></title>
<!--[if !mso]><!-- -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
#outlook a { padding: 0; }
.ReadMsgBody { width: 100%; }
.ExternalClass { width: 100%; }
.ExternalClass * { line-height:100%; }
body { margin: 0; padding: 0; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
table, td { border-collapse:collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; }
img { border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; }
p { display: block; margin: 13px 0; }
</style>
<!--[if !mso]><!-->
<style type="text/css">
@media only screen and (max-width:480px) {
@-ms-viewport { width:320px; }
@viewport { width:320px; }
}
/**
* @section email border
*/
#templateContainer{
border:1px solid #CDCDCD;
}
/**
* @section heading 1
*/
h1{
color: #fff !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:25px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
}
/**
* @style heading 2
*/
h2{
color: #8D8D8D !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:20px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
}
/**
* @section heading 3
*/
h3{
color:#6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
font-weight:normal;
line-height:100%;
font-weight:bold;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
}
/**
* @section heading 4
*/
h4{
color:#808080 !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:left;
}
/* ========== Header Styles ========== */
.headerContent {
text-align: center;
color:#fff !important;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
margin-bottom:16px;
text-align:center;
}
#headerImage{
height:auto;
width:80px;
margin: 20px auto;
}
/* ========== Body Styles ========== */
/**
* @section body style
*/
#templateBody{
background-color:#FFF;
}
/**
* @section body text
*/
.bodyContent{
color:#505050;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
line-height:150%;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
padding-top:20px;
text-align:center;
}
/**
* @section body link
*/
.bodyContent a:link, .bodyContent a:visited, /* Yahoo! Mail Override */ .bodyContent a .yshortcuts /* Yahoo! Mail Override */{
color:#699b05;
font-weight:normal;
text-decoration:underline;
}
/**
* @section body link button class
*/
.bodyContent a.button {
background: #699b05;
color: #fff;
display: block;
width: 50%;
text-decoration: none;
text-align: center;
margin: 0 auto 16px;
text-transform: uppercase;
padding: .8rem 3rem;
}
.bodyContent a.button:hover {
background: #aad400;
}
.bodyContent img{
display:inline;
height:auto;
max-width:560px;
}
.social-links {
font-family: 'Open Sans', Arial, Helvetica;
font-size:13px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:center;
}
.social-links a:link, .social-links a:visited{
color:#699b05;
font-weight:normal;
text-decoration:underline;
text-align: center;
margin: 0 5px;
}
/* ========== Footer Styles ========== */
/**
* @section footer style
*/
#templateFooter{
background-color:#555555;
}
/**
* @section footer text
*/
.footerContent{
color:#f5f5f5;
font-family: 'Open Sans', Arial, Helvetica;
font-size:10px;
line-height:150%;
padding-top:20px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:left;
}
/**
* @section footer link
*/
.footerContent a:link, .footerContent a:visited, /* Yahoo! Mail Override */ .footerContent a .yshortcuts, .footerContent a span /* Yahoo! Mail Override */{
color:#699b05;
font-weight:normal;
text-decoration:underline;
}
/* /\/\/\/\/\/\/\/\/ MOBILE STYLES /\/\/\/\/\/\/\/\/ */
@media only screen and (max-width: 480px){
/* /\/\/\/\/\/\/ CLIENT-SPECIFIC MOBILE STYLES /\/\/\/\/\/\/ */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:none !important;} /* Prevent Webkit platforms from changing default text sizes */
body{width:100% !important; min-width:100% !important;} /* Prevent iOS Mail from adding padding to the body */
/* /\/\/\/\/\/\/ MOBILE RESET STYLES /\/\/\/\/\/\/ */
#bodyCell{padding:10px !important;}
/* /\/\/\/\/\/\/ MOBILE TEMPLATE STYLES /\/\/\/\/\/\/ */
/* ======== Page Styles ======== */
/**
* @section template width
*/
#templateContainer{
max-width:600px !important;
/*@editable*/ width:100% !important;
}
/**
* @section heading 1
*/
h1{
font-size:18px !important;
line-height:100% !important;
}
/**
* @section heading 2
*/
h2{
font-size:16px !important;
line-height:100% !important;
}
/**
* @section heading 3
*/
h3{
font-size:14px !important;
line-height:100% !important;
}
/* ======== Header Styles ======== */
#templatePreheader{display:none !important;} /* Hide the template preheader to save space */
/**
* @section header image
*/
#headerImage{
height:auto !important;
max-width:600px !important;
width:20% !important;
}
/* ======== Body Styles ======== */
/**
* @section body image
*/
#bodyImage{
height:auto !important;
max-width:560px !important;
</style>
<!--<![endif]-->
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.outlook-group-fix {
width:100% !important;
}
/**
* @section body text
*/
.bodyContent{
font-size:16px !important;
line-height:125% !important;
</style>
<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 { width:100%!important; }
}
/**
* @section body link button class
*/
.bodyContent a.button {
font-size:14px !important;
width: auto;
}
/* ======== Footer Styles ======== */
/**
* @section footer text
*/
.footerContent{
font-size:14px !important;
line-height:115% !important;
}
.footerContent a{display:block !important;} /* Place footer social and utility links on their own lines, for easier access */
}
</style>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" alink="#699b05" link="#699b05" bgcolor="#FFFFFF" text="#444444">
<center>
<table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable">
</style>
</head>
<body style="background: #F5F5F5;">
<div style="background-color:#F5F5F5;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top" id="bodyCell">
<!-- BEGIN TEMPLATE // -->
<table border="0" cellpadding="0" cellspacing="0" id="templateContainer">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]--><div style="margin:0px auto;max-width:600px;"><table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0"><tbody><tr><td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:middle;width:600px;">
<![endif]--><div class="mj-column-per-100 outlook-group-fix" style="vertical-align:middle;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;"><table role="presentation" cellpadding="0" cellspacing="0" style="vertical-align:middle;" width="100%" border="0"><tbody><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center"><table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center" border="0"><tbody><tr><td style="width:60px;"><img alt="Taiga logo" title="" height="auto" src="{{ static('emails/taiga-logo-email.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top">
<!-- BEGIN HEADER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateHeader">
<tr>
<td valign="top" class="headerContent" background="{{ static("emails/top-bg-hero.png") }}" style="background-position: center center">
<a href="{{ resolve_front_url("home") }}" title="Taiga">
<img src="{{ static("emails/logo.png") }}" id="headerImage" alt="Taiga" />
</a>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]--><div style="margin:0px auto;max-width:600px;background:#fff;"><table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;background:#fff;" align="center" border="0"><tbody><tr><td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px 10px;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]--><div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;"><table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0"><tbody><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="center"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:20px;font-weight:bold;line-height:22px;text-align:center;">
{% trans %}
<h1>You have been Taigatized!</h1>
<p>Welcome to Taiga, an Open Source, Agile Project Management Tool</p>
You have been Taigatized!
{% endtrans %}
</td>
</tr>
</table>
<!-- // END HEADER -->
</td>
</tr>
</div></td></tr><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:14px;line-height:22px;text-align:center;">
{% trans %}
Welcome to Taiga, an Open Source, Agile Project Management Tool
{% endtrans %}
</div></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top">
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]--><div style="margin:0px auto;max-width:600px;"><table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0"><tbody><tr><td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:0px;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]--><div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;"><table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0"><tbody><tr><td style="word-break:break-word;font-size:0px;"><div style="font-size:1px;line-height:8px;white-space:nowrap;"> </div></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td valign="top" class="bodyContent">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]--><div style="margin:0px auto;max-width:600px;background:#fff;"><table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;background:#fff;" align="center" border="0"><tbody><tr><td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:20px 0px;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]--><div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;"><table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0"><tbody><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:16px;font-weight:bold;line-height:22px;text-align:left;">
{% block title %}{% endblock %}
</div></td></tr><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="left"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:14px;line-height:22px;text-align:left;">
{% block body %}{% endblock %}
</td>
</tr>
{% block social %}
</div></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td valign="top" class="social-links">
<a href="{{ sr("social.twitter_url") }}" title="{{ _("Follow us on Twitter") }}" style="color: #9dce0a">{{ _("Twitter") }}</a>
<a href="{{ sr("social.github_url") }}" title="{{ _("Get the code on GitHub") }}" style="color: #9dce0a">{{ _("GitHub") }}</a>
<a href="{{ sr("taigaio_url") }}" title="{{ _("Visit our website") }}" style="color: #9dce0a">{{ _("Taiga.io") }}</a>
</td>
</tr>
{% endblock %}
</table>
</td>
</tr>
<tr>
<td align="center" valign="top">
<!-- BEGIN FOOTER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateFooter">
<tr>
<td valign="top" class="footerContent">
{% block footer %}
{% trans support_url=sr("support.url"), support_email=sr("support.email"), mailing_list_url=sr("support.mailing_list") %}
<strong>Taiga Support:</strong>
<a href="{{ support_url }}" title="Support page" style="color: #9dce0a">{{ support_url}}</a>
<br>
<strong>Contact us:</strong>
<a href="mailto:{{ support_email }}" title="Support email" style="color: #9dce0a">
{{ support_email }}
</a>
<br>
<strong>Mailing list:</strong>
<a href="{{ mailing_list_url }}" title="Mailing list" style="color: #9dce0a">
{{ mailing_list_url }}
</a>
{% endtrans %}
{% endblock %}
</td>
</tr>
</table>
<!-- // END FOOTER -->
</td>
</tr>
</table>
<!-- // END TEMPLATE -->
</td>
</tr>
</table>
</center>
</body>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]--><div style="margin:0px auto;max-width:600px;"><table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0"><tbody><tr><td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:0px;"><!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]--><div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;"><table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0"><tbody><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
{% block footer %}{% endblock %}
</div></td></tr><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<a href="#">taiga Support</a>
<a href="#">Contact us</a>
<a href="#">mailing list</a>
</div></td></tr><tr><td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center"><div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<p>(ɔ) 2017, Taiga Agile, LLC<br>This mail is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License</p>
</div></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div><!--[if mso | IE]>
</td></tr></table>
<![endif]--></div>
</body>
</html>

View File

@ -1,487 +1,354 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>{{ _("[Taiga] Updates") }}</title>
<head>
<title></title>
<!--[if !mso]><!-- -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
/* /\/\/\/\/\/\/\/\/ CLIENT-SPECIFIC STYLES /\/\/\/\/\/\/\/\/ */
#outlook a{padding:0;} /* Force Outlook to provide a "view in browser" message */
.ReadMsgBody{width:100%;} .ExternalClass{width:100%;} /* Force Hotmail to display emails at full width */
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:100%; -ms-text-size-adjust:100%;} /* Prevent WebKit and Windows mobile changing default text sizes */
table, td{mso-table-lspace:0pt; mso-table-rspace:0pt;} /* Remove spacing between tables in Outlook 2007 and up */
img{-ms-interpolation-mode:bicubic;} /* Allow smoother rendering of resized image in Internet Explorer */
/* /\/\/\/\/\/\/\/\/ RESET STYLES /\/\/\/\/\/\/\/\/ */
body{margin:0; padding:0;}
img{border:0; height:auto; line-height:100%; outline:none; text-decoration:none;}
table{border-collapse:collapse !important;}
body, #bodyTable, #bodyCell{height:100% !important; margin:0; padding:0; width:100% !important;}
/* /\/\/\/\/\/\/\/\/ TEMPLATE STYLES /\/\/\/\/\/\/\/\/ */
#bodyCell{padding:20px;}
#templateContainer{width:600px;}
/* ========== Page Styles ========== */
body, #bodyTable{
background-color:#f5f5f5;
#outlook a {
padding: 0;
}
/**
* @section email border
*/
#templateContainer{
background-color:#FFF;
border:1px solid #CDCDCD;
.ReadMsgBody {
width: 100%;
}
/**
* @section heading 1
*/
h1{
color: #6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:25px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
.ExternalClass {
width: 100%;
}
/**
* @style heading 2
*/
h2{
color: #6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial;
font-size:20px;
font-style:normal;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
.ExternalClass * {
line-height: 100%;
}
/**
* @tab Page
* @section heading 3
*/
h3{
color:#6e6e6e !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
font-weight:normal;
line-height:100%;
font-weight:bold;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:center;
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
/**
* @tab Page
* @section heading 4
*/
h4{
color:#808080 !important;
display:block;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
font-weight:bold;
line-height:100%;
letter-spacing:normal;
margin-top:0;
margin-right:0;
margin-bottom:16px;
margin-left:0;
text-align:left;
table,
td {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
/* ========== Header Styles ========== */
.headerContent {
text-align: center;
color:#8D8D8D !important;
font-family: 'Open Sans', Arial, Helvetica;
font-size:14px;
margin-bottom:16px;
text-align:center;
}
#headerImage{
height:auto;
width:80px;
margin: 20px auto;
}
/* ========== Body Styles ========== */
/**
* @tab Body
* @section body style
* @tip Set the background color and borders for your email's body area.
*/
#templateBody{
background-color:#FFF;
}
/**
* @section body text
*/
.bodyContent{
color:#505050;
font-family: 'Open Sans', Arial, Helvetica;
font-size:16px;
line-height:150%;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
padding-top:20px;
text-align:center;
}
/**
* @section body link
*/
.bodyContent a:link, .bodyContent a:visited, /* Yahoo! Mail Override */ .bodyContent a .yshortcuts /* Yahoo! Mail Override */{
color:#699b05;
font-weight:normal;
text-decoration:underline;
}
/**
* @section body link button class
*/
a.button {
background: #699b05;
color: #fff;
display: block;
width: 50%;
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
text-align: center;
margin: 0 auto 16px;
text-transform: uppercase;
padding: .8rem 3rem;
-ms-interpolation-mode: bicubic;
}
a.button:hover {
background: #aad400;
}
.bodyContent img{
display:inline;
height:auto;
max-width:560px;
}
.update-row h1,
.update-row h2,
.update-row h3 {
text-align: left;
}
.update-row tr {
border-bottom: 1px solid #cdcdcd;
padding: 10px;
}
.update-row tr:first-child,
.update-row tr:last-child {
border-bottom: 3px solid #cdcdcd;
}
.update-row td {
padding: 15px;
text-align: left;
}
.update-row td.update-row-name {
width: 40%;
text-align: center;
}
.update-row td.update-row-from {
border-bottom: 1px solid #f5f5f5;
}
.social-links {
font-family: 'Open Sans', Arial, Helvetica;
font-size:13px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:center;
}
.social-links a:link, .social-links a:visited{
color:#699b05;
font-weight:normal;
text-decoration:underline;
text-align: center;
margin: 0 5px;
}
/* ========== Footer Styles ========== */
/**
* @section footer style
*/
#templateFooter{
background-color:#555555;
}
/**
* @section footer text
*/
.footerContent{
color:#f5f5f5;
font-family: 'Open Sans', Arial, Helvetica;
font-size:10px;
line-height:150%;
padding-top:20px;
padding-right:20px;
padding-bottom:20px;
padding-left:20px;
text-align:left;
}
/**
* @tab Footer
* @section footer link
* @tip Set the styling for your email's footer links. Choose a color that helps them stand out from your text.
*/
.footerContent a:link, .footerContent a:visited, /* Yahoo! Mail Override */ .footerContent a .yshortcuts, .footerContent a span /* Yahoo! Mail Override */{
/*@editable*/ color:#699b05;
/*@editable*/ font-weight:normal;
/*@editable*/ text-decoration:underline;
}
/* /\/\/\/\/\/\/\/\/ MOBILE STYLES /\/\/\/\/\/\/\/\/ */
@media only screen and (max-width: 480px){
/* /\/\/\/\/\/\/ CLIENT-SPECIFIC MOBILE STYLES /\/\/\/\/\/\/ */
body, table, td, p, a, li, blockquote{-webkit-text-size-adjust:none !important;} /* Prevent Webkit platforms from changing default text sizes */
body{width:100% !important; min-width:100% !important;} /* Prevent iOS Mail from adding padding to the body */
/* /\/\/\/\/\/\/ MOBILE RESET STYLES /\/\/\/\/\/\/ */
#bodyCell{padding:10px !important;}
/* /\/\/\/\/\/\/ MOBILE TEMPLATE STYLES /\/\/\/\/\/\/ */
/* ======== Page Styles ======== */
/**
* @section template width
*/
#templateContainer{
max-width:600px !important;
width:100% !important;
}
/**
* @section heading 1
*/
h1{
font-size:18px !important;
line-height:100% !important;
}
/**
* @section heading 2
*/
h2{
font-size:16px !important;
line-height:100% !important;
}
/**
* @section heading 3
*/
h3{
font-size:14px !important;
line-height:100% !important;
}
/* ======== Header Styles ======== */
#templatePreheader{display:none !important;} /* Hide the template preheader to save space */
/**
* @section header image
*/
#headerImage{
height:auto !important;
max-width:600px !important;
width:20% !important;
}
/* ======== Body Styles ======== */
/**
* @tab Mobile Styles
* @section body image
* @tip Make the main body image fluid for portrait or landscape view adaptability, and set the image's original width as the max-width. If a fluid setting doesn't work, set the image width to half its original size instead.
*/
#bodyImage{
height:auto !important;
max-width:560px !important;
width:100% !important;
}
/**
* @section body text
*/
.bodyContent{
font-size:16px !important;
line-height:125% !important;
}
/**
* @section body link button class
*/
.bodyContent a.button {
font-size:14px !important;
width: auto;
}
/* ======== Footer Styles ======== */
/**
* @section footer text
*/
.footerContent{
font-size:14px !important;
line-height:115% !important;
}
.footerContent a{display:block !important;} /* Place footer social and utility links on their own lines, for easier access */
p {
display: block;
margin: 13px 0;
}
</style>
</head>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" alink="#699b05" link="#699b05" bgcolor="#FFFFFF" text="#444444">
<center>
<table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable">
<!--[if !mso]><!-->
<style type="text/css">
@media only screen and (max-width:480px) {
@-ms-viewport {
width: 320px;
}
@viewport {
width: 320px;
}
}
</style>
<!--<![endif]-->
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.outlook-group-fix {
width:100% !important;
}
</style>
<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
width: 100%!important;
}
.mj-column-per-80 {
width: 80%!important;
}
.mj-column-per-20 {
width: 20%!important;
}
}
</style>
</head>
<body style="background: #F5F5F5;">
<div style="background-color:#F5F5F5;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td align="center" valign="top" id="bodyCell">
<!-- BEGIN TEMPLATE // -->
<table border="0" cellpadding="0" cellspacing="0" id="templateContainer">
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0">
<tbody>
<tr>
<td align="center" valign="top">
<!-- BEGIN HEADER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateHeader">
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:middle;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:middle;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" style="vertical-align:middle;" width="100%" border="0">
<tbody>
<tr>
<td valign="top" class="headerContent">
<img src="{{ static("emails/top-bg-update.png") }}" />
<a href="{{ resolve_front_url("home") }}"
title="Taiga">
<img src="{{ static("emails/logo-color.png") }}" id="headerImage" alt="Taiga" />
</a>
{% block head %}
{% endblock %}
</td>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center" border="0">
<tbody>
<tr>
<td style="width:30px;"><img alt="Taiga logo" title="" height="auto" src="{{ static('emails/taiga-logo-email.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;"
width="30"></td>
</tr>
</tbody>
</table>
<!-- // END HEADER -->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;background:#fff;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;background:#fff;" align="center" border="0">
<tbody>
<tr>
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:10px 10px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:480px;">
<![endif]-->
<div class="mj-column-per-80 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:20px;font-weight:bold;line-height:22px;text-align:left;">
{% block title %}{% endblock %}
</div>
</td>
</tr>
<tr>
<td align="center" valign="top">
<!-- BEGIN BODY // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody">
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:14px;line-height:22px;text-align:left;">
{% block head %}{% endblock %}
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td><td style="vertical-align:middle;width:120px;">
<![endif]-->
<div class="mj-column-per-20 outlook-group-fix" style="vertical-align:middle;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" style="vertical-align:middle;" width="100%" border="0">
<tbody>
<tr>
<td valign="top" class="bodyContent">
<table class="update-row" border="0" cellpadding="0" cellspacing="0" width="100%">
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<table role="presentation" cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center" border="0">
<tbody>
<tr>
<td style="width:60px;">
{% block logo %}{% endblock %}
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0">
<tbody>
<tr>
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:0px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;">
<div style="font-size:1px;line-height:8px;white-space:nowrap;"> </div>
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;background:#fff;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;background:#fff;" align="center" border="0">
<tbody>
<tr>
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:20px 0px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
{% block body %}
<tr>
<th colspan="2"><h2>{{ _("Updates") }}</h2></th>
</tr>
{% for entry in history_entries%}
{% if entry.comment %}
<tr>
<td colspan="2">
{% trans comment=mdrender(project, entry.comment) %}
<h3>comment:</h3>
<p>{{ comment }}</p>
{% endtrans %}
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:16px;font-weight:bold;line-height:22px;text-align:left;">
{{ _("Updates") }}
</div>
</td>
</tr>
{% endif %}
{% set changed_fields = entry.values_diff %}
{% if changed_fields %}
{% for entry in history_entries%} {% if entry.comment %} {% trans comment=mdrender(project, entry.comment) %}
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:14px;font-weight:bold;line-height:22px;text-align:left;">
Comment
</div>
</td>
</tr>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
<div style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:12px;line-height:22px;text-align:left;">
<blockquote>{{ comment }}</blockquote>
</div>
</td>
</tr>
{% endtrans %} {% endif %} {% set changed_fields = entry.values_diff %} {% if changed_fields %}
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;padding-bottom:0px;" align="left">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:12px;line-height:22px;text-align:left;">
{% include "emails/includes/fields_diff-html.jinja" %}
{% endif %}
{% endfor %}
{% endblock %}
</table>
</div>
</td>
</tr>
{% block social %}
{% endif %} {% endfor %}{% endblock %}
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="600" align="center" style="width:600px;">
<tr>
<td valign="top" class="social-links">
<a href="{{ sr("social.twitter_url") }}" title="{{ _("Follow us on Twitter") }}" style="color: #9dce0a">{{ _("Twitter") }}</a>
<a href="{{ sr("social.github_url") }}" title="{{ _("Get the code on GitHub") }}" style="color: #9dce0a">{{ _("GitHub") }}</a>
<a href="{{ sr("taigaio_url") }}" title="{{ _("Visit our website") }}" style="color: #9dce0a">{{ _("Taiga.io") }}</a>
</td>
</tr>
{% endblock %}
</table>
<!-- // END BODY -->
<td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<![endif]-->
<div style="margin:0px auto;max-width:600px;">
<table role="presentation" cellpadding="0" cellspacing="0" style="font-size:0px;width:100%;" align="center" border="0">
<tbody>
<tr>
<td style="text-align:center;vertical-align:top;direction:ltr;font-size:0px;padding:0px;">
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;width:600px;">
<![endif]-->
<div class="mj-column-per-100 outlook-group-fix" style="vertical-align:top;display:inline-block;direction:ltr;font-size:13px;text-align:left;width:100%;">
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<a href="#">taiga Support</a>
<a href="#">Contact us</a>
<a href="#">mailing list</a>
</div>
</td>
</tr>
<tr>
<td align="center" valign="top">
<!-- BEGIN FOOTER // -->
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateFooter">
<tr>
<td valign="top" class="footerContent">
{% block footer %}
{% trans support_url=sr("support.url"), support_email=sr("support.email"), mailing_list_url=sr("support.mailing_list") %}
<strong>Taiga Support:</strong>
<a href="{{ support_url }}" title="Support page" style="color: #9dce0a">{{ support_url}}</a>
<br>
<strong>Contact us:</strong>
<a href="mailto:{{ support_email }}" title="Support email" style="color: #9dce0a">
{{ support_email }}
</a>
<br>
<strong>Mailing list:</strong>
<a href="{{ mailing_list_url }}" title="Mailing list" style="color: #9dce0a">
{{ mailing_list_url }}
</a>
{% endtrans %}
{% endblock %}
<td style="word-break:break-word;font-size:0px;padding:10px 25px;" align="center">
<div class="" style="cursor:auto;color:#6e6e6e;font-family:Sans;font-size:9px;line-height:22px;text-align:center;">
<p>(ɔ) 2017, Taiga Agile, LLC<br>This mail is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License</p>
</div>
</td>
</tr>
</tbody>
</table>
<!-- // END FOOTER -->
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
<!-- // END TEMPLATE -->
</td>
</tr>
</table>
</center>
</body>
</div>
<!--[if mso | IE]>
</td></tr></table>
<![endif]-->
</div>
</body>
</html>

View File

@ -1,13 +1,21 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Project dump generated
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), project=project.name, url=url, deletion_date=deletion_date|date("SHORT_DATETIME_FORMAT") + deletion_date|date(" T") %}
<h1>Project dump generated</h1>
<p>Hello {{ user }},</p>
<h3>Your dump from project {{ project }} has been correctly generated.</h3>
<p>You can download it here:</p>
<a class="button" href="{{ url }}" title="Download the dump file">Download the dump file</a>
<p>This file will be deleted on {{ deletion_date }}.</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your dump from project <strong>{{ project }}</strong> has been correctly generated.<br>
<a href="{{ url }}" style="color:#72a114;" title="Download the dump file">Download the dump file</a> </p>
<p><small>This file will be deleted on {{ deletion_date }}.</small></p>
{% endtrans %}
{% endblock %}

View File

@ -1,12 +1,23 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
{% trans error_message=error_message %}
{{ error_message }}
{% endtrans %}
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), error_message=error_message, support_email=sr("support.email"), project=project.name %}
<h1>{{ error_message }}</h1>
<p>Hello {{ user }},</p>
<p>Your project {{ project }} has not been exported correctly.</p>
<p>Hello {{ user }}, <br> Your project <strong>{{ project }}</strong> has not been exported correctly.</p>
<p>The Taiga system administrators have been informed.<br/> Please, try it again or contact with the support team at
<a href="mailto:{{ support_email }}" title="Support email" style="color: #699b05">{{ support_email }}</a></p>
<p><small>The Taiga Team</small></p>
{% endtrans %}
{% endblock %}

View File

@ -1,12 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block body %}
{% trans user=user.get_full_name(), error_message=error_message, support_email=sr("support.email") %}
<h1>{{ error_message }}</h1>
<p>Hello {{ user }},</p>
<p>Your project has not been importer correctly.</p>
<p>The Taiga system administrators have been informed.<br/> Please, try it again or contact with the support team at
<a href="mailto:{{ support_email }}" title="Support email" style="color: #699b05">{{ support_email }}</a></p>
<p><small>The Taiga Team</small></p>
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
{% trans error_message=error_message %}
{{ error_message }}
{% endtrans %}
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), support_email=sr("support.email") %}
<p>Hello {{ user }}, <br> Your project has not been imported correctly.</p>
<p>The Taiga system administrators have been informed.<br/> Please, try it again or contact with the support team at
<a href="mailto:{{ support_email }}" title="Support email" style="color: #699b05">{{ support_email }}</a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,21 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Project dump imported
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), url=resolve_front_url("project", project.slug), project=project.name %}
<h1>Project dump imported</h1>
<p>Hello {{ user }},</p>
<h3>Your project dump has been correctly imported.</h3>
<a class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your project dump has been correctly imported.</p>
<p><a style="color:#72a114;" class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to <strong>{{ project }}</strong></a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,8 +1,15 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
Feedback
{% endblock %}
{% block body %}
{% trans full_name=feedback_entry.full_name, email=feedback_entry.email %}
<h1>Feedback</h1>
<p>Taiga has received feedback from {{ full_name }} <{{ email }}></p>
{% endtrans %}
@ -12,9 +19,9 @@
{% endtrans %}
{% if extra %}
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top" valign="top" class="bodyContent">
<td valign="top" valign="top">
<h3>{{ _("Extra info") }}</h3>
<dl>
{% for k, v in extra.items() %}
@ -26,4 +33,5 @@
</tr>
</table>
{% endif %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Asana Project imported
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), url=resolve_front_url("project", project.slug), project=project.name %}
<h1>Asana Project imported</h1>
<p>Hello {{ user }},</p>
<h3>Your Asana project has been correctly imported.</h3>
<a class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your project <strong>{{ project }}</strong> from Asana has been correctly imported.</p>
<p><a href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Github Project imported
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), url=resolve_front_url("project", project.slug), project=project.name %}
<h1>GitHub Project imported</h1>
<p>Hello {{ user }},</p>
<h3>Your GitHub project has been correctly imported.</h3>
<a class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your project <strong>{{ project }}</strong> from Github has been correctly imported.</p>
<p><a href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,12 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block body %}
{% trans user=user.get_full_name(), error_message=error_message, support_email=sr("support.email") %}
<h1>{{ error_message }}</h1>
<p>Hello {{ user }},</p>
<p>Your project has not been importer correctly.</p>
<p>The Taiga system administrators have been informed.<br/> Please, try it again or contact with the support team at
<a href="mailto:{{ support_email }}" title="Support email" style="color: #699b05">{{ support_email }}</a></p>
<p><small>The Taiga Team</small></p>
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
{% trans error_message=error_message %}
{{ error_message }}
{% endtrans %}
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), support_email=sr("support.email") %}
<p>Hello {{ user }}, <br> Your project has not been importer correctly.</p>
<p>The Taiga system administrators have been informed.<br/> Please, try it again or contact with the support team at
<a href="mailto:{{ support_email }}" title="Support email" style="color: #699b05">{{ support_email }}</a>
</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Jira Project imported
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), url=resolve_front_url("project", project.slug), project=project.name %}
<h1>Jira Project imported</h1>
<p>Hello {{ user }},</p>
<h3>Your Jira project has been correctly imported.</h3>
<a class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your project <strong>{{ project }}</strong> from Jira has been correctly imported.</p>
<p><a href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Trello Project imported
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), url=resolve_front_url("project", project.slug), project=project.name %}
<h1>Trello Project imported</h1>
<p>Hello {{ user }},</p>
<h3>Your Trello project has been correctly imported.</h3>
<a class="button" href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> Your project <strong>{{ project }}</strong> from Trello has been correctly imported.</p>
<p><a href="{{ url }}" title="Go to the project {{ project }}">Go to {{ project }}</a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,24 +1,23 @@
{% extends "emails/base-body-html.jinja" %}
{% block body %}
<p>
{% if photo_url %}
<a href="{{ user_profile_url }}" title="{{ full_name }}" >
<img style="vertical-align:middle;" src="{{ photo_url }}" alt="{{ full_name }}" width="60"/>
</a>
{% endif %}
{% trans full_name=full_name, user_profile_url=user_profile_url, project_name=project_name %}
<a style="font-weight: bold;text-decoration:none;color:#222;" href="{{ user_profile_url }}" title="{{ full_name }}">{{ full_name }}</a> has written to {{ project_name }}
{% endtrans %}
</p>
<p>{{ comment }}</p>
<hr>
<p>
{% trans project_name=project_name, project_settings_url=project_settings_url %}
You are receiving this message because you are listed as administrator of the project titled {{ project_name }}. If you don't want members of the Taiga community contacting your project, please <a href="{{ project_settings_url }}">update your project settings</a> to prevent such contacts. Regular communications amongst members of the project will not be affected.
{% endtrans %}
</p>
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
Message from {{ full_name }}
{% endblock %}
{% block body %}
{% trans full_name=full_name, user_profile_url=user_profile_url, project_name=project_name %}
<p><a style="font-weight: bold;text-decoration:none;color:#222;" href="{{ user_profile_url }}" title="{{ full_name }}">{{ full_name }}</a> has written to {{ project_name }}</p>
{% endtrans %}
<q>{{ comment }}</q>
{% trans project_name=project_name, project_settings_url=project_settings_url %}
<p><small>You are receiving this message because you are listed as administrator of the project titled {{ project_name }}. If you don't want members of the Taiga community contacting your project, please <a href="{{ project_settings_url }}">update your project settings</a> to prevent such contacts. Regular communications amongst members of the project will not be affected.</small></p>
{% endtrans %}
{% endblock %}

View File

@ -20,49 +20,36 @@
{# POINTS #}
{% if field_name == "points" %}
{% for role, points in values.items() %}
<tr>
<td valign="middle" rowspan="2" class="update-row-name">
<h3>{% trans role=role %}{{ role }} role points{% endtrans %}</h3>
</td>
<td valign="top" class="update-row-from">
<span>{{ _("from") }}</span><br>
<strong>{{ points.0 }}</strong>
</td>
</tr>
<tr>
<td valign="top">
<span>{{ _("to") }}</span><br>
<strong>{{ points.1 }}</strong>
</td>
</tr>
<ul>
<li>
<span>{{ _("from") }}</span> <strong>{{ points.0 }}</strong>
</li>
<li>
<span>{{ _("to") }}</span> <strong>{{ points.1 }}</strong>
</li>
</ul>
{% endfor %}
{# ATTACHMENTS #}
{% elif field_name == "attachments" %}
{% if values.new %}
{% for att in values['new']%}
<tr>
<td colspan="2">
<h3>{{ _("Added new attachment") }}</h3>
<p>
<a href="{{ att.url }}" target="_blank">
{{ att.filename }}
</a>
</p>
<ul>
<li><a href="{{ att.url }}" target="_blank">{{ att.filename }}</a></li>
{% if att.description %}
<p>{{ att.description }}</p>
<li>{{ att.description }}</li>
{% endif %}
</td>
</tr>
</ul>
{% endfor %}
{% endif %}
{% if values.changed %}
{% for att in values['changed'] %}
<tr>
<td colspan="2">
<h3>{{ _("Updated attachment") }}</h3>
<p>
<ul>
<li>
<a href="{{ att.url }}" target="_blank">
{{ att.filename|linebreaksbr }}
{% if att.changes.is_deprecated %}
@ -73,22 +60,21 @@
{% endif %}
{% endif %}
</a>
</p>
</li>
{% if att.changes.description %}
<p>{{ att.changes.description.1 }}</p>
<li>
{{ att.changes.description.1 }}
</li>
{% endif %}
</td>
</tr>
</ul>
{% endfor %}
{% endif %}
{% if values.deleted %}
{% for att in values['deleted']%}
<tr>
<td colspan="2">
<h3>{{ _("Deleted attachment") }}</h3>
<p>{{ att.filename|linebreaksbr }}</p>
</td>
</tr>
<ul>
<li>{{ att.filename|linebreaksbr }}</li>
</ul>
{% endfor %}
{% endif %}
{# TAGS AND WATCHERS #}
@ -98,140 +84,90 @@
{% set values_added = lists_diff(values_to, values_from) %}
{% set values_removed = lists_diff(values_from, values_to) %}
<tr>
<td valign="middle" class="update-row-name">
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
</td>
<td valign="top" class="update-row-from">
<ul>
<li>
{% if values_added %}
<span>{{ _("added") }}</span><br>
<strong>{{ ', '.join(values_added) }}</strong>
<span>{{ _("added") }}</span> <strong>{{ ', '.join(values_added) }}</strong>
{% endif %}
{% if values_removed %}
<span>{{ _("removed") }}</span><br>
<strong>{{ ', '.join(values_removed) }}</strong>
<span>{{ _("removed") }}</span> <strong>{{ ', '.join(values_removed) }}</strong>
{% endif %}
</td>
</tr>
</li>
</ul>
{# DESCRIPTIONS, CONTENT, BLOCKED_NOTE #}
{% elif field_name in ["description_diff", "content_diff", "blocked_note_diff"] %}
<tr>
<td colspan="2">
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
<p>{{ mdrender(project, values.1) }}</p>
</td>
</tr>
<ul>
<li>{{ mdrender(project, values.1) }}</li>
</ul>
{# ASSIGNED TO #}
{% elif field_name == "assigned_to" %}
<tr>
<td valign="middle" rowspan="2" class="update-row-name">
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
</td>
<td valign="top" class="update-row-from">
<ul>
<li>
{% if values.0 != None and values.0 != "" %}
<span>{{ _("from") }}</span><br>
<strong>{{ values.0 }}</strong>
<span>{{ _("from") }}</span> <strong>{{ values.0 }}</strong>
{% else %}
<span>{{ _("from") }}</span><br>
<strong>{{ _("Unassigned") }}</strong>
<span>{{ _("from") }}</span> <strong>{{ _("Unassigned") }}</strong>
{% endif %}
</td>
</tr>
<tr>
<td valign="top">
</li>
<li>
{% if values.1 != None and values.1 != "" %}
<span>{{ _("to") }}</span><br>
<strong>{{ values.1 }}</strong>
<span>{{ _("to") }}</span> <strong>{{ values.1 }}</strong>
{% else %}
<span>{{ _("to") }}</span><br>
<strong>{{ _("Unassigned") }}</strong>
<span>{{ _("to") }}</span> <strong>{{ _("Unassigned") }}</strong>
{% endif %}
</td>
</tr>
</li>
</ul>
{# * #}
{% else %}
<tr>
<td valign="middle" rowspan="2" class="update-row-name">
<h3>{{ verbose_name(obj_class, field_name) }}</h3>
</td>
<td valign="top" class="update-row-from">
<span>{{ _("from") }}</span><br>
<strong>{{ values.0|linebreaksbr }}</strong>
</td>
</tr>
<tr>
<td valign="top">
<span>{{ _("to") }}</span><br>
<strong>{{ values.1|linebreaksbr }}</strong>
</td>
</tr>
<ul>
<li><span>{{ _("from") }}</span> <strong>{{ values.0|linebreaksbr }}</strong></li>
<li><span>{{ _("to") }}</span> <strong>{{ values.1|linebreaksbr }}</strong></li>
</ul>
{% endif %}
{% elif field_name == "custom_attributes" %}
{# CUSTOM ATTRIBUTES #}
{% if values.new %}
{% for attr in values['new']%}
<h3>{{ attr.name }}</h3>
<ul>
{% if attr.type == "richtext" %}
<tr>
<td colspan="2">
<h3>{{ attr.name }}</h3>
<p>{{ mdrender(project, attr.value_diff) }}</p>
</td>
</tr>
<li>{{ mdrender(project, attr.value_diff) }}</li>
{% else %}
<tr>
<td valign="middle" rowspan="2" class="update-row-name">
<h3>{{ attr.name }}</h3>
</td>
</tr>
<tr>
<td valign="top">
<span>{{ _("to") }}</span><br>
<strong>{{ attr.value|linebreaksbr }}</strong>
</td>
</tr>
<li><span>{{ _("to") }}</span> <strong>{{ attr.value|linebreaksbr }}</strong></li>
{% endif %}
</ul>
{% endfor %}
{% endif %}
{% if values.changed %}
{% for attr in values['changed'] %}
{% if attr.changes.value%}
<h3>{{ attr.name }}</h3>
<ul>
{% if attr.type == "richtext" %}
<tr>
<td colspan="2">
<h3>{{ attr.name }}</h3>
<p>{{ mdrender(project, attr.value_diff) }}</p>
</td>
</tr>
<li>{{ mdrender(project, attr.value_diff) }}</li>
{% else %}
<tr>
<td valign="middle" rowspan="2" class="update-row-name">
<h3>{{ attr.name }}</h3>
</td>
<td valign="top" class="update-row-from">
<span>{{ _("from") }}</span><br>
<strong>{{ attr.changes.value.0|linebreaksbr }}</strong>
</td>
</tr>
<tr>
<td valign="top">
<span>{{ _("to") }}</span><br>
<strong>{{ attr.changes.value.1|linebreaksbr }}</strong>
</td>
</tr>
<li><span>{{ _("from") }}</span> <strong>{{ attr.changes.value.0|linebreaksbr }}</strong></li>
<li><span>{{ _("to") }}</span> <strong>{{ attr.changes.value.1|linebreaksbr }}</strong></li>
{% endif %}
</ul>
{% endif %}
{% endfor %}
{% endif %}
{% if values.deleted %}
{% for attr in values['deleted']%}
<tr>
<td colspan="2">
<h3>{{ attr.name }}</h3>
<p>{{ _("-deleted-") }}</p>
</td>
</tr>
<ul>
<li>
{{ _("-deleted-") }}
</li>
</ul>
{% endfor %}
{% endif %}
{% endif %}

View File

@ -54,6 +54,8 @@ from taiga.timeline.service import build_project_namespace
from . import choices
from .services import get_logo_small_thumbnail_url, get_logo_big_thumbnail_url
from dateutil.relativedelta import relativedelta
@ -433,6 +435,14 @@ class Project(ProjectDefaults, TaggedMixin, TagsColorsMixin, models.Model):
def project(self):
return self
@property
def logo_small_thumbnail_url(self):
return get_logo_small_thumbnail_url(self)
@property
def logo_big_thumbnail_url(self):
return get_logo_big_thumbnail_url(self)
def _get_q_watchers(self):
return Q(notify_policies__project_id=self.id) & ~Q(notify_policies__notify_level=NotifyLevel.none)

View File

@ -30,7 +30,7 @@ from django.conf import settings
from django.utils.translation import ugettext as _
from taiga.base import exceptions as exc
from taiga.base.mails import InlineCSSTemplateMail
from djmail.template_mail import TemplateMail
from taiga.projects.notifications.choices import NotifyLevel
from taiga.projects.history.choices import HistoryType
from taiga.projects.history.services import (make_key_from_model_object,
@ -200,8 +200,8 @@ def _make_template_mail(name: str):
instance for specified name, and return an instance
of it.
"""
cls = type("InlineCSSTemplateMail",
(InlineCSSTemplateMail,),
cls = type("TemplateMail",
(TemplateMail,),
{"name": name})
return cls()

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Epic updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("epic", project.slug, snapshot.ref) %}
<h1>Epic updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated a epic on {{ project }}</p>
<p>Epic #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Epic #{{ ref }}: {{ subject }} in Taiga">See epic</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated epic <a style="color: #72a114" href="{{ url }}" title="See Epic #{{ ref }} {{ subject }} in Taiga">#{{ ref }} {{ subject }}</a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New epic created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("epic", project.slug, snapshot.ref) %}
<h1>New epic created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new epic on {{ project }}</p>
<p>Epic #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Epic #{{ ref }} {{ subject }}">See epic</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new epic <strong><a style="color:#72a114;" href="{{ url }}" title="See epic #{{ ref }} {{ subject }}">#{{ ref }} {{ subject }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Epic deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject %}
<h1>Epic deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted a epic on {{ project }}</p>
<p>Epic #{{ ref }} {{ subject }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the epic <strong>#{{ ref }} {{ subject }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Issue updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("issue", project.slug, snapshot.ref) %}
<h1>Issue updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated an issue on {{ project }}</p>
<p>Issue #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Issue #{{ ref }}: {{ subject }} in Taiga">See issue</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated issue <a style="color: #72a114" href="{{ url }}" title="See Issue #{{ ref }} {{ subject }} in Taiga"><strong>#{{ ref }} {{ subject }}</strong></a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New issue created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("issue", project.slug, snapshot.ref) %}
<h1>New issue created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new issue on {{ project }}</p>
<p>Issue #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Issue #{{ ref }} {{ subject }}">See issue</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new issue <strong><a style="color:#72a114;" href="{{ url }}" title="See Issue #{{ ref }} {{ subject }}">#{{ ref }} {{ subject }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Issue deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject %}
<h1>Issue deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted an issue on {{ project }}</p>
<p>Issue #{{ ref }} {{ subject }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the issue <strong>#{{ ref }} {{ subject }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Sprint updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, name=snapshot.name, url=resolve_front_url("taskboard", project.slug, snapshot.slug) %}
<h1>Sprint updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated an sprint on {{ project }}</p>
<p>Sprint {{ name }}</p>
<a class="button" href="{{ url }}" title="See Sprint: {{ name }} in Taiga">See sprint</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated sprint <a style="color: #72a114;" href="{{ url }}" title="See Sprint {{ name }} in Taiga"><strong>{{ name }}</strong></a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New sprint created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, name=snapshot.name, url=resolve_front_url("taskboard", project.slug, snapshot.slug) %}
<h1>New sprint created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new sprint on {{ project }}</p>
<p>Sprint {{ name }}</p>
<a class="button" href="{{ url }}" title="See Sprint {{ name }}">See sprint</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new sprint <strong><a style="color:#72a114;" href="{{ url }}" title="See sprint {{ name }}">{{ name }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Sprint deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, name=snapshot.name %}
<h1>Sprint deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted an sprint on {{ project }}</p>
<p>Sprint {{ name }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the sprint <strong>{{ name }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Task updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("task", project.slug, snapshot.ref) %}
<h1>Task updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated a task on {{ project }}</p>
<p>Task #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Task #{{ ref }}: {{ subject }} in Taiga">See task</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated task <a style="color: #72a114;" href="{{ url }}" title="See Task #{{ ref }} {{ subject }}"><strong>#{{ ref }} {{ subject }}</strong></a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New task created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("task", project.slug, snapshot.ref) %}
<h1>New task created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new task on {{ project }}</p>
<p>Task #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See Task #{{ ref }} {{ subject }}">See task</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new task <strong><a style="color:#72a114;" href="{{ url }}" title="See TasK #{{ ref }} {{ subject }}">#{{ ref }} {{ subject }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Task deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject %}
<h1>Task deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted a task on {{ project }}</p>
<p>Task #{{ ref }} {{ subject }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the task <strong>#{{ ref }} {{ subject }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
User story updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("userstory", project.slug, snapshot.ref) %}
<h1>User Story updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated a user story on {{ project }}</p>
<p>User Story #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See User Story #{{ ref }}: {{ subject }} in Taiga">See user story</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated user story <a style="color: #72a114;" href="{{ url }}" title="See Task #{{ ref }} {{ subject }}"><strong>#{{ ref }} {{ subject }}</strong></a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New user story created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject, url=resolve_front_url("userstory", project.slug, snapshot.ref) %}
<h1>New user story created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new user story on {{ project }}</p>
<p>User Story #{{ ref }} {{ subject }}</p>
<a class="button" href="{{ url }}" title="See User Story #{{ ref }} {{ subject }}">See user story</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new user story <strong><a style="color:#72a114;" href="{{ url }}" title="See user story #{{ ref }} {{ subject }}">#{{ ref }} {{ subject }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
User Story deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, ref=snapshot.ref, subject=snapshot.subject %}
<h1>User Story deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted a user story on {{ project }}</p>
<p>User Story #{{ ref }} {{ subject }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the user story <strong>#{{ ref }} {{ subject }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,21 @@
{% extends "emails/updates-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Wiki page updated
{% endblock %}
{% block head %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, page=snapshot.slug, url=resolve_front_url("wiki", project.slug, snapshot.slug) %}
<h1>Wiki Page updated</h1>
<p>Hello {{ user }}, <br> {{ changer }} has updated a wiki page on {{ project }}</p>
<p>Wiki page {{ page }}</p>
<a class="button" href="{{ url }}" title="See wiki page in Taiga">See Wiki Page</a>
<p>Hello {{ user }}, <br> {{ changer }} has updated wiki page <a style="color: #72a114;" href="{{ url }}" title="See wiki page {{ page }}"><strong>{{ page }}</strong></a> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,20 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
New wiki page created
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, page=snapshot.slug, url=resolve_front_url("wiki", project.slug, snapshot.slug) %}
<h1>New wiki page created</h1>
<p>Hello {{ user }},<br />{{ changer }} has created a new wiki page on {{ project }}</p>
<p>Wiki page {{ page }}</p>
<a class="button" href="{{ url }}" title="Wiki page {{ page }}">See wiki page</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has created a new wiki page <strong><a style="color:#72a114;" href="{{ url }}" title="See wiki page {{ page }}">{{ page }}</a></strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,19 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Wiki page deleted
{% endblock %}
{% block body %}
{% trans user=user.get_full_name(), changer=changer.get_full_name(), project=project.name, page=snapshot.slug %}
<h1>Wiki page deleted</h1>
<p>Hello {{ user }},<br />{{ changer }} has deleted a wiki page on {{ project }}</p>
<p>Wiki page {{ page }}</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> {{ changer }} has deleted the wiki page <strong>#{{ page }}</strong> on {{ project }}</p>
{% endtrans %}
{% endblock %}

View File

@ -6,21 +6,31 @@
{% set sender_full_name=_("someone") %}
{% endif %}
{% block title %}
{% trans %}
You have been invited to Taiga!
{% endtrans %}
{% endblock %}
{% block body %}
{% trans full_name=sender_full_name, project=membership.project %}
<h2>You have been invited to Taiga!</h2>
<p>Hi! {{ full_name }} has sent you an invitation to join project <em>{{ project }}</em> in Taiga.</br> Taiga is a Free, open Source Agile Project Management Tool.</p>
<p>Hi! {{ full_name }} has sent you an invitation to join project <strong>{{ project }}</strong> in Taiga.</p>
{% endtrans %}
{% if membership.invitation_extra_text %}
{% trans extra=membership.invitation_extra_text|linebreaksbr %}
<p><small>And now a few words from the jolly good fellow or sistren<br/> who thought so kindly as to invite you</small></p>
<p><strong>{{ extra }}</strong></p>
<p>And now a few words from the jolly good fellow or sistren who thought so kindly as to invite you</p>
<blockquote>{{ extra }}</blockquote>
{% endtrans %}
{% endif %}
<a class="button" href="{{ resolve_front_url("invitation", membership.token) }}"
<a style="color:#72a114;" href="{{ resolve_front_url("invitation", membership.token) }}"
title="{{ _("Accept your invitation to Taiga") }}">{{ _("Accept your invitation") }}</a>
<p><small>{{ _("The Taiga Team") }}</small></p>
{% endblock %}
{% block footer %}
{{ super() }}
{% trans url=resolve_front_url('cancel-account', cancel_token) %}
You may remove your account from this service <a href="{{ url }}" title="Remove your account" style="color: #72a114">clicking here</a>
{% endtrans %}
{% endblock %}

View File

@ -1,10 +1,16 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
<img alt="Taiga logo" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
You have been added to a project
{% endblock %}
{% block body %}
{% trans url=resolve_front_url("project", membership.project.slug), full_name=membership.user.get_full_name(), project=membership.project %}
<h1>You have been added to a project</h1>
<p>Hello {{ full_name }},<br />you have been added to the project {{ project }}</p>
<a class="button" href="{{ url }}" title="Go to{{ project }}">Go to project</a>
<p><small>The Taiga Team</small></p>
<p>Hello {{ full_name }}, <br> you have been added to the project <a style="color:#72a114;" href="{{ url }}" title="Go to {{ project }}"><strong>{{project}}</strong></a></p>
{% endtrans %}
{% endblock %}

View File

@ -1,17 +1,31 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Ownership transfer accepted
{% endblock %}
{% block body %}
{% trans old_owner_name=old_owner.get_full_name(), new_owner_name=new_owner.get_full_name(), project_name=project.name %}
<p>Hi {{old_owner_name}},</p>
<p>{{ new_owner_name}} has accepted your offer and will become the new project owner for "{{project_name}}".</p>
<p>Hello {{ old_owner_name }}, <br> {{ new_owner_name}} has accepted your offer and will become the new project owner of <strong> {{project}} </strong></p>
{% endtrans %}
{% if reason %}
{% trans new_owner_name=new_owner.get_full_name()%}
<p>{{ new_owner_name }} says:</p>
{% endtrans %}
{% if reason %}
{% trans new_owner_name=new_owner.get_full_name()%}<p>{{ new_owner_name }} says:</p>{% endtrans %}
<p>{{reason}}</p>
<blockquote>{{reason}}</blockquote>
{% endif %}
{% trans %}
<p>From now on, your new status for this project will be "admin".</p>
<p>From now on, your new status for this project will be <strong>admin</strong>.</p>
{% endtrans %}
{% endblock %}

View File

@ -1,24 +1,33 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Ownership transfer declined
{% endblock %}
{% block body %}
{% trans owner_name=project.owner.get_full_name(), rejecter_name=rejecter.get_full_name(), project_name=project.name %}
<p>Hi {{ owner_name }},</p>
<p>{{ rejecter_name }} has declined your offer and will not become the new project owner for "{{project_name}}".</p>
<p>Hello {{ owner_name }}, <br> {{ rejecter_name}} has declined your offer and will not become the new project owner of <strong> {{project_name}} </strong></p>
{% endtrans %}
{% if reason %}
{% trans rejecter_name=rejecter.get_full_name()%}
<p>{{ rejecter_name }} says:</p>
{% endtrans %}
<p>{{ reason }}</p>
<blockquote>{{reason}}</blockquote>
{% endif %}
{% trans %}
<p>If you want, you can still try to transfer the project ownership to a different person.</p>
{% endtrans %}
<a class="button" href="{{ resolve_front_url("project-admin", project.slug) }}"
title="{% trans %}Request transfer to a different person{% endtrans %}">
{% trans %}Request transfer to a different person{% endtrans %}
</a>
<p>If you want, you can still <a style="color:#72a114;" href="{{ resolve_front_url("project-admin", project.slug) }}"
title="{% trans %} Request transfer to a different person{% endtrans %}"> {% trans %}Request transfer to a different person{% endtrans %}</a>
</p>
{% endblock %}

View File

@ -1,15 +1,24 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Ownership transfer requested
{% endblock %}
{% block body %}
{% trans owner_name=project.owner.get_full_name(), requester_name=requester.get_full_name(), project_name=project.name %}
<p>Hi {{owner_name}},</p>
<p>{{ requester_name }} has requested to become the project owner for "{{project_name}}".</p>
<p>Hello {{ owner_name }}, <br> {{ requester_name}} has requested to become the project owner of <strong> {{project_name}} </strong></p>
{% endtrans %}
{% trans %}
<p>Please, click on "Continue" if you would like to start the project transfer from the administration panel.</p>
{% endtrans %}
<a class="button" href="{{ resolve_front_url("project-admin", project.slug) }}"
title="{% trans %}Continue{% endtrans %}">{% trans %}Continue{% endtrans %}</a>
<a style="color:#72a114;" href="{{ resolve_front_url("project-admin", project.slug) }}"
title="{% trans %}Start the project transfer{% endtrans %}">
{% trans %}Start the project transfer{% endtrans %}
</a>
{% endblock %}

View File

@ -1,23 +1,32 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
{% if project.logo_small_thumbnail_url %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ project.logo_big_thumbnail_url }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% else %}
<img alt="{{ project.name }}" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endif %}
{% endblock %}
{% block title %}
Ownership transfer requested
{% endblock %}
{% block body %}
{% trans owner_name=project.owner.get_full_name(), receiver_name=receiver.get_full_name(), project_name=project.name %}
<p>Hi {{receiver_name}},</p>
<p>{{ owner_name }}, the current project owner at "{{project_name}}" would like you to become the new project owner.</p>
<p>Hello {{ receiver_name }}, <br> {{ owner_name}} the current project owner of <strong> {{project_name}} </strong> would like you to become the new project owner.</p>
{% endtrans %}
{% if reason %}
{% trans owner_name=project.owner.get_full_name() %}
<p>{{ owner_name }} says:</p>
{% endtrans %}
<p>{{ reason }}</p>
<blockquote>{{ reason }}</blockquote>
{% endif %}
{% trans %}
<p>Please, click on "Continue" to either accept or reject this proposal.</p>
{% endtrans %}
<a style="color:#72a114;" href="{{ resolve_front_url("project-transfer", project.slug, project.transfer_token) }}"
title="{{ _("accept or reject this proposal") }}">
{% trans %}Accept or reject this proposal{% endtrans %}
</a>
<a class="button" href="{{ resolve_front_url("project-transfer", project.slug, project.transfer_token) }}"
title="{{ _("Continue") }}">{{ _("Continue") }}</a>
{% endblock %}

View File

@ -1,11 +1,18 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
{% trans %}
Change your email
{% endtrans %}
{% endblock %}
{% block body %}
{% trans full_name=user.get_full_name(), url=resolve_front_url("change-email", user.email_token) %}
<h1>Change your email</h1>
<p>Hello {{ full_name }},<br />please confirm your email</p>
<a class="button" href="{{ url }}" title="Confirm email">Confirm email</a>
<p>You can ignore this message if you did not request.</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ user }}, <br> please <a style="color: #72a114" href="{{ url }}" title="Confirm email">Confirm email</a>.</p>
<p><small>You can ignore this message if you did not request.</small></p>
{% endtrans %}
{% endblock %}

View File

@ -1,11 +1,18 @@
{% extends "emails/base-body-html.jinja" %}
{% block logo %}
<img alt="Taiga" title="" height="auto" src="{{ static('emails/logo-color.png') }}" style="border:none;border-radius:;display:block;outline:none;text-decoration:none;width:100%;height:auto;" width="60">
{% endblock %}
{% block title %}
Recover your password
{% endblock %}
{% block body %}
{% trans full_name=user.get_full_name(), url=resolve_front_url("change-password", user.token) %}
<h1>Recover your password</h1>
<p>Hello {{ full_name }}, <br /> you asked to recover your password</p>
<a class="button" href="{{ url }}" title="Recover your password">Recover your password</a>
<p>You can ignore this message if you did not request.</p>
<p><small>The Taiga Team</small></p>
<p>Hello {{ full_name }}, <br> you asked to recover your password</p>
<a style="color:#72a114;" href="{{ url }}" title="Recover your password">Recover your password</a>
<p><small>Please, ignore this message if you did not request.</small></p>
{% endtrans %}
{% endblock %}

View File

@ -1,26 +1,21 @@
{% extends "emails/hero-body-html.jinja" %}
{% block body %}
<table border="0" width="100%" cellpadding="0" cellspacing="0" class="table-body">
<tr>
{% block title %}
{% trans %}
Thank you for registering in Taiga, We hope you enjoy it
{% endtrans %}
{% endblock %}
{% block body %}
{% trans %}
<td>
<h2>Thank you for registering in Taiga</h2>
<h3>We hope you enjoy it</h3>
<p>We built Taiga because we wanted the project management tool that sits open on our computers all day long, to serve as a continued reminder of why we love to collaborate, code and design.</p>
<p>We built it to be beautiful, elegant, simple to use and fun - without forsaking flexibility and power.</p>
<small>The taiga Team</small>
</td>
{% endtrans %}
</tr>
</table>
{% endblock %}
{% block footer %}
{{ super() }}
<br />
<br />
{% trans url=resolve_front_url('cancel-account', cancel_token) %}
<strong>You may remove your account from this service</strong> <a href="{{ url }}" title="Remove your account" style="color: #9dce0a">clicking here</a>
You may remove your account from this service <a href="{{ url }}" title="Remove your account" style="color: #9dce0a">clicking here</a>
{% endtrans %}
{% endblock %}