Merge branch 'master' of someserver.de:k4ever

master
seba 13 years ago
commit dec55d9561

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

@ -0,0 +1,23 @@
"""
This file demonstrates two different styles of tests (one doctest and one
unittest). These will both pass when you run "manage.py test".
Replace these with more appropriate tests for your application.
"""
from django.test import TestCase
class SimpleTest(TestCase):
def test_basic_addition(self):
"""
Tests that 1 + 1 always equals 2.
"""
self.failUnlessEqual(1 + 1, 2)
__test__ = {"doctest": """
Another way to test that 1 + 1 is equal to 2.
>>> 1 + 1 == 2
True
"""}

@ -0,0 +1,9 @@
from django.conf.urls.defaults import *
#/api/
urlpatterns = patterns('',
(r'^store/$', 'api.views.showItems'),
(r'^store/show/(\d+)/$', 'api.views.showItem'),
(r'^store/buy/(\d+)/(|with/deposit|only/deposit)/?$', 'api.views.buyItem'),
(r'^store/history/?$', 'api.views.history'),
)

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
import datetime
from buyable.models import Buyable, Purchase, Order
from django.core import serializers
@login_required
def showItems(request):
# FIXME: Implement pagination here
items = Buyable.objects.all()
#return json-container
container = serializers.serialize('json', items)
return HttpResponse(container,'application/javascript')
@login_required
def showItem(request, itemid):
try:
item = Buyable.objects.get(id=itemid)
except Buyable.DoesNotExist:
# baww, kein item mit der id :( (oder mutax trollt rum)
return HttpResponse(status=400)
#return json-container
container = serializers.serialize('json', [item])
return HttpResponse(container,'application/javascript')
@login_required
def buyItem(request, itemid, buymode=""):
user = request.user
try:
item = Buyable.objects.get(id=itemid)
except Buyable.DoesNotExist:
# oh no! kein item mit der id :( mutax trollt rum)
return HttpResponseRedirect("/store/buy/")
""" tristate variable buymode:
"" only item
"with/deposit" item and deposit
"only/deposit" only deposit
"""
order = Order()
order.create(user)
order.save() # for the id!
if buymode == "" or buymode == "with/deposit":
p = Purchase.create(order, item, isDeposit=False)
p.order = order
p.save()
# TANNEK! if buymode == "with/dopsit" or buymode == "only/deposit":
if buymode == "with/deposit" or buymode == "only/deposit":
p = Purchase.create(order, item, isDeposit=True)
p.order = order
p.save()
order.updatePrice(commit=True)
order.save()
#return json-container
#container = serializers.serialize('json', items)
#return HttpResponse(container,'application/javascript')
return HttpResponse(status=200)
#return HttpResponseRedirect("/store/bought/%s/" % (order.id))
@login_required
def history(request):
hist = Order.objects.filter(user=request.user.id).order_by("-dateTime")
#return json-container
container = serializers.serialize('json', [hist])
return HttpResponse(container,'application/javascript')

Binary file not shown.

@ -1,8 +1,19 @@
{% extends "base.html" %}
{% block "content" %}
{% if allMost %}
Am beliebtesten ist: <br /> <br />
{% for buyable in allMost %}
{{ buyable.buyable__name }} ( {{ buyable.num_buys }} mal) <br />
{% endfor %}
<br />
{% else %}
{{ error }}
Noch niemand hat was gekauft?
{% endif %}
<hr>
{% if usersMost %}
Am oeftesten hatten alle: <br /> <br />
Am oeftesten hattest du: <br /> <br />
{% for buyable in usersMost %}
{{ buyable.buyable__name }} ( {{ buyable.num_buys }} mal) <br />
{% endfor %}
@ -11,4 +22,15 @@
{{ error }}
Nix gekauft?
{% endif %}
<hr>
{% if usersLast %}
Als letztes hattest du: <br /> <br />
{% for buyable in usersLast %}
{{ buyable.buyable__name }} <br />
{% endfor %}
<br />
{% else %}
{{ error }}
Noch nix gekauft?
{% endif %}
{% endblock %}

@ -7,8 +7,13 @@ from buyable.models import Purchase, Buyable
@login_required
def startpage(request):
usersMost = Purchase.objects.values('buyable__name').annotate(num_buys=Count('buyable')).order_by('-num_buys')
return render_to_response("main/startpage.html", {'usersMost': usersMost}, RequestContext(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').annotate(num_buys=Count('buyable')).order_by('-num_buys')
usersMost = Purchase.objects.filter(isDeposit=False).values('buyable__name').filter(order__user=request.user.id).annotate(num_buys=Count('buyable')).order_by('-num_buys')
usersLast = Purchase.objects.filter(isDeposit=False).values('buyable__name').filter(order__user=request.user.id).order_by('-order__dateTime')
return render_to_response("main/startpage.html", {'allMost' : allMost,'usersMost': usersMost, 'usersLast' : usersLast}, RequestContext(request))
def register(request):
return render_to_response("registration/register.html", RequestContext(request))

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

@ -13,6 +13,7 @@ urlpatterns = patterns('',
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# user stuff? go to main
(r'^$', 'main.views.startpage'),
(r'^api/', include('api.urls')),
(r'^user/', include('main.urls')),
(r'^transaction/', include('transaction.urls')),
(r'^store/', include('buyable.urls')),

Loading…
Cancel
Save