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.database import db
|
||||||
from fosspay.common import *
|
from fosspay.common import *
|
||||||
from fosspay.config import _cfg, load_config
|
from fosspay.config import _cfg, load_config
|
||||||
|
from fosspay.email import send_thank_you
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import locale
|
import locale
|
||||||
|
@ -125,6 +126,8 @@ def donate():
|
||||||
type = DonationType.one_time
|
type = DonationType.one_time
|
||||||
else:
|
else:
|
||||||
type = DonationType.monthly
|
type = DonationType.monthly
|
||||||
|
|
||||||
|
amount = int(amount)
|
||||||
except:
|
except:
|
||||||
return { "success": False, "reason": "Invalid request" }, 400
|
return { "success": False, "reason": "Invalid request" }, 400
|
||||||
|
|
||||||
|
@ -161,6 +164,8 @@ def donate():
|
||||||
|
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
|
send_thank_you(user, amount, type == DonationType.monthly)
|
||||||
|
|
||||||
if new_account:
|
if new_account:
|
||||||
return { "success": True, "new_account": new_account, "password_reset": user.password_reset }
|
return { "success": True, "new_account": new_account, "password_reset": user.password_reset }
|
||||||
else:
|
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="form-group">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-addon">$</span>
|
<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" />
|
class="form-control" placeholder="Amount" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -18,12 +18,13 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<form action="login" method="POST">
|
<form action="login" method="POST">
|
||||||
<div class="form-group">
|
<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>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input class="form-control" type="password" name="password" placeholder="Password" />
|
<input class="form-control" type="password" name="password" placeholder="Password" />
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" value="Log in" class="btn btn-primary" />
|
<input type="submit" value="Log in" class="btn btn-primary" />
|
||||||
|
<a style="margin-left: 20px" href="password-reset">Reset password</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue