from django.shortcuts import render, redirect, get_object_or_404
from django.core.paginator import Paginator
from django.http import HttpResponse
from .models import *
from project.models import Project
from .filters import BuilderFilter

# Create your views here.
def builders(request):
    builder = Builder.objects.all()
    template_name = 'front/builder/builders.html'
    title = "List of all builders project"
    description = "Here is the list of latest projects by our trysted builders"
    keyword = 'Latest project by trusted builders'
    context = {'builder':builder,'title':title, 'description':description, 'keyword':keyword}
    return render(request, template_name, context)


def builders_project(request,slug):
    builder = get_object_or_404(Builder, slug=slug)
    projectlist = BuilderFilter(request.GET, queryset=Project.objects.select_related('builder').filter(builder=builder))
    has_filter = any(field in request.GET for field in set(projectlist.get_fields()))
    paginator = Paginator(projectlist.qs, 6)
    page_number = request.GET.get('page')
    builder_proj = paginator.get_page(page_number)
    template_name = 'front/builder/builder-details.html'
    title = builder.title
    description = builder.description
    keyword = builder.keyword
    context = {'builder':builder, 'projectlist':projectlist, 'builder_proj':builder_proj, 'has_filter':has_filter, 'title':title, 'description':description, 'keyword':keyword}
    return render(request, template_name, context)    