from apps.accounts import permissions as perms


def backoffice(request):
    """Droits et compteurs de la navigation du back-office."""
    user = getattr(request, "user", None)
    if not request.path.startswith("/admin/") or not perms.can_access_backoffice(user):
        return {}
    from apps.contact.models import Message
    from apps.editorial.models import Annonce, Article, Status
    from apps.engagement.models import Comment

    can = {
        "editeur": perms.is_editeur(user),
        "moderate": perms.can_moderate(user),
        "taxonomy": perms.can_manage_taxonomy(user),
        "ads": perms.can_manage_ads(user),
        "inbox": perms.can_manage_inbox(user),
        "users": perms.can_manage_users(user),
        "settings": perms.can_manage_settings(user),
    }
    counts = {}
    if can["editeur"]:
        counts["relecture"] = (
            Article.objects.alive().filter(statut=Status.RELECTURE).count()
            + Annonce.objects.alive().filter(statut=Status.RELECTURE).count()
        )
        counts["comments"] = Comment.objects.pending().count()
        counts["messages"] = Message.objects.filter(lu=False).count()
    return {"can": can, "bo_counts": counts}
