Titivillus/create_quest/views.py

38 lines
980 B
Python

#!/usr/bin/env python3
"""
/create_quest app views.
"""
from django.contrib import messages
from django.shortcuts import redirect, render
from .forms import QuestForm, PostForm
from quest.models import Quest, Post, Page
def index(request):
"""
The index page for creating new quests.
"""
if request.method == 'POST':
# TODO: clean the post body
quest = Quest(owner=request.user)
quest_form = QuestForm(request.POST, instance=quest)
post = Post(post_type='text')
post_form = PostForm(request.POST, instance=post)
if all((quest_form.is_valid(), post_form.is_valid())):
quest.save()
page = Page(
quest=quest,
page_num=1,
title="Page 1"
)
page.save()
post.quest = quest
post.page = page
post.save()
return redirect('quest:quest', quest_id=quest.id)
else:
quest_form = QuestForm()
post_form = PostForm()
context = {'quest_form': quest_form, 'post_form': post_form}
return render(request, 'create_quest/index.html', context)