Beispiel #1
0
def _manage_capture_new(request, id=None):
    capture = None if not id else Capture.objects.get(id=id)
    form = PaperCaptureForm(request.user, Capture.NEW, instance=capture)
    session_key = "paper_capture_fixed_entries"

    if request.method == "POST":
        try:
            form = PaperCaptureForm(request.user, Capture.NEW, instance=capture, data=request.POST)
            if form.is_valid():
                form.save()

                message = "Capture saved successfully"
                messages.success(request, message, extra_tags="success")
                if "save_new" in request.POST:
                    # save fixed_entries between requests
                    fixed_entries = form.get_fixed_entries()
                    if fixed_entries:
                        request.session[session_key] = fixed_entries
                    return redirect(reverse("capture-add"))
                else:
                    request.session[session_key] = None
                    return redirect(reverse("capture-list", args=["new/"]))
        except Exception as ex:
            messages.error(request, str(ex), extra_tags="danger")
    else:
        fixed_entries = request.session.get(session_key, None)
        if fixed_entries:
            form = PaperCaptureForm(request.user, Capture.NEW, instance=capture, initial=fixed_entries)

    return render(request, "enumeration/capture_form.html", {"form": form, "tab": "new"})