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"})
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"})