sorting topics
This commit is contained in:
parent
4216e11e5b
commit
01ed26a939
4 changed files with 40 additions and 4 deletions
|
|
@ -5,5 +5,5 @@ urlpatterns = [
|
||||||
path('', viewblog, name="index"),
|
path('', viewblog, name="index"),
|
||||||
path('manage/addpost', addpost, name='addpost'),
|
path('manage/addpost', addpost, name='addpost'),
|
||||||
path('manage/order', order, name='order'),
|
path('manage/order', order, name='order'),
|
||||||
path('mock/<str:object>/<int:n>/', createmocks, name='mock'),
|
path('mock/<str:objtype>/<int:n>/', createmocks, name='mock'),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ from django.http import HttpResponse
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from blog.factories import TopicFactory
|
from blog.factories import TopicFactory
|
||||||
from blog.models import Topic, Tag, Blogpost
|
from blog.models import Topic, Tag, Blogpost
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
from markdownblog import settings
|
from markdownblog import settings
|
||||||
|
|
||||||
|
|
@ -14,7 +15,16 @@ def viewblog(request) -> HttpResponse:
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
@csrf_exempt
|
||||||
def order(request):
|
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)}
|
context = {'roottopics': Topic.objects.all().filter(rootTopic=None)}
|
||||||
return render(request, 'blog/order.html', context)
|
return render(request, 'blog/order.html', context)
|
||||||
|
|
||||||
|
|
@ -42,6 +52,7 @@ def addpost(request) -> HttpResponse:
|
||||||
return render(request, 'blog/addpost.html', context)
|
return render(request, 'blog/addpost.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
def createmocks(request, objtype, n) -> HttpResponse:
|
def createmocks(request, objtype, n) -> HttpResponse:
|
||||||
topics = TopicFactory.create_batch(n)
|
topics = TopicFactory.create_batch(n)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
</li>
|
</li>
|
||||||
<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>
|
||||||
<li>
|
<li>
|
||||||
<a class="waves-effect" href="{% url 'admin:index' %}">Mock Posts</a>
|
<a class="waves-effect" href="{% url 'admin:index' %}">Mock Posts</a>
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,22 @@
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<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) {
|
function resetbgColor(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
ev.target.style.backgroundColor = "";
|
ev.target.style.backgroundColor = "";
|
||||||
|
|
@ -37,9 +53,18 @@
|
||||||
|
|
||||||
function drop(ev) {
|
function drop(ev) {
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
var targetOject = ev.dataTransfer.getData("targetObject");
|
const targetObject = ev.dataTransfer.getData("targetObject");
|
||||||
ev.target.appendChild(document.getElementById(targetOject));
|
ev.target.appendChild(document.getElementById(targetObject));
|
||||||
ev.target.style.backgroundColor = "";
|
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>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue