Esempio n. 1
0
def create_synopsis(request):
    """
    Create a new synopsis
    """
    FactFormset = inlineformset_factory(
        Synopsis, Fact, formset=ValidatingFormSet, exclude=["order"], extra=3, can_delete=False
    )
    PointFormset = inlineformset_factory(
        Synopsis, Point, formset=ValidatingFormSet, exclude=["order"], extra=3, can_delete=False
    )

    if request.method == "POST":
        form = SynopsisForm(request.POST)

        if form.is_valid():
            synopsis = form.save(commit=False)
            synopsis.user = request.user

            fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts")
            point_formset = PointFormset(request.POST, instance=synopsis, prefix="points")

            if fact_formset.is_valid() and point_formset.is_valid():
                synopsis.save()

                facts = fact_formset.save()
                points = point_formset.save()

                return HttpResponseRedirect(synopsis.get_absolute_url())
        else:
            synopsis = Synopsis()
            fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts")
            point_formset = PointFormset(request.POST, instance=synopsis, prefix="points")
    else:
        form = SynopsisForm()
        synopsis = Synopsis()
        fact_formset = FactFormset(instance=synopsis, prefix="facts")
        point_formset = PointFormset(instance=synopsis, prefix="points")

    return render_to_response(
        "synopses/create_synopsis.html",
        {"form": form, "fact_formset": fact_formset, "point_formset": point_formset},
        context_instance=RequestContext(request),
    )
Esempio n. 2
0
def update_synopsis(request, synopsis_id):
    """
    Update a specific synopsis
    """
    synopsis = get_object_or_404(Synopsis, pk=synopsis_id)

    if not (synopsis.user == request.user):
        raise Http404

    FactFormset = inlineformset_factory(Synopsis, Fact, formset=ValidatingFormSet, exclude=["order"], extra=3)
    PointFormset = inlineformset_factory(Synopsis, Point, formset=ValidatingFormSet, exclude=["order"], extra=3)

    if request.method == "POST":
        form = SynopsisForm(request.POST, instance=synopsis)

        if form.is_valid():
            synopsis = form.save(commit=False)
            synopsis.user = request.user

            fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts")
            point_formset = PointFormset(request.POST, instance=synopsis, prefix="points")

            if fact_formset.is_valid() and point_formset.is_valid():
                synopsis.save()

                facts = fact_formset.save()
                points = point_formset.save()

                return HttpResponseRedirect(synopsis.get_absolute_url())
        else:
            fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts")
            point_formset = PointFormset(request.POST, instance=synopsis, prefix="points")
    else:
        form = SynopsisForm(instance=synopsis)
        fact_formset = FactFormset(instance=synopsis, prefix="facts")
        point_formset = PointFormset(instance=synopsis, prefix="points")

    return render_to_response(
        "synopses/update_synopsis.html",
        {"form": form, "synopsis": synopsis, "fact_formset": fact_formset, "point_formset": point_formset},
        context_instance=RequestContext(request),
    )