from django.contrib.auth.models import User from django.shortcuts import render, get_object_or_404, redirect from main.forms import StoryForm, EpicForm from main.models import Story, Epic def index(request): epics = Epic.objects.all() return render(request, 'index.html', {'epics': epics}) def story_index(request): stories = Story.objects.all() return render(request, 'story_index.html', {'stories': stories}) def story_details(request, story_id): story = get_object_or_404(Story, id=story_id) return render(request, 'story_details.html', {'story': story}) def story_create(request, epic_id): if request.method == 'POST': form = StoryForm(request.POST) if form.is_valid(): story = form.save(commit=False) story.author = User.objects.get(username=request.user) story.save() return redirect("story_details", story.id) else: story = Story() story.epic = get_object_or_404(Epic, id=epic_id) form = StoryForm(instance=story) return render(request, 'story_form.html', {'form': form}) def story_edit(request, story_id): if request.method == 'POST': story = get_object_or_404(Story, id=story_id) form = StoryForm(request.POST, instance=story) if form.is_valid(): form.save() return redirect("story_details", story.id) else: story = get_object_or_404(Story, id=story_id) form = StoryForm(instance=story) return render(request, 'story_form.html', {'form': form}) def story_delete(request, story_id): if request.method == 'POST': story = Story.objects.get(id=story_id) story.delete() return redirect("index") else: story = Story.objects.get(id=story_id) return render(request, 'deletion.html', {'object': story}) def epic_details(request, epic_id): epic = get_object_or_404(Epic, id=epic_id) return render(request, 'epic_details.html', {'epic': epic}) def epic_create(request): if request.method == 'POST': form = EpicForm(request.POST) if form.is_valid(): epic = form.save(commit=False) epic.author = User.objects.get(username=request.user) epic.save() return redirect("epic_details", epic.id) else: form = EpicForm() return render(request, 'epic_form.html', {'form': form}) def epic_edit(request, epic_id): if request.method == 'POST': epic = get_object_or_404(Epic, id=epic_id) form = EpicForm(request.POST, instance=epic) if form.is_valid(): form.save() return redirect("epic_details", epic.id) else: epic = get_object_or_404(Epic, id=epic_id) form = EpicForm(instance=epic) return render(request, 'epic_form.html', {'form': form}) def epic_delete(request, epic_id): if request.method == 'POST': epic = Epic.objects.get(id=epic_id) epic.delete() return redirect("index") else: epic = Epic.objects.get(id=epic_id) return render(request, 'deletion.html', {'object': epic})