Skip to content
This repository has been archived by the owner on Sep 3, 2019. It is now read-only.

Commit

Permalink
Added some category views.
Browse files Browse the repository at this point in the history
  • Loading branch information
myles committed Jan 21, 2013
1 parent 8806d92 commit a9e9577
Show file tree
Hide file tree
Showing 11 changed files with 130 additions and 40 deletions.
Expand Up @@ -8,25 +8,25 @@ <h2>Blog <a href="{% url blog_categories_list %}">Category</a> {{ category }}</h

{% block content %}
<div id="blog_posts">
{% for post in posts.object_list %}{% include "blog/_post.html" %}{% endfor %}
{% for post in posts %}{% include "blog/_post.html" %}{% endfor %}
</div>

{% if posts.has_other_pages %}
{% if page_obj.has_other_pages %}
<ul id="pagination">
{% if posts.has_previous %}
<li class="previous on"><a href="{% url blog_categories_detail_paginated category.slug posts.previous_page_number %}" title="Page {{ posts.previous_page_number }}">Previous</a></li>
{% if page_obj.has_previous %}
<li class="previous on"><a href="{% url blog_categories_detail_paginated category.slug page_obj.previous_page_number %}" title="Page {{ page_obj.previous_page_number }}">Previous</a></li>
{% else %}
<li class="previous off">Previous</li>
{% endif %}
{% for page in posts.page_range %}
{% ifequal page posts.page_number %}
{% for page in page_obj.page_range %}
{% ifequal page page_obj.page_number %}
<li class="active">{{ page }}</li>
{% else %}
<li><a href="{% url blog_categories_detail_paginated category.slug page %}">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if posts.has_next %}
<li class="next on"><a href="{% url blog_categories_detail_paginated category.slug posts.next_page_number %}" title="Page {{ posts.next_page_number }}">Next</a></li>
{% if page_obj.has_next %}
<li class="next on"><a href="{% url blog_categories_detail_paginated category.slug page_obj.next_page_number %}" title="Page {{ page_obj.next_page_number }}">Next</a></li>
{% else %}
<li class="next off">Next</li>
{% endif %}
Expand Down
Expand Up @@ -8,7 +8,7 @@ <h2>Blog Categories</h2>

{% block content %}
<ul id="blog_categories">
{% for category in categories %}
{% for category in category_list %}
<li><a href="{{ category.get_absolute_url }}">{{ category }}</a></li>
{% endfor %}
</ul>
Expand Down
16 changes: 8 additions & 8 deletions blog/templates/blog/index.html
Expand Up @@ -8,25 +8,25 @@ <h2>Blog</h2>

{% block content %}
<div id="blog_posts" class="hfeed">
{% for post in posts.object_list %}{% include "blog/_post.html" %}{% endfor %}
{% for post in post_list %}{% include "blog/_post.html" %}{% endfor %}
</div>

{% if posts.has_other_pages %}
{% if is_paginated %}
<ul id="pagination">
{% if posts.has_previous %}
<li class="previous on"><a href="{% url blog_index_paginated posts.previous_page_number %}" title="Page {{ posts.previous_page_number }}">Previous</a></li>
{% if page_obj.has_previous %}
<li class="previous on"><a href="{% url blog_index_paginated page_obj.previous_page_number %}" title="Page {{ page_obj.previous_page_number }}">Previous</a></li>
{% else %}
<li class="previous off">Previous</li>
{% endif %}
{% for page in posts.page_range %}
{% ifequal page posts.page_number %}
{% for page in page_obj.page_range %}
{% ifequal page page_obj.page_number %}
<li class="active">{{ page }}</li>
{% else %}
<li><a href="{% url blog_index_paginated page %}">{{ page }}</a></li>
{% endifequal %}
{% endfor %}
{% if posts.has_next %}
<li class="next on"><a href="{% url blog_index_paginated posts.next_page_number %}" title="Page {{ posts.next_page_number }}">Next</a></li>
{% if page_obj.has_next %}
<li class="next on"><a href="{% url blog_index_paginated page_obj.next_page_number %}" title="Page {{ page_obj.next_page_number }}">Next</a></li>
{% else %}
<li class="next off">Next</li>
{% endif %}
Expand Down
55 changes: 43 additions & 12 deletions blog/urls.py
Expand Up @@ -4,6 +4,13 @@
from blog import views

urlpatterns = patterns('',
url(r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/(?P<day>\w{1,2})/(?P<slug>[-\w]+)/$',
view = views.BlogPostDeatilView.as_view(),
name = 'blog_post_detail',
),
#
# Archive
#
url(r'^updated/feed/$',
view = feeds.BlogUpdatedPostFeed(),
name = 'blog_updated_post_feed',
Expand All @@ -12,18 +19,54 @@
view = feeds.BlogPostFeed(),
name = 'blog_post_feed',
),

#
# Tag
#
url(r'^tag/(?P<slug>(.*))/feed/$',
view = feeds.BlogTagPostFeed(),
name = 'blog_tag_post_feed',
),

#
# Category
#
url(r'^category/(?P<slug>[-\w]+)/feed/$',
view = feeds.BlogCategoryPostFeed(),
name = 'blog_category_post_feed'
),
url(r'^category/(?P<slug>[-\w]+)/page/(?P<page>\d+)/$',
view = views.BlogCategoryDetailView.as_view(),
name = 'blog_categories_detail_paginated',
),
url(r'^category/(?P<slug>[-\w]+)/$',
view = views.BlogCategoryDetailView.as_view(),
name = 'blog_categories_detail',
),
url(r'^category/$',
view = views.BlogCategoryListView.as_view(),
name = 'blog_categories_list',
),

#
# Author
#
url(r'^author/(?P<username>[-\w]+)/feed/$',
view = feeds.BlogAuthorPostFeed(),
name = 'blog_author_post_feed'
),

#
# Index
#
url(r'^page/(?P<page>\d+)/$',
view = views.BlogPostListView.as_view(),
name = 'blog_index_paginated',
),
url(r'^$',
view = views.BlogPostListView.as_view(),
name = 'blog_index',
),
)

urlpatterns += patterns('blog.views.old_views',
Expand Down Expand Up @@ -91,16 +134,4 @@
view = 'archive',
name = 'blog_archive'
),
url(r'^page/(?P<page>\d+)/$',
view = 'index',
name = 'blog_index_paginated',
),
url(r'^$',
view = views.BlogPostListView.as_view(),
name = 'blog_index',
),
#url(r'^$',
# view = 'index',
# name = 'blog_index',
#),
)
44 changes: 44 additions & 0 deletions blog/views/__init__.py
@@ -0,0 +1,44 @@
import datetime, time

from django.views.generic import ListView, DetailView

from blog.models import Post
from blog.settings import BLOG_PAGINATE_BY
from blog.views.category import BlogCategoryDetailView, BlogCategoryListView

__all__ = [
'BlogPostListView',
'BlogPostDeatilView',
'BlogCategoryListView',
'BlogCategoryDetailView',
]

class BlogPostListView(ListView):

context_object_name = "post_list"
template_name = "blog/index.html"
paginate_by = BLOG_PAGINATE_BY

def get_queryset(self):
return Post.objects.published().select_related()

class BlogPostDeatilView(DetailView):

context_object_name = 'post'
template_name = "blog/detail.html"

def get_object(self):
year = self.kwargs['year']
month = self.kwargs['month']
day = self.kwargs['day']
slug = self.kwargs['slug']

try:
date = datetime.date(*time.strptime(year+month+day, '%Y%b%d')[:3])
except ValueError:
raise Http404

try:
return Post.objects.get_post(slug, date)
except Post.DoesNotExist:
raise Http404
Empty file added blog/views/archvie.py
Empty file.
Empty file added blog/views/author.py
Empty file.
26 changes: 26 additions & 0 deletions blog/views/category.py
@@ -0,0 +1,26 @@
from django.views.generic import ListView

from blog.models import Post, Category
from blog.settings import BLOG_PAGINATE_BY

class BlogCategoryListView(ListView):

context_object_name = "category_list"
template_name = "blog/category/list.html"

def get_queryset(self):
return Category.objects.all().select_related()

class BlogCategoryDetailView(ListView):

context_object_name = 'posts'
template_name = "blog/category/detail.html"
paginate_by = BLOG_PAGINATE_BY

def get_queryset(self):
try:
self.category = Category.objects.get(slug__iexact=self.kwargs['slug'])
except Category.DoesNotExist:
raise Http404

return Post.objects.published(categories=self.category)
11 changes: 0 additions & 11 deletions blog/views.py → blog/views/old_views.py
Expand Up @@ -6,21 +6,10 @@
from django.shortcuts import render_to_response
from django.core.paginator import Paginator, InvalidPage, EmptyPage

from django.views.generic import ListView

from blog.models import Post, Category
from blog.settings import BLOG_PAGINATE_BY
from blog.forms import STOP_WORDS, BlogSearchForm

class BlogPostListView(ListView):

context_object_name = "post_list"
template_name = "blog/index.html"
paginate_by = BLOG_PAGINATE_BY

def get_queryset(self):
return Post.objects.published().select_related()

def index(request, page=1, count=BLOG_PAGINATE_BY, context={}, template_name='blog/index.html'):
"""
Blog index page.
Expand Down
Empty file added blog/views/search.py
Empty file.
Empty file added blog/views/tag.py
Empty file.

0 comments on commit a9e9577

Please sign in to comment.