91 lines
2.4 KiB
Python
91 lines
2.4 KiB
Python
import os
|
|
import time
|
|
import gc
|
|
import gzip
|
|
import shutil
|
|
import numpy as np
|
|
import re
|
|
|
|
from scipy import optimize
|
|
|
|
import rowingdata
|
|
|
|
from rowingdata import rowingdata as rdata
|
|
|
|
from celery import app
|
|
import datetime
|
|
import pytz
|
|
import iso8601
|
|
|
|
from matplotlib.backends.backend_agg import FigureCanvas
|
|
#from matplotlib.backends.backend_cairo import FigureCanvasCairo as FigureCanvas
|
|
import matplotlib.pyplot as plt
|
|
|
|
from rowsandall_app.settings import SITE_URL
|
|
from rowsandall_app.settings_dev import SITE_URL as SITE_URL_DEV
|
|
from rowsandall_app.settings import PROGRESS_CACHE_SECRET
|
|
from rowsandall_app.settings import SETTINGS_NAME
|
|
|
|
|
|
import pandas as pd
|
|
|
|
from django_rq import job
|
|
from django.utils import timezone
|
|
from django.utils.html import strip_tags
|
|
|
|
from django.core.mail import (
|
|
send_mail,
|
|
EmailMessage,EmailMultiAlternatives,
|
|
)
|
|
|
|
from django.template import Context
|
|
from django.db.utils import OperationalError
|
|
from jinja2 import Template,Environment,FileSystemLoader
|
|
env = Environment(loader = FileSystemLoader(["rowers/templates"]))
|
|
|
|
from django.contrib.staticfiles import finders
|
|
|
|
def textify(html):
|
|
# Remove html tags and continuous whitespaces
|
|
text_only = re.sub('[ \t]+', ' ', strip_tags(html))
|
|
# Strip single spaces in the beginning of each line
|
|
return text_only.replace('\n ', '\n').strip()
|
|
|
|
def send_template_email(from_email,to_email,subject,
|
|
template,context,
|
|
*args,**kwargs):
|
|
|
|
htmly = env.get_template(template)
|
|
|
|
html_content = htmly.render(context)
|
|
text_content = textify(html_content)
|
|
|
|
msg = EmailMultiAlternatives(subject, text_content, from_email, to_email)
|
|
msg.attach_alternative(html_content, "text/html")
|
|
|
|
if 'attach_file' in kwargs:
|
|
fileobj = kwargs['attach_file']
|
|
if os.path.isfile(fileobj):
|
|
msg.attach_file(fileobj)
|
|
else:
|
|
try:
|
|
fileobj2 = fileobj
|
|
with gzip.open(fileobj+'.gz','rb') as f_in, open(fileobj2,'wb') as f_out:
|
|
shutil.copyfileobj(f_in,f_out)
|
|
msg.attach_file(fileobj2)
|
|
os.remove(fileobj2)
|
|
except IOError:
|
|
pass
|
|
|
|
if 'emailbounced' in kwargs:
|
|
emailbounced = kwargs['emailbounced']
|
|
else:
|
|
emailbounced = False
|
|
|
|
if not emailbounced:
|
|
res = msg.send()
|
|
else:
|
|
return 0
|
|
|
|
return res
|