Example #1
0
def save_shipping_method_data(request, shipping_method_id):
    """Saves shipping data (via request body) to the shipping method with passed
    id.

    This is called via an AJAX request and returns JSON encoded data.
    """
    shipping_method = ShippingMethod.objects.get(pk=shipping_method_id)
    shipping_form = ShippingMethodForm(instance=shipping_method, data=request.POST, files=request.FILES)

    if shipping_form.is_valid():
        shipping_form.save()
        # Makes an uploaded image appear immediately
        shipping_form = ShippingMethodForm(instance=shipping_method)
        if request.POST.get("delete_image"):
            shipping_method.image.delete()
        message = _(u"Shipping method has been saved.")
    else:
        message = _(u"Please correct the indicated errors.")

    html = [
        ["#data", shipping_method_data(request, shipping_method.id, shipping_form)],
        ["#shipping-methods", shipping_methods(request)],
    ]

    result = simplejson.dumps({
        "html": html,
        "message": message,
    }, cls=LazyEncoder)

    return HttpResponse(result)
Example #2
0
def shipping_method_data(request, shipping_id, form=None, template_name="manage/shipping_methods/shipping_method_data.html"):
    """Returns the shipping data as html.

    This view is used as a part within the manage shipping view.
    """
    shipping_method = ShippingMethod.objects.get(pk=shipping_id)
    if form is None:
        form = ShippingMethodForm(instance=shipping_method)

    return render_to_string(template_name, RequestContext(request, {
        "form": form,
        "shipping_method": shipping_method,
    }))