コード例 #1
0
 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)
         }
コード例 #2
0
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'
コード例 #3
0
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')
コード例 #4
0
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()