def post(self): """Report auction results for lot. """ apply_patch(self.request, save=False, src=self.request.validated['auction_src']) auction = self.request.validated['auction'] if all([ i.auctionPeriod and i.auctionPeriod.endDate for i in auction.lots if i.numberOfBids > 1 and i.status == 'active' ]): cleanup_bids_for_cancelled_lots(auction) invalidate_bids_under_threshold(auction) if any([i.status == 'active' for i in auction.bids]): self.request.content_configurator.start_awarding() else: auction.status = 'unsuccessful' if save_auction(self.request): self.LOGGER.info('Report auction results', extra=context_unpack( self.request, {'MESSAGE_ID': 'auction_lot_auction_post'})) return { 'data': self.request.validated['auction'].serialize( self.request.validated['auction'].status) }
def check_bids(request): auction = request.validated['auction'] if auction.lots: [setattr(i.auctionPeriod, 'startDate', None) for i in auction.lots if i.numberOfBids < 2 and i.auctionPeriod and i.auctionPeriod.startDate] [setattr(i, 'status', 'unsuccessful') for i in auction.lots if i.numberOfBids < 2 and i.status == 'active'] cleanup_bids_for_cancelled_lots(auction) if not set([i.status for i in auction.lots]).difference(set(['unsuccessful', 'cancelled'])): auction.status = 'unsuccessful' else: if auction.numberOfBids < 2: if auction.auctionPeriod and auction.auctionPeriod.startDate: auction.auctionPeriod.startDate = None auction.status = 'unsuccessful'
def check_bids(request): auction = request.validated['auction'] adapter = request.registry.getAdapter(auction, IAuctionManager) if auction.lots: [ setattr(i.auctionPeriod, 'startDate', None) for i in auction.lots if i.numberOfBids < 2 and i.auctionPeriod and i.auctionPeriod.startDate ] [ setattr(i, 'status', 'unsuccessful') for i in auction.lots if i.numberOfBids < 2 and i.status == 'active' ] cleanup_bids_for_cancelled_lots(auction) if not set([i.status for i in auction.lots]).difference( set(['unsuccessful', 'cancelled'])): adapter.pendify_auction_status('unsuccessful') else: if auction.numberOfBids < 2: if auction.auctionPeriod and auction.auctionPeriod.startDate: auction.auctionPeriod.startDate = None adapter.pendify_auction_status('unsuccessful')
def check_bids(request): auction = request.validated['auction'] if auction.lots: [ setattr(i.auctionPeriod, 'startDate', None) for i in auction.lots if i.numberOfBids < 2 and i.auctionPeriod and i.auctionPeriod.startDate ] [ setattr(i, 'status', 'unsuccessful') for i in auction.lots if i.numberOfBids < 2 and i.status == 'active' ] cleanup_bids_for_cancelled_lots(auction) if not set([i.status for i in auction.lots]).difference( set(['unsuccessful', 'cancelled'])): auction.status = 'unsuccessful' else: if auction.auctionPeriod: if auction.numberOfBids < auction.minNumberOfQualifiedBids: auction.auctionPeriod.startDate = None auction.status = 'unsuccessful' elif auction.numberOfBids == 1: auction.auctionPeriod.startDate = None request.content_configurator.start_awarding()