from django.contrib import messages
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
from django.shortcuts import redirect, render

from .forms import *
from .helper_functions import JobMatcher
from .models import *
from .models import district as District
from django.shortcuts import (get_object_or_404,
                              render,
                              HttpResponseRedirect)



# Create your views here.

def home(request):
    # jobseeker_list = JobSeeker.objects.filter(education__contains='Primary')
    # jobseeker_list = JobSeeker.objects.values_list( 'job_position','education')
    # employer_list = employer.objects.values_list('job_category','education')
    # check_match1 = list(jobseeker_list)

    # matching = []
    # for user in JobSeeker.objects.all():
    #     matching += employer.objects.filter(education=user.education)
    #     print(matching)

    # matching = JobSeeker.objects.filter(education__in=list(employer.objects.values_list('education', flat=True)))
    # print(matching)

    # print(jobseeker_list,)
    # print('Employer**************************')
    # print(employer_list,)

    # for value in 

   
    # list1 = []
    # list2 = []

    # for data1 in jobseeker_list:
    #     check_match1 = list(data1)
    #     list1.append(check_match1)
        # print(list1)

    # match = JobSeeker.objects.all().values_list('education').union(employer.objects.all().values_list('education'))
    # print(match)
    # for data in match:
    #     print(match)
        
    # print(list1[0])
    
    # for data2 in employer_list:
    #     check_match2 = list(data2)
    #     list2.append(check_match2)
        # print(list2)
    # num=0
    # for elements in list1:
    #     for values in list2:
    #         if elements == values:
    #             print('Got a Match')
    #             print(elements,values)
                # print(JobSeeker.objects.values_list('id'))
            # else:
            #     print('No Match')

    # for user in JobSeeker.objects.all():
    #     if check_match2 == check_match1:
    #         print('They Match')
    #     else:
    #         print('Naaaaaaa')


    # if JobSeeker.objects.values_list('education ') == employer.objects.values_list('education'):
    #     print('They Match!!!!!!!!!')
    # else:
    #     print('Naaaaaaaa')

    jobseeker = JobSeeker.objects.values('full_name','age')
    females = JobSeeker.objects.filter(gender__startswith='Female')
    female_count = females.count()

    # for item in jobseeker:
        # print(item)
    
    context = {'jobseeker':jobseeker}
    return render(request, 'JobMatcher/home.html',context)


def Jobseeker(request):
    form = JobSeekerForm(request.POST)
    data = District.objects.all()

    if request.method == 'POST':
        # full_name = request.POST['full_name']
        # # gender = request.POST['gender']
        # age = request.POST['age']
        # children = request.POST['children']
        # first_position = request.POST['first_position']
        # second_position = request.POST['second_position']
        # experience = request.POST['experience']
        # ex_position = request.POST['ex_position']
        # salary = request.POST['salary']
        # Jobform = JobSeeker(full_name=full_name, age=age, children=children, first_position=first_position,second_position=second_position, experience=experience, ex_position=ex_position, salary=salary)
        # Jobform.save()
        form = JobSeekerForm(data=request.POST)
        if form.is_valid():
            form.save()
        
                 
    context = {'form':form, 'districts':data}
    return render(request, 'JobMatcher/JobSeeker.html',context)


def submitted(request):
    
    return render(request, 'JobMatcher/submitted.html')

def employerview(request):
    form1 = SimpleForm(request.POST)
    data = District.objects.all()

    if request.method != 'POST':
        form = employerForm()
    else:
        form = employerForm(request.POST)
        form1 = SimpleForm(data=request.POST)
        if form.is_valid():
            form.save()
        else:
            print(form.errors.as_data())

        if (request.POST):
            data = request.POST.dict()
            name=data.get("name")
            firm=data.get("firm")
            contact=data.get("contact")
            fill=data.get("fill")
            card=data.get("card")
            position=data.get("position")
            job_category=data.get("job_category")
            workers=data.get("workers")
            education=data.get("education")
            skill=data.get("skill")
            work_area=data.get("work_area")
            job_time=data.get("job_time")
            duration=data.get("duration")
            month_day=data.get("month_day")
            salary=data.get("salary")
            benefits=data.get("benefits")
            date=data.get("date")
            apply=data.get("apply")
            detail=data.get("detail")
            print(name,firm,contact,fill,card,position,job_category,workers,education,skill,work_area,job_time,duration,month_day,salary,benefits,date,apply,detail)
            emp=employer.objects.create(name=name,firm=firm,contact=contact,fill=fill,card=card,position=position,job_category=job_category,workers=workers,education=education,skill=skill,work_area=work_area,
            job_time=job_time,duration=duration,month_day=month_day,salary=salary,benefits=benefits,date=date,apply=apply,detail=detail)
            
            return HttpResponse("This is a post request")
            
        else:
            messages.add_message(request, messages.ERROR,"Everything set")
            return redirect(request.META.get("HTTP_REFERER"))
            # form1.save()
            # return redirect('JobMatcher:home')
    context = {'form':form, 'form1':form1, 'districts':data}
    return render(request, 'JobMatcher/employer.html', context)

def jobseekers_details(request,pk):
    jobseeker=JobSeeker.objects.get(id=pk)
    context={"jobseekers":jobseeker}
    return render(request, 'JobMatcher/jobseekersdetails.html',context)

def employer_details(request,pk):
    Employer=employer.objects.get(id=pk)
    context={"Employer":Employer}
    return render(request, 'JobMatcher/hiringmanagerdetails.html',context)



def update_jobseekerview(request, pk):
    # dictionary for initial data with
    # field names as keys
    context ={}
 
    # fetch the object related to passed id
    obj = get_object_or_404(JobSeeker, id = pk)
 
    # pass the object as instance in form
    form = JobSeekerForm(request.POST or None, instance = obj)
 
    # save the data from the form and
    # redirect to detail_view
    if form.is_valid():
        form.save()
        return HttpResponse("Everything Is Working")
 
    # add form dictionary to context
    context["form"] = form
 
    return render(request, "JobMatcher/update_jobseekerview.html", context)


def jobseeker_delete_view(request, id):
    # dictionary for initial data with
    # field names as keys
    context ={}
 
    # fetch the object related to passed id
    obj = get_object_or_404(JobSeeker, id = id)
 
 
    if request.method =="POST":
        # delete object
        obj.delete()
        # after deleting redirect to
        # home page
    return HttpResponseRedirect("/")
    
def hiringmanager_delete_view(request, id):
    # dictionary for initial data with
    # field names as keys
    context ={}
 
    # fetch the object related to passed id
    obj = get_object_or_404(employer, id = id)
 
 
    if request.method =="POST":
        # delete object
        obj.delete()
        # after deleting redirect to
        # home page
    return HttpResponseRedirect("/")

