can now also order topics
This commit is contained in:
parent
ead8a3a2ef
commit
eca6e5d716
8 changed files with 103 additions and 13 deletions
|
|
@ -2,6 +2,7 @@ import os
|
|||
import random
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db import IntegrityError
|
||||
from django.http import HttpResponse
|
||||
from django.shortcuts import render, redirect
|
||||
from blog.factories import TopicFactory
|
||||
|
|
@ -21,17 +22,24 @@ def order(request):
|
|||
if request.method == "POST":
|
||||
root_id = int(request.POST['rootID']) if request.POST['rootID'] != 'root_list' else None
|
||||
child_id = int(request.POST['childID'])
|
||||
objtype = request.POST['relinkType']
|
||||
|
||||
child_topic = Topic.objects.get(pk=child_id)
|
||||
child_topic.rootTopic = Topic.objects.get(pk=root_id) if root_id is not None else None
|
||||
child_topic.save()
|
||||
if objtype == 'topic':
|
||||
child_topic = Topic.objects.get(pk=child_id)
|
||||
child_topic.rootTopic = Topic.objects.get(pk=root_id) if root_id is not None else None
|
||||
child_topic.save()
|
||||
elif objtype == 'post':
|
||||
post = Blogpost.objects.get(pk=child_id)
|
||||
post.topic = Topic.objects.get(pk=root_id) if root_id is not None else None
|
||||
post.save()
|
||||
|
||||
context = {'roottopics': Topic.objects.all().filter(rootTopic=None)}
|
||||
context = {'roottopics': Topic.objects.all().filter(rootTopic=None), 'allposts': Blogpost.objects.all()}
|
||||
return render(request, 'blog/order.html', context)
|
||||
|
||||
|
||||
@login_required
|
||||
def addpost(request) -> HttpResponse:
|
||||
context = {'alltopics': Topic.objects.all().order_by('name').values(), 'markdown': ''}
|
||||
if request.method == 'POST':
|
||||
title = request.POST['title']
|
||||
markdown = request.POST['markdown']
|
||||
|
|
@ -46,15 +54,21 @@ def addpost(request) -> HttpResponse:
|
|||
topicid = request.POST['topic']
|
||||
topic = None if topicid == "No topic" else Topic.objects.get(pk=topicid)
|
||||
|
||||
new_post = Blogpost.objects.create(title=title, topic=topic)
|
||||
new_post.tags.set(tags)
|
||||
try:
|
||||
new_post = Blogpost.objects.create(title=title, topic=topic)
|
||||
new_post.tags.set(tags)
|
||||
except IntegrityError:
|
||||
context = {'alltopics': Topic.objects.all().order_by('name').values(),
|
||||
'error': 'Blogpost titles need to be unique. No post created.',
|
||||
"markdown": markdown}
|
||||
return render(request, 'blog/addpost.html', context)
|
||||
|
||||
filepath = os.path.join(os.environ.get("MD_FILE_PATH"), title + ".md")
|
||||
with open(filepath, "w+") as mdfile:
|
||||
mdfile.write(markdown)
|
||||
mdfile.close()
|
||||
context['error'] = "Post " + title + " created."
|
||||
|
||||
context = {'alltopics': Topic.objects.all().order_by('name').values()}
|
||||
return render(request, 'blog/addpost.html', context)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue