def validate_rectification_period_editing(request, **kwargs): if request.context.status == 'active.tendering' and request.authenticated_role not in [ 'chronograph', 'Administrator' ]: auction = request.validated['auction'] rectificationPeriod = auction.rectificationPeriod or generate_rectificationPeriod( auction) if rectificationPeriod.endDate.astimezone(TZ) < get_now(): request.errors.add( 'body', 'data', 'Auction can be edited only during the rectification period: from ({}) to ({}).' .format(rectificationPeriod.startDate.isoformat(), rectificationPeriod.endDate.isoformat())) request.errors.status = 403 raise error_handler(request)
def get_item(parent, key, request): request.validated['{}_id'.format(key)] = request.matchdict['{}_id'.format(key)] items = [i for i in getattr(parent, '{}s'.format(key), []) if i.id == request.matchdict['{}_id'.format(key)]] if not items: from openprocurement.auctions.core.utils import error_handler request.errors.add('url', '{}_id'.format(key), 'Not Found') request.errors.status = 404 raise error_handler(request.errors) else: if key == 'document': request.validated['{}s'.format(key)] = items item = items[-1] request.validated[key] = item request.validated['id'] = request.matchdict['{}_id'.format(key)] item.__parent__ = parent return item