New layout for amiibo figure detail page
This commit is contained in:
parent
a66e54798f
commit
34045afbd9
|
@ -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),
|
||||
),
|
||||
]
|
|
@ -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', )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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 %}
|
Loading…
Reference in New Issue