import datetime
import threading
from os import path

from django.core.mail import EmailMessage
from xhtml2pdf import pisa
from django.template.loader import get_template
from django.http import HttpResponse
from io import  BytesIO
import qrcode
import os
from TransitoApp import settings
from TransitoApp.settings import BASE_DIR


def get_filename(filename, request):
    return filename.upper()

def fetch_resources(uri, rel):
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
    print(path)
    return path


def Attr(cls):
    model= cls.__name__
    return cls.__doc__.replace(model,"").replace("(","").replace(")","").replace(" ","").split(",")

def render_to_pdf(template_src,context_dict={}):
    template=get_template(template_src)
    html=template.render(context_dict)
    result=BytesIO()
    pisa.pisaDocument(BytesIO(html.encode("utf8")),result,link_callback=fetch_resources)
    return HttpResponse(result.getvalue(),content_type="application/pdf")

def qr_generador(nombres=None, apellidos=None, cedula=None):
    cadenafecha = str(datetime.datetime.now().date().day) + str(datetime.datetime.now().date().month) + str(
        datetime.datetime.now().date().year)
    direccion= path.join(BASE_DIR, 'media/gestor/%s_%s.png' %(cadenafecha,cedula))
    img = qrcode.make("""EMPRESA PÚBLICA MUNICIPAL DE TRÁNSITO DE EL GUABO,
                      GESTOR AUTORIZADO,
                      CEDULA: %s,
                      NOMBRES: %s,
                      APELLIDOS: %s,
                      AÑO: %s"""%(cedula, nombres,apellidos,datetime.datetime.now().date().year))
    f = open(direccion, "wb")
    img.save(f)
    f.close()

def enviar_email(dir):
    email = EmailMessage(
        subject='Transito EP El Guabo',
        body='El presente mensaje es para notificar, atraso en su asistencia..!',
        from_email='transitoep@elguabo.gob.ec',
        to=dir,
    )
    email.send()
    print('mensaje enviado a', dir)

