Reformating posts/views.py for better readability

This commit is contained in:
2020-07-01 18:36:29 +00:00
parent 62aeaecaf2
commit aac661fdc3

View File

@@ -1,43 +1,36 @@
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
from collections import deque
from django_filters.rest_framework import DjangoFilterBackend
from django.core.cache import cache
from django.utils.text import slugify
from django.utils import timezone
from .models import Post, PostSerializer
from taggit.models import Tag
from rest_framework import viewsets
from rest_framework import permissions
from django_filters.rest_framework import DjangoFilterBackend
from django.core.cache import cache
from .models import Post, PostSerializer
from django.utils.text import slugify
from django.utils import timezone
from collections import deque
def get_next_dict():
posts = Post.article_objects.order_by('-public_date').values('slug')
print(posts)
d = {}
print(d)
for k,v in enumerate(posts):
if k == len(posts) - 1:
break
d[v['slug']] = posts[k+1]['slug']
print(d)
return d
##################
# RENDERED VIEWS #
##################
# Create your views here.
def index(request):
posts = deque(Post.objects.order_by('-public_date').all())
f = lambda p: p.tags
f = lambda p: p.tags
t = map(f, posts)
return render(request, 'posts/index.html', {"posts": posts, "tags_list": t})
def tags(request,tag=""):
posts = deque(Post.objects.filter(tags__name=tag))
return render(request, 'posts/index.html', {"posts": posts, "tags_list": None})
def show(request,id=None):
if id.isdigit() or id is int:
p = Post.objects.get(id=int(id))
@@ -51,9 +44,15 @@ def show(request,id=None):
}
return render(request, 'posts/show.html', context)
# Ajax function that is called to calculate a slug from the title
def slug_calc(request):
###########
# HELPERS #
###########
def slug_calc(request):
"""
Ajax function that is called to calculate a slug from the title
"""
if request.method == "GET":
get = request.GET.copy()
title = get['title']
@@ -67,9 +66,11 @@ def slug_calc(request):
return HttpResponseServerError("Requires a title field.")
# Ajax function that returns autocomplete suggestions for a given tag input
def tag_complete(request):
def tag_complete(request):
"""
Ajax function that returns autocomplete suggestions for a given tag input
"""
if request.method == "GET":
get = request.GET.copy()
term = get['term']
@@ -81,9 +82,24 @@ def tag_complete(request):
tag_array.append(elem.name)
return JsonResponse(tag_array, safe=False)
return HttpResponseServerError("Requires a term field.")
def get_next_dict():
#TODO: Docstring
posts = Post.article_objects.order_by('-public_date').values('slug')
print(posts)
d = {}
print(d)
for k,v in enumerate(posts):
if k == len(posts) - 1:
break
d[v['slug']] = posts[k+1]['slug']
print(d)
return d
class PostViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
@@ -94,6 +110,6 @@ class PostViewSet(viewsets.ModelViewSet):
filter_backends = [DjangoFilterBackend]
filterset_fields = ['legacy_id', 'slug','legacy_rubrik_id']
lookup_field = 'slug'
def pre_save(self, obj):
obj.image = self.request.FILES.get('image')