New layout for amiibo figure detail page

This commit is contained in:
Felipe Martín 2015-09-08 20:56:57 +02:00
parent a66e54798f
commit 34045afbd9
6 changed files with 130 additions and 5 deletions

View File

@ -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),
),
]

View File

@ -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', )

View File

@ -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

View File

@ -5,7 +5,7 @@
{% trans 'all' as all_word %}
<!DOCTYPE html>
<html>
<html lang="{{ LANGUAGE_CODE }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

View File

@ -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 }}
<i class="right chevron icon divider"></i>
<a class="section" href="{{ selected_collection.get_absolute_url }}">{{ selected_collection.name }}</a>
<i class="right chevron icon divider"></i>
<span class="active section">{{ amiibo.name }}</span>
{% endblock %}
{% block main_content %}
<div class="ui page grid">
<div class="sixteen wide column">
<div class="ui segment">
<h2 class="ui header centered">
{{ amiibo.name }} - {{ amiibo.collection.name }}
</h2>
</div>
</div>
</div>
<div class="ui page stackable grid">
<div class="four wide column">
<div class="ui segment">
<img src="{% thumbnail amiibo.statue 340x340 crop=smart %}" class="ui image centered" />
</div>
</div>
<div class="twelve wide column">
<div class="ui top attached tabular menu">
<div class="active item">{% trans "Shops" %}</div>
</div>
<div class="ui bottom attached active tab segment">
<!-- Shops --!>
{% if amiibo.shops_set.exists %}
<div class="ui divided items">
{% 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 %}
<div class="item">
<div class="content">
{% if stock and price %}
<a class="ui right floated label green large" href="{{ shop_item.get_url }}"
target="_blank">
<i class="shop icon"></i>
{% trans 'Buy now for' %}
<span data-price="{{ price }}" data-currency="{{ currency }}" data-money>
{{ price }} {{ currency }}
</span>
</a>
{% else %}
<div class="ui right floated label red">
{% trans "No stock" %}
</div>
{% endif %}
<a class="header" href="{{ shop_item.get_url }}" target="_blank">{{ shop_item.shop.name }}</a>
<div class="meta">
<div class="cinema">
{% if shop_item.last_price.date %}
<i class="ui icon info circle blue"></i>
{% trans "Updated " %}<span data-relative="{{ shop_item.last_price.date.isoformat }}"></span><br>
{% else %}
<i class="ui icon warning circle red"></i>
{% trans "This item had never been in stock" %}
{% endif %}
</div>
<div class="cinema">
{% if shop_item.is_pack %}
<i class="icon cube"></i>
{% trans "This is a pack of various items" %}
{% endif %}
</div>
</div>
</div>
{% endwith %}
</div>
{% endfor %}
</div>
{% endif %}
</div>
</div>
</div>
{% endblock %}