def edit_po(request, pk, item_id=None): if pk is not None: po = get_object_or_404(PurchaseOrder, pk=pk) else: po = PurchaseOrder(created_by=request.user) PurchaseOrderForm = modelform_factory(PurchaseOrder, exclude=[]) form = PurchaseOrderForm(instance=po) ItemFormset = inlineformset_factory( PurchaseOrder, PurchaseOrderItem, extra=0, form=PurchaseOrderItemEditForm, exclude=[] ) formset = ItemFormset(instance=po) if request.method == "POST": form = PurchaseOrderForm(request.POST, instance=po) if form.is_valid(): po = form.save() formset = ItemFormset(request.POST, instance=po) if formset.is_valid(): formset.save() msg = _("Purchase Order %d saved" % po.pk) if "confirm" in request.POST.keys(): po.submit(request.user) msg = _("Purchase Order %d submitted") % po.pk messages.success(request, msg) return redirect(list_pos) request.session['current_po'] = po.pk data = {'order': po, 'form': form} data['formset'] = formset data['title'] = _('Purchase Order #%d' % po.pk) return render(request, "purchases/edit_po.html", data)
def edit_po(request, pk, item_id=None): if pk is not None: po = get_object_or_404(PurchaseOrder, pk=pk) else: po = PurchaseOrder(created_by=request.user) PurchaseOrderForm = modelform_factory(PurchaseOrder, exclude=[]) form = PurchaseOrderForm(instance=po) ItemFormset = inlineformset_factory(PurchaseOrder, PurchaseOrderItem, extra=0, form=PurchaseOrderItemEditForm, exclude=[]) formset = ItemFormset(instance=po) if request.method == "POST": form = PurchaseOrderForm(request.POST, instance=po) if form.is_valid(): po = form.save() formset = ItemFormset(request.POST, instance=po) if formset.is_valid(): formset.save() msg = _("Purchase Order %d saved" % po.pk) if "confirm" in request.POST.keys(): po.submit(request.user) msg = _("Purchase Order %d submitted") % po.pk messages.success(request, msg) return redirect(list_pos) request.session['current_po'] = po.pk data = {'order': po, 'form': form} data['formset'] = formset data['title'] = _('Purchase Order #%d' % po.pk) return render(request, "purchases/edit_po.html", data)