From 34045afbd915c22778f0b1d821140b8afe072fdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Mart=C3=ADn?= Date: Tue, 8 Sep 2015 20:56:57 +0200 Subject: [PATCH] New layout for amiibo figure detail page --- .../migrations/0023_amiiboshop_image.py | 20 ++++ amiibofindr/apps/amiibo/models.py | 8 ++ amiibofindr/apps/amiibo/views.py | 6 +- amiibofindr/templates/_layout.html | 2 +- .../amiibo/{amiibo.html => amiibo-card.html} | 0 .../templates/amiibo/amiibo-figure.html | 99 +++++++++++++++++++ 6 files changed, 130 insertions(+), 5 deletions(-) create mode 100644 amiibofindr/apps/amiibo/migrations/0023_amiiboshop_image.py rename amiibofindr/templates/amiibo/{amiibo.html => amiibo-card.html} (100%) create mode 100644 amiibofindr/templates/amiibo/amiibo-figure.html diff --git a/amiibofindr/apps/amiibo/migrations/0023_amiiboshop_image.py b/amiibofindr/apps/amiibo/migrations/0023_amiiboshop_image.py new file mode 100644 index 0000000..7768881 --- /dev/null +++ b/amiibofindr/apps/amiibo/migrations/0023_amiiboshop_image.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import amiibofindr.apps.amiibo.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('amiibo', '0022_useramiibo'), + ] + + operations = [ + migrations.AddField( + model_name='amiiboshop', + name='image', + field=models.ImageField(null=True, upload_to=amiibofindr.apps.amiibo.models.shop_item_upload, blank=True), + ), + ] diff --git a/amiibofindr/apps/amiibo/models.py b/amiibofindr/apps/amiibo/models.py index 6d7822c..87bcc1c 100644 --- a/amiibofindr/apps/amiibo/models.py +++ b/amiibofindr/apps/amiibo/models.py @@ -32,6 +32,12 @@ def image_card_upload(self, filename): return 'amiibos/c/{}/{}_{}{}'.format( self.collection.pk, self.collection_number, self.pk, extension) +def shop_item_upload(self, filename): + name, extension = os.path.splitext(filename) + return 'amiibos/si/{}/{}_{}{}'.format( + self.amiibo.collection.pk, self.amiibo.pk, self.shop.pk, extension) + + # # Models @@ -195,6 +201,8 @@ class AmiiboShop(models.Model): url = models.TextField() item_id = models.CharField(max_length=64) check_price = models.BooleanField(default=True) + image = models.ImageField(upload_to=shop_item_upload, + null=True, blank=True) class Meta: ordering = ('shop__name', ) diff --git a/amiibofindr/apps/amiibo/views.py b/amiibofindr/apps/amiibo/views.py index 1844fb2..59e7d59 100644 --- a/amiibofindr/apps/amiibo/views.py +++ b/amiibofindr/apps/amiibo/views.py @@ -54,10 +54,6 @@ class CollectionCardView(CollectionView): class AmiiboView(View): - template = 'amiibo/amiibo.html' - type = Amiibo.FIGURE - model = AmiiboFigure - def get(self, request, collection=None, amiibo=None): amiibo_obj = get_object_or_404(self.model, slug=amiibo, @@ -71,10 +67,12 @@ class AmiiboView(View): }) class AmiiboFigureView(AmiiboView): + template = 'amiibo/amiibo-figure.html' type = Amiibo.FIGURE model = AmiiboFigure class AmiiboCardView(AmiiboView): + template = 'amiibo/amiibo-card.html' type = Amiibo.CARD model = AmiiboCard diff --git a/amiibofindr/templates/_layout.html b/amiibofindr/templates/_layout.html index 599ffad..90bdc6c 100644 --- a/amiibofindr/templates/_layout.html +++ b/amiibofindr/templates/_layout.html @@ -5,7 +5,7 @@ {% trans 'all' as all_word %} - + diff --git a/amiibofindr/templates/amiibo/amiibo.html b/amiibofindr/templates/amiibo/amiibo-card.html similarity index 100% rename from amiibofindr/templates/amiibo/amiibo.html rename to amiibofindr/templates/amiibo/amiibo-card.html diff --git a/amiibofindr/templates/amiibo/amiibo-figure.html b/amiibofindr/templates/amiibo/amiibo-figure.html new file mode 100644 index 0000000..f897c1e --- /dev/null +++ b/amiibofindr/templates/amiibo/amiibo-figure.html @@ -0,0 +1,99 @@ +{% extends "_layout.html" %} + +{% comment %} +AMIIBO FIGURE +{% endcomment %} + +{% load i18n staticfiles thumbnail %} + +{% block page_title %}{% blocktrans with collection=selected_collection.name amiibo=amiibo.name %}{{ amiibo }} amiibo from {{ collection }} in {% endblocktrans %}{{ block.super }}{% endblock %} + +{% block meta_twitter_title %}{% blocktrans with collection=selected_collection.name amiibo=amiibo.name %}{{ amiibo }} amiibo from {{ collection }} in {% endblocktrans %}{{ block.super }}{% endblock %} +{% block meta_og_title %}{% blocktrans with collection=selected_collection.name amiibo=amiibo.name %}{{ amiibo }} amiibo from {{ collection }} in {% endblocktrans %}{{ block.super }}{% endblock %} + +{% block meta_twitter_image %}{% thumbnail amiibo.statue 300x300 %}{% endblock %} +{% block meta_og_image %}{% thumbnail amiibo.statue 300x300 %}{% endblock %} + +{% block meta_twitter_url %}{{ amiibo.get_absolute_url }}{% endblock %} +{% block meta_og_url %}{{ amiibo.get_absolute_url }}{% endblock %} + +{% block js_views %}money,time{% endblock %} + +{% block breadcrumb %} + {{ block.super }} + + {{ selected_collection.name }} + + {{ amiibo.name }} +{% endblock %} + +{% block main_content %} +
+
+
+

+ {{ amiibo.name }} - {{ amiibo.collection.name }} +

+
+
+
+
+
+
+ +
+
+
+ +
+ + {% if amiibo.shops_set.exists %} +
+ {% for shop_item in amiibo.shops_set.all %} + {% with price=shop_item.last_price.price stock=shop_item.last_price.stock currency=shop_item.last_price.currency %} +
+
+ {% if stock and price %} + + + {% trans 'Buy now for' %} + + {{ price }} {{ currency }} + + + {% else %} +
+ {% trans "No stock" %} +
+ {% endif %} + {{ shop_item.shop.name }} +
+
+ {% if shop_item.last_price.date %} + + {% trans "Updated " %}
+ {% else %} + + {% trans "This item had never been in stock" %} + {% endif %} +
+
+ {% if shop_item.is_pack %} + + {% trans "This is a pack of various items" %} + {% endif %} +
+
+
+ {% endwith %} +
+ {% endfor %} +
+ {% endif %} +
+
+
+{% endblock %}