Beispiel #1
0
def save_ajax(request):
    if not request.method == 'POST':
        return _get_http_response({'errors': 'It is not a POST request'})
    adaptor = _get_adaptor(request, 'POST')
    if not adaptor:
        return _get_http_response({'errors': 'Params insufficient'})
    if not adaptor.can_edit():
        return _get_http_response({'errors': 'You can not edit this content'})
    value = adaptor.loads_to_post(request)
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name
    form = form_class(data=new_data, instance=adaptor.obj)
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit, adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return _get_http_response({'errors': False,
                                       'value': adaptor.render_value_edit()})
        messages = []  # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            for error in errors_field:
                messages.append(u"%s: %s" % (field_name_error, error))
        message_i18n = ', '.join(messages)
        return _get_http_response({'errors': message_i18n})
    except ValidationError as error:  # The error is for a field that you are editing
        message_i18n = ', '.join([u"%s" % m for m in error.messages])
        return _get_http_response({'errors': message_i18n})
def save_ajax(request):
    if not request.method == 'POST':
        return _get_http_response({'errors': 'It is not a POST request'})
    adaptor = _get_adaptor(request, 'POST')
    if not adaptor:
        return _get_http_response({'errors': 'Params insufficient'})
    if not adaptor.can_edit():
        return _get_http_response({'errors': 'You can not edit this content'})
    value = adaptor.loads_to_post(request)
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name

    form = form_class(data=new_data, instance=adaptor.obj)
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit,
                                               adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return _get_http_response({
                'errors': False,
                'value': adaptor.render_value_edit()
            })
        messages = []  # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            for error in errors_field:
                messages.append("%s: %s" % (field_name_error, unicode(error)))
        message_i18n = ','.join(messages)
        return _get_http_response({'errors': message_i18n})
    except ValidationError, error:  # The error is for a field that you are editing
        message_i18n = ', '.join([u"%s" % m for m in error.messages])
        return _get_http_response({'errors': message_i18n})
Beispiel #3
0
def save_ajax(request):
    if not request.method == "POST":
        return _get_http_response({"errors": "It is not a POST request"})
    adaptor = _get_adaptor(request, "POST")
    if not adaptor:
        return _get_http_response({"errors": "Params insufficient"})
    if not adaptor.can_edit():
        return _get_http_response({"errors": "You can not edit this content"})
    value = adaptor.loads_to_post(request)
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name
    form = form_class(data=new_data, instance=adaptor.obj)
    messages = []
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit, adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return _get_http_response({"errors": False, "value": adaptor.render_value_edit()})
        # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            try:
                name = form.instance._meta.get_field_by_name(field_name_error)[0].verbose_name.decode("utf-8")
            except FieldDoesNotExist:
                name = field_name_error
            for error in errors_field:
                messages.append([name, unicode(error)])
    except ValidationError as error:  # The error is for a field that you are editing
        for error in error.messages:
            messages.append([None, unicode(error)])
    message_i18n = render_to_string("inplaceeditform/field_errors.html", {"errors": messages})
    return _get_http_response({"errors": message_i18n})
Beispiel #4
0
def save_ajax(request):
    if not request.method == 'POST':
        return HttpResponse(simplejson.dumps({'errors': 'It is not a POST request'}),
                            mimetype='application/json')
    adaptor = _get_adaptor(request, 'POST')
    if not adaptor:
        return HttpResponse(simplejson.dumps({'errors': 'Params insufficient'}),
                            mimetype='application/json')
    value = simplejson.loads(request.POST.get('value'))
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name

    form = form_class(data=new_data, instance=adaptor.obj)
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit, adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return HttpResponse(simplejson.dumps({'errors': False,
                                            'value': adaptor.render_value()}),
                                mimetype='application/json')
        messages = []  # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            for error in errors_field:
                messages.append("%s: %s" % (field_name_error, unicode(error)))
        message_i18n = ','.join(messages)
        return HttpResponse(simplejson.dumps({'errors': message_i18n}), mimetype='application/json')
    except ValidationError, error:  # The error is for a field that you are editing
        message_i18n = ', '.join([u"%s" % m for m in error.messages])
        return HttpResponse(simplejson.dumps({'errors': message_i18n}), mimetype='application/json')
Beispiel #5
0
def save_ajax(request):
    if not request.method == "POST":
        return _get_http_response({"errors": "It is not a POST request"})
    adaptor = _get_adaptor(request, "POST")
    if not adaptor:
        return _get_http_response({"errors": "Params insufficient"})
    if not adaptor.can_edit():
        return _get_http_response({"errors": "You can not edit this content"})
    value = adaptor.loads_to_post(request)
    new_data = get_dict_from_obj(adaptor.obj)
    form_class = adaptor.get_form_class()
    field_name = adaptor.field_name
    form = form_class(data=new_data, instance=adaptor.obj)
    try:
        value_edit = adaptor.get_value_editor(value)
        value_edit_with_filter = apply_filters(value_edit,
                                               adaptor.filters_to_edit)
        new_data[field_name] = value_edit_with_filter
        if form.is_valid():
            adaptor.save(value_edit_with_filter)
            return _get_http_response({
                "errors": False,
                "value": adaptor.render_value_edit()
            })
        messages = []  # The error is for another field that you are editing
        for field_name_error, errors_field in form.errors.items():
            for error in errors_field:
                if field_name_error == "__all__":  # The error is model clean type
                    messages.append(u"Error: %s" % error)
                else:
                    messages.append(u"%s: %s" % (field_name_error, error))
        message_i18n = ", ".join(messages)
        return _get_http_response({"errors": message_i18n})
    except ValidationError as error:  # The error is for a field that you are editing
        message_i18n = ", ".join([u"%s" % m for m in error.messages])
        return _get_http_response({"errors": message_i18n})