def schedule_slot_edit(request, slug, slot_pk): if not request.user.is_staff: raise Http404() slot = get_object_or_404(Slot, day__schedule__section__slug=slug, pk=slot_pk) if request.method == "POST": form = SlotEditForm(request.POST, slot=slot) if form.is_valid(): save = False if "content_override" in form.cleaned_data: slot.content_override = form.cleaned_data["content_override"] save = True if "presentation" in form.cleaned_data: presentation = form.cleaned_data["presentation"] if presentation is None: slot.unassign() else: slot.assign(presentation) if save: slot.save() return redirect("schedule_edit", slug) else: form = SlotEditForm(slot=slot) ctx = { "slug": slug, "form": form, "slot": slot, } return render(request, "schedule/_slot_edit.html", ctx)
def schedule_slot_edit(request, slug, slot_pk): if not request.user.is_staff: raise Http404() slot = get_object_or_404(Slot, day__schedule__section__slug=slug, pk=slot_pk) # slot content try: content = slot.content except ObjectDoesNotExist: content = None if request.method == "POST": form = SlotEditForm(request.POST, content=content) if form.is_valid(): presentation = form.cleaned_data["presentation"] if presentation is None: slot.unassign() else: slot.assign(presentation) return redirect("schedule_edit") else: form = SlotEditForm(content=content) ctx = { "slug": slug, "form": form, "slot": slot, } return render(request, "schedule/_slot_edit.html", ctx)