From 939159a1c95603b4f4ab92f30ceec4e65040f75b Mon Sep 17 00:00:00 2001 From: seba Date: Tue, 18 Oct 2011 02:56:29 +0200 Subject: [PATCH] Fixed bug in bulkBuy when not buying deposit --- k4ever/api2/handlers.py | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/k4ever/api2/handlers.py b/k4ever/api2/handlers.py index cfc5c71..5a8b256 100644 --- a/k4ever/api2/handlers.py +++ b/k4ever/api2/handlers.py @@ -132,18 +132,21 @@ class BuyableItemHandler(BaseHandler): ret = rc.BAD_REQUEST ret.write("\nYou need to specify either items or deposits (or both).\n") return ret + + if not request.data.has_key("items"): + request.data['items'] = [] + if not request.data.has_key("deposits"): + request.data['deposits'] = [] itemList = [] try: + if not isinstance(request.data['items'], Iterable): + raise TypeError() + itemList += request.data['items'] if request.data.has_key('items'): - if not isinstance(request.data['items'], Iterable): + if not isinstance(request.data['deposits'], Iterable): raise TypeError() - itemList += request.data['items'] - if request.data.has_key('deposits'): - if request.data.has_key('items'): - if not isinstance(request.data['deposits'], Iterable): - raise TypeError() - itemList += request.data['deposits'] + itemList += request.data['deposits'] except TypeError: ret = rc.BAD_REQUEST ret.write("\nThe items/deposists parameter have to be a list.\n") @@ -182,14 +185,14 @@ class BuyableItemHandler(BaseHandler): order.create(request.user) order.save() purchases = [] - if request.data.has_key('items'): - for item in request.data['items']: - p = Purchase.create(order, ids[item], isDeposit=False) - p.save() - if request.data.has_key('deposits'): - for item in request.data['deposits']: - p = Purchase.create(order, ids[item], isDeposit=True) - p.save() + # buy items + for item in request.data['items']: + p = Purchase.create(order, ids[item], isDeposit=False) + p.save() + # buy deposits + for item in request.data['deposits']: + p = Purchase.create(order, ids[item], isDeposit=True) + p.save() order.updatePrice(commit=True) order.save()