Send emails to donors post-donation
This commit is contained in:
parent
243fc217ce
commit
7fcbac2e83
|
@ -0,0 +1,19 @@
|
|||
Thank you for donating!
|
||||
|
||||
Receipt:
|
||||
|
||||
{{#monthly}}
|
||||
Monthly donation ${{amount}}
|
||||
{{/monthly}}
|
||||
{{^monthly}}
|
||||
One-time donation ${{amount}}
|
||||
{{/monthly}}
|
||||
|
||||
You can view and manage your donations online here:
|
||||
|
||||
{{root}}/panel
|
||||
|
||||
Thanks again! If you have questions, contact {{your_email}}.
|
||||
|
||||
--
|
||||
{{your_name}}
|
|
@ -5,6 +5,7 @@ from fosspay.objects import *
|
|||
from fosspay.database import db
|
||||
from fosspay.common import *
|
||||
from fosspay.config import _cfg, load_config
|
||||
from fosspay.email import send_thank_you
|
||||
|
||||
import os
|
||||
import locale
|
||||
|
@ -125,6 +126,8 @@ def donate():
|
|||
type = DonationType.one_time
|
||||
else:
|
||||
type = DonationType.monthly
|
||||
|
||||
amount = int(amount)
|
||||
except:
|
||||
return { "success": False, "reason": "Invalid request" }, 400
|
||||
|
||||
|
@ -161,6 +164,8 @@ def donate():
|
|||
|
||||
db.commit()
|
||||
|
||||
send_thank_you(user, amount, type == DonationType.monthly)
|
||||
|
||||
if new_account:
|
||||
return { "success": True, "new_account": new_account, "password_reset": user.password_reset }
|
||||
else:
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
import smtplib
|
||||
import pystache
|
||||
import os
|
||||
import html.parser
|
||||
from email.mime.text import MIMEText
|
||||
from werkzeug.utils import secure_filename
|
||||
from flask import url_for
|
||||
|
||||
from fosspay.database import db
|
||||
from fosspay.objects import User
|
||||
from fosspay.config import _cfg, _cfgi
|
||||
|
||||
def send_thank_you(user, amount, monthly):
|
||||
if _cfg("smtp-host") == "":
|
||||
return
|
||||
smtp = smtplib.SMTP(_cfg("smtp-host"), _cfgi("smtp-port"))
|
||||
smtp.login(_cfg("smtp-user"), _cfg("smtp-password"))
|
||||
with open("emails/thank-you") as f:
|
||||
message = MIMEText(html.parser.HTMLParser().unescape(\
|
||||
pystache.render(f.read(), {
|
||||
"user": user,
|
||||
"root": _cfg("protocol") + "://" + _cfg("domain"),
|
||||
"your_name": _cfg("your-name"),
|
||||
"amount": "{:.2f}".format(amount / 100),
|
||||
"monthly": monthly,
|
||||
"your_email": _cfg("your-email")
|
||||
})))
|
||||
message['X-MC-PreserveRecipients'] = "false"
|
||||
message['Subject'] = "Thank you for your donation!"
|
||||
message['From'] = _cfg("smtp-from")
|
||||
message['To'] = user.email
|
||||
smtp.sendmail(_cfg("smtp-from"), [ user.email ], message.as_string())
|
||||
smtp.quit()
|
|
@ -78,7 +78,7 @@ window.email = "{{user.email}}";
|
|||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon">$</span>
|
||||
<input id="custom-amount-text" type="text" value="1"
|
||||
<input id="custom-amount-text" type="text" value="13.37"
|
||||
class="form-control" placeholder="Amount" />
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -18,12 +18,13 @@
|
|||
{% endif %}
|
||||
<form action="login" method="POST">
|
||||
<div class="form-group">
|
||||
<input class="form-control" type="text" name="email" placeholder="you@email.com" />
|
||||
<input class="form-control" type="text" name="email" placeholder="your@email.com" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<input class="form-control" type="password" name="password" placeholder="Password" />
|
||||
</div>
|
||||
<input type="submit" value="Log in" class="btn btn-primary" />
|
||||
<a style="margin-left: 20px" href="password-reset">Reset password</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue