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.' } })
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")