Ejemplo n.º 1
0
def review2014_quota(request):
    data = {'result': 'failed'}
    try:
        currentCampaign = Campaign.objects.get(slug=review2014CampaignSlug)
        price = Price.objects.get(name='redenvelope')
        awards = Award.objects.filter(name=u'贈獎', activity=currentCampaign, price=price,
                                          create_time__range=get_1day_range(datetime.now())).count()
        quotaToday = REVIEW2014_DAILY_QUOTA - awards
        quota = min(price.quantity, quotaToday)
        data['result'] = 'success'
        data['inventory'] = 'normal' if price.quantity > 0 else 'out-of-stock'
        data['quota'] = quota
    except Exception as e:
        print e
    response = json.dumps(data)
    return HttpResponse(response, mimetype='application/x-javascript')
Ejemplo n.º 2
0
def review2014_award(request):
    data = {'result': 'failed'}
    if request.user.is_active:
        currentCampaign = Campaign.objects.get(slug=review2014CampaignSlug)
        existing = Award.objects.filter(name=u'贈獎', activity=currentCampaign, winner=request.user)
        if currentCampaign.status == 'end':
            data['result'] = 'ended'
        elif not existing.exists() and 'score' in request.GET:
            price = Price.objects.get(name='redenvelope')
            # check total quota and daily quota
            quotaToday = REVIEW2014_DAILY_QUOTA - Award.objects.filter(
                name=u'贈獎', activity=currentCampaign, price=price,
                create_time__range=get_1day_range(datetime.now())).count()
            quota = min(price.quantity, quotaToday)
            if quota > 0:
                # save award, decrease price quantity
                price.quantity -= 1
                price.save()
                award = Award(name=u'贈獎', activity=currentCampaign, winner=request.user, price=price)
                award.save()

                data['slug'] = price.name
                data['name'] = price.description
                data['result'] = 'success'
                data['existing'] = False
            else:
                data['inventory'] = 'normal' if price.quantity > 0 else 'out-of-stock'
                data['message'] = 'quota exceeded'
        elif existing.exists():
            data['result'] = 'success'
            data['slug'] = existing[0].price.name
            data['name'] = existing[0].price.description
            data['existing'] = True
        else:
            data['message'] = 'invalid request'
    else:
        data['message'] = 'unauthorized'
    response = json.dumps(data)
    return HttpResponse(response, mimetype='application/x-javascript')