from django.shortcuts import render, redirect
from django.contrib.auth import login, authenticate
from django.views.generic import CreateView, TemplateView
from .models import Perfil
from .forms import SignUpForm
from django.contrib.auth.views import LoginView, LogoutView 

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader


def acceso(request):
    template = loader.get_template("myapp/acceso.html")
    return HttpResponse(template.render())


def index(request):
    template = loader.get_template("myapp/index.html")
    return HttpResponse(template.render())


class SignUpView(CreateView):
    model = Perfil
    form_class = SignUpForm

    def form_valid(self, form):
        '''
        En este parte, si el formulario es valido guardamos lo que se obtiene de él y usamos authenticate para que
        el usuario incie sesión luego de haberse registrado y lo redirigimos al index
        '''
        form.save()
        usuario = form.cleaned_data.get('username')
        password = form.cleaned_data.get('password1')
        usuario = authenticate(username=usuario, password=password)
        login(self.request, usuario)
        return redirect('/')


class BienvenidaView(TemplateView):
    template_name = 'myapp/bienvenido.html'

class SignInView(LoginView):
    template_name = 'myapp/iniciar_sesion.html'

class SignOutView(LogoutView):
    pass