from django.shortcuts import render, redirect

from django.contrib.auth import authenticate
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required

from .forms import UserRegisterForm
from .models import Profile

from django.contrib import messages

# Create your views here.
def login(request):
    return render(request, 'users/login.html')

def signup(request):
    if request.POST:
        print(request.POST)
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            key = form.cleaned_data.get('key')
            if Profile.objects.filter(key=key).count() == 1:
                profile = Profile.objects.get(key=key)
                if profile.isEnabled == False:
                    instance = form.save(commit=False)
                    instance.save()
                    instance.first_name = profile.first_name
                    instance.last_name = profile.last_name
                    instance.save()
                    profile.user = instance
                    profile.isEnabled = True
                    profile.save()
                    messages.success(request, f'Your account has been created! You are now able to log in')
                    return redirect('login')
                else:
                    messages.error(request, 'This account is alr activation', extra_tags='danger')
            else:
                messages.error(request, 'Looks like your key was invalid!', extra_tags='danger')
        else:
            messages.error(request, 'Looks like there were some problems with your form!', extra_tags='danger')
    
    form = UserRegisterForm()

    return render(request, 'users/signup.html', {'form': form})


@login_required
def logout(request):
    auth_logout(request)
    return redirect('/')