def fulfillOrder()

in order/views.py [0:0]


def fulfillOrder(request, storeId, orderId):
    ''' View to fulfill order, where you can add carrier and tracking number'''
    if canViewThisStore(storeId, request.user.id):
        store = Store.objects.get(id=storeId)

        if request.method == "POST":
            # Create a form instance and populate it with data from the request (binding):
            form = FulfillOrderForm(request.POST)

            # Check if the form is valid:
            if form.is_valid():
                carrier = form.cleaned_data["carrier"]
                tracking_number = form.cleaned_data["tracking_number"]
                # NOTE Currently only fulfilling orders fully
                fulfill_order_async.delay(orderId, carrier, tracking_number)
                messages.warning(request, ASYNCTASK_MSG.format("Fulfillment"))
                return redirect("viewOrder", storeId, orderId)

        form = FulfillOrderForm()
        breadcrumbs = [
            (store.name, "viewStore", store.id),
            ("Orders", "viewOrders", store.id),
            ("Order {}".format(orderId), "viewOrder", (storeId, orderId)),
        ]
        context = {
            "form": form,
            "page_title": "Fulfill Order",
            "breadcrumbs": breadcrumbs,
            "button": "Fulfill",
        }
        return render(request, "core/update.html", context)
    else:
        return render(request, "403.html")