Added collection/amiibo detail views base templates

This commit is contained in:
Felipe Martín 2015-06-17 00:10:25 +02:00
parent 68d9346853
commit ad0eb9b07b
7 changed files with 95 additions and 4 deletions

View File

@ -32,6 +32,10 @@ class Collection(models.Model):
def amiibos(self):
return self.amiibos_qs.all()
@models.permalink
def get_absolute_url(self):
return ('amiibo:collection', [self.slug])
def __unicode__(self):
return unicode(self.name_eu) or u''
@ -57,6 +61,10 @@ class Amiibo(models.Model):
visible = models.BooleanField(default=True)
@models.permalink
def get_absolute_url(self):
return ('amiibo:amiibo', [self.collection.slug, self.slug])
@property
def image_box(self):
return '/static/images/amiibo/{}/{}-box.jpg'.format(

View File

@ -0,0 +1,19 @@
# coding: utf-8
# django
from django.conf.urls import url, patterns
# home
from .views import AmiiboView, CollectionView
urlpatterns = patterns(
'',
url(r'^(?P<collection>[\w\d\-]+)/$',
CollectionView.as_view(),
name='collection'),
url(r'^(?P<collection>[\w\d\-]+)/(?P<amiibo>[\w\d\-]+)$',
AmiiboView.as_view(),
name='amiibo'),
)

View File

@ -1,3 +1,32 @@
from django.shortcuts import render
# coding: utf-8
# Create your views here.
# django
from django.shortcuts import render
from django.views.generic.base import View
# amiibo
from amiibofindr.apps.amiibo.models import Collection, Amiibo
class CollectionView(View):
template = 'amiibo/collection.html'
def get(self, request, collection=None):
collection = Collection.objects.get(slug=collection)
return render(request, self.template, {
'selected_collection': collection,
'amiibo_list': collection.amiibos,
})
class AmiiboView(View):
template = 'amiibo/amiibo.html'
def get(self, request, collection=None, amiibo=None):
amiibo_obj = Amiibo.objects.get(slug=amiibo)
return render(request, self.template, {
'selected_collection': amiibo_obj.collection,
'amiibo': amiibo_obj,
})

View File

@ -9,6 +9,5 @@ from .views import HomeView
urlpatterns = patterns(
'',
url(r'^(?P<collection>[\w\d\-]+)/$', HomeView.as_view()),
url(r'^$', HomeView.as_view()),
)

View File

@ -0,0 +1,13 @@
{% extends "_layout.html" %}
{% block main_content %}
<ul class="uk-subnav uk-subnav-pill">
{% for collection in collections %}
<li {% if selected_collection.slug == collection.slug %}class="uk-active"{% endif %}>
<a href="{{ collection.get_absolute_url }}">{{ collection.name_eu }}</a>
</li>
{% endfor %}
</ul>
{{ amiibo }}
<img src="{{ amiibo.image_statue }}" />
{% endblock %}

View File

@ -0,0 +1,22 @@
{% extends "_layout.html" %}
{% block main_content %}
<ul class="uk-subnav uk-subnav-pill">
{% for collection in collections %}
<li {% if selected_collection.slug == collection.slug %}class="uk-active"{% endif %}>
<a href="{{ collection.get_absolute_url }}">{{ collection.name_eu }}</a>
</li>
{% endfor %}
</ul>
<div class="uk-grid">
{% for amiibo in amiibo_list %}
<div class="uk-width-medium-1-5">
<a class="uk-panel uk-panel-box uk-panel-box-hover" href="{{ amiibo.get_absolute_url }}">
<h3 class="uk-panel-title uk-text-center">{{ amiibo.name_eu }}</h3>
<img src="{{ amiibo.image_statue }}" />
</a>
</div>
{% if forloop.counter|divisibleby:5 %}</div><div class="uk-grid">{% endif %}
{% endfor %}
</div>
{% endblock %}

View File

@ -23,8 +23,9 @@ from django.conf.urls.static import static
urlpatterns = patterns(
'',
url(r'^', include('amiibofindr.apps.home.urls')),
url(r'^amiibofindr-admin/', include(admin.site.urls)),
url(r'^', include('amiibofindr.apps.amiibo.urls', namespace='amiibo')),
url(r'^', include('amiibofindr.apps.home.urls', namespace='home')),
)
if settings.DEBUG: