Esempio n. 1
0
def generic_multiple_id(request, template_name=None, success_msg=lambda x: _('Success'),
                        ask_msg=lambda x, y: _('Do you want to?'), confirmation=_('Yes'), request_url=None, id_key=None):
    """
    Generic ajax view for handling dialogs working on multiple items.
    """
    if request.method == 'POST':
        id_list = request.POST.getlist('ids[]')

        if id_key is None:
                raise Exception('\'id_key\' not set in urls')

        if request_url is None:
            raise Exception("No 'request_url' specified.")

        response = prep_data((request_url, {id_key: [int(a) for a in id_list]}), request.session)
        if response is None:
            return messages_ajax.success(success_msg(request.POST.get('desc'), int(request.POST.get('length'))))
        return _multiple_id_return(response, id_list, request.POST.get('desc'), success_msg)
    else:
        if request.GET.get('length') is None:
            return messages_ajax.error(_("Bad argument list"))
        return messages_ajax.success(render_to_string(template_name,
                                                   {'text': ask_msg(force_escape(request.GET.get('desc')), int(request.GET.get('length'))),
                                                    'confirmation': confirmation},
                                                   context_instance=RequestContext(request)))
Esempio n. 2
0
def get_list_generic_id(request, id1, request_url=None, id_key=None):
    """
    Generic ajax view returning a list.
    """
    if request.method == 'GET':
        if request_url is None:
            raise Exception("No 'request_url' specified.")

        args = {}
        if id1 is not None:
            if id_key is None:
                raise Exception('\'id_key\' not set in urls')
            args[id_key] = int(id1)

        response = prep_data((request_url, args), request.session)
        return messages_ajax.success(response)

    return messages_ajax.error('get_list_generic_id doesn\'t support POST')
Esempio n. 3
0
def get_list_generic_id(request, id1, request_url=None, id_key=None):
    """
    Generic ajax view returning a list.
    """
    if request.method == 'GET':
        if request_url is None:
            raise Exception("No 'request_url' specified.")

        args = {}
        if id1 is not None:
            if id_key is None:
                raise Exception('\'id_key\' not set in urls')
            args[id_key] = int(id1)

        response = prep_data((request_url, args), request.session)
        return messages_ajax.success(response)

    return messages_ajax.error('get_list_generic_id doesn\'t support POST')
Esempio n. 4
0
def generic_multiple_id(request,
                        template_name=None,
                        success_msg=lambda x: _('Success'),
                        ask_msg=lambda x, y: _('Do you want to?'),
                        confirmation=_('Yes'),
                        request_url=None,
                        id_key=None):
    """
    Generic ajax view for handling dialogs working on multiple items.
    """
    if request.method == 'POST':
        id_list = request.POST.getlist('ids[]')

        if id_key is None:
            raise Exception('\'id_key\' not set in urls')

        if request_url is None:
            raise Exception("No 'request_url' specified.")

        response = prep_data((request_url, {
            id_key: [int(a) for a in id_list]
        }), request.session)
        if response is None:
            return messages_ajax.success(
                success_msg(request.POST.get('desc'),
                            int(request.POST.get('length'))))
        return _multiple_id_return(response, id_list, request.POST.get('desc'),
                                   success_msg)
    else:
        if request.GET.get('length') is None:
            return messages_ajax.error(_("Bad argument list"))
        return messages_ajax.success(
            render_to_string(template_name, {
                'text':
                ask_msg(force_escape(request.GET.get('desc')),
                        int(request.GET.get('length'))),
                'confirmation':
                confirmation
            },
                             context_instance=RequestContext(request)))