from django.urls import reverse
from builder.base import BuildNew
from .models import Sighting


class BuildSightings(BuildNew):

    def build(self):
        self.build_detail_view()
        self.build_list_view(
            base_path=reverse("sightings:list"),
            paginate_by=24
        )

    def get_model_queryset(self):
        qs_ids = Sighting.objects.order_by('ap__id', '-pub_date').distinct('ap').values_list('id', flat=True)
        qs = Sighting.objects.filter(id__in=qs_ids).order_by('-pub_date')
        return qs


def builder():
    j = BuildSightings("sightings", "sighting")
    j.build()