from __future__ import unicode_literals

from django.utils.translation import ugettext


class DocumentCheckoutError(Exception):
    """
    Base checkout exception
    """
    pass


class DocumentCheckoutWarning(Warning):
    """
    Base checkout warning
    """
    pass


class DocumentNotCheckedOut(DocumentCheckoutError):
    """
    Raised when trying to checkin a document that is not checkedout
    """
    pass


class DocumentAlreadyCheckedOut(DocumentCheckoutError):
    """
    Raised when trying to checkout an already checkedout document
    """
    def __unicode__(self):
        return ugettext('Document already checked out.')


class NewDocumentVersionNotAllowed(DocumentCheckoutWarning):
    """
    Uploading new versions for this document is not allowed
    Current reasons:  Document is in checked out state
    """
    pass
