from django.db import OperationalError, ProgrammingError from . import policies from .models import PaymentReceipt def payment_navigation(request): if not policies.is_staff(request.user): return {} try: return {'payment_can_create': policies.can_create(request.user), 'payment_pending_count': policies.visible(PaymentReceipt.objects.all(),request.user).filter(status__in=['PENDING','PARTIAL']).count(), 'payment_can_manage_banks': policies.can_manage_banks(request.user), 'payment_can_view': policies.visible(PaymentReceipt.objects.all(),request.user).exists() or policies.config().open_view or request.user.has_perm('payments.view_paymentreceipt') or request.user.is_superuser} except (OperationalError, ProgrammingError): return {}