Reordered the welcome page, added images and buying option
This commit is contained in:
parent
7f484ffc52
commit
bed84eed06
|
@ -1,36 +1,238 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block "content" %}
|
||||
{% if allMost %}
|
||||
Am beliebtesten ist: <br /> <br />
|
||||
{% for buyable in allMost %}
|
||||
<a href="/store/show/{{ buyable.buyable__id }}">{{ buyable.buyable__name }}</a> ( {{ buyable.num_buys }} mal) <br />
|
||||
{% endfor %}
|
||||
<br />
|
||||
<div style="width:1200px">
|
||||
{% if allMostDrinks or allMostSnacks %}
|
||||
<table width="100%" class="showitem" style="border-width:0px">
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<h1>Die beliebtesten Artikel</h1>
|
||||
</td>
|
||||
<td>
|
||||
<h1>Deine Lieblingsartikel</h1>
|
||||
</td>
|
||||
<td>
|
||||
<h1>Zuletzt hattest du:</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="-moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg)">
|
||||
<h1 style="vertical-align:top">Getränke</h1>
|
||||
</td>
|
||||
<td style="vertical-align:top">
|
||||
{% if allMostDrinks %}
|
||||
<table width=100%>
|
||||
{% for buyable in allMostDrinks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b><br/>({{ buyable.num_buys }} mal)
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="vertical-align:top">
|
||||
{% if usersMostDrinks %}
|
||||
<table width=100%>
|
||||
{% for buyable in usersMostDrinks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal)
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="vertical-align:top">
|
||||
{% if usersLastDrinks %}
|
||||
<table width=100%>
|
||||
{% for buyable in usersLastDrinks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b>
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="-moz-transform: rotate(270deg); -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg)">
|
||||
<h1>Snacks</h1>
|
||||
</th>
|
||||
<td style="vertical-align:top">
|
||||
{% if allMostSnacks %}
|
||||
<table width=100%>
|
||||
{% for buyable in allMostSnacks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal)
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="vertical-align:top">
|
||||
{% if usersMostSnacks %}
|
||||
<table width=100%>
|
||||
{% for buyable in usersMostSnacks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b><br/> ({{ buyable.num_buys }} mal)
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
<td style="vertical-align:top">
|
||||
{% if usersLastSnacks %}
|
||||
<table width=100%>
|
||||
{% for buyable in usersLastSnacks %}
|
||||
<tr>
|
||||
<td width="80px">
|
||||
<a href="/store/show/{{ buyable.buyable__id }}"><img width=64 height=64 src="{{ MEDIA_URL }}{{ buyable.buyable__image }}"></a>
|
||||
</td>
|
||||
<td>
|
||||
<b>{{ buyable.buyable__name }}</b>
|
||||
</td>
|
||||
<td width="150px">
|
||||
<a class="button" href="/store/buy/{{ buyable.buyable__id }}">Kaufen
|
||||
{% if buyable.buyable__deposit > 0 %}
|
||||
(Ohne Pfand)</a> <a class="button" href="/store/buy/{{ buyable.buyable__id }}/with/deposit">Kaufen (Mit Pfand)</a>
|
||||
{% else %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% else %}
|
||||
Noch keine gekauft.
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ error }}
|
||||
Noch niemand hat was gekauft?
|
||||
Es hat scheinbar noch niemand etwas gekauft. <a href="/store/">Sei der Erste!</a>
|
||||
{% endif %}
|
||||
<hr>
|
||||
{% if usersMost %}
|
||||
Am oeftesten hattest du: <br /> <br />
|
||||
{% for buyable in usersMost %}
|
||||
<a href="/store/show/{{ buyable.buyable__id }}">{{ buyable.buyable__name }}</a> ( {{ buyable.num_buys }} mal) <br />
|
||||
{% endfor %}
|
||||
<br />
|
||||
</div>
|
||||
|
||||
{% comment %}
|
||||
<div style="width:800px">
|
||||
{% if usersMostSnacks or usersMostDrinks %}
|
||||
<h1>Deine Lieblingsartikel</h1>
|
||||
<table class="showitem" width="100%" style="border-width:0px">
|
||||
<tr>
|
||||
<th width="50%">
|
||||
Getränke
|
||||
</th>
|
||||
<th width="50%">
|
||||
Snacks
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
</tr>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ error }}
|
||||
Nix gekauft?
|
||||
Wie es aussieht, hast du noch nichts gekauft. <a href="/store/">Das kannst du ändern!</a>
|
||||
{% endif %}
|
||||
<hr>
|
||||
{% if usersLast %}
|
||||
Als letztes hattest du: <br /> <br />
|
||||
{% for buyable in usersLast %}
|
||||
<a href="/store/show/{{ buyable.buyable__id }}">{{ buyable.buyable__name }}</a> <br />
|
||||
{% endfor %}
|
||||
<br />
|
||||
</div>
|
||||
<div style="width:800px">
|
||||
{% if usersLastSnacks or usersLastDrinks %}
|
||||
<h1>Du hattest als letztes:</h1>
|
||||
<table class="showitem" width="100%" style="border-width:0px">
|
||||
<tr>
|
||||
<th width="50%">
|
||||
Getränke
|
||||
</th>
|
||||
<th width="50%">
|
||||
Snacks
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
</tr>
|
||||
</table>
|
||||
{% else %}
|
||||
{{ error }}
|
||||
Noch nix gekauft?
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endcomment %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# -*- coding: utf8 -*-
|
||||
from django.shortcuts import render_to_response
|
||||
from django.template import RequestContext
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
@ -5,18 +6,46 @@ from django.db.models import Count
|
|||
from django.http import HttpResponseRedirect
|
||||
from main.models import Plugin, PluginPermission
|
||||
|
||||
|
||||
from buyable.models import Purchase, Buyable
|
||||
from buyable.models import Purchase, Buyable, BuyableType
|
||||
|
||||
@login_required
|
||||
def startpage(request):
|
||||
''' Diese Funktion wird wahrscheinlich viel Last erzeugen, da
|
||||
sie ueber mehrere Tabellen joined,filtered und wieder reduced.
|
||||
'''
|
||||
allMost = Purchase.objects.filter(isDeposit=False).values('buyable__name', 'buyable__id').annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
usersMost = Purchase.objects.filter(isDeposit=False).values('buyable__name','buyable__id').filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
usersLast = Purchase.objects.filter(isDeposit=False).values('buyable__name','buyable__id').filter(order__user=request.user.id).order_by('-order__dateTime')
|
||||
return render_to_response("main/startpage.html", {'allMost' : allMost,'usersMost': usersMost, 'usersLast' : usersLast[:12]}, RequestContext(request))
|
||||
drinks = BuyableType.objects.get(name="Getränk").buyable_set.all()
|
||||
snacks = BuyableType.objects.get(name="Snack").buyable_set.all()
|
||||
|
||||
allMost = Purchase.objects.filter(isDeposit=False).values('buyable__name', 'buyable__id','buyable__image','buyable__price','buyable__deposit')
|
||||
|
||||
allMostDrinks = allMost.filter(buyable__in=drinks).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
allMostSnacks = allMost.filter(buyable__in=snacks).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
|
||||
usersMostDrinks = allMost.filter(buyable__in=drinks).filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
usersMostSnacks = allMost.filter(buyable__in=snacks).filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
|
||||
|
||||
# usersLastDrinks = allMost.filter(buyable__in=drinks).filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-order__dateTime')
|
||||
# usersLastSnacks = allMost.filter(buyable__in=snacks).filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-order__dateTime')
|
||||
|
||||
usersLastDrinks = allMost.filter(buyable__in=drinks).filter(order__user=request.user.id).order_by('-order__dateTime')
|
||||
usersLastSnacks = allMost.filter(buyable__in=snacks).filter(order__user=request.user.id).order_by('-order__dateTime')
|
||||
|
||||
#if someone knows a better way to do this, just replace this code
|
||||
#purpose: filter usersLast so that it only contains unique items
|
||||
usersLastDrinks_unique = []
|
||||
for x in usersLastDrinks:
|
||||
if not x in usersLastDrinks_unique:
|
||||
usersLastDrinks_unique.append(x)
|
||||
#usersLastDrinks = map(lambda x:{ "buyable__name" : x }, usersLastDrinks_unique)
|
||||
usersLastDrinks = usersLastDrinks_unique
|
||||
|
||||
usersLastSnacks_unique = []
|
||||
for x in usersLastSnacks:
|
||||
if not x in usersLastSnacks_unique:
|
||||
usersLastSnacks_unique.append(x)
|
||||
usersLastSnacks = usersLastSnacks_unique
|
||||
|
||||
return render_to_response("main/startpage.html", {'allMostDrinks' : allMostDrinks[:5], 'allMostSnacks' : allMostSnacks[:5], 'usersMostDrinks': usersMostDrinks[:5], 'usersMostSnacks': usersMostSnacks[:5], 'usersLastDrinks' : usersLastDrinks[:10], 'usersLastSnacks' : usersLastSnacks[:10]}, RequestContext(request))
|
||||
|
||||
def register(request):
|
||||
""" The "no registration available" page... """
|
||||
|
|
Loading…
Reference in New Issue