from django.shortcuts import render
from django.template import loader
from django.urls import reverse
from django.utils import timezone
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib import messages
from django.core.mail import EmailMultiAlternatives
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.contrib.auth.models import User

from core.views import gen_page_base, gen_page_sys, get_get_value
from .forms import *
from .models import *

@login_required(login_url='core_login')
def taches_show_list(request):
	get_search = request.GET.get('get_search', '')

	template = loader.get_template('parc_info_taches_index.html')
	page = gen_page_base()

	if get_search :
		print(get_search)
		page.search = get_search

	page.p_adresse = reverse('parc_info_taches_show_list')
	page.p_titre = "Listing des tâches"
	page.p_contenu = "Listing des tâches à réaliser"
	page.p_right = "Les Outils :"
	
	html = template.render({
			'page': page,
			'user': request.user,
		}, request)
		
	return HttpResponse(html)

def taches_edit_info(request, id_tache):
	template = loader.get_template('parc_info_taches_edit.html')
	if id_tache == None or id_tache == '0':
		item = Taches()
		item.Tache_Date_Programee = timezone.now()
	else :
		item = Taches.objects.get(id = id_tache)

	if request.method == 'POST':
		form = Edit_Tache_form(request.POST, instance=item)
		if form.is_valid():
			form.save()
			item = Taches.objects.get(id = form.instance.id)

			if item.Tache_Statut != "ENCOUR" :
				if id_tache == None or id_tache == '0':
					obj_message = '#%i - Nouvelle tâche crée sur GestClin' % int(item.id)
					html_message = "<p>Bonjour.</p><p>Une nouvelle tâche à été crée sur GestClin, merci d'en prendre connaisence.</p><p></p>"
					txt_message = 'Une nouvelle tache à été crée sur GestClin, merci d\'en predre compte./n Lien de la tâche : http://srv-gparc.intra.stjacques/taches/?get_id=%id' % item.id
				elif item.Tache_Statut == "FINI" :
					obj_message = '#%i - Tâche terminé sur GestClin' % int(item.id)
					html_message = "<p>Bonjour.</p><p>Une tâche à été terminé sur GestClin, merci d'en prendre connaissance.</p><p></p>"
					txt_message = 'Une tâche à été terminé sur GestClin, merci d\'en predre compte./n Lien de la tâche : http://srv-gparc.intra.stjacques/taches/?get_id=%id' % item.id
				else :
					obj_message = '#%i - Tâche mise à jour sur GestClin' % int(item.id)
					html_message = "<p>Bonjour.</p><p>Une tâche à été mise à jour sur GestClin, merci d'en prendre connaisence.</p><p></p>"
					txt_message = 'Une tâche à été mise à jour sur GestClin, merci d\'en predre compte./n Lien de la tâche : http://srv-gparc.intra.stjacques/taches/?get_id=%id' % item.id
				
				html_message = html_message + "<p><b>Titre :</b> " + item.Taches_Nom + "<br>"
				html_message = html_message + "<b>Technitien :</b> " + item.get_Taches_Tech_display() + " | Priorité : " + item.get_Tache_Priorite_display() + "<br>"
				if item.Tache_Statut == "PROGRAMEE":
					html_message = html_message + "<b>Programé le :</b> "+ item.Tache_Date_Programee.strftime('%d/%m/%Y') + " à " + item.Tache_Date_Programee.strftime('%Hh%M')+"<br>"
				elif item.Tache_Statut == "FINI":
					html_message = html_message + "<b>Terminé le :</b> "+ item.Tache_Date_Terminee.strftime('%d/%m/%Y') + " à " + item.Tache_Date_Terminee.strftime('%Hh%M')+"</p>"

				html_message = html_message + "<p><b>Descrpition :</b><br>"
				html_message = html_message + item.Taches_Commentaires + "</p>"
				html_message = html_message + "<p><b>Lien :</b> <a href =\"http://srv-gparc.intra.stjacques/taches/?get_id=" + str(item.id) + "\"> Lien vers la tache</a></p>"

				subject, from_email, to = obj_message, 'gestclin@elsan.care', 'gen.informatique@elsan.care'
				text_content = txt_message
				html_content = html_message
				msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
				msg.attach_alternative(html_content, "text/html")
				msg.send()

			return HttpResponseRedirect(reverse('parc_info_taches_show_list'))
	else:
		form = Edit_Tache_form(instance=item)

	html = template.render({
			'form': form,
			'item': item,
		}, request)
		
	return HttpResponse(html)