def createAuction(request):
    AuctionTitle = request.POST['AuctionTitle']
    Deadline = request.POST['Deadline']
    StartingPrice = request.POST['StartingPrice']
    Description = request.POST['Description']
    category = request.POST['Category']
    ItemType = itemType.objects.get(id=category)
    if not AuctionTitle:
        return JsonResponse({
            'statusCode': status.HTTP_400_BAD_REQUEST,
            'data': {
                'Message': 'AuctionTitle is not provider.'
            }
        })
    if not Deadline:
        return JsonResponse({
            'statusCode': status.HTTP_400_BAD_REQUEST,
            'data': {
                'Message': 'Deadline is not provider.'
            }
        })
    if not StartingPrice:
        return JsonResponse({
            'statusCode': status.HTTP_400_BAD_REQUEST,
            'data': {
                'Message': 'StartingPrice is not provider.'
            }
        })
    if not Description:
        return JsonResponse({
            'statusCode': status.HTTP_400_BAD_REQUEST,
            'data': {
                'Message': 'Description is not provider.'
            }
        })
    if not category:
        return JsonResponse({
            'statusCode': status.HTTP_400_BAD_REQUEST,
            'data': {
                'Message': 'category is not provider.'
            }
        })

    objAuction = Auction()
    objAuction.title = AuctionTitle
    objAuction.minPrice = StartingPrice
    objAuction.seller = request.user
    objAuction.status = 1
    objAuction.itemDescription = Description
    objAuction.deadline = datetime.strptime(
        Deadline, '%d/%m/%Y %H:%M').strftime('%Y-%m-%d %H:%M:%S')
    objAuction.category = ItemType
    objAuction.save()
    emailSender.sendAuctionConfEmail(objAuction.title, request.user.email)
    return JsonResponse({
        'statusCode': status.HTTP_200_OK,
        'data': {
            'Message': 'Auction Created Sussessfully.'
        }
    })
예제 #2
0
def generate_data(request):  # Data generation program
    random_products = [
        'Computer', 'Raspberry Pi', 'iPhone', 'Television', 'Jam', 'Xbox',
        'Playstation', 'Homework'
    ]
    desc = "Very good product for sale. This product will make your life 200% better."
    fake = Faker()
    print(
        "---Starting data generation program----\nGenerating 50 random users and one auction each"
    )
    n = 2
    for _ in range(0, 50):
        profile = fake.simple_profile()
        user = User.objects.create_user(username=profile['username'],
                                        email=profile['mail'],
                                        password=fake.password())
        user.first_name = profile['name'].split()[0]
        user.last_name = profile['name'].split()[1]
        user.save()
        auction = Auction(seller=user,
                          title=sample(random_products, 1)[0],
                          description=desc,
                          min_price=round(uniform(10, 500)),
                          deadline=timezone.now() +
                          datetime.timedelta(hours=(72 + randint(0, 50))))
        auction.save()
        print(str(n) + "% done")
        n = n + 2
    print(
        "Generating complete.\nGenerating 50 random bids by random users on random auctions"
    )
    n = 2
    for i in range(0, 50):
        random_auction = sample(list(Auction.objects.all()), 1)[0]
        random_user = sample(list(User.objects.all()), 1)[0]

        winning_bid = 0
        winner = 0
        if random_auction.winning_bid is not None:
            winning_bid = random_auction.winning_bid.amount
            winner = random_auction.winning_bid.bidder
        if random_user != random_auction.seller and random_user != winner:
            if winning_bid == 0:
                bid_amount = random_auction.min_price + round(uniform(1, 10))
            else:
                bid_amount = winning_bid + round(uniform(1, 10))
            bid = Bid(bidder=random_user,
                      amount=bid_amount,
                      auction=random_auction)
            bid.save()
            random_auction.winning_bid = bid
            random_auction.save()
            print(str(n) + "% done")
            n = n + 2
    messages.info(request,
                  "Data Generation done! Click on Home to see the results :)")
    return render(request, "index.html")