"""Context every page needs: who is signed in, nav links, flash messages, follow-up badge."""
from django.contrib.messages import get_messages
from django.utils import timezone

from .access import crm_level, visible_schools


def base_context(request, nav=""):
    u = request.user
    level = crm_level(u)
    ctx = {"username": u.get_username(), "is_admin": u.is_superuser, "crm_enabled": level != "none",
           "crm_can_edit": level == "edit", "nav": nav, "due_count": 0,
           "messages": list(get_messages(request))}
    if level != "none":
        from crm.constants import TERMINAL
        from crm.models import Lead
        ctx["due_count"] = (Lead.objects.filter(owner=u, next_followup__lte=timezone.localdate(),
                                                school__in=visible_schools(u))
                            .exclude(stage__in=TERMINAL).count())
    return ctx
