from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.contrib.sites.shortcuts import get_current_site
from django.urls import reverse_lazy
from django.utils.encoding import force_bytes
from django.utils.http import urlsafe_base64_encode


def posli_reset_hesla(u, request=None):
    uid = urlsafe_base64_encode(force_bytes(u.pk))
    token = PasswordResetTokenGenerator().make_token(u)
    url = "https://%s%s" % (
        str(get_current_site(request)),
        str(reverse_lazy("reset_password_confirm", args=[uid, token]))
    )

    u.email_user(
        subject="Vítej mezi řešiteli M&M!",
        message="""Milý řešiteli, milá řešitelko,

tvůj e-mail byl právě zaregistrován na mam.matfyz.cz. Heslo si prosím nastav na: %s

Těšíme se na tvé příspěvky do našeho semináře,
Organizátoři M&M

--

Tento e-mail byl vygenerován automaticky, chceš-li nás kontaktovat, napiš nám na adresu mam@matfyz.cz.
""" % url,
        # TODO: templates/autentizace a django/contrib/auth/forms.py říkají, jak na to lépe
        from_email="registrace@mam.mff.cuni.cz",  # FIXME: Chceme to mít radši tady, nebo v nastavení?
    )