master
Nick Sergeant 2012-01-16 18:47:09 -05:00
parent f7e281fddb
commit 3731fbb217
6 changed files with 74 additions and 41 deletions

View File

@ -27,7 +27,7 @@ class PublicTagResource(ModelResource):
class Meta:
queryset = Tag.objects.filter(snipt__public=True)
queryset = queryset.annotate(count=Count('taggit_taggeditem_items__id'))
queryset = queryset.order_by('-count')
queryset = queryset.order_by('-count', 'name')
resource_name = 'tag'
fields = ['name',]
allowed_methods = ['get']
@ -112,7 +112,7 @@ class PrivateTagResource(ModelResource):
def apply_authorization_limits(self, request, object_list):
object_list = object_list.filter(snipt__user=request.user)
object_list = object_list.annotate(count=Count('taggit_taggeditem_items__id'))
object_list = object_list.order_by('-count')
object_list = object_list.order_by('-count', 'name')
return object_list
class PrivateSniptResource(ModelResource):

View File

@ -0,0 +1,17 @@
{% extends "base.html" %}
{% block page-title %}/ {{ user.username }} / {{ snipt.title }} - {{ block.super }}{% endblock %}
{% block breadcrumb %}
<li><a href="/{{ user.username }}/">{{ user.username }}</a></li>
<li>/ <a href="{{ snipt.get_absolute_url }}">{{ snipt.title }}</a></li>
{% endblock %}
{% block aside %}{% endblock %}
{% block content %}
<section class="snipts" id="snipts">
{% include "snipts/snipt-detail.html" %}
</section>
{% endblock %}

View File

@ -4,11 +4,10 @@ from snipts import views
urlpatterns = patterns('',
url(r'^$', views.home, name='home'),
url(r'^public/$', views.list_public, name='list-public'),
url(r'^public/tag/(?P<tag>[^/]+)/$', views.list_public, name='list-public-tag'),
url(r'^(?P<user>[^/]+)/$', views.list_user, name='list-user'),
url(r'^(?P<user>[^/]+)/$', views.list_user, name='list-user'),
url(r'^(?P<user>[^/]+)/(?P<slug>[^/]+)/$', views.detail, name='detail'),
url(r'^(?P<user>[^/]+)/tag/(?P<tag>[^/]+)/$', views.list_user, name='list-user-tag'),
url(r'^$', views.home, name='home'),
url(r'^public/$', views.list_public, name='list-public'),
url(r'^public/tag/(?P<tag_slug>[^/]+)/$', views.list_public, name='list-public-tag'),
url(r'^(?P<username>[^/]+)/$', views.list_user, name='list-user'),
url(r'^(?P<username>[^/]+)/tag/(?P<tag_slug>[^/]+)/$', views.list_user, name='list-user-tag'),
url(r'^(?P<username>[^/]+)/(?P<snipt_slug>[^/]+)/$', views.detail, name='detail'),
)

View File

@ -13,27 +13,27 @@ def home(request):
return list_public(request)
@render_to('snipts/list-public.html')
def list_public(request, tag=None):
def list_public(request, tag_slug=None):
tags = Tag.objects.filter(snipt__public=True)
tags = tags.annotate(count=Count('taggit_taggeditem_items__id'))
tags = tags.order_by('-count')[:20]
tags = tags.order_by('-count', 'name')[:20]
snipts = Snipt.objects.filter(public=True).order_by('-created')
if tag:
snipts = snipts.filter(tags__name__in=[tag])
if tag_slug:
snipts = snipts.filter(tags__name__in=[tag_slug])
return {
'snipts': snipts,
'tags': tags,
'tag': tag,
'tag': tag_slug,
}
@render_to('snipts/list-user.html')
def list_user(request, user, tag=None):
def list_user(request, username, tag_slug=None):
user = get_object_or_404(User, username=user)
user = get_object_or_404(User, username=username)
tags = Tag.objects
snipts = Snipt.objects
@ -45,21 +45,36 @@ def list_user(request, user, tag=None):
snipts = snipts.filter(user=user, public=True)
tags = tags.annotate(count=Count('taggit_taggeditem_items__id'))
tags = tags.order_by('-count')
tags = tags.order_by('-count', 'name')
snipts = snipts.order_by('-created')
if tag:
snipts = snipts.filter(tags__name__in=[tag])
if tag_slug:
snipts = snipts.filter(tags__name__in=[tag_slug])
return {
'snipts': snipts,
'tags': tags,
'tag': tag,
'tag': tag_slug,
'user': user,
}
@render_to('snipts/detail.html')
def detail(request, slug):
def detail(request, username, snipt_slug):
snipt = get_object_or_404(Snipt, user__username=username, slug=snipt_slug)
user = snipt.user
tags = Tag.objects
if user == request.user:
tags = tags.filter(snipt__user=user)
else:
tags = tags.filter(snipt__user=user, snipt__public=True)
tags = tags.annotate(count=Count('taggit_taggeditem_items__id'))
tags = tags.order_by('-count', 'name')
return {
'snipt': slug
'snipt': snipt,
'user': user,
'tags': tags,
}

View File

@ -87,25 +87,27 @@
<div class="inner">
{% block content %}{% endblock %}
</div>
<aside class="main">
{% block tags %}{% endblock %}
<nav class="footer">
<ul>
<li class="api">
<a href="/api/">API</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/snipt">@snipt</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/nicksergeant">@nicksergeant</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/nickadamssays">@nickadamssays</a>
</li>
</ul>
</nav>
</aside>
{% block aside %}
<aside class="main">
{% block tags %}{% endblock %}
<nav class="footer">
<ul>
<li class="api">
<a href="/api/">API</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/snipt">@snipt</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/nicksergeant">@nicksergeant</a>
</li>
<li class="twitter">
<a href="https://twitter.com/#!/nickadamssays">@nickadamssays</a>
</li>
</ul>
</nav>
</aside>
{% endblock %}
<div class="left-y ruler"></div>
<div class="right-y ruler"></div>
</section>

View File