mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
94 lines
2.4 KiB
Python
94 lines
2.4 KiB
Python
from project.models import Image, Analytics
|
|
from project import db, mail
|
|
from flask_babelex import gettext
|
|
from flask import request, url_for, render_template, flash, redirect, Markup
|
|
from flask_mail import Message
|
|
|
|
|
|
def track_analytics(key, value1, value2):
|
|
result = Analytics(key=key, value1=value1)
|
|
|
|
if value2 is not None:
|
|
result.value2 = value2
|
|
|
|
db.session.add(result)
|
|
db.session.commit()
|
|
|
|
return result
|
|
|
|
|
|
def handleSqlError(e):
|
|
message = str(e.__dict__["orig"])
|
|
print(message)
|
|
return message
|
|
|
|
|
|
def upsert_image_with_data(image, data, encoding_format="image/jpeg"):
|
|
if image is None:
|
|
image = Image()
|
|
|
|
image.data = data
|
|
image.encoding_format = encoding_format
|
|
|
|
return image
|
|
|
|
|
|
def get_pagination_urls(pagination, **kwargs):
|
|
result = {}
|
|
|
|
if pagination:
|
|
if pagination.has_prev:
|
|
args = request.args.copy()
|
|
args.update(kwargs)
|
|
args["page"] = pagination.prev_num
|
|
result["prev_url"] = url_for(request.endpoint, **args)
|
|
|
|
if pagination.has_next:
|
|
args = request.args.copy()
|
|
args.update(kwargs)
|
|
args["page"] = pagination.next_num
|
|
result["next_url"] = url_for(request.endpoint, **args)
|
|
|
|
return result
|
|
|
|
|
|
def flash_errors(form):
|
|
for field, errors in form.errors.items():
|
|
for error in errors:
|
|
flash(
|
|
gettext("Error in the %s field - %s")
|
|
% (getattr(form, field).label.text, error),
|
|
"danger",
|
|
)
|
|
|
|
|
|
def flash_message(msg, url, link_text=None, category="success"):
|
|
if not link_text:
|
|
link_text = gettext("Show")
|
|
link = ' – <a href="%s">%s</a>' % (url, link_text)
|
|
message = Markup(msg + link)
|
|
flash(message, category)
|
|
|
|
|
|
def permission_missing(redirect_location):
|
|
flash("You do not have permission for this action", "danger")
|
|
return redirect(redirect_location)
|
|
|
|
|
|
def send_mail(recipient, subject, template, **context):
|
|
send_mails([recipient], subject, template, **context)
|
|
|
|
|
|
def send_mails(recipients, subject, template, **context):
|
|
msg = Message(subject)
|
|
msg.recipients = recipients
|
|
msg.body = render_template("email/%s.txt" % template, **context)
|
|
msg.html = render_template("email/%s.html" % template, **context)
|
|
|
|
if not mail.default_sender:
|
|
print(msg.subject)
|
|
print(msg.body)
|
|
return
|
|
|
|
mail.send(msg)
|