Newer
Older
from django.contrib.auth import get_user_model
from rules import predicate
from .models.invoice import Invoice
@predicate
def is_own_invoice(user: User, obj: Invoice):
"""Predicate which checks if the invoice is linked to the current user."""
return obj.get_person() == user.person
@predicate
def has_no_payment_variant(user: User, obj: Invoice):
"""Predicate which checks that the invoice has no payment variant."""
return not obj.variant
def is_in_payment_status(status: str):
"""Predicate which checks whether the invoice is in a specific state."""
def _predicate(user: User, obj: Invoice):
return obj.status == status
return _predicate