예제 #1
0
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