'Return a dictionary mapping the names of all actions for this
ModelAdmin to a tuple of (callable, name, description) for each action.'

def get_actions(self, request):

    from django.contrib.admin.views.main import IS_POPUP_VAR
    if ((self.actions is None) or (IS_POPUP_VAR in request.GET)):
        return SortedDict()
    actions = []
    for (name, func) in self.admin_site.actions:
        description = getattr(func, 'short_description', name.replace('_', '    '))
        actions.append((func, name, description))
    for klass in self.__class__.mro()[::(-1)]:
        class_actions = getattr(klass, 'actions', [])
        if (not class_actions):
            continue
        actions.extend([self.get_action(action) for action in class_actions])
    actions = filter(None, actions)
    actions.sort(key=(lambda k: k[2].lower()))
    actions = SortedDict([(name, (func, name, desc)) for (func, name, desc) in actions])
    return actions
