58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
import random
|
|
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.http import HttpResponse
|
|
from django.shortcuts import render, redirect
|
|
from blog.factories import TopicFactory
|
|
from blog.models import Topic, Tag, Blogpost
|
|
|
|
from markdownblog import settings
|
|
|
|
|
|
def viewblog(request) -> HttpResponse:
|
|
return render(request, 'blog/index.html', {"debug": settings.DEBUG})
|
|
|
|
|
|
@login_required
|
|
def order(request):
|
|
context = {'roottopics': Topic.objects.all().filter(rootTopic=None)}
|
|
return render(request, 'blog/order.html', context)
|
|
|
|
|
|
@login_required
|
|
def addpost(request) -> HttpResponse:
|
|
if request.method == 'POST':
|
|
title = request.POST['title']
|
|
markdown = request.POST['markdown']
|
|
|
|
tags = []
|
|
|
|
if 'tags' in request.POST and request.POST['tags'] != '':
|
|
tags_str = request.POST['tags'].split(" ")
|
|
for tag in tags_str:
|
|
tags.append(Tag.objects.filter(name=tag)[0])
|
|
|
|
topicstr = request.POST['topic']
|
|
topics = None if topicstr == "No topic" else Topic.objects.filter(name=topicstr)[0]
|
|
|
|
new_post = Blogpost.objects.create(title=title, topics=topics)
|
|
new_post.tags.set(tags)
|
|
|
|
context = {'alltopics': Topic.objects.all().order_by('name').values()}
|
|
return render(request, 'blog/addpost.html', context)
|
|
|
|
|
|
def createmocks(request, objtype, n) -> HttpResponse:
|
|
topics = TopicFactory.create_batch(n)
|
|
|
|
for topic in topics:
|
|
topic.save()
|
|
|
|
while len(topics) > 1:
|
|
child = random.choice(topics)
|
|
topics.remove(child)
|
|
child.rootTopic = random.choice(topics)
|
|
child.save()
|
|
|
|
print('Created ' + str(n) + ' mock topics.')
|
|
return redirect("index")
|