Ejemplo n.º 1
0
def sell(request, item_type, item_id):
    import simplejson as json
    from crims.auction.models import Auction
    from crims.item.models import Item, Garage

    item = Item.objects.get_by_id(item_id)
    garage = Garage.objects.get_by_user(user=request.engine.user.user)

    if item is None or str(item.id) not in garage.items:
        return request.engine.redirect(reverse('garage'))

    details = json.loads(item.details)
    details['product_id'] = item.id
    item.details = json.dumps(details)

    form = SellForm()
    if request.method == 'POST' and request.POST.has_key('duration'):
        form = SellForm(request.POST)

        if form.is_valid():
            a = Auction()
            a.title = "%s / %s" % (item.name, request.engine.user.user)
            a.details = item.details
            a.respect = item.respect
            a.image_filename = item.image_filename
            a.seller = request.engine.user.user
            a.start_price = form.cleaned_data['start_price']
            a.current_price = form.cleaned_data['start_price']
            a.image_filename = item.image_filename
            a.is_for_credits = False
            a.is_refunded = False
            a.start_at = datetime.datetime.now()
            a.end_at = datetime.datetime.now() + datetime.timedelta(days=int(form.cleaned_data['duration']))
            a.save()

            garage.sell_item(item.id)
            request.engine.user.recalculate_total()

            return request.engine.redirect(reverse('auction'))

    return render_to_response(
        'auction/sell.html', {
            'item_type': item_type,
            'item_id': item_id,
            'item': item,
            'details': json.loads(item.details),
            'form': form,
        },
        context_instance=RequestContext(request)
    )