def METHOD_NAME(self):
    """Check if a notification can be be cancelled.
    An AVAILABILITY notification can be cancelled if the related item
    is already ON_LOAN. We need to call the loan to check all notification
    candidates and check if AVAILABILITY is into candidates.
    :return a tuple with two values: a boolean to know if the notification
            can be cancelled; the reason why the notification can be
            cancelled (only present if tuple first value is True).
    """
    # Check if parent class would cancel the notification. If yes other
    # check could be skipped.
    can, reason = super().METHOD_NAME()
    if can:
        return can, reason
    # Check loan notification candidate (by unpacking tuple's notification
    # candidate)
    candidates_types = [
        n[1] for n in
        self.loan.get_notification_candidates(trigger=None)
    ]
    if self.type not in candidates_types:
        msg = "Notification type isn't into notification candidate"
        return True, msg
    # we don't find any reasons to cancel this notification
    return False, None