Source code for signoffs.shortcuts

"""
    Convenience methods for common tasks
"""
from django.http import Http404
from django.shortcuts import get_object_or_404

from signoffs import registry


[docs]def get_signet_or_404(signoff_type, signet_pk, **kwargs): """Return Signet with given pk, for the given Signoff Type or id, or raise Http404""" signoff = registry.get_signoff_type(signoff_type) if signoff is None: raise Http404(f"No registered signoff with id: {signoff_type}") return get_object_or_404( signoff.get_signetModel(), pk=signet_pk, signoff_id=signoff.id, **kwargs )
[docs]def get_signoff_or_404(signoff_type, signet_pk, **kwargs): """Return Signoff of given type or id, backed by Signet with the given pk, or raise Http404""" signet = get_signet_or_404(signoff_type, signet_pk, **kwargs) return signet.signoff
[docs]def get_approval_stamp_or_404(approval_type, stamp_pk, **kwargs): """Return ApprovalStamp instance with given pk for the given Approval Type or id, or raise Http404""" approval = registry.get_approval_type(approval_type) if approval is None: raise Http404(f"No registered approval with id: {approval_type}") return get_object_or_404( approval.get_stampModel(), pk=stamp_pk, approval_id=approval.id, **kwargs )
[docs]def get_approval_or_404(approval_type, stamp_pk): """Return Approval of given type or id, backed by StampModel with given pk, or raise Http404""" stamp = get_approval_stamp_or_404(approval_type, stamp_pk) return stamp.approval