'Get the appropriate handler based on the action.'

def get_actions(self):

    public = {'method': self.handler.process_approve, 'minimal': False, 'label': _lazy(u'Approve'), 'details': _lazy(u'This    will    approve    the    app    and    allow    the    author(s)    to    publish    it.')}
    reject = {'method': self.handler.process_reject, 'label': _lazy(u'Reject'), 'minimal': False, 'details': _lazy(u'This    will    reject    the    app,    remove    it    from    the    review    queue    and    un-publish    it    if    already    published.')}
    info = {'method': self.handler.process_request_information, 'label': _lazy(u'Message    developer'), 'minimal': True, 'details': _lazy(u"This    will    send    the    author(s)    -    and    other    thread    subscribers    -    a    message.    This    will    not    change    the    app's    status.")}
    escalate = {'method': self.handler.process_escalate, 'label': _lazy(u'Escalate'), 'minimal': True, 'details': _lazy(u'Flag    this    app    for    an    admin    to    review.    The    comments    are    sent    to    the    admins,    not    the    author(s).')}
    comment = {'method': self.handler.process_comment, 'label': _lazy(u'Private    comment'), 'minimal': True, 'details': _lazy(u"Make    a    private    reviewer    comment    on    this    app.    The    message    won't    be    visible    to    the    author(s),    and    no    notification    will    be    sent    them.")}
    manual_rereview = {'method': self.handler.process_manual_rereview, 'label': _lazy(u'Request    Re-review'), 'minimal': True, 'details': _lazy(u"Add    this    app    to    the    re-review    queue.    Any    comments    here    won't    be    visible    to    the    author(s),    and    no    notification    will    be    sent    to    them.")}
    clear_escalation = {'method': self.handler.process_clear_escalation, 'label': _lazy(u'Clear    Escalation'), 'minimal': True, 'details': _lazy(u'Clear    this    app    from    the    escalation    queue.    The    author(s)    will    get    no    email    or    see    comments    here.')}
    clear_rereview = {'method': self.handler.process_clear_rereview, 'label': _lazy(u'Clear    Re-review'), 'minimal': True, 'details': _lazy(u'Clear    this    app    from    the    re-review    queue.    The    author(s)    will    get    no    email    or    see    comments    here.')}
    disable = {'method': self.handler.process_disable, 'label': _lazy(u'Ban    app'), 'minimal': True, 'details': _lazy(u"Ban    the    app    from    Marketplace.    Similar    to    Reject    but    the    author(s)    can't    resubmit.    To    only    be    used    in    extreme    cases.")}
    actions = OrderedDict()
    if (not self.version):
        return actions
    file_status = self.version.files.values_list('status', flat=True)
    multiple_versions = File.objects.exclude(version=self.version).filter(version__addon=self.addon, status__in=mkt.REVIEWED_STATUSES).exists()
    show_privileged = ((not self.version.is_privileged) or acl.action_allowed(self.handler.request, 'Apps', 'ReviewPrivileged'))
    if ((self.addon.is_packaged and (mkt.STATUS_PUBLIC not in file_status) and show_privileged) or ((not self.addon.is_packaged) and (self.addon.status != mkt.STATUS_PUBLIC))):
        actions['public'] = public
    if (self.addon.is_packaged and show_privileged):
        if ((not multiple_versions) and (self.addon.status not in [mkt.STATUS_REJECTED, mkt.STATUS_DISABLED])):
            actions['reject'] = reject
        elif (multiple_versions and (mkt.STATUS_DISABLED not in file_status)):
            actions['reject'] = reject
    elif (not self.addon.is_packaged):
        if (self.addon.status not in [mkt.STATUS_REJECTED, mkt.STATUS_DISABLED]):
            actions['reject'] = reject
    if (acl.action_allowed(self.handler.request, 'Apps', 'Edit') and ((self.addon.status != mkt.STATUS_DISABLED) or (mkt.STATUS_DISABLED not in file_status))):
        actions['disable'] = disable
    if self.handler.in_rereview:
        actions['clear_rereview'] = clear_rereview
    else:
        actions['manual_rereview'] = manual_rereview
    if self.handler.in_escalate:
        actions['clear_escalation'] = clear_escalation
    else:
        actions['escalate'] = escalate
    actions['info'] = info
    actions['comment'] = comment
    return actions
