sorting topics

This commit is contained in:
CDaut 2022-06-17 22:48:54 +02:00 committed by CDaut
parent 4216e11e5b
commit 01ed26a939
4 changed files with 40 additions and 4 deletions

View file

@ -5,5 +5,5 @@ urlpatterns = [
path('', viewblog, name="index"),
path('manage/addpost', addpost, name='addpost'),
path('manage/order', order, name='order'),
path('mock/<str:object>/<int:n>/', createmocks, name='mock'),
path('mock/<str:objtype>/<int:n>/', createmocks, name='mock'),
]

View file

@ -5,6 +5,7 @@ from django.http import HttpResponse
from django.shortcuts import render, redirect
from blog.factories import TopicFactory
from blog.models import Topic, Tag, Blogpost
from django.views.decorators.csrf import csrf_exempt
from markdownblog import settings
@ -14,7 +15,16 @@ def viewblog(request) -> HttpResponse:
@login_required
@csrf_exempt
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'])
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()
context = {'roottopics': Topic.objects.all().filter(rootTopic=None)}
return render(request, 'blog/order.html', context)
@ -42,6 +52,7 @@ def addpost(request) -> HttpResponse:
return render(request, 'blog/addpost.html', context)
@login_required
def createmocks(request, objtype, n) -> HttpResponse:
topics = TopicFactory.create_batch(n)

View file

@ -37,7 +37,7 @@
<div class="divider"></div>
</li>
<li>
<a class="waves-effect" href="{% url 'mock' object='topic' n=10 %}">Mock 10 topics</a>
<a class="waves-effect" href="{% url 'mock' objtype='topic' n=10 %}">Mock 10 topics</a>
</li>
<li>
<a class="waves-effect" href="{% url 'admin:index' %}">Mock Posts</a>

View file

@ -17,6 +17,22 @@
</div>
<script type="text/javascript">
function getCookie(cname) {
let name = cname + "=";
let decodedCookie = decodeURIComponent(document.cookie);
let ca = decodedCookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function resetbgColor(ev) {
ev.preventDefault();
ev.target.style.backgroundColor = "";
@ -37,9 +53,18 @@
function drop(ev) {
ev.preventDefault();
var targetOject = ev.dataTransfer.getData("targetObject");
ev.target.appendChild(document.getElementById(targetOject));
const targetObject = ev.dataTransfer.getData("targetObject");
ev.target.appendChild(document.getElementById(targetObject));
ev.target.style.backgroundColor = "";
let fakeForm = new FormData()
fakeForm.append("childID", targetObject.replace("list_elem_", ""));
fakeForm.append("rootID", ev.target.id.replace("list_elem_", ""));
fetch("{% url 'order' %}", {
method: 'POST',
body: fakeForm
});
}
</script>
{% endblock %}