from django.shortcuts import render, get_object_or_404, redirect

from .models import Bonzai
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from .forms import BonzaiForm

# Vue de la Liste des bonzais

def index(request):
    context = {'bonzai_list' : Bonzai.objects.all(),}
    return render(request, 'bonzai/bonzai.html', context)


# Vue d'un Bonzai en détail

def BonzaiDetail(request, bonzai_id):
    bonzai = get_object_or_404(Bonzai, pk=bonzai_id)
    return render(request, 'bonzai/detail_bonzai.html', {'object':bonzai})


def BonzaiCreate(request):
    template = 'bonzai/bonzai_form.html'
    form = BonzaiForm(request.POST or None)

    if form.is_valid():
        form.save()
        return redirect('accueil')
    context = {"form": form}
    return render(request, template, context)


def BonzaiUpdate(request, id):
    template = 'bonzai/bonzai_form.html'
    bonzai = get_object_or_404(Bonzai, pk=id)
    form = BonzaiForm(request.POST or None, instance=bonzai)

    if form.is_valid():
        form.save()
        return redirect('detail_bonzai', id)
    context = {"form": form}
    return render(request, template, context)


def BonzaiDelete(request, id):
    template = 'bonzai/bonzai_delete.html'
    bonzai = get_object_or_404(Bonzai, pk=id)
    form = BonzaiForm(request.POST or None, instance=bonzai)

    if form.is_valid():
        form.delete()
        return redirect('accueil')
    context = {"form": form}
    return render(request, template, context)
"""

class BonzaiListView(ListView):
    template_name = 'bonzai/bonzai.html'
    def get_queryset(self):
        return Bonzai.objects.all()


class BonzaiDetailView(DetailView):
    model = Bonzai
    template_name = 'bonzai/detail_bonzai.html'


class BonzaiCreateView(CreateView):
    model = Bonzai
    fields = ['nom','age','hauteur','pays']
    template_name = 'bonzai/bonzai_form.html'


class BonzaiUpdateView(UpdateView):
    model = Bonzai
    fields = ['nom', 'age', 'hauteur', 'pays']
    template_name = 'bonzai/bonzai_form.html'


class BonzaiDeleteView(DeleteView):
    model= Bonzai
    template_name = 'bonzai/bonzai_delete.html'
    """