snipt/blogs/views.py

125 lines
3.5 KiB
Python
Raw Permalink Normal View History

2015-07-24 18:39:25 -07:00
import datetime
2012-06-05 17:14:30 -07:00
from annoying.functions import get_object_or_None
2016-11-01 09:59:35 -07:00
from django.shortcuts import get_object_or_404, render
2012-05-31 19:32:32 -07:00
from snipts.models import Snipt
2019-01-23 15:52:55 -08:00
THEME_CHOICES = {"D": "blogs/themes/default/", "A": "blogs/themes/pro-adams/"}
2012-05-31 19:32:32 -07:00
2015-07-24 18:28:31 -07:00
2012-06-01 18:05:25 -07:00
def blog_list(request, username_or_custom_slug=None):
2012-06-04 17:57:20 -07:00
if username_or_custom_slug:
2012-06-01 18:05:25 -07:00
return blog_post(request, username_or_custom_slug)
2012-05-31 19:32:32 -07:00
2019-01-23 15:52:55 -08:00
snipts = (
Snipt.objects.filter(
user=request.blog_user,
blog_post=True,
public=True,
publish_date__lte=datetime.datetime.now(),
)
.order_by("-publish_date")
.exclude(title__iexact="Homepage")
.exclude(title__iexact="Work")
)
normal_snipts = Snipt.objects.filter(
blog_post=False, user=request.blog_user, public=True
).order_by("-created")
normal_snipts = normal_snipts.exclude(title__in=[""])
normal_snipts = normal_snipts.exclude(tags__name__in=["tmp"])
2012-08-22 09:40:16 -07:00
normal_snipts = normal_snipts[:3]
2019-01-23 15:52:55 -08:00
sidebar = get_object_or_None(
Snipt, user=request.blog_user, title="Sidebar", blog_post=True
)
header = get_object_or_None(
Snipt, user=request.blog_user, title="Header", blog_post=True
)
custom_css = get_object_or_None(
Snipt, user=request.blog_user, title="CSS", lexer="css", blog_post=True
)
2012-06-05 17:14:30 -07:00
2012-05-31 19:32:32 -07:00
context = {
2019-01-23 15:52:55 -08:00
"blog_user": request.blog_user,
"custom_css": custom_css,
"has_snipts": True,
"header": header,
"normal_snipts": normal_snipts,
"public": True,
"sidebar": sidebar,
"snipts": snipts,
2012-05-31 19:32:32 -07:00
}
2013-08-13 11:20:46 -07:00
template = THEME_CHOICES[request.blog_user.profile.blog_theme]
2019-01-23 15:52:55 -08:00
template = "{}/list.html".format(template)
2012-07-24 20:31:32 -07:00
2019-01-23 15:52:55 -08:00
return render(request, template, context)
2012-05-31 19:32:32 -07:00
2015-07-24 18:28:31 -07:00
2012-06-01 18:05:25 -07:00
def blog_post(request, username_or_custom_slug):
2019-01-23 15:52:55 -08:00
snipt = get_object_or_404(
Snipt,
user=request.blog_user,
blog_post=True,
public=True,
publish_date__lte=datetime.datetime.now(),
slug=username_or_custom_slug,
)
snipts = (
Snipt.objects.filter(
user=request.blog_user,
blog_post=True,
public=True,
publish_date__lte=datetime.datetime.now(),
)
.order_by("-publish_date")
.exclude(title__iexact="Homepage")
.exclude(title__iexact="Work")
)
sidebar = get_object_or_None(
Snipt, user=request.blog_user, title="Sidebar", blog_post=True
)
header = get_object_or_None(
Snipt, user=request.blog_user, title="Header", blog_post=True
)
custom_css = get_object_or_None(
Snipt, user=request.blog_user, title="CSS", lexer="css", blog_post=True
)
normal_snipts = Snipt.objects.filter(
blog_post=False, user=request.blog_user, public=True
).order_by("-created")
normal_snipts = normal_snipts.exclude(title__in=[""])
normal_snipts = normal_snipts.exclude(tags__name__in=["tmp"])
2012-09-02 16:47:02 -07:00
normal_snipts = normal_snipts[:3]
2012-09-17 12:53:07 -07:00
if snipt.user != request.user:
snipt.views = snipt.views + 1
snipt.save()
2012-06-01 18:05:25 -07:00
context = {
2019-01-23 15:52:55 -08:00
"blog_user": request.blog_user,
"custom_css": custom_css,
"detail": True,
"has_snipts": True,
"header": header,
"normal_snipts": normal_snipts,
"public": True,
"sidebar": sidebar,
"snipt": snipt,
"snipts": snipts,
2012-06-01 18:05:25 -07:00
}
2013-08-13 11:20:46 -07:00
template = THEME_CHOICES[request.blog_user.profile.blog_theme]
2019-01-23 15:52:55 -08:00
template = "{}/post.html".format(template)
2012-07-24 20:31:32 -07:00
2016-11-01 09:59:35 -07:00
return render(request, template, context)
2015-07-24 18:28:31 -07:00