""" who all's here? """
from django.contrib.auth.decorators import login_required
from django.core.paginator import Paginator
from django.shortcuts import redirect
from django.template.response import TemplateResponse
from django.views import View
from django.utils.decorators import method_decorator

from bookwyrm import suggested_users

# pylint: disable=no-self-use
@method_decorator(login_required, name="dispatch")
class Directory(View):
    """display of known bookwyrm users"""

    def get(self, request):
        """lets see your cute faces"""
        filters = {}
        software = request.GET.get("software")
        if not software or software == "bookwyrm":
            filters["bookwyrm_user"] = True
        scope = request.GET.get("scope", "federated")
        if scope == "local":
            filters["local"] = True

        users = suggested_users.get_annotated_users(request.user, **filters)
        sort = request.GET.get("sort")
        if sort == "suggested":
            users = users.order_by("-mutuals", "-last_active_date")
        else:
            users = users.order_by("-last_active_date")

        paginated = Paginator(users, 12)

        page = paginated.get_page(request.GET.get("page"))
        data = {
            "page_range": paginated.get_elided_page_range(
                page.number, on_each_side=2, on_ends=1
            ),
            "users": page,
            "sort": sort,
            "scope": scope,
        }
        return TemplateResponse(request, "directory/directory.html", data)

    def post(self, request):
        """join the directory"""
        request.user.discoverable = True
        request.user.save()
        return redirect("directory")
