from django.shortcuts import render, get_object_or_404
from django.utils import timezone
from django.db.models import F
from django.core.paginator import Paginator
from .models import SalesUpdate


def update_list(request):
    qs = SalesUpdate.objects.filter(is_published=True, publish_at__lte=timezone.now())
    paginator = Paginator(qs, 9)
    page = paginator.get_page(request.GET.get('page'))
    return render(request, 'sales_updates/list.html', {'page_obj': page})


def update_detail(request, slug):
    update = get_object_or_404(
        SalesUpdate, slug=slug, is_published=True, publish_at__lte=timezone.now()
    )
    SalesUpdate.objects.filter(pk=update.pk).update(views_count=F('views_count') + 1)
    related = SalesUpdate.objects.filter(
        is_published=True, publish_at__lte=timezone.now()
    ).exclude(pk=update.pk)[:3]
    return render(request, 'sales_updates/detail.html', {'update': update, 'related': related})
