"""
expense/sidebar.py
"""

from django.urls import reverse
from django.utils.translation import gettext_lazy as _

MENU = _("Expense")
IMG_SRC = "images/ui/wallet-outline.svg"

SUBMENUS = [
    {
        "menu": _("Dashboard"),
        "redirect": reverse("expense-dashboard"),
        "accessibility": "expense.sidebar.dashboard_accessibility",
    },
    {
        "menu": _("Submit Request"),
        "redirect": reverse("expense-submit"),
        "accessibility": "expense.sidebar.submit_accessibility",
    },
    {
        "menu": _("My Requests"),
        "redirect": reverse("expense-my-requests"),
        "accessibility": "expense.sidebar.submit_accessibility",
    },
    {
        "menu": _("Approval Queue"),
        "redirect": reverse("expense-approval-queue"),
        "accessibility": "expense.sidebar.approver_accessibility",
    },
    {
        "menu": _("Workflow Config"),
        "redirect": reverse("expense-workflow-config"),
        "accessibility": "expense.sidebar.admin_accessibility",
    },
]


def dashboard_accessibility(request, submenu, user_perms, *args, **kwargs):
    return True  # all authenticated users see the dashboard


def submit_accessibility(request, submenu, user_perms, *args, **kwargs):
    return request.user.has_perm("expense.add_expenserequest")


def approver_accessibility(request, submenu, user_perms, *args, **kwargs):
    return request.user.groups.exists()


def admin_accessibility(request, submenu, user_perms, *args, **kwargs):
    return request.user.has_perm("expense.add_expenseapprovalworkflow")
