From 4f37807ef1056a00e529b5dcb97c12390e121c2a Mon Sep 17 00:00:00 2001 From: seba Date: Thu, 2 Dec 2010 02:39:15 +0100 Subject: [PATCH] more broken than before --- k4ever/buyable/admin.py | 3 +- k4ever/buyable/models.py | 20 ++++++----- .../templates/buyables/itemBought.html | 10 +++--- k4ever/buyable/urls.py | 2 +- k4ever/buyable/views.py | 33 ++++++++---------- k4ever/k4ever.db | Bin 63488 -> 65536 bytes .../484488a54d079e9f5714c16f6d848eab.gif | Bin 15807 -> 0 bytes 7 files changed, 32 insertions(+), 36 deletions(-) delete mode 100644 k4ever/media/img/buyable/484488a54d079e9f5714c16f6d848eab.gif diff --git a/k4ever/buyable/admin.py b/k4ever/buyable/admin.py index cf1af75..37217d9 100644 --- a/k4ever/buyable/admin.py +++ b/k4ever/buyable/admin.py @@ -1,7 +1,8 @@ -from models import Buyable, BuyableType, Purchase +from models import Buyable, BuyableType, Purchase, Order from django.contrib import admin admin.site.register(Buyable) admin.site.register(BuyableType) admin.site.register(Purchase) +admin.site.register(Order) diff --git a/k4ever/buyable/models.py b/k4ever/buyable/models.py index 47eba6d..02938c8 100644 --- a/k4ever/buyable/models.py +++ b/k4ever/buyable/models.py @@ -18,9 +18,8 @@ class Buyable(models.Model): description = models.TextField() buyableType = models.ManyToManyField(BuyableType) - def createPurchase(self, user, isDeposit=False): + def createPurchase(self, isDeposit=False): p = Purchase() - p.user = user if isDeposit: p.price = self.deposit else: @@ -29,7 +28,6 @@ class Buyable(models.Model): p.buyable = self return p - def __unicode__(self): return "%s (%s EUR/%s Pfand)" % (self.name, self.price, self.deposit) @@ -40,12 +38,16 @@ class Order(models.Model): price = models.FloatField() dateTime = models.DateTimeField() - def __init__(self, user=None, items=None): + def resetWithUser(self, user=None): + models.Model.__init__(self) + self.price = 0.0 + self.dateTime = datetime.datetime.now() if user: self.user = user - if items: - for item in items: - purchase.add(item) + + def addItems(self, items): + for item in items: + self.purchase.add(item) def __unicode__(self): return "Price %s, User %s" % (self.price, self.user) @@ -58,12 +60,12 @@ class Purchase(models.Model): def __unicode__(self): return "%s%s, %s by %s" % (self.buyable.name, self.isDeposit and " (deposit)" or "", self.price, self.user) - def save(self, *args, **kwargs): +# def save(self, *args, **kwargs): # profile = self.user.get_profile() # if self.id == None: # # new item, get it! # profile.balance -= self.price # profile.save() - super(Purchase, self).save(*args, **kwargs) +# super(Purchase, self).save(*args, **kwargs) diff --git a/k4ever/buyable/templates/buyables/itemBought.html b/k4ever/buyable/templates/buyables/itemBought.html index 233403d..f95f68f 100644 --- a/k4ever/buyable/templates/buyables/itemBought.html +++ b/k4ever/buyable/templates/buyables/itemBought.html @@ -2,12 +2,10 @@ {% block "content" %} {% if not error %} - {% if item1 %} - You got the item {{ item1 }} - {% endif %} - {% if item2 %} - You got the second item {{ item2 }} - {% endif %} + You got the order {{ order }} + {% for item in order.purchase.all %} + {{ item }} + {% endfor %} {% else %} {{ error }} Junge junge junge diff --git a/k4ever/buyable/urls.py b/k4ever/buyable/urls.py index 020bc49..7f01d17 100644 --- a/k4ever/buyable/urls.py +++ b/k4ever/buyable/urls.py @@ -5,5 +5,5 @@ urlpatterns = patterns('', (r'^$', 'buyable.views.showItems'), (r'^show/(\d+)/$', 'buyable.views.showItem'), (r'^buy/(\d+)/(|with/deposit|only/deposit)/?$', 'buyable.views.buyItem'), - (r'^bought/(\d+)/(\d+)?/?$', 'buyable.views.boughtItem'), + (r'^bought/(\d+)/?$', 'buyable.views.boughtItem'), ) diff --git a/k4ever/buyable/views.py b/k4ever/buyable/views.py index 6f84fe5..eb36ea4 100644 --- a/k4ever/buyable/views.py +++ b/k4ever/buyable/views.py @@ -4,7 +4,7 @@ from django.template import RequestContext from django.contrib.auth.decorators import login_required from django.http import HttpResponseRedirect import datetime -from models import Buyable, Purchase +from models import Buyable, Purchase, Order @login_required def showItems(request): @@ -36,34 +36,29 @@ def buyItem(request, itemid, buymode=""): """ items = [] if buymode == "" or buymode == "with/deposit": - p = item.createPurchase(user, isDeposit=False) + p = item.createPurchase(isDeposit=False) p.save() items.append(p) # TANNEK! if buymode == "with/dopsit" or buymode == "only/deposit": if buymode == "with/deposit" or buymode == "only/deposit": - p = item.createPurchase(user, isDeposit=True) + p = item.createPurchase(isDeposit=True) p.save() items.append(p) - order = Order(user, items) + order = Order() + order.resetWithUser(user) + order.save() # for the id! + order.addItems(items) order.save() - return HttpResponseRedirect("/store/bought/%s/" % (order.id, deposit)) + return HttpResponseRedirect("/store/bought/%s/" % (order.id)) @login_required -def boughtItem(request, item1id, item2id=None): - if item1id == item2id: - item2id = None +def boughtItem(request, orderid): error = None try: - item1 = Purchase.objects.get(id=item1id) - if item2id: - item2 = Purchase.objects.get(id=item2id) - else: - item2 = None - except Purchase.DoesNotExist: + item = Order.objects.get(id=orderid) + except Order.DoesNotExist: + error = "Die angegebene Order existiert nicht" + if error == None and (item.user != request.user): item1 = None - item2 = None - error = "Konnte gekaufte Objekte nicht wiederfinden" - if error == None and (item1.user != request.user or (item2 != None and (item2.user != request.user))): - item1 = item2 = None error = u"Diese Items gehören dir nicht" - return render_to_response("buyables/itemBought.html", {'item1': item1, 'item2': item2, 'error': error}, RequestContext(request)) + return render_to_response("buyables/itemBought.html", {'order': item, 'error': error}, RequestContext(request)) diff --git a/k4ever/k4ever.db b/k4ever/k4ever.db index b8ac03cf2135bc8920dd518877f3e8189cd67adb..ac5ad46ab160f60b36442025939bd16359fd1ea0 100644 GIT binary patch delta 4838 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 UweptF%OUb-wiyH1`D)nV|2TYB0ssI2 literal 63488 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