fmartingr
/
shelfzilla
Archived
1
0
Fork 0

New alphabetic listing

This commit is contained in:
Felipe Martin 2014-04-04 15:48:08 +02:00
parent a12f419a47
commit d62d7af295
2 changed files with 55 additions and 9 deletions

View File

@ -1,5 +1,7 @@
import string
from django.template import RequestContext
from django.shortcuts import render_to_response, get_object_or_404
from django.utils.translation import ugettext as _
from shelfzilla.views import View
from ..models import Series
@ -11,15 +13,36 @@ class SeriesView(View):
class SeriesListView(SeriesView):
template = 'manga/series/list.html'
filters = ['other', 'all']
def get(self, request):
items = Series.objects.all()
letters = list(string.ascii_uppercase)
letters.append(_('other'))
letters.append(_('all'))
current_letter = request.GET.get('letter', 'A')
items = self.get_items(current_letter)
context = {
'items': items
'items': items,
'letters': letters,
'current_letter': current_letter
}
ctx = RequestContext(request, self.get_context(context))
return render_to_response(self.template, context_instance=ctx)
def get_items(self, letter):
result = Series.objects.all()
if len(letter) == 1:
result = Series.objects.filter(name__istartswith=letter)
elif letter == 'all':
result = Series.objects.all()
elif letter == 'other':
# result = Series.objects.filter(name__regex=r'')
result = []
return result
class SeriesDetailView(SeriesView):
template = 'manga/series/detail.html'

View File

@ -8,22 +8,22 @@
<div class="container">
<div class="pull-right">
<ul class="pagination">
{% for letter in letter_list %}
<li>
<a href="#{{ letter.grouper }}">{{ letter.grouper }}</a>
{% for letter in letters %}
<li {% if current_letter == letter %}class="active"{% endif %}>
<a href="{% url 'series.list' %}?letter={{ letter }}" data-pjax pjax-nopush>{{ letter }}</a>
</li>
{% endfor %}
</ul>
</div>
<div class="clearfix"></div>
<div class="column-list">
{% for letter in letter_list %}
{% if current_letter != 'all' %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title" id="{{ letter.grouper }}">{{ letter.grouper }}</h3>
<h3 class="panel-title" id="{{ current_letter }}">{{ current_letter }}</h3>
</div>
<ul class="list-group">
{% for item in letter.list %}
{% for item in items %}
<li class="list-group-item">
{% if item.slug %}
<a href="{% url "series.detail" item.pk item.slug %}" data-pjax>{{ item.name }}</a>
@ -31,10 +31,33 @@
<a href="{% url "series.detail" item.pk %}" data-pjax>{{ item.name }}</a>
{% endif %}
</li>
{% empty %}
<li class="list-group-item">{% trans "No results" %}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
{% else %}
{% for letter in letter_list %}
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title" id="{{ letter.grouper }}">{{ letter.grouper }}</h3>
</div>
<ul class="list-group">
{% for item in letter.list %}
<li class="list-group-item">
{% if item.slug %}
<a href="{% url "series.detail" item.pk item.slug %}" data-pjax>{{ item.name }}</a>
{% else %}
<a href="{% url "series.detail" item.pk %}" data-pjax>{{ item.name }}</a>
{% endif %}
</li>
{% empty %}
<li class="list-group-item">{% trans "No results" %}</li>
{% endfor %}
</ul>
</div>
{% endfor %}
{% endif %}
</div>
</div>
{% endblock %}