from django.shortcuts import render,redirect
from django.views import View
from django.contrib import messages
from .models import Pages
from django.contrib.auth.mixins import LoginRequiredMixin
# Create your views here.

class PagesView(LoginRequiredMixin, View):
    def get(self, request):
        if request.user.is_authenticated:
            pages = Pages.objects.all()
            return render(request, "pages.html", {'pages' : pages})
        else:
            messages.error(request, "you have to login first.") 
            return redirect('adminLogin')
        

def deletePage(request):
    if request.user.is_authenticated:
        page_id = request.POST.get('page_id')
        page = Pages.objects.get(id = page_id)
        page.delete()
        messages.success(request, "Page deleted successfully.") 
        return redirect('adminPages') 
    else:
        messages.error(request, "You have to login first.") 
        return redirect('adminLogin')
    


class NewPageView(LoginRequiredMixin, View):
    def get(self, request):
        return render(request, "new-page.html")

    def post(self, request):
        page = Pages() 
        page.title = request.POST.get('title')
        page.description = request.POST.get('description')
        page.status = int(request.POST.get('status'))
        page.save()
        messages.success(request, "Page added successfully.") 
        return redirect('adminPages')
        



class EditPageView(View):
    def get(self, request, id):
        page = Pages.objects.get(id = id) 
        return render(request, "edit-page.html", {'page' : page})

    def post(self, request, id):
        page = Pages.objects.get(id = id) 
        page.title = request.POST.get('title')
        page.description = request.POST.get('description')
        page.status = int(request.POST.get('status'))
        page.save()
        messages.success(request, "Page updated successfully.") 
        return redirect('adminPages')