snipt/blogs/views.py

95 lines
3.0 KiB
Python
Raw Normal View History

2012-06-04 19:59:49 -07:00
from django.shortcuts import get_object_or_404, render_to_response
2012-06-05 17:14:30 -07:00
from annoying.functions import get_object_or_None
2012-08-05 21:11:12 -07:00
from django.template import RequestContext
from django.conf import settings
2012-05-31 19:32:32 -07:00
from snipts.models import Snipt
import datetime
2012-05-31 19:32:32 -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
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')
2012-05-31 19:32:32 -07:00
2012-08-22 09:40:16 -07:00
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'])
normal_snipts = normal_snipts[:3]
2012-06-05 17:14:30 -07:00
sidebar = get_object_or_None(Snipt,
user=request.blog_user,
title='Blog Sidebar')
2012-05-31 19:32:32 -07:00
context = {
2012-06-01 08:38:55 -07:00
'blog_user': request.blog_user,
2012-06-01 18:10:49 -07:00
'has_snipts': True,
2012-08-22 09:40:16 -07:00
'normal_snipts': normal_snipts,
2012-06-01 18:13:17 -07:00
'public': True,
2012-06-05 17:14:30 -07:00
'sidebar': sidebar,
2012-06-01 18:05:25 -07:00
'snipts': snipts,
2012-05-31 19:32:32 -07:00
}
if 'rss' in request.GET:
context['snipts'] = context['snipts'][:20]
return rss(request, context)
2012-08-20 18:48:37 -07:00
if request.blog_user.profile.is_pro and settings.DEBUG:
template = 'blogs/themes/pro-adams/list.html'
else:
template = 'blogs/themes/default/list.html'
2012-07-24 20:31:32 -07:00
return render_to_response(
template,
context,
context_instance=RequestContext(request)
)
2012-05-31 19:32:32 -07:00
2012-06-01 18:05:25 -07:00
def blog_post(request, username_or_custom_slug):
2012-06-04 19:59:49 -07:00
snipt = get_object_or_404(Snipt, user=request.blog_user,
blog_post=True,
public=True,
publish_date__lte=datetime.datetime.now(),
2012-06-04 19:59:49 -07:00
slug=username_or_custom_slug,
)
2012-06-01 18:05:25 -07:00
2012-06-05 21:53:02 -07:00
sidebar = get_object_or_None(Snipt,
user=request.blog_user,
title='Blog Sidebar')
2012-06-01 18:05:25 -07:00
context = {
'blog_user': request.blog_user,
2012-06-01 18:10:49 -07:00
'detail': True,
2012-06-01 18:13:17 -07:00
'has_snipts': True,
'public': True,
2012-06-05 21:53:02 -07:00
'sidebar': sidebar,
2012-06-04 17:57:20 -07:00
'snipt': snipt,
2012-06-01 18:05:25 -07:00
}
2012-08-20 18:48:37 -07:00
if request.blog_user.profile.is_pro and settings.DEBUG:
template = 'blogs/themes/pro-adams/post.html'
else:
template = 'blogs/themes/default/post.html'
2012-07-24 20:31:32 -07:00
return render_to_response(
template,
context,
context_instance=RequestContext(request)
)
2012-06-01 18:05:25 -07:00
2012-05-31 19:32:32 -07:00
def rss(request, context):
return render_to_response(
2012-06-18 09:39:36 -07:00
'blogs/themes/default/rss.xml',
2012-05-31 19:32:32 -07:00
context,
context_instance=RequestContext(request),
mimetype="application/rss+xml"
)