Exemplo n.º 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"})
Exemplo n.º 2
0
def _manage_capture_exist(request, ident):
    ident = "f@k3#!" if not ident else ident.replace("_", "-")
    form, instance, acct, initial = (None, None, None, dict())

    # check if account has been validated before
    if ident.endswith("-01"):
        ident = utils.expand_acct_no(ident)
        instance = Capture.objects.filter(acct_no=ident)
        if instance:
            obj_id = str(instance.first().id)
            message = "The Account with number '%s' has been validated before."
            messages.warning(request, message % ident, extra_tags="warning")
            return redirect(reverse("capture-upd", args=[obj_id]))

    if ident.endswith("-01"):
        match = Account.objects.filter(acct_no=ident)
        if not match:
            message = "Account does not exists for '%s'." % ident
            messages.error(request, message, extra_tags="danger")
            return redirect(reverse("capture-list"))

        acct = match.first()
        for f in acct._meta.fields:
            initial[f.name] = getattr(acct, f.name)

        # normalize entries: acct_no & acct_status
        initial["acct_status"] = Capture.EXISTING
        initial["acct_no"] = utils.expand_acct_no(ident)
        form = PaperCaptureForm(request.user, Capture.EXISTING, initial=initial)
    else:
        instance = Capture.objects.get(id=ident)
        if not instance:
            return redirect(reverse("capture-list"))
        form = PaperCaptureForm(request.user, Capture.EXISTING, instance=instance)

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

                message = "Capture updated successfully"
                messages.success(request, message, extra_tags="success")
                return redirect(reverse("capture-list"))
        except Exception as ex:
            messages.error(request, str(ex), extra_tags="danger")

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