def collection_post(self): """Post a complaint for award """ tender = self.request.validated['tender'] if tender.status not in ['active.qualification', 'active.awarded']: self.request.errors.add( 'body', 'data', 'Can\'t add complaint in current ({}) tender status'.format( tender.status)) self.request.errors.status = 403 return if self.request.context.complaintPeriod and \ (self.request.context.complaintPeriod.startDate and self.request.context.complaintPeriod.startDate > get_now() or self.request.context.complaintPeriod.endDate and self.request.context.complaintPeriod.endDate < get_now()): self.request.errors.add( 'body', 'data', 'Can add complaint only in complaintPeriod') self.request.errors.status = 403 return complaint_data = self.request.validated['data'] complaint = Complaint(complaint_data) self.request.context.complaints.append(complaint) if save_tender(self.request): update_journal_handler_params({'complaint_id': complaint.id}) LOGGER.info('Created tender award complaint {}'.format( complaint.id), extra={'MESSAGE_ID': 'tender_award_complaint_create'}) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url( 'Tender Award Complaints', tender_id=tender.id, award_id=self.request.validated['award_id'], complaint_id=complaint['id']) return {'data': complaint.serialize("view")}
def collection_post(self): """Post a complaint for award """ tender = self.request.validated['tender'] if tender.status not in ['active.qualification', 'active.awarded']: self.request.errors.add('body', 'data', 'Can\'t add complaint in current tender status') self.request.errors.status = 403 return complaint_data = self.request.validated['data'] complaint = Complaint(complaint_data) self.request.validated['award'].complaints.append(complaint) save_tender(self.request) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url('Tender Award Complaints', tender_id=tender.id, award_id=self.request.validated['award_id'], complaint_id=complaint['id']) return {'data': complaint.serialize("view")}
def collection_post(self): """Post a complaint """ tender = self.request.validated['tender'] if tender.status not in ['active.enquiries', 'active.tendering', 'active.auction', 'active.qualification', 'active.awarded']: self.request.errors.add('body', 'data', 'Can\'t add complaint in current tender status') self.request.errors.status = 403 return complaint_data = filter_data(self.request.validated['data']) complaint = Complaint(complaint_data) src = tender.serialize("plain") tender.complaints.append(complaint) save_tender(tender, src, self.request) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url('Tender Complaints', tender_id=tender.id, id=complaint['id']) return {'data': complaint.serialize("view")}
def collection_post(self): """Post a complaint """ tender = self.request.validated['tender'] if tender.status not in ['active.enquiries', 'active.tendering']: self.request.errors.add('body', 'data', 'Can\'t add complaint in current ({}) tender status'.format(tender.status)) self.request.errors.status = 403 return complaint_data = self.request.validated['data'] complaint = Complaint(complaint_data) complaint.__parent__ = self.request.context tender.complaints.append(complaint) if save_tender(self.request): LOGGER.info('Created tender complaint {}'.format(complaint.id), extra=context_unpack(self.request, {'MESSAGE_ID': 'tender_complaint_create'}, {'complaint_id': complaint.id})) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url('Tender Complaints', tender_id=tender.id, complaint_id=complaint.id) return {'data': complaint.serialize("view")}
def collection_post(self): """Post a complaint for award """ tender = self.request.validated["tender"] if tender.status not in ["active.qualification", "active.awarded"]: self.request.errors.add( "body", "data", "Can't add complaint in current ({}) tender status".format(tender.status) ) self.request.errors.status = 403 return if any([i.status != "active" for i in tender.lots if i.id == self.request.context.lotID]): self.request.errors.add("body", "data", "Can add complaint only in active lot status") self.request.errors.status = 403 return if self.request.context.complaintPeriod and ( self.request.context.complaintPeriod.startDate and self.request.context.complaintPeriod.startDate > get_now() or self.request.context.complaintPeriod.endDate and self.request.context.complaintPeriod.endDate < get_now() ): self.request.errors.add("body", "data", "Can add complaint only in complaintPeriod") self.request.errors.status = 403 return complaint_data = self.request.validated["data"] complaint = Complaint(complaint_data) complaint.__parent__ = self.request.context self.request.context.complaints.append(complaint) if save_tender(self.request): LOGGER.info( "Created tender award complaint {}".format(complaint.id), extra=context_unpack( self.request, {"MESSAGE_ID": "tender_award_complaint_create"}, {"complaint_id": complaint.id} ), ) self.request.response.status = 201 self.request.response.headers["Location"] = self.request.route_url( "Tender Award Complaints", tender_id=tender.id, award_id=self.request.validated["award_id"], complaint_id=complaint["id"], ) return {"data": complaint.serialize("view")}
def collection_post(self): """Post a complaint """ tender = self.request.validated['tender'] if tender.status not in [ 'active.enquiries', 'active.tendering', 'active.auction', 'active.qualification', 'active.awarded' ]: self.request.errors.add( 'body', 'data', 'Can\'t add complaint in current tender status') self.request.errors.status = 403 return complaint_data = filter_data(self.request.validated['data']) complaint = Complaint(complaint_data) src = tender.serialize("plain") tender.complaints.append(complaint) save_tender(tender, src, self.request) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url( 'Tender Complaints', tender_id=tender.id, id=complaint['id']) return {'data': complaint.serialize("view")}
def collection_post(self): """Post a complaint """ tender = self.request.validated["tender"] if tender.status not in ["active.enquiries", "active.tendering"]: self.request.errors.add( "body", "data", "Can't add complaint in current ({}) tender status".format(tender.status) ) self.request.errors.status = 403 return complaint_data = self.request.validated["data"] complaint = Complaint(complaint_data) tender.complaints.append(complaint) if save_tender(self.request): update_journal_handler_params({"complaint_id": complaint.id}) LOGGER.info( "Created tender complaint {}".format(complaint.id), extra={"MESSAGE_ID": "tender_complaint_create"} ) self.request.response.status = 201 self.request.response.headers["Location"] = self.request.route_url( "Tender Complaints", tender_id=tender.id, complaint_id=complaint.id ) return {"data": complaint.serialize("view")}
def collection_post(self): """Post a complaint """ tender = self.request.validated['tender'] if tender.status not in ['active.enquiries', 'active.tendering']: self.request.errors.add( 'body', 'data', 'Can\'t add complaint in current ({}) tender status'.format( tender.status)) self.request.errors.status = 403 return complaint_data = self.request.validated['data'] complaint = Complaint(complaint_data) tender.complaints.append(complaint) if save_tender(self.request): update_journal_handler_params({'complaint_id': complaint.id}) LOGGER.info('Created tender complaint {}'.format(complaint.id), extra={'MESSAGE_ID': 'tender_complaint_create'}) self.request.response.status = 201 self.request.response.headers['Location'] = self.request.route_url( 'Tender Complaints', tender_id=tender.id, complaint_id=complaint.id) return {'data': complaint.serialize("view")}