From de246f7d4abc421553f21da253847970e96fdc79 Mon Sep 17 00:00:00 2001 From: smithumble Date: Mon, 16 Aug 2021 00:55:51 +0300 Subject: [PATCH 01/17] Change multi contract amount validation. Disallow award cancellation on active related contract. --- .../tender/belowthreshold/tests/contract.py | 2 + .../belowthreshold/tests/contract_blanks.py | 66 ++++++++++++++----- .../tender/belowthreshold/utils.py | 22 ++++++- .../tender/belowthreshold/views/award.py | 27 +++----- .../tender/cfaselectionua/tests/contract.py | 2 + .../tender/cfaselectionua/views/award.py | 6 +- .../tests/stage2/contract.py | 3 + src/openprocurement/tender/core/validation.py | 22 ++----- .../tender/limited/tests/contract.py | 2 + .../tender/limited/views/award.py | 22 ++----- .../tender/openeu/tests/contract.py | 2 + .../tender/openua/tests/contract.py | 2 + .../tender/openua/views/award.py | 18 ++--- .../tender/openuadefense/views/award.py | 18 ++--- .../tender/pricequotation/tests/contract.py | 2 + .../tender/pricequotation/views/award.py | 5 +- .../tender/simpledefense/tests/contract.py | 2 + 17 files changed, 118 insertions(+), 105 deletions(-) diff --git a/src/openprocurement/tender/belowthreshold/tests/contract.py b/src/openprocurement/tender/belowthreshold/tests/contract.py index 617da71019..ffb6b18191 100644 --- a/src/openprocurement/tender/belowthreshold/tests/contract.py +++ b/src/openprocurement/tender/belowthreshold/tests/contract.py @@ -50,6 +50,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) @@ -292,6 +293,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) class TenderLotContractMultiBuyersResourceTest(TenderContentWebTest): diff --git a/src/openprocurement/tender/belowthreshold/tests/contract_blanks.py b/src/openprocurement/tender/belowthreshold/tests/contract_blanks.py index dc24749a1a..df1b689af9 100644 --- a/src/openprocurement/tender/belowthreshold/tests/contract_blanks.py +++ b/src/openprocurement/tender/belowthreshold/tests/contract_blanks.py @@ -213,20 +213,6 @@ def patch_tender_multi_contracts(self): self.assertEqual(response.json["data"]["value"]["amount"], 190) self.assertEqual(response.json["data"]["value"]["amountNet"], 185) - # overall amountNet/amount % -> (195 + 140) / (200 + 190) = 0.85 >= 0.8 - response = self.app.patch_json( - "/tenders/{}/contracts/{}?acc_token={}".format(self.tender_id, contracts[1]["id"], self.tender_token), - {"data": {"value": {"amount": 190, "amountNet": 140}}}, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["value"]["amount"], 190) - self.assertEqual(response.json["data"]["value"]["amountNet"], 140) - - response = self.app.patch_json( - "/tenders/{}/contracts/{}?acc_token={}".format(self.tender_id, contracts[1]["id"], self.tender_token), - {"data": {"value": {"amount": 190, "amountNet": 140}}}, - ) - # prepare contract for activating doc = self.db.get(self.tender_id) for i in doc.get("awards", []): @@ -236,8 +222,6 @@ def patch_tender_multi_contracts(self): doc['contracts'][0]['value']['amountNet'] = str(float(doc['contracts'][0]['value']['amount']) - 1) self.db.save(doc) - response = self.app.get("/tenders/{}".format(self.tender_id)) - # in case any contract become active and there are no pending contracts -> tender should have complete status response = self.app.patch_json( "/tenders/{}/contracts/{}?acc_token={}".format(self.tender_id, contracts[0]["id"], self.tender_token), @@ -320,6 +304,56 @@ def patch_tender_multi_contracts_cancelled(self): self.assertEqual(response.json["data"]["status"], "cancelled") +def patch_tender_multi_contracts_active_cancelled(self): + contracts_response = self.app.get("/tenders/{}/contracts".format(self.tender_id)) + contracts = contracts_response.json["data"] + self.assertEqual(len(contracts), 2) + + # patch 1st contract + response = self.app.patch_json( + "/tenders/{}/contracts/{}?acc_token={}".format(self.tender_id, contracts[0]["id"], self.tender_token), + {"data": {"value": {"amount": 200, "amountNet": 195}}}, + ) + self.assertEqual(response.status, "200 OK") + self.assertEqual(response.json["data"]["value"]["amount"], 200) + self.assertEqual(response.json["data"]["value"]["amountNet"], 195) + + # prepare contract for activating + doc = self.db.get(self.tender_id) + for i in doc.get("awards", []): + if 'complaintPeriod' in i: + i["complaintPeriod"]["endDate"] = i["complaintPeriod"]["startDate"] + if doc['contracts'][0]['value']['valueAddedTaxIncluded']: + doc['contracts'][0]['value']['amountNet'] = str(float(doc['contracts'][0]['value']['amount']) - 1) + self.db.save(doc) + + # activate 1st contract + response = self.app.patch_json( + "/tenders/{}/contracts/{}?acc_token={}".format(self.tender_id, contracts[0]["id"], self.tender_token), + {"data": {"status": "active"}} + ) + self.assertEqual(response.status, "200 OK") + + # try to cancel award + response = self.app.patch_json( + "/tenders/{}/awards/{}?acc_token={}".format( + self.tender_id, self.award_id, self.tender_token + ), + {"data": {"status": "cancelled"}}, + status=403 + ) + self.assertEqual(response.status, "403 Forbidden") + self.assertEqual( + response.json["errors"], [ + { + "location": "body", + "name": "data", + "description": "Can\'t cancel award contract in active status" + } + ] + ) + + def create_tender_contract_in_complete_status(self): self.app.authorization = ("Basic", ("token", "")) response = self.app.post_json( diff --git a/src/openprocurement/tender/belowthreshold/utils.py b/src/openprocurement/tender/belowthreshold/utils.py index 52f45df41e..431c191bfe 100644 --- a/src/openprocurement/tender/belowthreshold/utils.py +++ b/src/openprocurement/tender/belowthreshold/utils.py @@ -6,7 +6,7 @@ NEW_DEFENSE_COMPLAINTS_TO, MULTI_CONTRACTS_REQUIRED_FROM, ) -from openprocurement.api.utils import get_now, context_unpack +from openprocurement.api.utils import get_now, context_unpack, raise_operation_error from openprocurement.tender.core.utils import ( cleanup_bids_for_cancelled_lots, remove_draft_bids, @@ -417,3 +417,23 @@ def add_next_award(request): else: tender.awardPeriod.endDate = now tender.status = "active.awarded" + + +def set_award_contracts_cancelled(request, award): + tender = request.validated["tender"] + for contract in tender.contracts: + if contract.awardID == award.id: + if contract.status != "active": + contract.status = "cancelled" + else: + raise_operation_error( + request, + "Can't cancel award contract in active status" + ) + +def set_award_complaints_cancelled(request, award, now): + for complaint in award.complaints: + if complaint.status not in ["invalid", "resolved", "declined"]: + complaint.status = "cancelled" + complaint.cancellationReason = "cancelled" + complaint.dateCanceled = now diff --git a/src/openprocurement/tender/belowthreshold/views/award.py b/src/openprocurement/tender/belowthreshold/views/award.py index cce1f3bc61..fcef7dbeb6 100644 --- a/src/openprocurement/tender/belowthreshold/views/award.py +++ b/src/openprocurement/tender/belowthreshold/views/award.py @@ -17,7 +17,10 @@ from openprocurement.tender.belowthreshold.constants import STAND_STILL_TIME -from openprocurement.tender.belowthreshold.utils import add_next_award, add_contracts +from openprocurement.tender.belowthreshold.utils import ( + add_next_award, add_contracts, set_award_contracts_cancelled, + set_award_complaints_cancelled, +) from openprocurement.tender.belowthreshold.validation import ( validate_create_award_only_for_active_lot, @@ -330,14 +333,8 @@ def patch(self): elif award_status == "active" and award.status == "cancelled": if award.complaintPeriod.endDate > now: award.complaintPeriod.endDate = now - for j in award.complaints: - if j.status not in ["invalid", "resolved", "declined"]: - j.status = "cancelled" - j.cancellationReason = "cancelled" - j.dateCanceled = now - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_complaints_cancelled(self.request, award, now) + set_award_contracts_cancelled(self.request, award) add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": award.complaintPeriod.endDate = calculate_tender_business_date(get_now(), STAND_STILL_TIME, tender, True) @@ -351,22 +348,14 @@ def patch(self): tender.status = "active.qualification" tender.awardPeriod.endDate = None award.complaintPeriod.endDate = now - cancelled_awards = [] for i in tender.awards[tender.awards.index(award):]: if i.lotID != award.lotID: continue if i.complaintPeriod and (not i.complaintPeriod.endDate or i.complaintPeriod.endDate > now): i.complaintPeriod.endDate = now i.status = "cancelled" - for j in i.complaints: - if j.status not in ["invalid", "resolved", "declined"]: - j.status = "cancelled" - j.cancellationReason = "cancelled" - j.dateCanceled = now - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_complaints_cancelled(self.request, i, now) + set_award_contracts_cancelled(self.request, i) add_next_award(self.request) elif self.request.authenticated_role != "Administrator" and not ( award_status == "pending" and award.status == "pending" diff --git a/src/openprocurement/tender/cfaselectionua/tests/contract.py b/src/openprocurement/tender/cfaselectionua/tests/contract.py index e006dc1ef5..e37aaeab30 100644 --- a/src/openprocurement/tender/cfaselectionua/tests/contract.py +++ b/src/openprocurement/tender/cfaselectionua/tests/contract.py @@ -50,6 +50,7 @@ lot2_patch_tender_contract_document_by_supplier, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) @@ -245,6 +246,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): diff --git a/src/openprocurement/tender/cfaselectionua/views/award.py b/src/openprocurement/tender/cfaselectionua/views/award.py index bcf24a1718..fd08c849e4 100644 --- a/src/openprocurement/tender/cfaselectionua/views/award.py +++ b/src/openprocurement/tender/cfaselectionua/views/award.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from openprocurement.api.utils import get_now, json_view, APIResource, context_unpack, raise_operation_error -from openprocurement.tender.belowthreshold.utils import add_contracts, add_next_award +from openprocurement.tender.belowthreshold.utils import add_contracts, add_next_award, set_award_contracts_cancelled from openprocurement.tender.core.utils import ( save_tender, @@ -315,9 +315,7 @@ def patch(self): add_contracts(self.request, award) add_next_award(self.request) elif award_status == "active" and award.status == "cancelled": - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": cancelled_awards_same_bid = [ diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/contract.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/contract.py index a9042f64ac..997ad41c01 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/contract.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/contract.py @@ -36,6 +36,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) from openprocurement.tender.openua.tests.contract_blanks import ( # TenderStage2EU(UA)ContractResourceTest @@ -286,6 +287,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) class TenderContractUAStage2MultiBuyersResourceTest(BaseCompetitiveDialogUAStage2ContentWebTest): @@ -299,6 +301,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): diff --git a/src/openprocurement/tender/core/validation.py b/src/openprocurement/tender/core/validation.py index cfae6c52b3..614aaf475d 100644 --- a/src/openprocurement/tender/core/validation.py +++ b/src/openprocurement/tender/core/validation.py @@ -1634,26 +1634,14 @@ def validate_update_contract_value_with_award(request, **kwargs): raise_operation_error(request, "Amount should be less or equal to awarded amount", name="value") -def validate_update_contract_value_amount( - request, name="value", allow_equal=False, scope="tendering", **kwargs -): +def validate_update_contract_value_amount(request, name="value", allow_equal=False, **kwargs): data = request.validated["data"] contract_value = data.get(name) - updated_value = data.get("value") or data.get(name) - + value = data.get("value") or data.get(name) if contract_value and requested_fields_changes(request, (name, "status")): - - if scope == "contracting" or not request.validated.get("tender"): - _contracts_values = [contract_value] - else: - _contracts_values = get_contracts_values_related_to_patched_contract( - request.validated["tender"].contracts, request.validated["id"], - updated_value, request.context.awardID - ) - - amount = to_decimal(sum([value.get("amount", 0) for value in _contracts_values])) - amount_net = to_decimal(sum([value.get("amountNet", 0) for value in _contracts_values])) - tax_included = updated_value.get("valueAddedTaxIncluded") + amount = to_decimal(contract_value.get("amount")) + amount_net = to_decimal(contract_value.get("amountNet")) + tax_included = value.get("valueAddedTaxIncluded") if not (amount == 0 and amount_net == 0): if tax_included: diff --git a/src/openprocurement/tender/limited/tests/contract.py b/src/openprocurement/tender/limited/tests/contract.py index 608ec0ee21..defc270ba3 100644 --- a/src/openprocurement/tender/limited/tests/contract.py +++ b/src/openprocurement/tender/limited/tests/contract.py @@ -50,6 +50,7 @@ patch_contract_single_item_unit_value_with_status, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) @@ -476,6 +477,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) class TenderNegotiationMultiBuyersContractResourceTest(TenderContractMultiBuyersResourceTest): diff --git a/src/openprocurement/tender/limited/views/award.py b/src/openprocurement/tender/limited/views/award.py index d51cdc5468..e428081177 100644 --- a/src/openprocurement/tender/limited/views/award.py +++ b/src/openprocurement/tender/limited/views/award.py @@ -8,7 +8,7 @@ error_handler, raise_operation_error, ) -from openprocurement.tender.belowthreshold.utils import add_contracts +from openprocurement.tender.belowthreshold.utils import add_contracts, set_award_contracts_cancelled from openprocurement.tender.core.utils import ( apply_patch, @@ -316,9 +316,7 @@ def patch(self): add_contracts(self.request, award) # add_next_award(self.request) elif award_status == "active" and award.status == "cancelled": - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) # add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": pass @@ -547,23 +545,17 @@ def patch(self): and award.status == "cancelled" and any([i.status == "satisfied" for i in award.complaints]) ): - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue if i.complaintPeriod and (not i.complaintPeriod.endDate or i.complaintPeriod.endDate > now): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) elif award_status == "active" and award.status == "cancelled": if award.complaintPeriod.endDate > now: award.complaintPeriod.endDate = now - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) elif award_status == "pending" and award.status == "unsuccessful": award.complaintPeriod = {"startDate": now.isoformat(), "endDate": now} elif ( @@ -571,17 +563,13 @@ def patch(self): and award.status == "cancelled" and any([i.status == "satisfied" for i in award.complaints]) ): - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue if i.complaintPeriod and (not i.complaintPeriod.endDate or i.complaintPeriod.endDate > now): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) elif award_status != award.status: raise_operation_error(self.request, "Can't update award in current ({}) status".format(award_status)) elif self.request.authenticated_role != "Administrator" and award_status != "pending": diff --git a/src/openprocurement/tender/openeu/tests/contract.py b/src/openprocurement/tender/openeu/tests/contract.py index d73f8780fb..08e4d5d05a 100644 --- a/src/openprocurement/tender/openeu/tests/contract.py +++ b/src/openprocurement/tender/openeu/tests/contract.py @@ -24,6 +24,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) from openprocurement.tender.openua.tests.contract_blanks import ( @@ -146,6 +147,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): diff --git a/src/openprocurement/tender/openua/tests/contract.py b/src/openprocurement/tender/openua/tests/contract.py index 59a002a886..d47ea8d020 100644 --- a/src/openprocurement/tender/openua/tests/contract.py +++ b/src/openprocurement/tender/openua/tests/contract.py @@ -36,6 +36,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) @@ -171,6 +172,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): diff --git a/src/openprocurement/tender/openua/views/award.py b/src/openprocurement/tender/openua/views/award.py index 1443cc7704..4a2b2c6fe6 100644 --- a/src/openprocurement/tender/openua/views/award.py +++ b/src/openprocurement/tender/openua/views/award.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from openprocurement.tender.belowthreshold.utils import add_contracts, add_next_award +from openprocurement.tender.belowthreshold.utils import add_contracts, add_next_award, set_award_contracts_cancelled from openprocurement.tender.core.validation import ( validate_patch_award_data, validate_update_award_only_for_active_lots, @@ -125,24 +125,18 @@ def patch(self): and award.status == "cancelled" and any([i.status == "satisfied" for i in award.complaints]) ): - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue if i.complaintPeriod and (not i.complaintPeriod.endDate or i.complaintPeriod.endDate > now): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) add_next_award(self.request) elif award_status == "active" and award.status == "cancelled": if award.complaintPeriod.endDate > now: award.complaintPeriod.endDate = now - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": award.complaintPeriod.endDate = calculate_complaint_business_date(now, STAND_STILL_TIME, tender) @@ -157,17 +151,13 @@ def patch(self): tender.awardPeriod.endDate = None if award.complaintPeriod.endDate > now: award.complaintPeriod.endDate = now - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue if i.complaintPeriod and (not i.complaintPeriod.endDate or i.complaintPeriod.endDate > now): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) add_next_award(self.request) elif self.request.authenticated_role != "Administrator" and not ( award_status == "pending" and award.status == "pending" diff --git a/src/openprocurement/tender/openuadefense/views/award.py b/src/openprocurement/tender/openuadefense/views/award.py index 66b9b31aaa..61bb951382 100644 --- a/src/openprocurement/tender/openuadefense/views/award.py +++ b/src/openprocurement/tender/openuadefense/views/award.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from openprocurement.api.utils import get_now, raise_operation_error -from openprocurement.tender.belowthreshold.utils import add_contracts +from openprocurement.tender.belowthreshold.utils import add_contracts, set_award_contracts_cancelled from openprocurement.tender.core.utils import ( apply_patch, @@ -136,7 +136,6 @@ def patch(self): and award.status == "cancelled" and any([i.status == "satisfied" for i in award.complaints]) ): - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue @@ -147,10 +146,7 @@ def patch(self): ): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) add_next_award(self.request) elif award_status == "active" and award.status == "cancelled": if ( @@ -158,9 +154,7 @@ def patch(self): and award.complaintPeriod.endDate > now ): award.complaintPeriod.endDate = now - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": if not new_defence_complaints: @@ -182,7 +176,6 @@ def patch(self): and award.complaintPeriod.endDate > now ): award.complaintPeriod.endDate = now - cancelled_awards = [] for i in tender.awards: if i.lotID != award.lotID: continue @@ -193,10 +186,7 @@ def patch(self): ): i.complaintPeriod.endDate = now i.status = "cancelled" - cancelled_awards.append(i.id) - for i in tender.contracts: - if i.awardID in cancelled_awards: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, i) add_next_award(self.request) elif self.request.authenticated_role != "Administrator" and not ( award_status == "pending" and award.status == "pending" diff --git a/src/openprocurement/tender/pricequotation/tests/contract.py b/src/openprocurement/tender/pricequotation/tests/contract.py index 7f9548fedd..3fd190850c 100644 --- a/src/openprocurement/tender/pricequotation/tests/contract.py +++ b/src/openprocurement/tender/pricequotation/tests/contract.py @@ -19,6 +19,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) from openprocurement.tender.pricequotation.tests.contract_blanks import ( patch_tender_contract, @@ -97,6 +98,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): diff --git a/src/openprocurement/tender/pricequotation/views/award.py b/src/openprocurement/tender/pricequotation/views/award.py index 1258b8a507..178b8e2749 100644 --- a/src/openprocurement/tender/pricequotation/views/award.py +++ b/src/openprocurement/tender/pricequotation/views/award.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from openprocurement.api.utils import\ get_now, json_view, context_unpack, raise_operation_error +from openprocurement.tender.belowthreshold.utils import set_award_contracts_cancelled from openprocurement.tender.core.utils import\ optendersresource, save_tender, apply_patch from openprocurement.tender.belowthreshold.views.award import\ @@ -87,9 +88,7 @@ def patch(self): add_contracts(self.request, award, now) add_next_award(self.request) elif award_status == "active" and award.status == "cancelled": - for i in tender.contracts: - if i.awardID == award.id: - i.status = "cancelled" + set_award_contracts_cancelled(self.request, award) add_next_award(self.request) elif award_status == "pending" and award.status == "unsuccessful": if is_awarded: diff --git a/src/openprocurement/tender/simpledefense/tests/contract.py b/src/openprocurement/tender/simpledefense/tests/contract.py index 8854aa4dae..da497debf4 100644 --- a/src/openprocurement/tender/simpledefense/tests/contract.py +++ b/src/openprocurement/tender/simpledefense/tests/contract.py @@ -37,6 +37,7 @@ patch_contract_multi_items_unit_value, patch_tender_multi_contracts, patch_tender_multi_contracts_cancelled, + patch_tender_multi_contracts_active_cancelled, ) @@ -149,6 +150,7 @@ def setUp(self): test_patch_tender_multi_contracts = snitch(patch_tender_multi_contracts) test_patch_tender_multi_contracts_cancelled = snitch(patch_tender_multi_contracts_cancelled) + test_patch_tender_multi_contracts_active_cancelled = snitch(patch_tender_multi_contracts_active_cancelled) def suite(): suite = unittest.TestSuite() From 3d6df713259de1dc374142cba6efa83522e29be9 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Fri, 20 Aug 2021 11:56:02 +0300 Subject: [PATCH 02/17] Removeing bid default lists --- .../add-requirement-response-from-bid.http | 5 ----- .../delete-requirement-response-from-bid.http | 5 ----- .../patch-requirement-response-from-bid.http | 5 ----- .../requirement-response-basic-data-1.http | 5 ----- .../requirement-response-basic-data-2.http | 5 ----- .../requirement-response-basic-data-3.http | 5 ----- .../http/tutorial/activate-bidder.http | 5 +---- .../http/tutorial/register-2nd-bidder.http | 2 -- .../http/tutorial/register-bidder.http | 3 --- .../http/multiple_lots_tutorial/bid-lot1.http | 5 ----- .../http/multiple_lots_tutorial/bid-lot2.http | 5 ----- .../openeu/http/tutorial/activate-bidder.http | 6 ------ .../add-requirement-responses-to-bidder.http | 6 ------ .../http/tutorial/register-2nd-bidder.http | 6 ------ .../http/tutorial/register-3rd-bidder.http | 2 -- .../openeu/http/tutorial/register-bidder.http | 6 ------ .../openua/http/activate-bidder.http | 5 +---- .../add-requirement-responses-to-bidder.http | 5 +---- .../openua/http/register-2nd-bidder.http | 8 +------ .../openua/http/register-bidder.http | 3 --- .../tender/core/procedure/models/bid.py | 6 +++--- .../tender/core/procedure/serializers/base.py | 3 ++- .../tender/core/procedure/serializers/bid.py | 15 ------------- .../tender/core/procedure/state.py | 10 +++++---- .../tender/core/procedure/validation.py | 21 ++++++++++--------- .../tender/openeu/procedure/models/bid.py | 10 ++++----- .../tender/openeu/tests/bid_blanks.py | 3 +++ .../tender/openua/procedure/models/bid.py | 6 +++--- 28 files changed, 37 insertions(+), 134 deletions(-) diff --git a/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http index 6ad9381820..ee6700d51c 100644 --- a/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http @@ -129,8 +129,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -143,9 +141,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http index 42c483a4af..30fc262af0 100644 --- a/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http @@ -46,8 +46,6 @@ X-Content-Type-Options: nosniff "id": "fca5f46a77484fe09b1038555f0e2bb2", "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -60,9 +58,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http index 021e481540..8eecbfe135 100644 --- a/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http @@ -129,8 +129,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -143,9 +141,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http index 24354b4764..b6c13ead1e 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http @@ -89,8 +89,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -103,9 +101,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http index a020b5c824..01909fd125 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http @@ -169,8 +169,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -183,9 +181,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http index ce615515a9..f19c4dcfca 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http @@ -129,8 +129,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], "documents": [ { "id": "6f732f2a844d4abeb87318952e38e5af", @@ -143,9 +141,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/http/tutorial/activate-bidder.http b/docs/source/tendering/http/tutorial/activate-bidder.http index 5af12c393d..9dc387c0b0 100644 --- a/docs/source/tendering/http/tutorial/activate-bidder.http +++ b/docs/source/tendering/http/tutorial/activate-bidder.http @@ -15,13 +15,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "parameters": [], "value": { "amount": 500.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "lotValues": [], "tenderers": [ { "name": "ДКП «Школяр»", @@ -47,8 +45,7 @@ X-Content-Type-Options: nosniff ], "status": "active", "id": "eae97159b1034bdb8a19a5815b52e1de", - "date": "2021-03-16T00:00:01+02:00", - "documents": [] + "date": "2021-03-16T00:00:01+02:00" } } diff --git a/docs/source/tendering/http/tutorial/register-2nd-bidder.http b/docs/source/tendering/http/tutorial/register-2nd-bidder.http index 5cec3a3a79..2424724bb9 100644 --- a/docs/source/tendering/http/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/http/tutorial/register-2nd-bidder.http @@ -83,8 +83,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "lotValues": [], "documents": [ { "hash": "md5:00000000000000000000000000000000", diff --git a/docs/source/tendering/http/tutorial/register-bidder.http b/docs/source/tendering/http/tutorial/register-bidder.http index 2e1e7d17b8..2f58a31501 100644 --- a/docs/source/tendering/http/tutorial/register-bidder.http +++ b/docs/source/tendering/http/tutorial/register-bidder.http @@ -70,10 +70,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "parameters": [], - "lotValues": [], "status": "draft", - "documents": [], "id": "eae97159b1034bdb8a19a5815b52e1de", "date": "2021-03-16T00:00:01+02:00" }, diff --git a/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot1.http b/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot1.http index dc2764dd87..df4fe64a55 100644 --- a/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot1.http +++ b/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot1.http @@ -72,7 +72,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "parameters": [], "lotValues": [ { "value": { @@ -86,10 +85,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "491e23c37ed44b8b85e972f227307b80", diff --git a/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot2.http b/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot2.http index 3eedd3577c..a0560d7a0d 100644 --- a/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot2.http +++ b/docs/source/tendering/openeu/http/multiple_lots_tutorial/bid-lot2.http @@ -78,7 +78,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], "lotValues": [ { "value": { @@ -102,10 +101,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "6a589730254f47ac99ab0eee03d6770f", diff --git a/docs/source/tendering/openeu/http/tutorial/activate-bidder.http b/docs/source/tendering/openeu/http/tutorial/activate-bidder.http index 48899c9a61..dfacf5f5d5 100644 --- a/docs/source/tendering/openeu/http/tutorial/activate-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/activate-bidder.http @@ -158,12 +158,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "pending" } diff --git a/docs/source/tendering/openeu/http/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/openeu/http/tutorial/add-requirement-responses-to-bidder.http index d321216ae6..35dfbfce5b 100644 --- a/docs/source/tendering/openeu/http/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/add-requirement-responses-to-bidder.http @@ -258,12 +258,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/openeu/http/tutorial/register-2nd-bidder.http b/docs/source/tendering/openeu/http/tutorial/register-2nd-bidder.http index bf6c4f9f15..98af0a6581 100644 --- a/docs/source/tendering/openeu/http/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/register-2nd-bidder.http @@ -71,12 +71,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "a7b50823159d46bface66972e91c6682", diff --git a/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http b/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http index 4f65db8ac6..93a646911a 100644 --- a/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http @@ -109,8 +109,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "lotValues": [], "documents": [ { "hash": "md5:00000000000000000000000000000000", diff --git a/docs/source/tendering/openeu/http/tutorial/register-bidder.http b/docs/source/tendering/openeu/http/tutorial/register-bidder.http index 4b952c14ef..8827297b58 100644 --- a/docs/source/tendering/openeu/http/tutorial/register-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/register-bidder.http @@ -73,12 +73,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "7b97714f142c430b98dd609d94a9e441", diff --git a/docs/source/tendering/openua/http/activate-bidder.http b/docs/source/tendering/openua/http/activate-bidder.http index 93447e8dd0..5dfd97b67b 100644 --- a/docs/source/tendering/openua/http/activate-bidder.http +++ b/docs/source/tendering/openua/http/activate-bidder.http @@ -159,10 +159,7 @@ X-Content-Type-Options: nosniff } ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [] + "subcontractingDetails": "ДКП «Орфей», Україна" } } diff --git a/docs/source/tendering/openua/http/add-requirement-responses-to-bidder.http b/docs/source/tendering/openua/http/add-requirement-responses-to-bidder.http index 571f96e55e..7d94204a13 100644 --- a/docs/source/tendering/openua/http/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/openua/http/add-requirement-responses-to-bidder.http @@ -259,10 +259,7 @@ X-Content-Type-Options: nosniff } ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [] + "subcontractingDetails": "ДКП «Орфей», Україна" } } diff --git a/docs/source/tendering/openua/http/register-2nd-bidder.http b/docs/source/tendering/openua/http/register-2nd-bidder.http index 8b29c97906..d831cfd38a 100644 --- a/docs/source/tendering/openua/http/register-2nd-bidder.http +++ b/docs/source/tendering/openua/http/register-2nd-bidder.http @@ -72,10 +72,7 @@ X-Content-Type-Options: nosniff } ], "status": "draft", - "lotValues": [], - "parameters": [], "selfQualified": true, - "documents": [], "id": "e655b89d64014a8dbe2668687696ed52", "date": "2021-03-16T00:00:00+02:00" }, @@ -1099,10 +1096,7 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, - "parameters": [], - "lotValues": [], - "documents": [] + "selfQualified": true } } diff --git a/docs/source/tendering/openua/http/register-bidder.http b/docs/source/tendering/openua/http/register-bidder.http index 0f0c82f26b..b5ebbdf473 100644 --- a/docs/source/tendering/openua/http/register-bidder.http +++ b/docs/source/tendering/openua/http/register-bidder.http @@ -74,10 +74,7 @@ X-Content-Type-Options: nosniff ], "status": "draft", "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], "selfQualified": true, - "documents": [], "id": "0f4edde39c8440589de23c8efb2c8fb8", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/src/openprocurement/tender/core/procedure/models/bid.py b/src/openprocurement/tender/core/procedure/models/bid.py index 0c02c62f98..ceed8021b8 100644 --- a/src/openprocurement/tender/core/procedure/models/bid.py +++ b/src/openprocurement/tender/core/procedure/models/bid.py @@ -87,10 +87,10 @@ def id(self): return uuid4().hex tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + lotValues = ListType(ModelType(PostLotValue, required=True)) status = StringType(choices=["active", "draft"]) - documents = ListType(ModelType(PostDocument, required=True), default=list) + documents = ListType(ModelType(PostDocument, required=True)) _old_default_status = "active" diff --git a/src/openprocurement/tender/core/procedure/serializers/base.py b/src/openprocurement/tender/core/procedure/serializers/base.py index d1de93246c..8bab0ee3d1 100644 --- a/src/openprocurement/tender/core/procedure/serializers/base.py +++ b/src/openprocurement/tender/core/procedure/serializers/base.py @@ -10,7 +10,8 @@ def __call__(self, data): @property def data(self) -> list: - return [self.cls(e).data for e in self._data] + if self._data: + return [self.cls(e).data for e in self._data] class BaseSerializer: diff --git a/src/openprocurement/tender/core/procedure/serializers/bid.py b/src/openprocurement/tender/core/procedure/serializers/bid.py index d034333d0d..a7c830851b 100644 --- a/src/openprocurement/tender/core/procedure/serializers/bid.py +++ b/src/openprocurement/tender/core/procedure/serializers/bid.py @@ -2,23 +2,8 @@ from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer -def value_amount_to_float(_, value): - if isinstance(value, dict) and "amount" in value: - value["amount"] = float(value["amount"]) - return value - - -def lot_value_serializer(s, values): - for item in values: - if "value" in item: - item["value"] = value_amount_to_float(s, item["value"]) - return values - - class BidSerializer(BaseSerializer): serializers = { - "value": value_amount_to_float, - "lotValues": lot_value_serializer, "documents": ListSerializer(ConfidentialDocumentSerializer), } private_fields = { diff --git a/src/openprocurement/tender/core/procedure/state.py b/src/openprocurement/tender/core/procedure/state.py index d73b9554e1..d821e4a1c5 100644 --- a/src/openprocurement/tender/core/procedure/state.py +++ b/src/openprocurement/tender/core/procedure/state.py @@ -22,8 +22,10 @@ def status_up(self, before, after): def on_post(self): self._data["date"] = self.now - for lot_value in self._data.get("lotValues", ""): - lot_value["date"] = self.now + lot_values = self._data.get("lotValues") + if lot_values: + for lot_value in lot_values: + lot_value["date"] = self.now def on_patch(self, before, after): # if value.amount is going to be changed -> update "date" @@ -33,8 +35,8 @@ def on_patch(self, before, after): after["date"] = self.now # the same as above, for lots - for after_lot in after.get("lotValues", ""): - for before_lot in before.get("lotValues", ""): + for after_lot in after.get("lotValues") or []: + for before_lot in before.get("lotValues") or []: if before_lot["relatedLot"] == after_lot["relatedLot"]: if float(before_lot["value"]["amount"]) != after_lot["value"]["amount"]: after_lot["date"] = self.now diff --git a/src/openprocurement/tender/core/procedure/validation.py b/src/openprocurement/tender/core/procedure/validation.py index aedfe2a9b4..b30d586813 100644 --- a/src/openprocurement/tender/core/procedure/validation.py +++ b/src/openprocurement/tender/core/procedure/validation.py @@ -100,16 +100,17 @@ def validate_data_documents(request, **kwargs): data = request.validated["data"] for key in data.keys(): if key == "documents" or "Documents" in key: - docs = [] - for document in data[key]: - # some magic, yep - route_kwargs = {"bid_id": data["id"]} - document = check_document_batch(request, document, key, route_kwargs) - docs.append(document) - - # replacing documents in request.validated["data"] - if docs: - data[key] = docs + if data[key]: + docs = [] + for document in data[key]: + # some magic, yep + route_kwargs = {"bid_id": data["id"]} + document = check_document_batch(request, document, key, route_kwargs) + docs.append(document) + + # replacing documents in request.validated["data"] + if docs: + data[key] = docs return data diff --git a/src/openprocurement/tender/openeu/procedure/models/bid.py b/src/openprocurement/tender/openeu/procedure/models/bid.py index 011be59aae..f8ee30f7ea 100644 --- a/src/openprocurement/tender/openeu/procedure/models/bid.py +++ b/src/openprocurement/tender/openeu/procedure/models/bid.py @@ -23,12 +23,12 @@ class PatchBid(BasePatchBid): class PostBid(BasePostBid): - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) - documents = ListType(ModelType(PostDocument, required=True), default=list) - financialDocuments = ListType(ModelType(PostDocument, required=True), default=list) - eligibilityDocuments = ListType(ModelType(PostDocument, required=True), default=list) - qualificationDocuments = ListType(ModelType(PostDocument, required=True), default=list) + documents = ListType(ModelType(PostDocument, required=True)) + financialDocuments = ListType(ModelType(PostDocument, required=True)) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) + qualificationDocuments = ListType(ModelType(PostDocument, required=True)) selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) diff --git a/src/openprocurement/tender/openeu/tests/bid_blanks.py b/src/openprocurement/tender/openeu/tests/bid_blanks.py index bb0424f963..1579fc91b2 100644 --- a/src/openprocurement/tender/openeu/tests/bid_blanks.py +++ b/src/openprocurement/tender/openeu/tests/bid_blanks.py @@ -208,6 +208,9 @@ def create_tender_bidder(self): "tenderers": [self.test_bids_data[0]["tenderers"][0]], "value": {"amount": 500}, "lotValues": None, "parameters": None, "documents": None, + "financialDocuments": None, + "eligibilityDocuments": None, + "qualificationDocuments": None, }) response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), diff --git a/src/openprocurement/tender/openua/procedure/models/bid.py b/src/openprocurement/tender/openua/procedure/models/bid.py index d039d74c4d..6b1a6b54a5 100644 --- a/src/openprocurement/tender/openua/procedure/models/bid.py +++ b/src/openprocurement/tender/openua/procedure/models/bid.py @@ -34,10 +34,10 @@ class PatchBid(UABidMixin, BasePatchBid, PatchBidResponsesMixin): class PostBid(UABidMixin, BasePostBid, PostBidResponsesMixin): - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) selfQualified = BooleanType(required=True, choices=[True]) - documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True), default=list) + documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True)) def validate_value(self, data, value): if data.get("status") != "draft": From 0c3d92a4c673ecc52c6afd399266fc34987e0ec0 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Fri, 30 Apr 2021 10:15:35 +0300 Subject: [PATCH 03/17] refactorinng bids and bid docs endpoinnts --- docs/source/contracting/http/set-active-award.http | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/contracting/http/set-active-award.http b/docs/source/contracting/http/set-active-award.http index f24daa19c0..8841a7ac06 100644 --- a/docs/source/contracting/http/set-active-award.http +++ b/docs/source/contracting/http/set-active-award.http @@ -1,7 +1,7 @@ -PATCH /api/2.5/tenders/27449ba567ee4755b723fd5d2248425f/awards/465daa0e35ef47a48a592b6abdf49562?acc_token=09fb3db5c4b0423685f58a6cf7176e7b HTTP/1.0 -Authorization: Bearer broker -Content-Length: 30 -Content-Type: application/json +PATCH /api/2.5/tenders/27449ba567ee4755b723fd5d2248425f/awards/465daa0e35ef47a48a592b6abdf49562?acc_token=09fb3db5c4b0423685f58a6cf7176e7b HTTP/1.0 +Authorization: Bearer broker +Content-Length: 30 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: { From f33308cff85eb87062f9e7297ad9f237f257bda4 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Fri, 30 Apr 2021 10:15:35 +0300 Subject: [PATCH 04/17] refactorinng bids and bid docs endpoinnts (All procedures) --- .../basic-actions/http/24hours/post-doc.http | 1 + .../basic-actions/http/24hours/put-doc.http | 3 +- .../document-list-private.http | 1 + .../document-list-public.http | 1 + .../tutorial/active-cancellation.http | 4 +- .../tutorial/patch-cancellation.http | 4 +- .../tender-contract-get-documents-again.http | 4 +- .../tender-contract-get-documents.http | 2 +- .../tutorial/tender-contract-sign.http | 4 +- .../tutorial/update-cancellation-doc.http | 4 +- .../tutorial/upload-cancellation-doc.http | 4 +- .../cfaua/tutorial/active-cancellation.http | 8 +- .../cfaua/tutorial/patch-cancellation.http | 6 +- .../cfaua/tutorial/pending-cancellation.http | 8 +- .../tender-agreement-get-documents-again.http | 12 +- .../tender-agreement-get-documents.http | 6 +- .../tender-agreement-patch-document.http | 8 +- .../tender-agreement-upload-document.http | 27 +- ...nder-agreement-upload-second-document.http | 27 +- .../tutorial/update-cancellation-doc.http | 25 +- .../tutorial/upload-cancellation-doc.http | 25 +- .../add-requirement-response-from-bid.http | 3 +- .../delete-requirement-response-from-bid.http | 3 +- .../patch-requirement-response-from-bid.http | 3 +- .../requirement-response-basic-data-1.http | 3 +- .../requirement-response-basic-data-2.http | 3 +- .../requirement-response-basic-data-3.http | 3 +- .../openeu/http/tutorial/auction-url.http | 2 +- ...bidder-activate-after-changing-tender.http | 16 +- .../http/tutorial/bidder-documents.http | 1 + .../tutorial/bidder-financial-documents.http | 18 +- .../tutorial/bidder-participation-url.http | 14 +- .../pre-qualification-confirmation.http | 2 +- .../http/tutorial/qualificated-bids-view.http | 2 +- .../http/tutorial/qualifications-listing.http | 2 +- ...oad-bid-eligibility-document-proposal.http | 11 +- ...pload-bid-financial-document-proposal.http | 11 +- .../tutorial/upload-bid-private-proposal.http | 1 + .../http/tutorial/upload-bid-proposal.http | 1 + ...d-bid-qualification-document-proposal.http | 11 +- ...bidder-activate-after-changing-tender.http | 3 +- .../openua/http/bidder-documents.http | 1 + .../openua/http/bidder-participation-url.http | 3 +- .../openua/http/post-evidence-document.http | 1 + .../openua/http/upload-bid-proposal.http | 1 + .../http/active-cancellation.http | 4 +- .../http/patch-cancellation.http | 4 +- .../tender-contract-get-documents-again.http | 4 +- .../http/tender-contract-get-documents.http | 2 +- .../http/tender-contract-sign.http | 4 +- .../http/update-cancellation-doc.http | 4 +- .../http/upload-cancellation-doc.http | 4 +- docs/tests/test_cfaua.py | 119 ++- docs/tests/test_competitivedialogue.py | 121 ++- docs/tests/test_defense.py | 10 +- docs/tests/test_esco.py | 60 +- .../belowthreshold/procedure/validation.py | 4 +- .../tender/belowthreshold/tests/base.py | 8 +- .../tender/cfaselectionua/includeme.py | 1 + .../cfaselectionua/procedure/__init__.py | 0 .../procedure/models/__init__.py | 0 .../cfaselectionua/procedure/models/bid.py | 29 + .../procedure/models/lot_value.py | 18 + .../procedure/models/parameter.py | 32 + .../cfaselectionua/procedure/serializers.py | 19 + .../tender/cfaselectionua/procedure/utils.py | 18 + .../cfaselectionua/procedure/validation.py | 87 ++ .../procedure/views/__init__.py | 0 .../cfaselectionua/procedure/views/bid.py | 100 ++ .../procedure/views/bid_document.py | 85 ++ .../tender/cfaselectionua/tests/bid.py | 18 +- .../tender/cfaselectionua/tests/bid_blanks.py | 339 ++---- .../tender/cfaselectionua/views/bid.py | 14 +- .../cfaselectionua/views/bid_document.py | 14 +- src/openprocurement/tender/cfaua/includeme.py | 1 + .../tender/cfaua/procedure/__init__.py | 0 .../tender/cfaua/procedure/models/__init__.py | 0 .../tender/cfaua/procedure/models/bid.py | 56 + .../cfaua/procedure/models/lot_value.py | 20 + .../tender/cfaua/procedure/serializers.py | 34 + .../tender/cfaua/procedure/state.py | 14 + .../tender/cfaua/procedure/validation.py | 51 + .../tender/cfaua/procedure/views/__init__.py | 0 .../tender/cfaua/procedure/views/bid.py | 92 ++ .../cfaua/procedure/views/bid_document.py | 257 +++++ src/openprocurement/tender/cfaua/tests/bid.py | 17 +- .../tender/cfaua/tests/bid_blanks.py | 961 +++++------------- src/openprocurement/tender/cfaua/views/bid.py | 14 +- .../tender/cfaua/views/bid_document.py | 56 +- .../tender/competitivedialogue/includeme.py | 2 + .../competitivedialogue/procedure/__init__.py | 0 .../procedure/models/__init__.py | 0 .../procedure/models/bid.py | 82 ++ .../procedure/models/document.py | 34 + .../procedure/models/lot_value.py | 32 + .../procedure/serializers.py | 38 + .../competitivedialogue/procedure/state.py | 13 + .../procedure/validation.py | 14 + .../procedure/views/__init__.py | 0 .../procedure/views/stage1/__init__.py | 0 .../procedure/views/stage1/bid.py | 120 +++ .../procedure/views/stage1/bid_document.py | 99 ++ .../procedure/views/stage2/__init__.py | 0 .../procedure/views/stage2/bid.py | 70 ++ .../procedure/views/stage2/bid_document.py | 64 ++ .../tender/competitivedialogue/tests/base.py | 6 + .../competitivedialogue/tests/stage1/bid.py | 28 +- .../tests/stage1/bid_blanks.py | 731 +++++-------- .../tests/stage1/cancellation.py | 7 +- .../tests/stage1/cancellation_blanks.py | 5 +- .../competitivedialogue/tests/stage1/lot.py | 64 +- .../tests/stage1/lot_blanks.py | 136 +-- .../competitivedialogue/tests/stage1/post.py | 11 +- .../tests/stage1/qualification_milestone.py | 5 +- .../tests/stage1/tender.py | 2 +- .../tests/stage1/tender_blanks.py | 5 +- .../competitivedialogue/tests/stage2/bid.py | 11 +- .../tests/stage2/bid_blanks.py | 140 +-- .../tests/stage2/cancellation.py | 2 + .../tests/stage2/cancellation_blanks.py | 5 +- .../tests/stage2/document.py | 31 - .../tender/competitivedialogue/utils.py | 8 +- .../competitivedialogue/views/stage1/bid.py | 28 +- .../views/stage1/bid_document.py | 28 +- .../competitivedialogue/views/stage2/bid.py | 28 +- .../views/stage2/bid_document.py | 70 +- .../tender/core/procedure/models/base.py | 11 +- .../tender/core/procedure/models/bid.py | 35 +- .../tender/core/procedure/models/lot_value.py | 13 + .../tender/core/procedure/models/parameter.py | 1 - .../core/procedure/models/req_response.py | 3 +- .../tender/core/procedure/state.py | 2 +- .../tender/core/procedure/utils.py | 5 +- .../tender/core/procedure/validation.py | 25 +- .../core/procedure/views/bid_document.py | 17 +- src/openprocurement/tender/esco/includeme.py | 1 + .../tender/esco/procedure/__init__.py | 0 .../tender/esco/procedure/models/__init__.py | 0 .../tender/esco/procedure/models/bid.py | 59 ++ .../tender/esco/procedure/models/lot_value.py | 41 + .../tender/esco/procedure/models/value.py | 121 +++ .../tender/esco/procedure/serializers.py | 35 + .../tender/esco/procedure/views/__init__.py | 0 .../tender/esco/procedure/views/bid.py | 104 ++ .../esco/procedure/views/bid_document.py | 50 + .../tender/esco/tests/award.py | 6 + src/openprocurement/tender/esco/tests/bid.py | 6 +- .../tender/esco/tests/bid_blanks.py | 39 +- src/openprocurement/tender/esco/views/bid.py | 14 +- .../tender/esco/views/bid_document.py | 56 +- .../tender/openeu/procedure/models/bid.py | 4 +- .../openeu/procedure/models/lot_value.py | 5 + .../tender/openeu/procedure/validation.py | 29 +- .../openeu/procedure/views/bid_document.py | 62 ++ .../tender/openeu/tests/bid_blanks.py | 15 - .../tender/openeu/views/bid_document.py | 42 +- .../tender/openua/procedure/models/bid.py | 34 +- .../openua/procedure/models/document.py | 3 +- .../openua/procedure/models/lot_value.py | 5 + .../openua/procedure/views/bid_document.py | 8 +- .../tender/openua/tests/bid_blanks.py | 82 +- .../tender/openua/tests/lot_blanks.py | 2 +- .../tender/openuadefense/includeme.py | 1 + .../openuadefense/procedure/__init__.py | 0 .../procedure/models/__init__.py | 0 .../openuadefense/procedure/models/bid.py | 55 + .../openuadefense/procedure/validation.py | 15 + .../openuadefense/procedure/views/__init__.py | 0 .../openuadefense/procedure/views/bid.py | 84 ++ .../procedure/views/bid_document.py | 100 ++ .../tender/openuadefense/tests/award.py | 4 + .../tender/openuadefense/tests/bid.py | 100 +- .../tender/openuadefense/views/bid.py | 14 +- .../openuadefense/views/bid_document.py | 14 +- .../tender/pricequotation/includeme.py | 1 + .../pricequotation/procedure/__init__.py | 0 .../procedure/models/__init__.py | 0 .../pricequotation/procedure/models/bid.py | 79 ++ .../procedure/models/req_response.py | 46 + .../pricequotation/procedure/validation.py | 23 + .../procedure/views/__init__.py | 0 .../pricequotation/procedure/views/bid.py | 77 ++ .../procedure/views/bid_document.py | 15 + .../tender/pricequotation/tests/bid.py | 2 +- .../tender/pricequotation/tests/bid_blanks.py | 76 +- .../tender/pricequotation/views/bid.py | 14 +- .../pricequotation/views/bid_document.py | 14 +- .../tender/simpledefense/includeme.py | 1 + .../simpledefense/procedure/__init__.py | 0 .../procedure/models/__init__.py | 0 .../simpledefense/procedure/models/bid.py | 21 + .../simpledefense/procedure/views/__init__.py | 0 .../simpledefense/procedure/views/bid.py | 69 ++ .../procedure/views/bid_document.py | 13 + .../tender/simpledefense/tests/award.py | 6 + .../tender/simpledefense/tests/bid.py | 46 +- .../tender/simpledefense/views/bid.py | 14 +- .../simpledefense/views/bid_document.py | 14 +- 198 files changed, 4277 insertions(+), 2493 deletions(-) create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/__init__.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/models/bid.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/models/lot_value.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/models/parameter.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/serializers.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/utils.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/validation.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/views/bid.py create mode 100644 src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py create mode 100644 src/openprocurement/tender/cfaua/procedure/__init__.py create mode 100644 src/openprocurement/tender/cfaua/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/cfaua/procedure/models/bid.py create mode 100644 src/openprocurement/tender/cfaua/procedure/models/lot_value.py create mode 100644 src/openprocurement/tender/cfaua/procedure/serializers.py create mode 100644 src/openprocurement/tender/cfaua/procedure/state.py create mode 100644 src/openprocurement/tender/cfaua/procedure/validation.py create mode 100644 src/openprocurement/tender/cfaua/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/cfaua/procedure/views/bid.py create mode 100644 src/openprocurement/tender/cfaua/procedure/views/bid_document.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/__init__.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/models/bid.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/models/document.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/serializers.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/state.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/validation.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage1/__init__.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage2/__init__.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py create mode 100644 src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid_document.py create mode 100644 src/openprocurement/tender/esco/procedure/__init__.py create mode 100644 src/openprocurement/tender/esco/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/esco/procedure/models/bid.py create mode 100644 src/openprocurement/tender/esco/procedure/models/lot_value.py create mode 100644 src/openprocurement/tender/esco/procedure/models/value.py create mode 100644 src/openprocurement/tender/esco/procedure/serializers.py create mode 100644 src/openprocurement/tender/esco/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/esco/procedure/views/bid.py create mode 100644 src/openprocurement/tender/esco/procedure/views/bid_document.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/__init__.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/models/bid.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/validation.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/views/bid.py create mode 100644 src/openprocurement/tender/openuadefense/procedure/views/bid_document.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/__init__.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/models/bid.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/models/req_response.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/validation.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/views/bid.py create mode 100644 src/openprocurement/tender/pricequotation/procedure/views/bid_document.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/__init__.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/models/__init__.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/models/bid.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/views/__init__.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/views/bid.py create mode 100644 src/openprocurement/tender/simpledefense/procedure/views/bid_document.py diff --git a/docs/source/tendering/basic-actions/http/24hours/post-doc.http b/docs/source/tendering/basic-actions/http/24hours/post-doc.http index 16f59ec9b8..94b4200627 100644 --- a/docs/source/tendering/basic-actions/http/24hours/post-doc.http +++ b/docs/source/tendering/basic-actions/http/24hours/post-doc.http @@ -24,6 +24,7 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/34f1934c957041cfa43be9e7af23ca1d/bids/152e89c2da1947a68adf595ca46d8dce/documents/a89744a3e0014a90b86744639210a385?download=01265147e4f24f6ea5e560fbf578c1e7", "documentOf": "tender", + "confidentiality": "public", "id": "a89744a3e0014a90b86744639210a385", "datePublished": "2020-05-02T05:00:01+03:00", "dateModified": "2020-05-02T05:00:01+03:00" diff --git a/docs/source/tendering/basic-actions/http/24hours/put-doc.http b/docs/source/tendering/basic-actions/http/24hours/put-doc.http index 2e09a894b5..c56ea8d65f 100644 --- a/docs/source/tendering/basic-actions/http/24hours/put-doc.http +++ b/docs/source/tendering/basic-actions/http/24hours/put-doc.http @@ -25,7 +25,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/34f1934c957041cfa43be9e7af23ca1d/bids/152e89c2da1947a68adf595ca46d8dce/documents/a89744a3e0014a90b86744639210a385?download=fddb39dd595c481e8b47b24009815ba5", "documentOf": "tender", - "dateModified": "2020-05-02T05:00:01+03:00" + "dateModified": "2020-05-02T05:00:01+03:00", + "confidentiality": "public" } } diff --git a/docs/source/tendering/basic-actions/http/confidential-documents/document-list-private.http b/docs/source/tendering/basic-actions/http/confidential-documents/document-list-private.http index 2a839b7e98..36f7c99a34 100644 --- a/docs/source/tendering/basic-actions/http/confidential-documents/document-list-private.http +++ b/docs/source/tendering/basic-actions/http/confidential-documents/document-list-private.http @@ -37,6 +37,7 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/b733241fbd1c4542b551b3d5c23e04f9?Signature=yLiAUV50iyFKP6fXrHYOLIqWl4hwG9dCUkqgpB%2F0yuhmDaa4IMZzaWa8Bt%2BMdkyDBnVgwo0ZdoW1JcTz29IwDw%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "d5d63ecba120473e91a4e4177da19fd6", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/basic-actions/http/confidential-documents/document-list-public.http b/docs/source/tendering/basic-actions/http/confidential-documents/document-list-public.http index 394ad555d9..eb38e0c9c1 100644 --- a/docs/source/tendering/basic-actions/http/confidential-documents/document-list-public.http +++ b/docs/source/tendering/basic-actions/http/confidential-documents/document-list-public.http @@ -35,6 +35,7 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/b733241fbd1c4542b551b3d5c23e04f9?Signature=yLiAUV50iyFKP6fXrHYOLIqWl4hwG9dCUkqgpB%2F0yuhmDaa4IMZzaWa8Bt%2BMdkyDBnVgwo0ZdoW1JcTz29IwDw%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "d5d63ecba120473e91a4e4177da19fd6", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/cfaselectionua/tutorial/active-cancellation.http b/docs/source/tendering/cfaselectionua/tutorial/active-cancellation.http index 4018bd49fd..437e580d36 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/active-cancellation.http +++ b/docs/source/tendering/cfaselectionua/tutorial/active-cancellation.http @@ -21,7 +21,7 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "a6209ff5878f408081b385740e32cc48", + "id": "a1317c7d25e6431fabfd127d9f68894f", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", @@ -32,7 +32,7 @@ X-Content-Type-Options: nosniff "documentOf": "tender" }, { - "id": "a6209ff5878f408081b385740e32cc48", + "id": "a1317c7d25e6431fabfd127d9f68894f", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", diff --git a/docs/source/tendering/cfaselectionua/tutorial/patch-cancellation.http b/docs/source/tendering/cfaselectionua/tutorial/patch-cancellation.http index a268465410..f597eac5c5 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/patch-cancellation.http +++ b/docs/source/tendering/cfaselectionua/tutorial/patch-cancellation.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a6209ff5878f408081b385740e32cc48?acc_token=1649f66a8e4c4492affe5b291314ebf9 HTTP/1.0 +PATCH /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a1317c7d25e6431fabfd127d9f68894f?acc_token=1649f66a8e4c4492affe5b291314ebf9 HTTP/1.0 Authorization: Bearer broker Content-Length: 48 Content-Type: application/json @@ -15,7 +15,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "a6209ff5878f408081b385740e32cc48", + "id": "a1317c7d25e6431fabfd127d9f68894f", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", diff --git a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents-again.http b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents-again.http index 8c518e6b69..e9a090242f 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents-again.http +++ b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents-again.http @@ -8,7 +8,7 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "66c6a0f2471644e49cf1c7808f226c24", + "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", @@ -17,7 +17,7 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "a1317c7d25e6431fabfd127d9f68894f", + "id": "66c6a0f2471644e49cf1c7808f226c24", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents.http b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents.http index 9f1f932afb..2c8d5837ed 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents.http +++ b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-get-documents.http @@ -8,7 +8,7 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "66c6a0f2471644e49cf1c7808f226c24", + "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-sign.http b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-sign.http index 6f857db4b3..310e0344a1 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-sign.http +++ b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-sign.http @@ -56,7 +56,7 @@ X-Content-Type-Options: nosniff "awardID": "2704d63834ca4d3c90afa97fba305c80", "documents": [ { - "id": "66c6a0f2471644e49cf1c7808f226c24", + "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", @@ -65,7 +65,7 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "a1317c7d25e6431fabfd127d9f68894f", + "id": "66c6a0f2471644e49cf1c7808f226c24", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/cfaselectionua/tutorial/update-cancellation-doc.http b/docs/source/tendering/cfaselectionua/tutorial/update-cancellation-doc.http index 14b0ad8ea7..8bba27863d 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/update-cancellation-doc.http +++ b/docs/source/tendering/cfaselectionua/tutorial/update-cancellation-doc.http @@ -1,4 +1,4 @@ -PUT /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a6209ff5878f408081b385740e32cc48?acc_token=1649f66a8e4c4492affe5b291314ebf9 HTTP/1.0 +PUT /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a1317c7d25e6431fabfd127d9f68894f?acc_token=1649f66a8e4c4492affe5b291314ebf9 HTTP/1.0 Authorization: Bearer broker Content-Length: 328 Content-Type: application/json @@ -18,7 +18,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "a6209ff5878f408081b385740e32cc48", + "id": "a1317c7d25e6431fabfd127d9f68894f", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", diff --git a/docs/source/tendering/cfaselectionua/tutorial/upload-cancellation-doc.http b/docs/source/tendering/cfaselectionua/tutorial/upload-cancellation-doc.http index 485390ab51..e456fa5cba 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/upload-cancellation-doc.http +++ b/docs/source/tendering/cfaselectionua/tutorial/upload-cancellation-doc.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a6209ff5878f408081b385740e32cc48 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/cancellations/f44b7cc2783f44b8960e691080112d97/documents/a1317c7d25e6431fabfd127d9f68894f X-Content-Type-Options: nosniff { "data": { - "id": "a6209ff5878f408081b385740e32cc48", + "id": "a1317c7d25e6431fabfd127d9f68894f", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/cfaua/tutorial/active-cancellation.http b/docs/source/tendering/cfaua/tutorial/active-cancellation.http index 4b59e1ab29..0e70da264c 100644 --- a/docs/source/tendering/cfaua/tutorial/active-cancellation.http +++ b/docs/source/tendering/cfaua/tutorial/active-cancellation.http @@ -19,24 +19,24 @@ X-Content-Type-Options: nosniff }, "documents": [ { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1031ad3ee48f4abcb0bcdcbbf1255f1c?Signature=vsoJdTneGBprimWIoUVZq%2FKml2nH46pCZni7NX%2FhKfE%2FyjTFYZZVojwFsE8jkSZwnekVZlvAOByri3ZGLTsIAQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0dd3a49e21ef41cbb7e84c709bbddc1a?Signature=ZJ8KX2AKv5QkMQObWcrzOEPplGmt%2FV4c8LOk28hvCLOSKLK0QOnwehWP8Qukk4%2FieYZB5jrV1aKPDXVDmtmfBQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", "language": "uk" }, { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0bc04c79c96c44e2a134b759e23dcda7?Signature=%2F9MzH5U%2BDb9RrNOE%2Fsk%2FBWPEk31n9ha4nLvmsc%2BIZOqNsokrot8j44gIsRWmIVVdWY8X%2FVN%2Bv2tQksYbZLKoAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/79e167453f5a401fb8cf408f6e3f2580?Signature=23bscymQYesYOw%2FZpHY7funx9xxU82w8GGZQSF0jYm1mwr9no2e7NHI2oej4xx%2B9tkhdeyxVjXB4ye6L4Kg9DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/cfaua/tutorial/patch-cancellation.http b/docs/source/tendering/cfaua/tutorial/patch-cancellation.http index d37897a1b8..ba8c1986b9 100644 --- a/docs/source/tendering/cfaua/tutorial/patch-cancellation.http +++ b/docs/source/tendering/cfaua/tutorial/patch-cancellation.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/5b5ba8726eb54f31985972c63c422157?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/f9f4f063679a4a05b1b075525e8b3834?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker Content-Length: 48 Content-Type: application/json @@ -15,12 +15,12 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1031ad3ee48f4abcb0bcdcbbf1255f1c?Signature=vsoJdTneGBprimWIoUVZq%2FKml2nH46pCZni7NX%2FhKfE%2FyjTFYZZVojwFsE8jkSZwnekVZlvAOByri3ZGLTsIAQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0dd3a49e21ef41cbb7e84c709bbddc1a?Signature=ZJ8KX2AKv5QkMQObWcrzOEPplGmt%2FV4c8LOk28hvCLOSKLK0QOnwehWP8Qukk4%2FieYZB5jrV1aKPDXVDmtmfBQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/cfaua/tutorial/pending-cancellation.http b/docs/source/tendering/cfaua/tutorial/pending-cancellation.http index 94da7af801..3ac7c33262 100644 --- a/docs/source/tendering/cfaua/tutorial/pending-cancellation.http +++ b/docs/source/tendering/cfaua/tutorial/pending-cancellation.http @@ -27,24 +27,24 @@ X-Content-Type-Options: nosniff }, "documents": [ { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1031ad3ee48f4abcb0bcdcbbf1255f1c?Signature=vsoJdTneGBprimWIoUVZq%2FKml2nH46pCZni7NX%2FhKfE%2FyjTFYZZVojwFsE8jkSZwnekVZlvAOByri3ZGLTsIAQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0dd3a49e21ef41cbb7e84c709bbddc1a?Signature=ZJ8KX2AKv5QkMQObWcrzOEPplGmt%2FV4c8LOk28hvCLOSKLK0QOnwehWP8Qukk4%2FieYZB5jrV1aKPDXVDmtmfBQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", "language": "uk" }, { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0bc04c79c96c44e2a134b759e23dcda7?Signature=%2F9MzH5U%2BDb9RrNOE%2Fsk%2FBWPEk31n9ha4nLvmsc%2BIZOqNsokrot8j44gIsRWmIVVdWY8X%2FVN%2Bv2tQksYbZLKoAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/79e167453f5a401fb8cf408f6e3f2580?Signature=23bscymQYesYOw%2FZpHY7funx9xxU82w8GGZQSF0jYm1mwr9no2e7NHI2oej4xx%2B9tkhdeyxVjXB4ye6L4Kg9DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents-again.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents-again.http index 6520336b49..dc6e8208f8 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents-again.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents-again.http @@ -8,23 +8,23 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents.http index 1ab1ff2daa..7a6e793c63 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-get-documents.http @@ -8,11 +8,11 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-patch-document.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-patch-document.http index d95c66649a..295562a803 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-patch-document.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-patch-document.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/ca51f1ed6bbf48f9a3d6ec04bd5d7b1f?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/d364676c691744899b1a80f035be06f4?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker Content-Length: 106 Content-Type: application/json @@ -17,13 +17,13 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-document.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-document.http index 3bb9088d49..9c02df16f0 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-document.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-document.http @@ -1,28 +1,29 @@ POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker -Content-Length: 163 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 344 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="agreement_first_document.doc" -Content-Type: application/msword - -content ------BOUNDARY-- - +{ + "data": { + "title": "agreement_first_document.doc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=CiDSkTLWSYa1%2Ftrigz5PqNsXshKQl43%2BUc9ifp5l9a7IS0AWTuiD3Ka1aIiHYVzo9uo5Mv8CsD%2BqDGy2acQSAQ%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/msdoc" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/2d45d008024549f885f6c42b6fe570f2 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/6b3def02d8e044b2a003ce65d16b212a X-Content-Type-Options: nosniff { "data": { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-second-document.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-second-document.http index 4f6fa3fe23..da55019333 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-second-document.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-upload-second-document.http @@ -1,28 +1,29 @@ POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker -Content-Length: 164 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 345 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="agreement_second_document.doc" -Content-Type: application/msword - -content ------BOUNDARY-- - +{ + "data": { + "title": "agreement_second_document.doc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=qvW1RE4Qqz%2FR05zZju99XYu3P92wr9BeQubMSinoYQWhysVf4BWsW2cm%2BTJvjrwCkb4t4NTvLaxtcSK%2B1JPeAQ%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/msdoc" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/ca51f1ed6bbf48f9a3d6ec04bd5d7b1f +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/agreements/0fea7d7c4c8649f5a499885d630671f5/documents/d364676c691744899b1a80f035be06f4 X-Content-Type-Options: nosniff { "data": { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" diff --git a/docs/source/tendering/cfaua/tutorial/update-cancellation-doc.http b/docs/source/tendering/cfaua/tutorial/update-cancellation-doc.http index cd2cbe50dc..6d87dc6371 100644 --- a/docs/source/tendering/cfaua/tutorial/update-cancellation-doc.http +++ b/docs/source/tendering/cfaua/tutorial/update-cancellation-doc.http @@ -1,28 +1,29 @@ -PUT /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/5b5ba8726eb54f31985972c63c422157?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 +PUT /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/f9f4f063679a4a05b1b075525e8b3834?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker -Content-Length: 145 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 324 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Notice-2.pdf" -Content-Type: application/pdf - -content2 ------BOUNDARY-- - +{ + "data": { + "title": "Notice-2.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/79e167453f5a401fb8cf408f6e3f2580?Signature=%2BmP0YLnClR4YuVDd7GOve5wUlt8s7y9MfbVRAR1Coq6OB%2FruCITNZWuptK4kSxNXTN73fSxGjIq1DfFDWaMDAA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 200 OK Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0bc04c79c96c44e2a134b759e23dcda7?Signature=%2F9MzH5U%2BDb9RrNOE%2Fsk%2FBWPEk31n9ha4nLvmsc%2BIZOqNsokrot8j44gIsRWmIVVdWY8X%2FVN%2Bv2tQksYbZLKoAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/79e167453f5a401fb8cf408f6e3f2580?Signature=23bscymQYesYOw%2FZpHY7funx9xxU82w8GGZQSF0jYm1mwr9no2e7NHI2oej4xx%2B9tkhdeyxVjXB4ye6L4Kg9DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/cfaua/tutorial/upload-cancellation-doc.http b/docs/source/tendering/cfaua/tutorial/upload-cancellation-doc.http index 7acb546a25..da8d3b80e2 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-cancellation-doc.http +++ b/docs/source/tendering/cfaua/tutorial/upload-cancellation-doc.http @@ -1,28 +1,29 @@ POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker -Content-Length: 142 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 318 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Notice.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Notice.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0dd3a49e21ef41cbb7e84c709bbddc1a?Signature=YC30dlpYaoZI8dPSEWw8hrGk1ERL68RqBi8emS9WJT8aHBSPv4mLAV6vGhYqcOb2DCODtXg4coZ4Iu97dnGJCg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/5b5ba8726eb54f31985972c63c422157 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/cancellations/137233c6e7a64b4f89e93ad12e8849af/documents/f9f4f063679a4a05b1b075525e8b3834 X-Content-Type-Options: nosniff { "data": { - "id": "5b5ba8726eb54f31985972c63c422157", + "id": "f9f4f063679a4a05b1b075525e8b3834", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1031ad3ee48f4abcb0bcdcbbf1255f1c?Signature=vsoJdTneGBprimWIoUVZq%2FKml2nH46pCZni7NX%2FhKfE%2FyjTFYZZVojwFsE8jkSZwnekVZlvAOByri3ZGLTsIAQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0dd3a49e21ef41cbb7e84c709bbddc1a?Signature=ZJ8KX2AKv5QkMQObWcrzOEPplGmt%2FV4c8LOk28hvCLOSKLK0QOnwehWP8Qukk4%2FieYZB5jrV1aKPDXVDmtmfBQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http index ee6700d51c..32972e3c5d 100644 --- a/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/add-requirement-response-from-bid.http @@ -138,7 +138,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http index 30fc262af0..d750ebd801 100644 --- a/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/delete-requirement-response-from-bid.http @@ -55,7 +55,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http b/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http index 8eecbfe135..7fd3fda0f3 100644 --- a/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http +++ b/docs/source/tendering/http/criteria/patch-requirement-response-from-bid.http @@ -138,7 +138,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http index b6c13ead1e..8556e568c7 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-1.http @@ -98,7 +98,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http index 01909fd125..84cacd0126 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-2.http @@ -178,7 +178,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http b/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http index f19c4dcfca..2630aa264f 100644 --- a/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http +++ b/docs/source/tendering/http/criteria/requirement-response-basic-data-3.http @@ -138,7 +138,8 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/101a4c542c25418797557f7601d4dc8d?Signature=K26ZyzFLAGitE5vmaETTasDXeOkxZQmoSREf3jTyHtKdUX%2FHnAMvZTD0cCXy6qihSzuWZT0YiRp1bjQCRVj%2FDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, diff --git a/docs/source/tendering/openeu/http/tutorial/auction-url.http b/docs/source/tendering/openeu/http/tutorial/auction-url.http index 42e14b0ee0..3d9e30150e 100644 --- a/docs/source/tendering/openeu/http/tutorial/auction-url.http +++ b/docs/source/tendering/openeu/http/tutorial/auction-url.http @@ -833,7 +833,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/openeu/http/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/openeu/http/tutorial/bidder-activate-after-changing-tender.http index eeefa8c49c..da68e427a5 100644 --- a/docs/source/tendering/openeu/http/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/openeu/http/tutorial/bidder-activate-after-changing-tender.http @@ -187,24 +187,24 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "8e02e8f62e594ef89dd5e2217abe653a", + "id": "0c9fff4eb20b4184a98742e4b5482090", "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a?download=83d40b8f44aa42e8834777e83d65136a", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/0c9fff4eb20b4184a98742e4b5482090?download=83d40b8f44aa42e8834777e83d65136a", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "9db719cc857747bbb8e8626d70bc7a85", + "id": "eedddc200fd242d684df6fedee82411b", "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/9db719cc857747bbb8e8626d70bc7a85?download=c3ae1eb4787a4dca98285ad72a6c6df1", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/eedddc200fd242d684df6fedee82411b?download=c3ae1eb4787a4dca98285ad72a6c6df1", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", @@ -213,12 +213,12 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/248bc5542a1f4f8fb36288792bf74e38?download=9f525265f9f844849fd1b50c43dfd6c1", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/3c4e08f5c0ad42e9a486b6120115eb59?download=9f525265f9f844849fd1b50c43dfd6c1", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", @@ -227,12 +227,12 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "1289a50765c744afb22ca3e8886f9646", + "id": "6b55e644de364f5fac63e5fe3cd9adb0", "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/1289a50765c744afb22ca3e8886f9646?download=89a25b5566bc4df98cc4c64c21ce9d8a", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/6b55e644de364f5fac63e5fe3cd9adb0?download=89a25b5566bc4df98cc4c64c21ce9d8a", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", diff --git a/docs/source/tendering/openeu/http/tutorial/bidder-documents.http b/docs/source/tendering/openeu/http/tutorial/bidder-documents.http index c080094d41..bbf9db647b 100644 --- a/docs/source/tendering/openeu/http/tutorial/bidder-documents.http +++ b/docs/source/tendering/openeu/http/tutorial/bidder-documents.http @@ -13,6 +13,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3436c5b74fae4a6396cb495b38c4a7bf?Signature=xb6zEhLUtq25zw4gaPuLWfObN9WzWu8L0bT1AeU9fbbc85DYWxTWoUVERSTcq7ZE4RhUSV8MsAENb59z0a8XDA%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "9c6c487bd8474272aeeef2b98848640e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/openeu/http/tutorial/bidder-financial-documents.http b/docs/source/tendering/openeu/http/tutorial/bidder-financial-documents.http index 38d2f9ad9d..6719794ef9 100644 --- a/docs/source/tendering/openeu/http/tutorial/bidder-financial-documents.http +++ b/docs/source/tendering/openeu/http/tutorial/bidder-financial-documents.http @@ -8,28 +8,26 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "8e02e8f62e594ef89dd5e2217abe653a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a?download=83d40b8f44aa42e8834777e83d65136a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/83d40b8f44aa42e8834777e83d65136a?Signature=bip331nzCa58Ro0Y6tWxS1g%2BHW9DN299ipVOsq6tbECjK2pA5vGsJ0PxwUbedCa%2Fl1WYhi9VWRi79MuYXOeGBw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "0c9fff4eb20b4184a98742e4b5482090", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "9db719cc857747bbb8e8626d70bc7a85", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/9db719cc857747bbb8e8626d70bc7a85?download=c3ae1eb4787a4dca98285ad72a6c6df1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c3ae1eb4787a4dca98285ad72a6c6df1?Signature=HsId8%2FAi7FCNb5ZNS0SJ%2FJIWDmG8ia0Pn4Bi9ejApc2MGp6Scz27jObFqvzofmZVb3GEYR7P351h%2BmyFqsFBBg%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "eedddc200fd242d684df6fedee82411b", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/openeu/http/tutorial/bidder-participation-url.http b/docs/source/tendering/openeu/http/tutorial/bidder-participation-url.http index a06ecb5734..ca3da46cd4 100644 --- a/docs/source/tendering/openeu/http/tutorial/bidder-participation-url.http +++ b/docs/source/tendering/openeu/http/tutorial/bidder-participation-url.http @@ -179,11 +179,11 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "8e02e8f62e594ef89dd5e2217abe653a", + "id": "0c9fff4eb20b4184a98742e4b5482090", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a?download=83d40b8f44aa42e8834777e83d65136a", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/0c9fff4eb20b4184a98742e4b5482090?download=83d40b8f44aa42e8834777e83d65136a", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -191,11 +191,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "9db719cc857747bbb8e8626d70bc7a85", + "id": "eedddc200fd242d684df6fedee82411b", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/9db719cc857747bbb8e8626d70bc7a85?download=c3ae1eb4787a4dca98285ad72a6c6df1", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/eedddc200fd242d684df6fedee82411b?download=c3ae1eb4787a4dca98285ad72a6c6df1", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -205,7 +205,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -219,11 +219,11 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "1289a50765c744afb22ca3e8886f9646", + "id": "6b55e644de364f5fac63e5fe3cd9adb0", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/1289a50765c744afb22ca3e8886f9646?download=89a25b5566bc4df98cc4c64c21ce9d8a", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/6b55e644de364f5fac63e5fe3cd9adb0?download=89a25b5566bc4df98cc4c64c21ce9d8a", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/openeu/http/tutorial/pre-qualification-confirmation.http b/docs/source/tendering/openeu/http/tutorial/pre-qualification-confirmation.http index b219a5a7d0..a6f6a5fdb5 100644 --- a/docs/source/tendering/openeu/http/tutorial/pre-qualification-confirmation.http +++ b/docs/source/tendering/openeu/http/tutorial/pre-qualification-confirmation.http @@ -952,7 +952,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/openeu/http/tutorial/qualificated-bids-view.http b/docs/source/tendering/openeu/http/tutorial/qualificated-bids-view.http index c3d564c816..f758fc4128 100644 --- a/docs/source/tendering/openeu/http/tutorial/qualificated-bids-view.http +++ b/docs/source/tendering/openeu/http/tutorial/qualificated-bids-view.http @@ -173,7 +173,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/openeu/http/tutorial/qualifications-listing.http b/docs/source/tendering/openeu/http/tutorial/qualifications-listing.http index 85fd8d2257..5257b51561 100644 --- a/docs/source/tendering/openeu/http/tutorial/qualifications-listing.http +++ b/docs/source/tendering/openeu/http/tutorial/qualifications-listing.http @@ -940,7 +940,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", + "id": "3c4e08f5c0ad42e9a486b6120115eb59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/openeu/http/tutorial/upload-bid-eligibility-document-proposal.http b/docs/source/tendering/openeu/http/tutorial/upload-bid-eligibility-document-proposal.http index d573e2cc43..63acd41cc0 100644 --- a/docs/source/tendering/openeu/http/tutorial/upload-bid-eligibility-document-proposal.http +++ b/docs/source/tendering/openeu/http/tutorial/upload-bid-eligibility-document-proposal.http @@ -15,20 +15,19 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/248bc5542a1f4f8fb36288792bf74e38 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/3c4e08f5c0ad42e9a486b6120115eb59 X-Content-Type-Options: nosniff { "data": { - "id": "248bc5542a1f4f8fb36288792bf74e38", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/248bc5542a1f4f8fb36288792bf74e38?download=9f525265f9f844849fd1b50c43dfd6c1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/3c4e08f5c0ad42e9a486b6120115eb59?download=9f525265f9f844849fd1b50c43dfd6c1", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3c4e08f5c0ad42e9a486b6120115eb59", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/openeu/http/tutorial/upload-bid-financial-document-proposal.http b/docs/source/tendering/openeu/http/tutorial/upload-bid-financial-document-proposal.http index 87459c94a5..77bb3b1723 100644 --- a/docs/source/tendering/openeu/http/tutorial/upload-bid-financial-document-proposal.http +++ b/docs/source/tendering/openeu/http/tutorial/upload-bid-financial-document-proposal.http @@ -15,20 +15,19 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/0c9fff4eb20b4184a98742e4b5482090 X-Content-Type-Options: nosniff { "data": { - "id": "8e02e8f62e594ef89dd5e2217abe653a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a?download=83d40b8f44aa42e8834777e83d65136a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/0c9fff4eb20b4184a98742e4b5482090?download=83d40b8f44aa42e8834777e83d65136a", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "0c9fff4eb20b4184a98742e4b5482090", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/openeu/http/tutorial/upload-bid-private-proposal.http b/docs/source/tendering/openeu/http/tutorial/upload-bid-private-proposal.http index 8ecffe7cb0..4f95f7669d 100644 --- a/docs/source/tendering/openeu/http/tutorial/upload-bid-private-proposal.http +++ b/docs/source/tendering/openeu/http/tutorial/upload-bid-private-proposal.http @@ -24,6 +24,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/documents/28852cb33d7e4d0d8175cc86f80283da?download=396144e95a5f4abb8c1d2fd408ff4d72", "documentOf": "tender", + "confidentiality": "public", "id": "28852cb33d7e4d0d8175cc86f80283da", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/openeu/http/tutorial/upload-bid-proposal.http b/docs/source/tendering/openeu/http/tutorial/upload-bid-proposal.http index 41bc570bb6..d495eef120 100644 --- a/docs/source/tendering/openeu/http/tutorial/upload-bid-proposal.http +++ b/docs/source/tendering/openeu/http/tutorial/upload-bid-proposal.http @@ -24,6 +24,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/documents/9c6c487bd8474272aeeef2b98848640e?download=3436c5b74fae4a6396cb495b38c4a7bf", "documentOf": "tender", + "confidentiality": "public", "id": "9c6c487bd8474272aeeef2b98848640e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/openeu/http/tutorial/upload-bid-qualification-document-proposal.http b/docs/source/tendering/openeu/http/tutorial/upload-bid-qualification-document-proposal.http index efecb5bcc5..9ef1c44f84 100644 --- a/docs/source/tendering/openeu/http/tutorial/upload-bid-qualification-document-proposal.http +++ b/docs/source/tendering/openeu/http/tutorial/upload-bid-qualification-document-proposal.http @@ -15,20 +15,19 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/1289a50765c744afb22ca3e8886f9646 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/6b55e644de364f5fac63e5fe3cd9adb0 X-Content-Type-Options: nosniff { "data": { - "id": "1289a50765c744afb22ca3e8886f9646", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/1289a50765c744afb22ca3e8886f9646?download=89a25b5566bc4df98cc4c64c21ce9d8a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/6b55e644de364f5fac63e5fe3cd9adb0?download=89a25b5566bc4df98cc4c64c21ce9d8a", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "6b55e644de364f5fac63e5fe3cd9adb0", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/openua/http/bidder-activate-after-changing-tender.http b/docs/source/tendering/openua/http/bidder-activate-after-changing-tender.http index 0293560068..41fa7d6544 100644 --- a/docs/source/tendering/openua/http/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/openua/http/bidder-activate-after-changing-tender.http @@ -169,7 +169,8 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6519f568614a4206bfdb5d18cae77f6a?Signature=c0IFazilhvkkuBH%2FjSjSj2IpKQVYAbGaZxfqRt03GBAjgJ70QRsgbQLeQSTLvpDvpQhYTC5ivocgL9GkpbWZDA%3D%3D&KeyID=a8968c46", "documentOf": "tender", - "dateModified": "2021-03-16T00:00:00+02:00" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ] } diff --git a/docs/source/tendering/openua/http/bidder-documents.http b/docs/source/tendering/openua/http/bidder-documents.http index c771054ffb..16dea24b74 100644 --- a/docs/source/tendering/openua/http/bidder-documents.http +++ b/docs/source/tendering/openua/http/bidder-documents.http @@ -13,6 +13,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6519f568614a4206bfdb5d18cae77f6a?Signature=c0IFazilhvkkuBH%2FjSjSj2IpKQVYAbGaZxfqRt03GBAjgJ70QRsgbQLeQSTLvpDvpQhYTC5ivocgL9GkpbWZDA%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "bf5ede681c9e431a992a12f7fe492b7c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/openua/http/bidder-participation-url.http b/docs/source/tendering/openua/http/bidder-participation-url.http index 03d53e2882..de6744943a 100644 --- a/docs/source/tendering/openua/http/bidder-participation-url.http +++ b/docs/source/tendering/openua/http/bidder-participation-url.http @@ -162,7 +162,8 @@ X-Content-Type-Options: nosniff "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6519f568614a4206bfdb5d18cae77f6a?Signature=c0IFazilhvkkuBH%2FjSjSj2IpKQVYAbGaZxfqRt03GBAjgJ70QRsgbQLeQSTLvpDvpQhYTC5ivocgL9GkpbWZDA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "documentOf": "tender", + "confidentiality": "public" } ] } diff --git a/docs/source/tendering/openua/http/post-evidence-document.http b/docs/source/tendering/openua/http/post-evidence-document.http index 8a572ffb59..993b55e304 100644 --- a/docs/source/tendering/openua/http/post-evidence-document.http +++ b/docs/source/tendering/openua/http/post-evidence-document.http @@ -26,6 +26,7 @@ X-Content-Type-Options: nosniff "format": "application/msword", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/bac835240efd4adea01560554d7bfdb4/bids/0f4edde39c8440589de23c8efb2c8fb8/documents/d5d63ecba120473e91a4e4177da19fd6?download=1f678fb111d144f083459f2ab38608bd", "documentOf": "tender", + "confidentiality": "public", "id": "d5d63ecba120473e91a4e4177da19fd6", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/openua/http/upload-bid-proposal.http b/docs/source/tendering/openua/http/upload-bid-proposal.http index 6f900f8b99..3d1f76d29c 100644 --- a/docs/source/tendering/openua/http/upload-bid-proposal.http +++ b/docs/source/tendering/openua/http/upload-bid-proposal.http @@ -24,6 +24,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/bac835240efd4adea01560554d7bfdb4/bids/0f4edde39c8440589de23c8efb2c8fb8/documents/bf5ede681c9e431a992a12f7fe492b7c?download=6519f568614a4206bfdb5d18cae77f6a", "documentOf": "tender", + "confidentiality": "public", "id": "bf5ede681c9e431a992a12f7fe492b7c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/pricequotation/http/active-cancellation.http b/docs/source/tendering/pricequotation/http/active-cancellation.http index cb85f0b46f..37e8f78a4a 100644 --- a/docs/source/tendering/pricequotation/http/active-cancellation.http +++ b/docs/source/tendering/pricequotation/http/active-cancellation.http @@ -21,7 +21,7 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "205cc90c9da944499f541b2219b6ec36", + "id": "f24744ecea6646e09d832d9136d84890", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", @@ -32,7 +32,7 @@ X-Content-Type-Options: nosniff "documentOf": "tender" }, { - "id": "205cc90c9da944499f541b2219b6ec36", + "id": "f24744ecea6646e09d832d9136d84890", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", diff --git a/docs/source/tendering/pricequotation/http/patch-cancellation.http b/docs/source/tendering/pricequotation/http/patch-cancellation.http index 282e86c179..31bca91124 100644 --- a/docs/source/tendering/pricequotation/http/patch-cancellation.http +++ b/docs/source/tendering/pricequotation/http/patch-cancellation.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/205cc90c9da944499f541b2219b6ec36?acc_token=c87b58b4160f425b8973621e89008a15 HTTP/1.0 +PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/f24744ecea6646e09d832d9136d84890?acc_token=c87b58b4160f425b8973621e89008a15 HTTP/1.0 Authorization: Bearer broker Content-Length: 48 Content-Type: application/json @@ -15,7 +15,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "205cc90c9da944499f541b2219b6ec36", + "id": "f24744ecea6646e09d832d9136d84890", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "description": "Changed description", diff --git a/docs/source/tendering/pricequotation/http/tender-contract-get-documents-again.http b/docs/source/tendering/pricequotation/http/tender-contract-get-documents-again.http index 7fcf1a7bea..acd3a1ff5a 100644 --- a/docs/source/tendering/pricequotation/http/tender-contract-get-documents-again.http +++ b/docs/source/tendering/pricequotation/http/tender-contract-get-documents-again.http @@ -8,7 +8,7 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "58630a9dee574cedba85e5d5983775ff", + "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff "documentOf": "tender" }, { - "id": "f24744ecea6646e09d832d9136d84890", + "id": "58630a9dee574cedba85e5d5983775ff", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/pricequotation/http/tender-contract-get-documents.http b/docs/source/tendering/pricequotation/http/tender-contract-get-documents.http index 4fa2256c53..281caa20c2 100644 --- a/docs/source/tendering/pricequotation/http/tender-contract-get-documents.http +++ b/docs/source/tendering/pricequotation/http/tender-contract-get-documents.http @@ -8,7 +8,7 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "58630a9dee574cedba85e5d5983775ff", + "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/pricequotation/http/tender-contract-sign.http b/docs/source/tendering/pricequotation/http/tender-contract-sign.http index 28bab5d0bb..54f38c5c2d 100644 --- a/docs/source/tendering/pricequotation/http/tender-contract-sign.http +++ b/docs/source/tendering/pricequotation/http/tender-contract-sign.http @@ -56,7 +56,7 @@ X-Content-Type-Options: nosniff "awardID": "2457dbf1f0fa43daaf6148695865ce39", "documents": [ { - "id": "58630a9dee574cedba85e5d5983775ff", + "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", @@ -66,7 +66,7 @@ X-Content-Type-Options: nosniff "documentOf": "tender" }, { - "id": "f24744ecea6646e09d832d9136d84890", + "id": "58630a9dee574cedba85e5d5983775ff", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/pricequotation/http/update-cancellation-doc.http b/docs/source/tendering/pricequotation/http/update-cancellation-doc.http index cfa5230e6b..f762063d3d 100644 --- a/docs/source/tendering/pricequotation/http/update-cancellation-doc.http +++ b/docs/source/tendering/pricequotation/http/update-cancellation-doc.http @@ -1,4 +1,4 @@ -PUT /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/205cc90c9da944499f541b2219b6ec36?acc_token=c87b58b4160f425b8973621e89008a15 HTTP/1.0 +PUT /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/f24744ecea6646e09d832d9136d84890?acc_token=c87b58b4160f425b8973621e89008a15 HTTP/1.0 Authorization: Bearer broker Content-Length: 324 Content-Type: application/json @@ -18,7 +18,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "205cc90c9da944499f541b2219b6ec36", + "id": "f24744ecea6646e09d832d9136d84890", "hash": "md5:00000000000000000000000000000000", "title": "Notice-2.pdf", "description": "Changed description", diff --git a/docs/source/tendering/pricequotation/http/upload-cancellation-doc.http b/docs/source/tendering/pricequotation/http/upload-cancellation-doc.http index 02bc04f0e3..dfc6c998f2 100644 --- a/docs/source/tendering/pricequotation/http/upload-cancellation-doc.http +++ b/docs/source/tendering/pricequotation/http/upload-cancellation-doc.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/205cc90c9da944499f541b2219b6ec36 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/cancellations/0ba60a6120604826bc9b170d0949cd4d/documents/f24744ecea6646e09d832d9136d84890 X-Content-Type-Options: nosniff { "data": { - "id": "205cc90c9da944499f541b2219b6ec36", + "id": "f24744ecea6646e09d832d9136d84890", "hash": "md5:00000000000000000000000000000000", "title": "Notice.pdf", "format": "application/pdf", diff --git a/docs/tests/test_cfaua.py b/docs/tests/test_cfaua.py index 8ed052b7df..8d60dbcc68 100644 --- a/docs/tests/test_cfaua.py +++ b/docs/tests/test_cfaua.py @@ -272,15 +272,27 @@ def test_docs(self): # Proposal Uploading with open(TARGET_DIR + 'upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/documents?acc_token={}'.format(self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'upload-bid-private-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/documents?acc_token={}'.format(self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal_top_secrets.pdf', b'content')]) + {"data": { + "title": "Proposal_top_secrets.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') priv_doc_id = response.json['data']['id'] @@ -300,16 +312,28 @@ def test_docs(self): self.tender_id, bid1_id, bids_access[bid1_id])) with open(TARGET_DIR + 'upload-bid-financial-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc.pdf', b'1000$')]) + {"data": { + "title": "financial_doc.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc2.pdf', b'1000$')]) + {"data": { + "title": "financial_doc2.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') # financial_doc_id = response.json['data']['id'] @@ -319,25 +343,43 @@ def test_docs(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'upload-bid-eligibility-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/eligibility_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'eligibility_doc.pdf', b'content')]) + {"data": { + "title": "eligibility_doc.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'upload-bid-qualification-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/qualification_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'qualification_document.pdf', b'content')]) + {"data": { + "title": "qualification_document.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') self.qualification_doc_id = response.json['data']['id'] # patch bid document by user with open(TARGET_DIR + 'upload-bid-qualification-document-proposal-updated.http', 'w') as self.app.file_obj: - response = self.app.put('/tenders/{}/bids/{}/qualification_documents/{}?acc_token={}'.format( + response = self.app.put_json('/tenders/{}/bids/{}/qualification_documents/{}?acc_token={}'.format( self.tender_id, bid1_id, self.qualification_doc_id, bids_access[bid1_id]), - upload_files=[('file', 'qualification_document2.pdf', b'content')]) + {"data": { + "title": "qualification_document2.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'bidder-view-financial-documents.http', 'w') as self.app.file_obj: @@ -634,10 +676,16 @@ def test_docs(self): self.set_status('active.awarded') with open(TARGET_DIR + 'upload-prices-document.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'prices.xls', b'')]) + {"data": { + "title": "prices.xls", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/exl", + }}, + ) with open(TARGET_DIR + 'agreements-list.http', 'w') as self.app.file_obj: response = self.app.get('/tenders/{}/agreements'.format(self.tender_id)) @@ -673,10 +721,15 @@ def test_docs(self): # Uploading contract documentation with open(TARGET_DIR + 'tender-agreement-upload-document.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/agreements/{}/documents?acc_token={}'.format( self.tender_id, agreement_id, owner_token), - upload_files=[('file', 'agreement_first_document.doc', b'content')] + {"data": { + "title": "agreement_first_document.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msdoc", + }}, ) self.assertEqual(response.status, '201 Created') @@ -686,10 +739,16 @@ def test_docs(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'tender-agreement-upload-second-document.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/agreements/{}/documents?acc_token={}'.format( self.tender_id, agreement_id, owner_token), - upload_files=[('file', 'agreement_second_document.doc', b'content')]) + {"data": { + "title": "agreement_second_document.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msdoc", + }}, + ) self.assertEqual(response.status, '201 Created') self.document_id = response.json['data']['id'] @@ -763,10 +822,16 @@ def test_docs(self): # Filling cancellation with protocol and supplementary documentation with open(TARGET_DIR + 'upload-cancellation-doc.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/cancellations/{}/documents?acc_token={}'.format( self.tender_id, cancellation_id, owner_token), - upload_files=[('file', 'Notice.pdf', b'content')]) + {"data": { + "title": "Notice.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) cancellation_doc_id = response.json['data']['id'] self.assertEqual(response.status, '201 Created') @@ -778,10 +843,16 @@ def test_docs(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'update-cancellation-doc.http', 'w') as self.app.file_obj: - response = self.app.put( + response = self.app.put_json( '/tenders/{}/cancellations/{}/documents/{}?acc_token={}'.format( self.tender_id, cancellation_id, cancellation_doc_id, owner_token), - upload_files=[('file', 'Notice-2.pdf', b'content2')]) + {"data": { + "title": "Notice-2.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '200 OK') # Activating the request and cancelling tender diff --git a/docs/tests/test_competitivedialogue.py b/docs/tests/test_competitivedialogue.py index 6997bf795f..93c637d94d 100644 --- a/docs/tests/test_competitivedialogue.py +++ b/docs/tests/test_competitivedialogue.py @@ -33,10 +33,13 @@ bid = deepcopy(bid_draft) bid_with_bad_participant = deepcopy(bid_draft) bid2 = deepcopy(bid2) +bid2_stage2 = deepcopy(bid2) bid3 = deepcopy(bid3) bid4 = deepcopy(bid4) bid2_with_docs = deepcopy(bid2) +bid2_with_docs_st2 = deepcopy(bid2) bid4_with_docs = deepcopy(bid4) +bid4_with_docs_st2 = deepcopy(bid4) bid_document2 = deepcopy(bid_document2) bid_stage2.update(subcontracting) @@ -46,12 +49,20 @@ bid_with_bad_participant.update(subcontracting) bid_with_bad_participant.update(qualified) bid2.update(qualified) +bid2_stage2.update(qualified) bid3.update(qualified) bid4.update(qualified) bid2_with_docs.update(qualified) +bid2_with_docs_st2.update(qualified) bid4_with_docs.update(qualified) +bid4_with_docs_st2.update(qualified) del bid['value'] +del bid2['value'] +del bid3['value'] +del bid4['value'] +del bid2_with_docs['value'] +del bid4_with_docs['value'] bid_with_bad_participant['tenderers'] = [bad_participant] test_lots[0]['value'] = test_tender_data_stage1['value'] test_lots[0]['minimalStep'] = test_tender_data_stage1['minimalStep'] @@ -304,15 +315,27 @@ def test_stage1(self): #### Proposal Uploading with open(TARGET_DIR + 'upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'upload-bid-descriptive-decision-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'DescriptiveProposal.pdf', b'content')]) + {"data": { + "title": "DescriptiveProposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') priv_doc_id1 = response.json['data']['id'] @@ -326,9 +349,15 @@ def test_stage1(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'upload-bid-private-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal_top_secrets.pdf', b'content')]) + {"data": { + "title": "Proposal_top_secrets.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') priv_doc_id = response.json['data']['id'] @@ -735,15 +764,27 @@ def test_stage2_EU(self): #### Proposal Uploading with open(TARGET_DIR + 'stage2/EU/upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'stage2/EU/upload-bid-private-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal_top_secrets.pdf', b'content')]) + {"data": { + "title": "Proposal_top_secrets.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') priv_doc_id = response.json['data']['id'] @@ -763,15 +804,27 @@ def test_stage2_EU(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'stage2/EU/upload-bid-financial-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc.pdf', b'1000$')]) + {"data": { + "title": "financial_doc.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') financial_doc_id = response.json['data']['id'] - response = self.app.post('/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc2.pdf', b'1000$')]) + {"data": { + "title": "financial_doc2.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') financial_doc_id = response.json['data']['id'] @@ -781,9 +834,15 @@ def test_stage2_EU(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'stage2/EU/upload-bid-qualification-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/qualification_documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/qualification_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'qualification_document.pdf', b'content')]) + {"data": { + "title": "qualification_document.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'stage2/EU/bidder-view-financial-documents.http', 'w') as self.app.file_obj: @@ -827,23 +886,23 @@ def test_stage2_EU(self): 'confidentiality': 'buyerOnly', 'confidentialityRationale': 'Only our company sells badgers with pink hair.' }) - bid4_with_docs["documents"] = [bid_document, bid_document2] - bid4_with_docs["eligibilityDocuments"] = [bid_document3_eligibility] - bid4_with_docs["financialDocuments"] = [bid_document4_financialy] - bid4_with_docs["qualificationDocuments"] = [bid_document5_qualification] - for document in bid4_with_docs['documents']: + bid4_with_docs_st2["documents"] = [bid_document, bid_document2] + bid4_with_docs_st2["eligibilityDocuments"] = [bid_document3_eligibility] + bid4_with_docs_st2["financialDocuments"] = [bid_document4_financialy] + bid4_with_docs_st2["qualificationDocuments"] = [bid_document5_qualification] + for document in bid4_with_docs_st2['documents']: document['url'] = self.generate_docservice_url() - for document in bid4_with_docs['eligibilityDocuments']: + for document in bid4_with_docs_st2['eligibilityDocuments']: document['url'] = self.generate_docservice_url() - for document in bid4_with_docs['financialDocuments']: + for document in bid4_with_docs_st2['financialDocuments']: document['url'] = self.generate_docservice_url() - for document in bid4_with_docs['qualificationDocuments']: + for document in bid4_with_docs_st2['qualificationDocuments']: document['url'] = self.generate_docservice_url() with open(TARGET_DIR + 'stage2/EU/register-3rd-bidder.http', 'w') as self.app.file_obj: response = self.app.post_json( '/tenders/{}/bids'.format(self.tender_id), - {'data': bid4_with_docs}) + {'data': bid4_with_docs_st2}) bid3_id = response.json['data']['id'] bids_access[bid3_id] = response.json['access']['token'] self.assertEqual(response.status, '201 Created') @@ -1618,9 +1677,15 @@ def test_stage2_UA(self): #### Proposal Uploading with open(TARGET_DIR + 'stage2/UA/upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post('/tenders/{}/bids/{}/documents?acc_token={}'.format( + response = self.app.post_json('/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'stage2/UA/bidder-documents.http', 'w') as self.app.file_obj: @@ -1655,7 +1720,7 @@ def test_stage2_UA(self): with open(TARGET_DIR + 'stage2/UA/register-2nd-bidder.http', 'w') as self.app.file_obj: response = self.app.post_json( '/tenders/{}/bids'.format(self.tender_id), - {'data': bid2_with_docs}) + {'data': bid2_with_docs_st2}) bid2_id = response.json['data']['id'] bids_access[bid2_id] = response.json['access']['token'] self.assertEqual(response.status, '201 Created') diff --git a/docs/tests/test_defense.py b/docs/tests/test_defense.py index f8b0ae072a..bf50648ae6 100644 --- a/docs/tests/test_defense.py +++ b/docs/tests/test_defense.py @@ -252,10 +252,16 @@ def test_docs(self): #### Proposal Uploading with open(TARGET_DIR + 'upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'bidder-documents.http', 'w') as self.app.file_obj: diff --git a/docs/tests/test_esco.py b/docs/tests/test_esco.py index 0710ce6603..865cb473a4 100644 --- a/docs/tests/test_esco.py +++ b/docs/tests/test_esco.py @@ -317,17 +317,29 @@ def test_docs(self): #### Proposal Uploading with open(TARGET_DIR + 'upload-bid-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal.pdf', b'content')]) + {"data": { + "title": "Proposal.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'upload-bid-private-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'Proposal_top_secrets.pdf', b'content')]) + {"data": { + "title": "Proposal_top_secrets.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') priv_doc_id = response.json['data']['id'] @@ -343,16 +355,28 @@ def test_docs(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'upload-bid-financial-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc.pdf', b'1000$')]) + {"data": { + "title": "financial_doc.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/financial_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'financial_doc2.pdf', b'1000$')]) + {"data": { + "title": "financial_doc2.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'bidder-documents.http', 'w') as self.app.file_obj: @@ -368,17 +392,29 @@ def test_docs(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'upload-bid-eligibility-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/eligibility_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'eligibility_doc.pdf', b'content')]) + {"data": { + "title": "eligibility_doc.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'upload-bid-qualification-document-proposal.http', 'w') as self.app.file_obj: - response = self.app.post( + response = self.app.post_json( '/tenders/{}/bids/{}/qualification_documents?acc_token={}'.format( self.tender_id, bid1_id, bids_access[bid1_id]), - upload_files=[('file', 'qualification_document.pdf', b'content')]) + {"data": { + "title": "qualification_document.pdf", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/pdf", + }}, + ) self.assertEqual(response.status, '201 Created') with open(TARGET_DIR + 'bidder-view-financial-documents.http', 'w') as self.app.file_obj: diff --git a/src/openprocurement/tender/belowthreshold/procedure/validation.py b/src/openprocurement/tender/belowthreshold/procedure/validation.py index 22e8a47bf5..9b88cc5b94 100644 --- a/src/openprocurement/tender/belowthreshold/procedure/validation.py +++ b/src/openprocurement/tender/belowthreshold/procedure/validation.py @@ -2,12 +2,10 @@ from openprocurement.api.utils import raise_operation_error from openprocurement.api.validation import OPERATIONS from openprocurement.api.constants import GUARANTEE_ALLOWED_TENDER_TYPES -from openprocurement.tender.core.procedure.context import get_now -from openprocurement.tender.core.procedure.documents import check_document, update_document_url # BID DOCUMENTS -def validate_bid_document_operation_in_not_allowed_tender_status(request, **kwargs): +def validate_bid_document_operation_in_not_allowed_tender_status(request, **_): tender = request.validated["tender"] if tender["status"] == "active.awarded" and tender["procurementMethodType"] in GUARANTEE_ALLOWED_TENDER_TYPES: bid_id = request.validated["bid"]["id"] diff --git a/src/openprocurement/tender/belowthreshold/tests/base.py b/src/openprocurement/tender/belowthreshold/tests/base.py index 56bb2cc1cf..cd182a0493 100644 --- a/src/openprocurement/tender/belowthreshold/tests/base.py +++ b/src/openprocurement/tender/belowthreshold/tests/base.py @@ -255,8 +255,12 @@ def set_bid_responses(criteria): def set_bid_lotvalues(bid, lots): - value = bid.pop("value", None) or bid["lotValues"][0]["value"] - bid["lotValues"] = [{"value": value, "relatedLot": lot["id"]} for lot in lots] + try: + value = bid.pop("value", None) or bid["lotValues"][0]["value"] + except KeyError: + bid["lotValues"] = [{"relatedLot": lot["id"]} for lot in lots] + else: + bid["lotValues"] = [{"value": value, "relatedLot": lot["id"]} for lot in lots] return bid diff --git a/src/openprocurement/tender/cfaselectionua/includeme.py b/src/openprocurement/tender/cfaselectionua/includeme.py index 47d35cba8d..87368bfaf2 100644 --- a/src/openprocurement/tender/cfaselectionua/includeme.py +++ b/src/openprocurement/tender/cfaselectionua/includeme.py @@ -15,6 +15,7 @@ def includeme(config): config.add_tender_procurementMethodType(CFASelectionUATender) config.scan("openprocurement.tender.cfaselectionua.views") + config.scan("openprocurement.tender.cfaselectionua.procedure.views") config.scan("openprocurement.tender.cfaselectionua.subscribers") config.registry.registerAdapter( TenderCfaSelectionUAConfigurator, (ICFASelectionUATender, IRequest), IContentConfigurator diff --git a/src/openprocurement/tender/cfaselectionua/procedure/__init__.py b/src/openprocurement/tender/cfaselectionua/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/__init__.py b/src/openprocurement/tender/cfaselectionua/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py new file mode 100644 index 0000000000..4729867660 --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py @@ -0,0 +1,29 @@ +from schematics.types import StringType, BooleanType +from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin +from openprocurement.tender.core.procedure.models.bid import ( + Bid as BaseBid, + PostBid as BasePostBid, + PatchBid as BasePatchBid, +) +from openprocurement.tender.cfaselectionua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue +from openprocurement.tender.cfaselectionua.procedure.models.parameter import PatchParameter, Parameter +from schematics.types.compound import ListType, ModelType +from openprocurement.tender.core.models import validate_parameters_uniq + + +class PatchBid(PatchBidResponsesMixin, BasePatchBid): + parameters = ListType(ModelType(PatchParameter, required=True), validators=[validate_parameters_uniq]) + lotValues = ListType(ModelType(PatchLotValue, required=True)) + subcontractingDetails = StringType() + + +class PostBid(PostBidResponsesMixin, BasePostBid): + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + lotValues = ListType(ModelType(PostLotValue, required=True)) + subcontractingDetails = StringType() + + +class Bid(PostBidResponsesMixin, BaseBid): + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + lotValues = ListType(ModelType(LotValue, required=True)) + subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/lot_value.py b/src/openprocurement/tender/cfaselectionua/procedure/models/lot_value.py new file mode 100644 index 0000000000..9b0d4acacc --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/models/lot_value.py @@ -0,0 +1,18 @@ +from schematics.types import StringType +from openprocurement.tender.core.procedure.models.lot_value import ( + LotValue as BaseLotValue, + PostLotValue as BasePostLotValue, + PatchLotValue as BasePatchLotValue, +) + + +class LotValue(BaseLotValue): + subcontractingDetails = StringType() + + +class PostLotValue(BasePostLotValue): + subcontractingDetails = StringType() + + +class PatchLotValue(BasePatchLotValue): + subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/parameter.py b/src/openprocurement/tender/cfaselectionua/procedure/models/parameter.py new file mode 100644 index 0000000000..1014f9739e --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/models/parameter.py @@ -0,0 +1,32 @@ +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.models.base import DecimalType +from openprocurement.tender.cfaselectionua.procedure.utils import equals_decimal_and_corrupted +from openprocurement.tender.core.procedure.models.parameter import ( + PatchParameter as BasePatchParameter, + Parameter as BaseParameter, +) +from schematics.exceptions import ValidationError + + +def validate_value(data, value): + tender = get_tender() + for feature in tender.get("features", ""): + if data["code"] == feature["code"]: + if not any(equals_decimal_and_corrupted(value, e["value"]) + for e in feature["enum"]): + raise ValidationError("value should be one of feature value.") + + +class Parameter(BaseParameter): + value = DecimalType(required=True) + + def validate_value(self, data, value): + validate_value(data, value) + + +class PatchParameter(BasePatchParameter): + value = DecimalType() + + def validate_value(self, data, value): + return value + diff --git a/src/openprocurement/tender/cfaselectionua/procedure/serializers.py b/src/openprocurement/tender/cfaselectionua/procedure/serializers.py new file mode 100644 index 0000000000..28e2a18c3d --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/serializers.py @@ -0,0 +1,19 @@ +from openprocurement.tender.core.procedure.serializers import ( + BidSerializer as BaseBidSerializer, + lot_value_serializer, + value_amount_to_float, +) + + +def parameter_values_to_float(_, value): + if isinstance(value, list): + return [dict(code=e["code"], value=float(e["value"])) for e in value] + return value + + +class BidSerializer(BaseBidSerializer): + serializers = { + "value": value_amount_to_float, + "lotValues": lot_value_serializer, + "parameters": parameter_values_to_float, + } diff --git a/src/openprocurement/tender/cfaselectionua/procedure/utils.py b/src/openprocurement/tender/cfaselectionua/procedure/utils.py new file mode 100644 index 0000000000..16d1f21e10 --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/utils.py @@ -0,0 +1,18 @@ +from decimal import Decimal + + +DECIMAL_COMPARE_ACCURACY = Decimal("1e-12") + + +def equals_decimal_and_corrupted(value, corrupted_value): + """ + Ex. value is Decimal('0.1'), + tender.feature.enum values can be like + '0.050000000000000002776', '0.10000000000000000555', '0.14999999999999999445' + how do I check this ? + :param value: + :param corrupted_value: + :return: + """ + corrupted_value = Decimal(corrupted_value) + return value == corrupted_value or value == corrupted_value.quantize(DECIMAL_COMPARE_ACCURACY) diff --git a/src/openprocurement/tender/cfaselectionua/procedure/validation.py b/src/openprocurement/tender/cfaselectionua/procedure/validation.py new file mode 100644 index 0000000000..212f1a5eca --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/validation.py @@ -0,0 +1,87 @@ +from openprocurement.api.validation import OPERATIONS +from openprocurement.api.constants import GUARANTEE_ALLOWED_TENDER_TYPES +from openprocurement.api.utils import raise_operation_error +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.cfaselectionua.procedure.utils import equals_decimal_and_corrupted +from decimal import Decimal + + +def get_supplier_contract(contracts, tenderers): + for contract in contracts: + if contract["status"] == "active": + for supplier in contract.get("suppliers", ""): + for tenderer in tenderers: + if supplier["identifier"]["id"] == tenderer["identifier"]["id"]: + return contract + + +def validate_bid_vs_agreement(request, **_): + data = request.validated["data"] + if data: + tender = get_tender() + supplier_contract = get_supplier_contract(tender["agreements"][0]["contracts"], data["tenderers"]) + + if not supplier_contract: + raise_operation_error(request, "Bid is not a member of agreement") + + if ( + data.get("lotValues") + and supplier_contract.get("value") + and Decimal(data["lotValues"][0]["value"]["amount"]) > Decimal(supplier_contract["value"]["amount"]) + ): + raise_operation_error(request, "Bid value.amount can't be greater than contact value.amount.") + + contract_parameters = {p["code"]: p["value"] for p in supplier_contract.get("parameters", "")} + for p in data.get("parameters", ""): + code = p["code"] + if ( + code not in contract_parameters + or not equals_decimal_and_corrupted(Decimal(p["value"]), contract_parameters[code]) + ): + raise_operation_error(request, "Can't post inconsistent bid") + + +def validate_bid_document_operation_with_not_pending_award(request, **_): + tender = request.validated["tender"] + bid_id = request.validated["bid"]["id"] + if tender["status"] == "active.qualification" and not any( + award["bid_id"] == bid_id and award["status"] == "pending" + for award in tender.get("awards", "") + ): + raise_operation_error( + request, + f"Can't {OPERATIONS.get(request.method)} document because award of bid is not in pending state", + ) + + +def validate_bid_document_operation_in_not_allowed_tender_status(request, **_): + tender = request.validated["tender"] + if tender["status"] == "active.awarded" and tender["procurementMethodType"] in GUARANTEE_ALLOWED_TENDER_TYPES: + bid_id = request.validated["bid"]["id"] + data_list = request.validated["data"] + if not isinstance(data_list, list): + data_list = [data_list] + + for data in data_list: + if ( + data.get("documentType", "") == "contractGuarantees" + and any(award["status"] == "active" and award["bid_id"] == bid_id + for award in tender.get("awards", "")) + and any( + criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" + for criterion in tender.get("criteria", "") + ) + ): + pass # contractGuarantees documents are allowed if award for this bid is active + else: + raise_operation_error( + request, + f"Can't {OPERATIONS.get(request.method)} document " + f"in current ({tender['status']}) tender status" + ) + elif tender["status"] not in ("active.tendering", "active.qualification"): + raise_operation_error( + request, + f"Can't {OPERATIONS.get(request.method)} document " + f"in current ({tender['status']}) tender status" + ) diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/__init__.py b/src/openprocurement/tender/cfaselectionua/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py b/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py new file mode 100644 index 0000000000..eb7622ee8f --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py @@ -0,0 +1,100 @@ +from openprocurement.api.utils import json_view +from openprocurement.tender.core.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.cfaselectionua.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.cfaselectionua.procedure.validation import validate_bid_vs_agreement +from openprocurement.tender.cfaselectionua.procedure.serializers import BidSerializer +from openprocurement.tender.core.procedure.validation import ( + unless_item_owner, + unless_administrator, + validate_bid_accreditation_level, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, + validate_bid_operation_period, + validate_bid_operation_in_tendering, + validate_bid_operation_not_in_tendering, +) +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="closeFrameworkAgreementSelectionUA:Tender Bids", + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType="closeFrameworkAgreementSelectionUA", + description="Tender bids", +) +class TenderBidResource(TenderBidResource): + + serializer_class = BidSerializer + + @json_view( + permission="view_tender", + validators=( + validate_bid_operation_in_tendering, + ) + ) + def collection_get(self): + return super().collection_get() + + @json_view( + permission="view_tender", + validators=( + unless_item_owner( + validate_bid_operation_in_tendering, + item_name="bid" + ), + ) + ) + def get(self): + return super().get() + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_bid_vs_agreement, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + validate_bid_vs_agreement, + + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def delete(self): + return super().delete() diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py new file mode 100644 index 0000000000..8d7a26b4c7 --- /dev/null +++ b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py @@ -0,0 +1,85 @@ +from openprocurement.tender.core.procedure.views.bid_document import TenderBidDocumentResource +from openprocurement.api.utils import json_view +from openprocurement.tender.core.procedure.models.document import PostDocument, PatchDocument, Document +from openprocurement.tender.cfaselectionua.procedure.validation import ( + validate_bid_document_operation_with_not_pending_award, + validate_bid_document_operation_in_not_allowed_tender_status, +) +from openprocurement.tender.core.procedure.validation import ( + validate_input_data, + validate_patch_data, + validate_view_bid_document, + validate_item_owner, + validate_bid_document_operation_period, + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model, +) +from cornice.resource import resource + + +@resource( + name="closeFrameworkAgreementSelectionUA:Tender Bid Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType="closeFrameworkAgreementSelectionUA", + description="Tender bidder documents", +) +class TenderCFASUABidDocumentResource(TenderBidDocumentResource): + @json_view( + validators=( + validate_view_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super().get() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), + + validate_bid_document_operation_in_not_allowed_tender_status, + validate_bid_document_operation_with_not_pending_award, + validate_bid_document_operation_period, + ), + permission="edit_bid", + ) + def collection_post(self): + return super().collection_post() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument), + + validate_bid_document_operation_in_not_allowed_tender_status, + validate_bid_document_operation_with_not_pending_award, + validate_bid_document_operation_period, + + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model(Document), + ), + permission="edit_bid", + ) + def put(self): + return super().put() + + @json_view( + content_type="application/json", + validators=( + validate_item_owner("bid"), + + validate_input_data(PatchDocument), + validate_patch_data(Document, item_name="document"), + + validate_bid_document_operation_in_not_allowed_tender_status, + validate_bid_document_operation_with_not_pending_award, + validate_bid_document_operation_period, + ), + permission="edit_bid", + ) + def patch(self): + return super().patch() diff --git a/src/openprocurement/tender/cfaselectionua/tests/bid.py b/src/openprocurement/tender/cfaselectionua/tests/bid.py index 710c974152..b61051c406 100644 --- a/src/openprocurement/tender/cfaselectionua/tests/bid.py +++ b/src/openprocurement/tender/cfaselectionua/tests/bid.py @@ -36,8 +36,6 @@ patch_features_bid_invalid, # TenderBidDocumentResourceTest not_found, - create_tender_bid_document, - put_tender_bid_document, patch_tender_bid_document, create_tender_bid_document_nopending, # TenderBidDocumentWithDSResourceTest @@ -107,12 +105,13 @@ def setUp(self): self.db.save(tender) -class TenderBidDocumentResourceTest(TenderContentWebTest): +class TenderBidDocumentWithDSResourceTest(TenderContentWebTest): + docservice = True initial_status = "active.tendering" initial_lots = deepcopy(test_lots) def setUp(self): - super(TenderBidDocumentResourceTest, self).setUp() + super().setUp() # Create bid response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), @@ -128,18 +127,11 @@ def setUp(self): self.bid_token = response.json["access"]["token"] test_not_found = snitch(not_found) - test_create_tender_bid_document = snitch(create_tender_bid_document) - test_put_tender_bid_document = snitch(put_tender_bid_document) - test_patch_tender_bid_document = snitch(patch_tender_bid_document) - test_create_tender_bid_document_nopending = snitch(create_tender_bid_document_nopending) - - -class TenderBidDocumentWithDSResourceTest(TenderBidDocumentResourceTest): - docservice = True - test_create_tender_bid_document_json = snitch(create_tender_bid_document_json) test_create_tender_bid_document_json_bulk = snitch(create_tender_bid_document_json_bulk) test_put_tender_bid_document_json = snitch(put_tender_bid_document_json) + test_patch_tender_bid_document = snitch(patch_tender_bid_document) + test_create_tender_bid_document_nopending = snitch(create_tender_bid_document_nopending) class TenderBidBatchDocumentWithDSResourceTest(TenderContentWebTest): diff --git a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py index 795ba53eee..1f893a7a8d 100644 --- a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py @@ -813,8 +813,15 @@ def patch_features_bid_invalid(self): def not_found(self): - response = self.app.post( - "/tenders/some_id/bids/some_id/documents", status=404, upload_files=[("file", "name.doc", b"content")] + response = self.app.post_json( + "/tenders/some_id/bids/some_id/documents", + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, + status=404, ) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") @@ -823,26 +830,21 @@ def not_found(self): response.json["errors"], [{"description": "Not Found", "location": "url", "name": "tender_id"}] ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/some_id/documents".format(self.tender_id), + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=404, - upload_files=[("file", "name.doc", b"content")], ) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "url", "name": "bid_id"}]) - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - status=404, - upload_files=[("invalid_value", "name.doc", b"content")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "body", "name": "file"}]) - response = self.app.get("/tenders/some_id/bids/some_id/documents", status=404) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") @@ -879,8 +881,15 @@ def not_found(self): response.json["errors"], [{"description": "Not Found", "location": "url", "name": "document_id"}] ) - response = self.app.put( - "/tenders/some_id/bids/some_id/documents/some_id", status=404, upload_files=[("file", "name.doc", b"content2")] + response = self.app.put_json( + "/tenders/some_id/bids/some_id/documents/some_id", + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, + status=404, ) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") @@ -889,33 +898,30 @@ def not_found(self): response.json["errors"], [{"description": "Not Found", "location": "url", "name": "tender_id"}] ) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/some_id/documents/some_id".format(self.tender_id), + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=404, - upload_files=[("file", "name.doc", b"content2")], ) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "url", "name": "bid_id"}]) - response = self.app.put( - "/tenders/{}/bids/{}/documents/some_id".format(self.tender_id, self.bid_id), - status=404, - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], [{"description": "Not Found", "location": "url", "name": "document_id"}] - ) - - self.app.authorization = ("Basic", ("invalid", "")) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/some_id".format(self.tender_id, self.bid_id), + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=404, - upload_files=[("file", "name.doc", b"content2")], ) self.assertEqual(response.status, "404 Not Found") self.assertEqual(response.content_type, "application/json") @@ -925,240 +931,15 @@ def not_found(self): ) -def create_tender_bid_document(self): - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name.doc", response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1].split("=")[-1] - - response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id), status=403) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't view bid documents in current (active.tendering) tender status", - ) - - response = self.app.get( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"][0]["id"]) - self.assertEqual("name.doc", response.json["data"][0]["title"]) - - response = self.app.get( - "/tenders/{}/bids/{}/documents?all=true&acc_token={}".format(self.tender_id, self.bid_id, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"][0]["id"]) - self.assertEqual("name.doc", response.json["data"][0]["title"]) - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?download=some_id&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, self.bid_token - ), - status=404, - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], [{"description": "Not Found", "location": "url", "name": "download"}] - ) - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?download={}".format(self.tender_id, self.bid_id, doc_id, key), status=403 - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], "Can't view bid documents in current (active.tendering) tender status" - ) - - if self.docservice: - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?download={}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?download={}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 7) - self.assertEqual(response.body, b"content") - - response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id), status=403) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], "Can't view bid documents in current (active.tendering) tender status" - ) - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("name.doc", response.json["data"]["title"]) - - self.set_status("active.awarded") - - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], "Can't add document in current (active.awarded) tender status" - ) - - response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id)) - self.assertEqual(response.status, "200 OK") - if self.docservice: - self.assertIn("http://localhost/get/", response.json["data"]["url"]) - self.assertIn("Signature=", response.json["data"]["url"]) - self.assertIn("KeyID=", response.json["data"]["url"]) - self.assertNotIn("Expires=", response.json["data"]["url"]) - else: - self.assertIn("download=", response.json["data"]["url"]) - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?download={}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - if self.docservice: - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 7) - self.assertEqual(response.body, b"content") - - -def put_tender_bid_document(self): - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - status=404, - upload_files=[("invalid_name", "name.doc", b"content")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "body", "name": "file"}]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content2") - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("name.doc", response.json["data"]["title"]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - "content3", - content_type="application/msword", - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content3") - - self.set_status("active.awarded") - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - upload_files=[("file", "name.doc", b"content3")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], "Can't update document in current (active.awarded) tender status" - ) - - def patch_tender_bid_document(self): - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1235,9 +1016,14 @@ def create_tender_bid_document_nopending(self): token = response.json["access"]["token"] bid_id = bid["id"] - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1257,10 +1043,14 @@ def create_tender_bid_document_nopending(self): response.json["errors"][0]["description"], "Can't update document because award of bid is not in pending state" ) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, token), - b"content3", - content_type="application/msword", + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1269,9 +1059,14 @@ def create_tender_bid_document_nopending(self): response.json["errors"][0]["description"], "Can't update document because award of bid is not in pending state" ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") diff --git a/src/openprocurement/tender/cfaselectionua/views/bid.py b/src/openprocurement/tender/cfaselectionua/views/bid.py index 059a4b2d54..3cc084701b 100644 --- a/src/openprocurement/tender/cfaselectionua/views/bid.py +++ b/src/openprocurement/tender/cfaselectionua/views/bid.py @@ -17,13 +17,13 @@ from openprocurement.tender.core.utils import save_tender, optendersresource, apply_patch -@optendersresource( - name="closeFrameworkAgreementSelectionUA:Tender Bids", - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType="closeFrameworkAgreementSelectionUA", - description="Tender bids", -) +# @optendersresource( +# name="closeFrameworkAgreementSelectionUA:Tender Bids", +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType="closeFrameworkAgreementSelectionUA", +# description="Tender bids", +# ) class TenderBidResource(APIResource): @json_view( content_type="application/json", diff --git a/src/openprocurement/tender/cfaselectionua/views/bid_document.py b/src/openprocurement/tender/cfaselectionua/views/bid_document.py index f16e70935f..a2622c256b 100644 --- a/src/openprocurement/tender/cfaselectionua/views/bid_document.py +++ b/src/openprocurement/tender/cfaselectionua/views/bid_document.py @@ -3,12 +3,12 @@ from openprocurement.tender.core.views.bid_document import TenderBidDocumentResource -@optendersresource( - name="closeFrameworkAgreementSelectionUA:Tender Bid Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType="closeFrameworkAgreementSelectionUA", - description="Tender bidder documents", -) +# @optendersresource( +# name="closeFrameworkAgreementSelectionUA:Tender Bid Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType="closeFrameworkAgreementSelectionUA", +# description="Tender bidder documents", +# ) class TenderCFASUABidDocumentResource(TenderBidDocumentResource): pass diff --git a/src/openprocurement/tender/cfaua/includeme.py b/src/openprocurement/tender/cfaua/includeme.py index 0d7b7f82a2..783a726657 100644 --- a/src/openprocurement/tender/cfaua/includeme.py +++ b/src/openprocurement/tender/cfaua/includeme.py @@ -15,6 +15,7 @@ def includeme(config): config.add_tender_procurementMethodType(CloseFrameworkAgreementUA) config.scan("openprocurement.tender.cfaua.views") + config.scan("openprocurement.tender.cfaua.procedure.views") config.scan("openprocurement.tender.cfaua.subscribers") config.registry.registerAdapter( CloseFrameworkAgreementUAConfigurator, (ICloseFrameworkAgreementUA, IRequest), IContentConfigurator diff --git a/src/openprocurement/tender/cfaua/procedure/__init__.py b/src/openprocurement/tender/cfaua/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaua/procedure/models/__init__.py b/src/openprocurement/tender/cfaua/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaua/procedure/models/bid.py b/src/openprocurement/tender/cfaua/procedure/models/bid.py new file mode 100644 index 0000000000..5a0f3f3bc0 --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/models/bid.py @@ -0,0 +1,56 @@ +from schematics.types import StringType, BooleanType +from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin +from openprocurement.tender.core.procedure.models.bid import ( + Bid as BaseBid, + PostBid as BasePostBid, + PatchBid as BasePatchBid, +) +from openprocurement.tender.cfaua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue +from openprocurement.tender.openua.procedure.models.document import ( + PostDocument, + Document, +) +from schematics.types.compound import ListType, ModelType + + +class PatchBid(PatchBidResponsesMixin, BasePatchBid): + subcontractingDetails = StringType() + lotValues = ListType(ModelType(PatchLotValue, required=True)) + selfQualified = BooleanType(choices=[True]) # selfQualified, selfEligible are the same as in the parent but + selfEligible = BooleanType(choices=[True]) # tests fail because they in different order + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + ) + + +class PostBid(PostBidResponsesMixin, BasePostBid): + subcontractingDetails = StringType() + lotValues = ListType(ModelType(PostLotValue, required=True)) + + documents = ListType(ModelType(PostDocument, required=True)) + financialDocuments = ListType(ModelType(PostDocument, required=True)) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) + qualificationDocuments = ListType(ModelType(PostDocument, required=True)) + + selfQualified = BooleanType(required=True, choices=[True]) + selfEligible = BooleanType(choices=[True]) + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + default="pending", + ) + + +class Bid(PostBidResponsesMixin, BaseBid): + subcontractingDetails = StringType() + lotValues = ListType(ModelType(LotValue, required=True)) + + documents = ListType(ModelType(Document, required=True)) + financialDocuments = ListType(ModelType(Document, required=True)) + eligibilityDocuments = ListType(ModelType(Document, required=True)) + qualificationDocuments = ListType(ModelType(Document, required=True)) + + selfQualified = BooleanType(required=True, choices=[True]) + + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + ) diff --git a/src/openprocurement/tender/cfaua/procedure/models/lot_value.py b/src/openprocurement/tender/cfaua/procedure/models/lot_value.py new file mode 100644 index 0000000000..b5cf0d1ea7 --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/models/lot_value.py @@ -0,0 +1,20 @@ +from schematics.types import StringType +from openprocurement.tender.core.procedure.models.lot_value import ( + LotValue as BaseLotValue, + PostLotValue as BasePostLotValue, + PatchLotValue as BasePatchLotValue, +) + + +class LotValue(BaseLotValue): + subcontractingDetails = StringType() + status = StringType(choices=["pending", "active", "unsuccessful"]) + + +class PostLotValue(BasePostLotValue): + subcontractingDetails = StringType() + status = StringType(choices=["pending", "active", "unsuccessful"], default="pending") + + +class PatchLotValue(BasePatchLotValue): + subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/cfaua/procedure/serializers.py b/src/openprocurement/tender/cfaua/procedure/serializers.py new file mode 100644 index 0000000000..738a5e41cf --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/serializers.py @@ -0,0 +1,34 @@ +from openprocurement.tender.core.procedure.context import get_tender, get_request +from openprocurement.tender.core.procedure.utils import is_item_owner +from openprocurement.tender.openua.procedure.serializers import ( + BidSerializer as BaseBidSerializer, +) + + +class BidSerializer(BaseBidSerializer): + whitelist = None + + def __init__(self, data: dict): + super().__init__(data) + tender = get_tender() + if data["status"] in ("invalid", "deleted"): + self.whitelist = {"id", "status"} + + elif tender["status"] in ("invalid.pre-qualification", "active.pre-qualification", + "active.pre-qualification.stand-still", "active.auction"): + self.whitelist = {"id", "status", "tenderers", "documents", "eligibilityDocuments", "requirementResponses"} + + elif data["status"] == "unsuccessful": + self.whitelist = { + "id", "status", "tenderers", "documents", "eligibilityDocuments", "requirementResponses", + "selfEligible", "selfQualified", "parameters", "subcontractingDetails", + } + elif is_item_owner(get_request(), data): + pass # bid_role = "view" + self.whitelist = { + "id", "date", "participationUrl", + "selfEligible", "selfQualified", + "documents", "eligibilityDocuments", "financialDocuments", "qualificationDocuments", + "value", "lotValues", "parameters", "subcontractingDetails", + "tenderers", "status", "requirementResponses" + } diff --git a/src/openprocurement/tender/cfaua/procedure/state.py b/src/openprocurement/tender/cfaua/procedure/state.py new file mode 100644 index 0000000000..36f9c7c776 --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/state.py @@ -0,0 +1,14 @@ +from openprocurement.tender.core.procedure.state import BidState as BaseBidState +from openprocurement.api.utils import error_handler + + +class BidState(BaseBidState): + def status_up(self, before, after): + assert before != after, "Statuses must be different" + # this logic moved here from validate_update_bid_status validator + # if request.authenticated_role != "Administrator": + if after != "pending": + self.request.errors.add("body", "bid", "Can't update bid to ({}) status".format(after)) + self.request.errors.status = 403 + raise error_handler(self.request) + diff --git a/src/openprocurement/tender/cfaua/procedure/validation.py b/src/openprocurement/tender/cfaua/procedure/validation.py new file mode 100644 index 0000000000..39e51527ac --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/validation.py @@ -0,0 +1,51 @@ +from openprocurement.api.utils import raise_operation_error +from openprocurement.api.validation import OPERATIONS + + +# bid +def validate_bid_posted_status(request, **_): + allowed = ("draft", "pending") + if request.validated["data"]["status"] not in allowed: + raise_operation_error( + request, + f"Bid can be added only with status: {allowed}." + ) + + +def validate_view_bids_in_active_tendering(request, **_): + tender_status = request.validated["tender"]["status"] + if tender_status == "active.tendering": + raise_operation_error( + request, + "Can't view {} in current ({}) tender status".format( + "bid" if request.matchdict.get("bid_id") else "bids", tender_status + ), + ) + + +# bid document +def validate_bid_document_in_tender_status(request, **_): + tender_status = request.validated["tender"]["status"] + if tender_status not in ("active.tendering", "active.qualification", "active.qualification.stand-still"): + raise_operation_error(request, "Can't upload document in current ({}) tender status".format(tender_status)) + + +def validate_bid_financial_document_in_tender_status(request, **_): + tender_status = request.validated["tender"]["status"] + if tender_status not in ("active.tendering", "active.qualification", + "active.awarded", "active.qualification.stand-still"): + raise_operation_error(request, f"Can't upload document in current ({tender_status}) tender status") + + +def validate_bid_document_operation_in_award_status(request, **_): + tender_status = request.validated["tender"]["status"] + bid_id = request.validated["bid"]["id"] + if tender_status in ("active.qualification", "active.awarded") and not any( + award["bid_id"] == bid_id + and award["status"] in ("pending", "active") + for award in request.validated["tender"].get("awards", "") + ): + raise_operation_error( + request, + f"Can't {OPERATIONS.get(request.method)} document because award of bid is not in pending or active state" + ) diff --git a/src/openprocurement/tender/cfaua/procedure/views/__init__.py b/src/openprocurement/tender/cfaua/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/cfaua/procedure/views/bid.py b/src/openprocurement/tender/cfaua/procedure/views/bid.py new file mode 100644 index 0000000000..eff1bde0a2 --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/views/bid.py @@ -0,0 +1,92 @@ +from openprocurement.api.utils import json_view +from openprocurement.tender.openua.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.cfaua.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.cfaua.procedure.state import BidState +from openprocurement.tender.cfaua.procedure.validation import ( + validate_bid_posted_status, +) +from openprocurement.tender.cfaua.procedure.serializers import BidSerializer +from openprocurement.tender.core.procedure.validation import ( + unless_item_owner, + unless_administrator, + validate_bid_accreditation_level, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, + validate_bid_operation_in_tendering, +) +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="closeFrameworkAgreementUA:Tender Bids", + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType="closeFrameworkAgreementUA", + description="Tender EU bids", +) +class TenderBidResource(TenderBidResource): + + state_class = BidState + serializer_class = BidSerializer + + @json_view( + permission="view_tender", + validators=( + validate_bid_operation_in_tendering, + ) + ) + def collection_get(self): + return super().collection_get() + + @json_view( + permission="view_tender", + validators=( + unless_item_owner( + validate_bid_operation_in_tendering, + item_name="bid" + ), + ) + ) + def get(self): + return super().get() + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_bid_posted_status, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() diff --git a/src/openprocurement/tender/cfaua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py new file mode 100644 index 0000000000..1cba10f0ee --- /dev/null +++ b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py @@ -0,0 +1,257 @@ +from openprocurement.tender.core.procedure.views.bid_document import TenderBidDocumentResource +from openprocurement.api.utils import json_view +from openprocurement.tender.openua.procedure.models.document import PostDocument, PatchDocument, Document +from openprocurement.tender.openua.procedure.serializers import ConfidentialDocumentSerializer +from openprocurement.tender.core.procedure.validation import ( + validate_input_data, + validate_patch_data, + validate_item_owner, + validate_bid_document_operation_period, + unless_allowed_by_qualification_milestone, + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model, +) +from openprocurement.tender.openua.procedure.validation import ( + validate_download_bid_document, + validate_update_bid_document_confidentiality, +) +from openprocurement.tender.openeu.procedure.validation import ( + validate_view_bid_document, + validate_bid_document_operation_in_bid_status, + validate_view_bid_documents_allowed_in_bid_status, + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, +) +from openprocurement.tender.cfaua.procedure.validation import ( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + validate_bid_financial_document_in_tender_status, +) +from cornice.resource import resource + + +@resource( + name="closeFrameworkAgreementUA:Tender Bid Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType="closeFrameworkAgreementUA", + description="Tender EU bidder documents", +) +class CFTenderBidDocumentResource(TenderBidDocumentResource): + serializer_class = ConfidentialDocumentSerializer + model_class = Document + + @json_view( + validators=( + validate_view_bid_document, + validate_view_bid_documents_allowed_in_bid_status, + validate_download_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super().get() + + @json_view( + validators=( + validate_view_bid_document, + validate_view_bid_documents_allowed_in_bid_status, + ), + permission="view_tender", + ) + def collection_get(self): + return super().collection_get() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), + + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_bid_status, + ), + permission="edit_bid", + ) + def collection_post(self): + return super().collection_post() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument), + + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model(Document), + ), + permission="edit_bid", + ) + def put(self): + return super().put() + + @json_view( + content_type="application/json", + validators=( + validate_item_owner("bid"), + validate_input_data(PatchDocument), + validate_patch_data(Document, item_name="document"), + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + ), + permission="edit_bid", + ) + def patch(self): + return super().patch() + + +@resource( + name="closeFrameworkAgreementUA:Tender Bid Eligibility Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", + path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", + procurementMethodType="closeFrameworkAgreementUA", + description="Tender EU bidder eligibility documents", +) +class TenderEUBidEligibilityDocumentResource(CFTenderBidDocumentResource): + """ Tender EU Bid Eligibility Documents """ + + container = "eligibilityDocuments" + + +@resource( + name="closeFrameworkAgreementUA:Tender Bid Financial Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", + path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", + procurementMethodType="closeFrameworkAgreementUA", + description="Tender EU bidder financial documents", +) +class CFBidFinancialDocumentResource(CFTenderBidDocumentResource): + """ Tender EU Bid Financial Documents """ + + container = "financialDocuments" + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + ), + permission="view_tender", + ) + def collection_get(self): + return super().collection_get() + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + validate_download_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super().get() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), + + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_financial_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_bid_status, + ), + permission="edit_bid", + ) + def collection_post(self): + return super().collection_post() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument), + + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_financial_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model(Document), + ), + permission="edit_bid", + ) + def put(self): + return super().put() + + @json_view( + content_type="application/json", + validators=( + validate_item_owner("bid"), + validate_input_data(PatchDocument), + validate_patch_data(Document, item_name="document"), + validate_bid_document_operation_in_award_status, + unless_allowed_by_qualification_milestone( + validate_bid_financial_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + ), + permission="edit_bid", + ) + def patch(self): + return super().patch() + + +@resource( + name="closeFrameworkAgreementUA:Tender Bid Qualification Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", + path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", + procurementMethodType="closeFrameworkAgreementUA", + description="Tender EU bidder qualification documents", +) +class CFBidQualificationDocumentResource(CFTenderBidDocumentResource): + """ Tender EU Bid Qualification Documents """ + + container = "qualificationDocuments" + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + ), + permission="view_tender", + ) + def collection_get(self): + return super().collection_get() + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + validate_download_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super().get() diff --git a/src/openprocurement/tender/cfaua/tests/bid.py b/src/openprocurement/tender/cfaua/tests/bid.py index b90969ce56..5c8fcc48c7 100644 --- a/src/openprocurement/tender/cfaua/tests/bid.py +++ b/src/openprocurement/tender/cfaua/tests/bid.py @@ -38,7 +38,6 @@ deleted_bid_do_not_locks_tender_in_state, deleted_bid_is_not_restorable, get_tender_tenderers, - get_tender_bidder_document, get_tender_bidder_document_ds, features_bidder, features_bidder_invalid, @@ -47,7 +46,6 @@ patch_and_put_document_into_invalid_bid, patch_tender_bidder, patch_tender_bidder_document, - patch_tender_bidder_document_private, download_tender_bidder_document, bids_invalidation_on_tender_change, create_tender_bidder_document_nopending, @@ -81,6 +79,7 @@ def setUp(self): class TenderBidResourceTest(BaseTenderLotsContentWebTest): + docservice = True initial_status = "active.tendering" initial_auth = ("Basic", ("broker", "")) initial_lots = test_lots @@ -113,6 +112,7 @@ class TenderBidFeaturesResourceTest(BaseTenderLotsContentWebTest): class TenderBidDocumentResourceTest(BaseTenderLotsContentWebTest): + docservice = True initial_auth = ("Basic", ("broker", "")) initial_status = "active.tendering" test_bids_data = deepcopy(test_bids) @@ -130,19 +130,18 @@ def setUp(self): setattr(self, "bid{}_token".format(x), bid_token) test_patch_and_put_document_into_invalid_bid = snitch(patch_and_put_document_into_invalid_bid) - test_create_tender_bidder_document_nopending = snitch(create_tender_bidder_document_nopending) test_not_found = snitch(not_found) - test_get_tender_bidder_document = snitch(get_tender_bidder_document) - test_create_tender_bidder_document = snitch(create_tender_bidder_document) - test_put_tender_bidder_document = snitch(put_tender_bidder_document) - test_patch_tender_bidder_document = snitch(patch_tender_bidder_document) - test_patch_tender_bidder_document_private = snitch(patch_tender_bidder_document_private) - test_download_tender_bidder_document = snitch(download_tender_bidder_document) class TenderBidDocumentWithDSResourceTest(TenderBidDocumentResourceTest): docservice = True + test_create_tender_bidder_document = snitch(create_tender_bidder_document) + test_put_tender_bidder_document = snitch(put_tender_bidder_document) + test_patch_tender_bidder_document = snitch(patch_tender_bidder_document) + test_download_tender_bidder_document = snitch(download_tender_bidder_document) + test_create_tender_bidder_document_nopending = snitch(create_tender_bidder_document_nopending) + test_create_tender_bid_document_json_bulk = snitch(create_tender_bid_document_json_bulk) test_patch_tender_bidder_document_private_json = snitch(patch_tender_bidder_document_private_json) test_put_tender_bidder_document_private_json = snitch(put_tender_bidder_document_private_json) diff --git a/src/openprocurement/tender/cfaua/tests/bid_blanks.py b/src/openprocurement/tender/cfaua/tests/bid_blanks.py index e69be8dd12..493fa01aa3 100644 --- a/src/openprocurement/tender/cfaua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaua/tests/bid_blanks.py @@ -218,9 +218,14 @@ def bids_invalidation_on_tender_change(self): self.assertEqual(response.json["data"]["status"], "invalid") # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid_id, doc_resource, token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -419,487 +424,17 @@ def get_tender_tenderers(self): ) -def get_tender_bidder_document(self): - - doc_id_by_type = {} - - def document_is_unaccessible_for_others(resource): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker4", "")) - response = self.app.get("/tenders/{}/bids/{}/{}".format(self.tender_id, self.bid_id, resource), status=403) - self.assertEqual(response.status, "403 Forbidden") - doc_id = doc_id_by_type[resource]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, resource, doc_id), status=403 - ) - self.assertEqual(response.status, "403 Forbidden") - self.app.authorization = orig_auth - - def document_is_unaccessible_for_tender_owner(resource): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker", "")) - response = self.app.get( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, resource, self.tender_token), - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - doc_id = doc_id_by_type[resource]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, resource, doc_id, self.tender_token - ), - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.app.authorization = orig_auth - - def all_documents_are_accessible_for_bid_owner(resource): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker", "")) - for resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.get( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, resource, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - doc1 = response.json["data"][0] - doc2 = response.json["data"][1] - self.assertEqual(doc1["title"], "name_{}.doc".format(resource[:-1])) - self.assertEqual(doc2["title"], "name_{}_private.doc".format(resource[:-1])) - self.assertEqual(doc1["confidentiality"], "public") - self.assertEqual(doc2["confidentiality"], "buyerOnly") - self.assertIn("url", doc1) - self.assertIn("url", doc2) - doc_id = doc_id_by_type[resource]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, resource, doc_id, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertIn("previousVersions", response.json["data"]) - doc = response.json["data"] - del doc["previousVersions"] - self.assertEqual(doc, doc1) - doc_id = doc_id_by_type[resource + "private"]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, resource, doc_id, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertIn("previousVersions", response.json["data"]) - doc = response.json["data"] - del doc["previousVersions"] - self.assertEqual(doc, doc2) - self.app.authorization = orig_auth - - def documents_are_accessible_for_tender_owner(resource): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker", "")) - token = self.tender_token - response = self.app.get( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, resource, token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - doc_id = doc_id_by_type[resource]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, resource, doc_id, token) - ) - self.assertIn("url", response.json["data"]) - self.assertEqual(response.status, "200 OK") - doc_id = doc_id_by_type[resource + "private"]["id"] - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, resource, doc_id, token) - ) - self.assertEqual(response.status, "200 OK") - self.assertIn("url", response.json["data"]) - - def public_documents_are_accessible_for_others(resource): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker", "")) - - response = self.app.get("/tenders/{}/bids/{}/{}".format(self.tender_id, self.bid_id, resource)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - self.assertIn(doc_id_by_type[resource]["key"], response.json["data"][0]["url"]) - self.assertNotIn("url", response.json["data"][1]) - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, resource, doc_id_by_type[resource]["id"]) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["title"], "name_{}.doc".format(resource[:-1])) - self.assertEqual(response.json["data"]["confidentiality"], "public") - self.assertEqual(response.json["data"]["format"], "application/msword") - self.assertEqual(response.json["data"]["language"], "uk") - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}".format( - self.tender_id, self.bid_id, resource, doc_id_by_type[resource + "private"]["id"] - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["confidentiality"], "buyerOnly") - self.assertNotIn("url", response.json["data"]) - - self.app.authorization = orig_auth - - def all_public_documents_are_accessible_for_others(): - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - public_documents_are_accessible_for_others(doc_resource) - - def documents_accessible_from_tender_view(): - orig_auth = self.app.authorization - self.app.authorization = ("Basic", ("broker", "")) - - for doc_resource in ["documents", "financialDocuments", "eligibilityDocuments", "qualificationDocuments"]: - response = self.app.get("/tenders/{}".format(self.tender_id)) - - data = response.json["data"] - bid_documents = data["bids"][0][doc_resource] - self.assertIn("url", bid_documents[0]) - self.assertNotIn("url", bid_documents[1]) - - response = self.app.get( - "/tenders/{}?acc_token={}".format(self.tender_id, self.tender_token) - ) - - data = response.json["data"] - bid_documents = data["bids"][0][doc_resource] - self.assertIn("url", bid_documents[0]) - self.assertIn("url", bid_documents[1]) - - response = self.app.get( - "/tenders/{}?acc_token={}".format(self.tender_id, self.bid_token) - ) - - data = response.json["data"] - bid_documents = data["bids"][0][doc_resource] - self.assertIn("url", bid_documents[0]) - self.assertIn("url", bid_documents[1]) - - response = self.app.get( - "/tenders/{}?acc_token={}".format(self.tender_id, self.bid2_token) - ) - - data = response.json["data"] - bid_documents = data["bids"][0][doc_resource] - self.assertIn("url", bid_documents[0]) - self.assertNotIn("url", bid_documents[1]) - - self.app.authorization = orig_auth - - def all_documents_accessible_for_reviewer(): - orig_auth = self.app.authorization - self.app.authorization = ('Basic', ('reviewer', '')) - - for resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - camel_resource = ''.join(word.title() for word in resource.split('_')) - camel_resource = camel_resource[:1].lower() + camel_resource[1:] - response = self.app.get( - "/tenders/{}".format(self.tender_id) - ) - - data = response.json["data"] - bid_documents = data["bids"][0][camel_resource] - self.assertIn("url", bid_documents[0]) - self.assertIn("url", bid_documents[1]) - - response = self.app.get( - "/tenders/{}/bids/{}".format(self.tender_id, self.bid_id) - ) - data = response.json["data"] - self.assertIn("url", data[camel_resource][0]) - self.assertIn("url", data[camel_resource][1]) - - public_file_id = data[camel_resource][0]["id"] - confident_file_id = data[camel_resource][1]["id"] - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, resource, public_file_id) - ) - self.assertIn("url", response.json["data"]) - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, resource, confident_file_id) - ) - self.assertIn("url", response.json["data"]) - - self.app.authorization = orig_auth - - - # active.tendering - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1].split("=")[-1] - doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - - # upload private document - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}_private.doc".format(doc_resource[:-1]), b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}_private.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1].split("=")[-1] - doc_id_by_type[doc_resource + "private"] = {"id": doc_id, "key": key} - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - { - "data": { - "confidentiality": "buyerOnly", - "confidentialityRationale": "Only our company sells badgers with pink hair.", - } - }, - ) - self.assertEqual(response.status, "200 OK") - - document_is_unaccessible_for_others(doc_resource) - document_is_unaccessible_for_tender_owner(doc_resource) - - all_documents_are_accessible_for_bid_owner(doc_resource) - - # switch to active.pre-qualification - self.set_status("active.pre-qualification") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - self.assertEqual( - set(response.json["data"][0].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - self.assertEqual(set(response.json["data"][1].keys()), set(["id", "status", "tenderers"])) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - - for doc_resource in ["documents", "eligibility_documents"]: - response = self.app.get("/tenders/{}/bids/{}/{}".format(self.tender_id, self.bid_id, doc_resource)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - self.assertIn("url", response.json["data"][0]) - self.assertIn(doc_id_by_type[doc_resource]["key"], response.json["data"][0]["url"]) - self.assertNotIn("url", response.json["data"][1]) - - for doc_resource in ["documents", "eligibility_documents"]: - doc_id = doc_id_by_type[doc_resource]["id"] - response = self.app.get("/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, doc_resource, doc_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["title"], "name_{}.doc".format(doc_resource[:-1])) - self.assertEqual(response.json["data"]["confidentiality"], "public") - self.assertEqual(response.json["data"]["format"], "application/msword") - self.assertEqual(response.json["data"]["language"], "uk") - - doc_id = doc_id_by_type[doc_resource + "private"]["id"] - response = self.app.get("/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, doc_resource, doc_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["title"], "name_{}_private.doc".format(doc_resource[:-1])) - self.assertEqual(response.json["data"]["confidentiality"], "buyerOnly") - self.assertEqual(response.json["data"]["format"], "application/msword") - self.assertEqual(response.json["data"]["language"], "uk") - - for doc_resource in ["financial_documents", "qualification_documents"]: - document_is_unaccessible_for_others(doc_resource) - document_is_unaccessible_for_tender_owner(doc_resource) - - for doc_resource in ["documents", "eligibility_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - public_documents_are_accessible_for_others(doc_resource) - all_documents_are_accessible_for_bid_owner(doc_resource) - - self.set_status("active.pre-qualification.stand-still") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - self.assertEqual( - set(response.json["data"][0].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - self.assertEqual(set(response.json["data"][1].keys()), set(["id", "status", "tenderers"])) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - self.assertIn(doc_id_by_type["documents"]["key"], response.json["data"][0]["url"]) - doc_id = doc_id_by_type["documents"]["id"] - response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["title"], "name_document.doc") - self.assertEqual(response.json["data"]["confidentiality"], "public") - self.assertEqual(response.json["data"]["format"], "application/msword") - for doc_resource in ["financial_documents", "qualification_documents"]: - document_is_unaccessible_for_others(doc_resource) - document_is_unaccessible_for_tender_owner(doc_resource) - - for doc_resource in ["documents", "eligibility_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - public_documents_are_accessible_for_others(doc_resource) - all_documents_are_accessible_for_bid_owner(doc_resource) - - # switch to active.auction - self.set_status("active.auction") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - self.assertEqual( - set(response.json["data"][0].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - self.assertEqual(set(response.json["data"][1].keys()), set(["id", "status", "tenderers"])) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), set(["id", "status", "documents", "eligibilityDocuments", "tenderers"]) - ) - response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), 2) - self.assertIn(doc_id_by_type["documents"]["key"], response.json["data"][0]["url"]) - doc_id = doc_id_by_type["documents"]["id"] - response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.json["data"]["title"], "name_document.doc") - self.assertEqual(response.json["data"]["confidentiality"], "public") - self.assertEqual(response.json["data"]["format"], "application/msword") - for doc_resource in ["financial_documents", "qualification_documents"]: - document_is_unaccessible_for_others(doc_resource) - document_is_unaccessible_for_tender_owner(doc_resource) - - for doc_resource in ["documents", "eligibility_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - public_documents_are_accessible_for_others(doc_resource) - all_documents_are_accessible_for_bid_owner(doc_resource) - - self.set_status("active.qualification") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - assert_data_1 = { - "date", - "status", - "id", - "lotValues", - "tenderers", - "documents", - "eligibilityDocuments", - "qualificationDocuments", - "financialDocuments", - "selfQualified", - } - - assert_data_2 = {"date", "status", "id", "lotValues", "tenderers", "selfQualified"} - - if get_now() < RELEASE_ECRITERIA_ARTICLE_17: - assert_data_1.add("selfEligible") - assert_data_2.add("selfEligible") - - self.assertEqual( - set(response.json["data"][0].keys()), - assert_data_1, - ) - self.assertEqual( - set(response.json["data"][1].keys()), - assert_data_2, - ) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), - assert_data_1, - ) - - all_documents_are_accessible_for_bid_owner(doc_resource) - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - all_public_documents_are_accessible_for_others() - - # switch to active.awarded - self.set_status("active.awarded") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - self.assertEqual( - set(response.json["data"][0].keys()), - assert_data_1, - ) - self.assertEqual( - set(response.json["data"][1].keys()), - assert_data_2, - ) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), - assert_data_1, - ) - all_documents_are_accessible_for_bid_owner(doc_resource) - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - all_public_documents_are_accessible_for_others() - - # time travel - self.set_status("complete") - - self.app.authorization = ("Basic", ("anon", "")) - response = self.app.get("/tenders/{}/bids".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual(len(response.json["data"]), self.min_bids_number) - self.assertEqual( - set(response.json["data"][0].keys()), - assert_data_1, - ) - self.assertEqual( - set(response.json["data"][1].keys()), - assert_data_2, - ) - response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, self.bid_id)) - self.assertEqual(response.status, "200 OK") - self.assertEqual( - set(response.json["data"].keys()), - assert_data_1, - ) - all_documents_are_accessible_for_bid_owner(doc_resource) - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - documents_are_accessible_for_tender_owner(doc_resource) - all_public_documents_are_accessible_for_others() - documents_accessible_from_tender_view() - all_documents_accessible_for_reviewer() - - def create_tender_bidder_document(self): doc_id_by_type = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -1001,9 +536,14 @@ def create_tender_bidder_document(self): self.set_status("active.pre-qualification") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1018,9 +558,14 @@ def create_tender_bidder_document(self): self.set_status("active.pre-qualification.stand-still") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1033,11 +578,15 @@ def create_tender_bidder_document(self): # switch to active.auction self.set_status("active.auction") - self.app.authorization = ("Basic", ("token", "")) for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1049,21 +598,29 @@ def create_tender_bidder_document(self): # switch to qualification self.set_status("active.qualification") - self.app.authorization = ("Basic", ("token", "")) for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name2_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") # switch to active.awarded self.set_status("active.awarded") - for doc_resource in ["documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid2_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + response = self.app.post_json( + "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid2_id, doc_resource, self.bid2_token), + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) @@ -1080,9 +637,14 @@ def create_tender_bidder_document(self): ], ) - response = self.app.post( - "/tenders/{}/bids/{}/financial_documents?acc_token={}".format(self.tender_id, self.bid2_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + response = self.app.post_json( + "/tenders/{}/bids/{}/financial_documents?acc_token={}".format(self.tender_id, self.bid2_id, self.bid2_token), + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=201, ) @@ -1092,9 +654,14 @@ def create_tender_bidder_document(self): self.set_status("complete") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1108,21 +675,31 @@ def put_tender_bidder_document(self): doc_id_by_type = {} doc_id_by_type2 = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") doc_id = response.json["data"]["id"] self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) + self.assertEqual("name.doc", response.json["data"]["title"]) doc_id_by_type[doc_resource] = {"id": doc_id, "key": response.json["data"]["url"].split("?")[-1].split("=")[-1]} - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid2_id, doc_resource, self.bid2_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1131,25 +708,16 @@ def put_tender_bidder_document(self): "key": response.json["data"]["url"].split("?")[-1].split("=")[-1], } - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - status=404, - upload_files=[("invalid_name", "name.doc", b"content")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], [{"description": "Not Found", "location": "body", "name": "file"}] - ) - - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token ), - upload_files=[("file", "name.doc", b"content2")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") @@ -1161,17 +729,11 @@ def put_tender_bidder_document(self): self.tender_id, self.bid_id, doc_resource, doc_id, key, self.bid_token ) ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content2") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) response = self.app.get( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( @@ -1183,12 +745,16 @@ def put_tender_bidder_document(self): self.assertEqual(doc_id, response.json["data"]["id"]) self.assertEqual("name.doc", response.json["data"]["title"]) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token ), - "content3", - content_type="application/msword", + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") @@ -1200,27 +766,26 @@ def put_tender_bidder_document(self): self.tender_id, self.bid_id, doc_resource, doc_id, key, self.bid_token ) ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content3") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) # switch to active.pre-qualification self.set_status("active.pre-qualification") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1233,11 +798,16 @@ def put_tender_bidder_document(self): self.set_status("active.pre-qualification.stand-still") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1252,11 +822,16 @@ def put_tender_bidder_document(self): self.app.authorization = ("Basic", ("broker", "")) for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1268,13 +843,18 @@ def put_tender_bidder_document(self): # switch to qualification self.set_status("active.qualification") - self.app.authorization = ("Basic", ("token", "")) + self.app.authorization = ("Basic", ("broker", "")) for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"] + response = self.app.put_json( + "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( + self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") @@ -1282,11 +862,16 @@ def put_tender_bidder_document(self): self.set_status("active.awarded") for doc_resource in ["documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}".format( - self.tender_id, self.bid2_id, doc_resource, doc_id_by_type2[doc_resource]["id"] + response = self.app.put_json( + "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( + self.tender_id, self.bid2_id, doc_resource, doc_id_by_type2[doc_resource]["id"], self.bid2_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1295,11 +880,16 @@ def put_tender_bidder_document(self): response.json["errors"][0]["description"], "Can't upload document in current (active.awarded) tender status" ) - response = self.app.put( - "/tenders/{}/bids/{}/financial_documents/{}".format( - self.tender_id, self.bid2_id, doc_id_by_type2["financial_documents"]["id"] + response = self.app.put_json( + "/tenders/{}/bids/{}/financial_documents/{}?acc_token={}".format( + self.tender_id, self.bid2_id, doc_id_by_type2["financial_documents"]["id"], self.bid2_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") @@ -1307,11 +897,16 @@ def put_tender_bidder_document(self): self.set_status("complete") for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"] + response = self.app.put_json( + "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( + self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token ), - upload_files=[("file", "name.doc", b"content4")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1343,9 +938,14 @@ def delete_tender_bidder(self): # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid["id"], doc_resource, bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1560,9 +1160,14 @@ def patch_tender_bidder_document(self): doc_id_by_type = {} doc_id_by_type2 = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -1573,9 +1178,14 @@ def patch_tender_bidder_document(self): key = response.json["data"]["url"].split("?")[-1] doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid2_id, doc_resource, self.bid2_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1585,9 +1195,14 @@ def patch_tender_bidder_document(self): } # upload private document - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}_private.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}_private.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1609,9 +1224,14 @@ def patch_tender_bidder_document(self): ) self.assertEqual(response.status, "200 OK") - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid2_id, doc_resource, self.bid2_token), - upload_files=[("file", "name_{}_private.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}_private.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1634,62 +1254,18 @@ def patch_tender_bidder_document(self): self.assertEqual(response.status, "200 OK") -def patch_tender_bidder_document_private(self): - doc_id_by_type = {} - private_doc_id_by_type = {} - for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], - ) - - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1] - doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - { - "data": { - "confidentiality": "buyerOnly", - "confidentialityRationale": "Only our company sells badgers with pink hair.", - } - }, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("buyerOnly", response.json["data"]["confidentiality"]) - self.assertEqual( - "Only our company sells badgers with pink hair.", response.json["data"]["confidentialityRationale"] - ) - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - - self.assertEqual("buyerOnly", response.json["data"]["confidentiality"]) - self.assertEqual( - "Only our company sells badgers with pink hair.", response.json["data"]["confidentialityRationale"] - ) - - def download_tender_bidder_document(self): doc_id_by_type = {} private_doc_id_by_type = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1714,9 +1290,14 @@ def download_tender_bidder_document(self): }, ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1740,20 +1321,11 @@ def download_tender_bidder_document(self): container[doc_resource]["key"], ) ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - self.assertIn("Expires=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], - "attachment; filename=name_{}.doc".format(doc_resource[:-1]), - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) response = self.app.get( "/tenders/{}/bids/{}/{}/{}?acc_token={}&{}".format( @@ -1804,19 +1376,10 @@ def test_bids_documents_after_tendering_resource(self, doc_id_by_type, private_d container[doc_resource]["key"], ) ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - else: - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], - "attachment; filename=name_{}.doc".format(doc_resource[:-1]), - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) for doc_resource in ["documents", "eligibility_documents"]: for container in private_doc_id_by_type, doc_id_by_type: @@ -1830,13 +1393,10 @@ def test_bids_documents_after_tendering_resource(self, doc_id_by_type, private_d container[doc_resource]["key"], ) ) - if self.docservice: - self.assertEqual(response.status, "302 Moved Temporarily") - self.assertIn("http://localhost/get/", response.location) - self.assertIn("Signature=", response.location) - self.assertIn("KeyID=", response.location) - else: - self.assertEqual(response.status, "200 OK") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) for doc_resource in ["financial_documents", "qualification_documents"]: for container in private_doc_id_by_type, doc_id_by_type: @@ -2050,9 +1610,14 @@ def create_tender_bidder_document_nopending(self): bid, token = self.create_bid(self.tender_id, bid_data) bid_id = bid["id"] - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2107,17 +1672,26 @@ def create_tender_bidder_document_nopending(self): self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, token), - "content3", - content_type="application/msword", + {"data": { + "title": "name_updated.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2166,9 +1740,14 @@ def bids_activation_on_tender_documents(self): self.assertEqual(response.status, "200 OK") self.assertEqual(response.json["data"]["status"], "pending") - response = self.app.post( + response = self.app.post_json( "/tenders/{}/documents?acc_token={}".format(self.tender_id, self.tender_token), - upload_files=[("file", "укр.doc", b"content")], + {"data": { + "title": "уґр.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2450,18 +2029,6 @@ def deleted_bid_is_not_restorable(self): self.assertEqual(response.json["data"]["status"], "deleted") # try to restore deleted bid - response = self.app.patch_json( - "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), - {"data": {"status": "pending"}}, - status=422, - ) - self.assertEqual(response.status, "422 Unprocessable Entity") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"], - [{"description": ["This field is required."], "location": "body", "name": "lotValues"}], - ) - response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), { @@ -3367,8 +2934,8 @@ def all_public_documents_are_accessible_for_others(): self.assertEqual(response.status, "200 OK") self.assertEqual(len(response.json["data"]), self.min_bids_number) self.assertEqual( - set(response.json["data"][0].keys()), assert_data_1, + set(response.json["data"][0].keys()), ) self.assertEqual( set(response.json["data"][1].keys()), @@ -3534,9 +3101,14 @@ def create_tender_bid_with_qualification_documents(self): def patch_and_put_document_into_invalid_bid(self): doc_id_by_type = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -3571,12 +3143,16 @@ def patch_and_put_document_into_invalid_bid(self): ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token ), - "updated", - content_type="application/msword", + {"data": { + "title": "name_{}_updated.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") @@ -3878,6 +3454,3 @@ def post_winningBid_document_in_awarded(self): doc_id = response.json["data"]["id"] self.assertIn(doc_id, response.headers["Location"]) self.assertEqual("укр.doc", response.json["data"]["title"]) - self.assertIn("Signature=", response.json["data"]["url"]) - self.assertIn("KeyID=", response.json["data"]["url"]) - self.assertNotIn("Expires=", response.json["data"]["url"]) diff --git a/src/openprocurement/tender/cfaua/views/bid.py b/src/openprocurement/tender/cfaua/views/bid.py index d2dd2b01bb..7e770c8df3 100644 --- a/src/openprocurement/tender/cfaua/views/bid.py +++ b/src/openprocurement/tender/cfaua/views/bid.py @@ -12,13 +12,13 @@ from openprocurement.tender.cfaua.validation import validate_view_bids_in_active_tendering -@optendersresource( - name="closeFrameworkAgreementUA:Tender Bids", - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType="closeFrameworkAgreementUA", - description="Tender EU bids", -) +# @optendersresource( +# name="closeFrameworkAgreementUA:Tender Bids", +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType="closeFrameworkAgreementUA", +# description="Tender EU bids", +# ) class TenderBidResource(BaseResource): allowed_bid_status_on_create = ["draft", "pending"] diff --git a/src/openprocurement/tender/cfaua/views/bid_document.py b/src/openprocurement/tender/cfaua/views/bid_document.py index 02222e9f80..37f6822c95 100644 --- a/src/openprocurement/tender/cfaua/views/bid_document.py +++ b/src/openprocurement/tender/cfaua/views/bid_document.py @@ -34,13 +34,13 @@ ) -@optendersresource( - name="closeFrameworkAgreementUA:Tender Bid Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType="closeFrameworkAgreementUA", - description="Tender EU bidder documents", -) +# @optendersresource( +# name="closeFrameworkAgreementUA:Tender Bid Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType="closeFrameworkAgreementUA", +# description="Tender EU bidder documents", +# ) class TenderEUBidDocumentResource(TenderUaBidDocumentResource): container = "documents" @@ -114,24 +114,24 @@ def put(self): return super(TenderEUBidDocumentResource, self).put() -@bid_eligibility_documents_resource( - name="closeFrameworkAgreementUA:Tender Bid Eligibility Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", - path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", - procurementMethodType="closeFrameworkAgreementUA", - description="Tender EU bidder eligibility documents", -) +# @bid_eligibility_documents_resource( +# name="closeFrameworkAgreementUA:Tender Bid Eligibility Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", +# procurementMethodType="closeFrameworkAgreementUA", +# description="Tender EU bidder eligibility documents", +# ) class TenderEUBidEligibilityDocumentResource(TenderEUBidDocumentResource): container = "eligibilityDocuments" -@bid_financial_documents_resource( - name="closeFrameworkAgreementUA:Tender Bid Financial Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", - path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", - procurementMethodType="closeFrameworkAgreementUA", - description="Tender EU bidder financial documents", -) +# @bid_financial_documents_resource( +# name="closeFrameworkAgreementUA:Tender Bid Financial Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", +# procurementMethodType="closeFrameworkAgreementUA", +# description="Tender EU bidder financial documents", +# ) class TenderEUBidFinancialDocumentResource(TenderEUBidDocumentResource): container = "financialDocuments" @@ -205,13 +205,13 @@ def put(self): return super(TenderEUBidFinancialDocumentResource, self).put() -@bid_qualification_documents_resource( - name="closeFrameworkAgreementUA:Tender Bid Qualification Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", - path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", - procurementMethodType="closeFrameworkAgreementUA", - description="Tender EU bidder qualification documents", -) +# @bid_qualification_documents_resource( +# name="closeFrameworkAgreementUA:Tender Bid Qualification Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", +# procurementMethodType="closeFrameworkAgreementUA", +# description="Tender EU bidder qualification documents", +# ) class TenderEUBidQualificationDocumentResource(TenderEUBidFinancialDocumentResource): container = "qualificationDocuments" diff --git a/src/openprocurement/tender/competitivedialogue/includeme.py b/src/openprocurement/tender/competitivedialogue/includeme.py index 6041ce0f99..5d1841d53a 100644 --- a/src/openprocurement/tender/competitivedialogue/includeme.py +++ b/src/openprocurement/tender/competitivedialogue/includeme.py @@ -40,6 +40,8 @@ def includeme(config): config.add_tender_procurementMethodType(TenderStage2UA) config.scan("openprocurement.tender.competitivedialogue.views.stage1") config.scan("openprocurement.tender.competitivedialogue.views.stage2") + config.scan("openprocurement.tender.competitivedialogue.procedure.views.stage1") + config.scan("openprocurement.tender.competitivedialogue.procedure.views.stage2") config.scan("openprocurement.tender.competitivedialogue.subscribers") config.registry.registerAdapter(TenderCDEUConfigurator, (ICDEUTender, IRequest), IContentConfigurator) config.registry.registerAdapter(TenderCDUAConfigurator, (ICDUATender, IRequest), IContentConfigurator) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/__init__.py b/src/openprocurement/tender/competitivedialogue/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/__init__.py b/src/openprocurement/tender/competitivedialogue/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py new file mode 100644 index 0000000000..aca7e90849 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py @@ -0,0 +1,82 @@ +from openprocurement.tender.core.procedure.models.base import ( + ListType, + BaseBid, + PatchBusinessOrganization, + PostBusinessOrganization, +) +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.validation import validate_bid_value +from openprocurement.tender.competitivedialogue.procedure.models.lot_value import LotValue, PatchLotValue, PostLotValue +from openprocurement.tender.competitivedialogue.procedure.models.document import PostDocument, Document +from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin +from openprocurement.tender.core.procedure.models.bid import MetaBid, validate_lot_values +from schematics.types.compound import ModelType +from schematics.types import BooleanType, StringType +from schematics.types.serializable import serializable +from uuid import uuid4 + + +class PatchBid(PatchBidResponsesMixin, BaseBid): + tenderers = ListType(ModelType(PatchBusinessOrganization, required=True), min_size=1, max_size=1) + lotValues = ListType(ModelType(PatchLotValue, required=True)) + subcontractingDetails = StringType() + selfQualified = BooleanType(choices=[True]) + selfEligible = BooleanType(choices=[True]) + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + ) + + +class PostBid(PostBidResponsesMixin, BaseBid): + + @serializable + def id(self): + return uuid4().hex + + tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) + subcontractingDetails = StringType() + lotValues = ListType(ModelType(PostLotValue, required=True)) + documents = ListType(ModelType(PostDocument, required=True)) + financialDocuments = ListType(ModelType(PostDocument, required=True)) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) + qualificationDocuments = ListType(ModelType(PostDocument, required=True)) + + selfQualified = BooleanType(required=True, choices=[True]) + selfEligible = BooleanType(choices=[True]) + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + default="pending", + ) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + validate_bid_value(tender, value) + + def validate_lotValues(self, data, values): + if data.get("status") != "draft": + validate_lot_values(values) + + +class Bid(MetaBid, PostBidResponsesMixin, BaseBid): + tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) + lotValues = ListType(ModelType(LotValue, required=True)) + documents = ListType(ModelType(Document, required=True)) + financialDocuments = ListType(ModelType(Document, required=True)) + eligibilityDocuments = ListType(ModelType(Document, required=True)) + qualificationDocuments = ListType(ModelType(Document, required=True)) + subcontractingDetails = StringType() + selfQualified = BooleanType(required=True, choices=[True]) + selfEligible = BooleanType(choices=[True]) + status = StringType( + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + ) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + validate_bid_value(tender, value) + + def validate_lotValues(self, data, values): + if data.get("status") != "draft": + validate_lot_values(values) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/document.py b/src/openprocurement/tender/competitivedialogue/procedure/models/document.py new file mode 100644 index 0000000000..39b2f25836 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/document.py @@ -0,0 +1,34 @@ +from openprocurement.api.models import Model +from openprocurement.tender.openua.procedure.models.document import ( + PostDocument as BasePostDocument, + PatchDocument as BasePatchDocument, + Document as BaseDocument, +) +from schematics.types import BooleanType +from schematics.exceptions import ValidationError + + +class Stage1Mixin(Model): + isDescriptionDecision = BooleanType(default=False) + + def validate_confidentialityRationale(self, data, val): + if data["confidentiality"] != "public" and not data["isDescriptionDecision"]: + if not val: + raise ValidationError("confidentialityRationale is required") + elif len(val) < 30: + raise ValidationError("confidentialityRationale should contain at least 30 characters") + + +class PostDocument(Stage1Mixin, BasePostDocument): + pass + + +class PatchDocument(BasePatchDocument): + isDescriptionDecision = BooleanType() + + def validate_confidentialityRationale(self, data, val): + pass + + +class Document(Stage1Mixin, BaseDocument): + pass diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py b/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py new file mode 100644 index 0000000000..bbc29d4129 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py @@ -0,0 +1,32 @@ +from openprocurement.api.models import Model, Value, ModelType +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.validation import validate_relatedlot +from schematics.types import StringType, MD5Type + + +class LotValue(Model): + relatedLot = MD5Type() + subcontractingDetails = StringType() + status = StringType(choices=["pending", "active", "unsuccessful"]) + + date = StringType() + + +class PostLotValue(Model): + relatedLot = MD5Type() + subcontractingDetails = StringType() + status = StringType(choices=["pending"], default="pending") + + def validate_relatedLot(self, data, related_lot): + tender = get_tender() + validate_relatedlot(tender, related_lot) + + +class PatchLotValue(Model): + relatedLot = MD5Type() + subcontractingDetails = StringType() + + def validate_relatedLot(self, data, related_lot): + if related_lot is not None: + tender = get_tender() + validate_relatedlot(tender, related_lot) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/serializers.py b/src/openprocurement/tender/competitivedialogue/procedure/serializers.py new file mode 100644 index 0000000000..cde55877fb --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/serializers.py @@ -0,0 +1,38 @@ +from openprocurement.tender.core.procedure.context import get_tender, get_request +from openprocurement.tender.core.procedure.utils import is_item_owner +from openprocurement.tender.openua.procedure.serializers import BidSerializer as BaseBidSerializer + + +class BidSerializer(BaseBidSerializer): + whitelist = None + + def __init__(self, data: dict): + super().__init__(data) + tender_status = get_tender()["status"] + if data["status"] in ("invalid", "deleted"): + self.whitelist = {"id", "status"} + elif tender_status in ("active.pre-qualification", "active.pre-qualification.stand-still"): + self.whitelist = {"id", "status", "documents", "tenderers", "requirementResponses"} + + elif tender_status == "active.auction": + self.whitelist = {"id", "status", "documents", "tenderers"} + elif tender_status in ("active.stage2.pending", "active.stage2.waiting"): + self.whitelist = {"id", "status", "documents", "tenderers"} + elif tender_status == "unsuccessful": + self.whitelist = { + "id", "status", "tenderers", "documents", "selfQualified", "selfEligible", + "subcontractingDetails", "requirementResponses", + } + # elif is_item_owner(get_request(), data): + # pass # bid_role = "view" + + @property + def data(self) -> dict: + if self.whitelist: + data = { + k: self.serialize_value(k, v) + for k, v in self._data.items() + if k in self.whitelist + } + return data + return super().data diff --git a/src/openprocurement/tender/competitivedialogue/procedure/state.py b/src/openprocurement/tender/competitivedialogue/procedure/state.py new file mode 100644 index 0000000000..d15400d808 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/state.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +from openprocurement.tender.openeu.procedure.state import BidState as BaseBidState + + +class Stage1BidState(BaseBidState): + + def on_patch(self, before, after): + # Removing logic with if value.amount is going to be changed -> update "date" + + # if status has changed, we should take additional actions according to procedure + if "status" in after and before["status"] != after["status"]: + self.status_up(before["status"], after["status"]) + diff --git a/src/openprocurement/tender/competitivedialogue/procedure/validation.py b/src/openprocurement/tender/competitivedialogue/procedure/validation.py new file mode 100644 index 0000000000..b08a86b6c9 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/validation.py @@ -0,0 +1,14 @@ +from openprocurement.tender.competitivedialogue.utils import ( + prepare_shortlistedFirms, + prepare_bid_identifier, +) +from openprocurement.api.utils import raise_operation_error + + +def validate_firm_to_create_bid(request, **_): + tender = request.validated["tender"] + bid = request.validated["data"] + firm_keys = prepare_shortlistedFirms(tender.get("shortlistedFirms") or "") + bid_keys = prepare_bid_identifier(bid) + if not (bid_keys <= firm_keys): + raise_operation_error(request, "Firm can't create bid") diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/__init__.py b/src/openprocurement/tender/competitivedialogue/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/__init__.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py new file mode 100644 index 0000000000..a459d7e935 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py @@ -0,0 +1,120 @@ +from openprocurement.api.utils import json_view +from openprocurement.tender.openeu.procedure.views.bid import TenderBidResource +from openprocurement.tender.competitivedialogue.constants import CD_EU_TYPE, CD_UA_TYPE +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.competitivedialogue.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.competitivedialogue.procedure.serializers import BidSerializer +from openprocurement.tender.competitivedialogue.procedure.state import Stage1BidState +from openprocurement.tender.openeu.procedure.validation import ( + validate_post_bid_status, + validate_view_bids, + validate_bid_status_update_not_to_pending, +) +from openprocurement.tender.core.procedure.validation import ( + unless_administrator, + validate_bid_accreditation_level, + unless_item_owner, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, +) +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="{}:Tender Bids".format(CD_UA_TYPE), + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType=CD_UA_TYPE, + description="Competitive Dialogue UA bids", +) +class CompetitiveDialogueUABidResource(TenderBidResource): + + serializer_class = BidSerializer + state_class = Stage1BidState + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_post_bid_status, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + validate_bid_status_update_not_to_pending, + ), + ) + def patch(self): + return super().patch() + + +@resource( + name="{}:Tender Bids".format(CD_EU_TYPE), + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType=CD_EU_TYPE, + description="Competitive Dialogue EU bids", +) +class CompetitiveDialogueEUBidResource(TenderBidResource): + + serializer_class = BidSerializer + state_class = Stage1BidState + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_post_bid_status, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + validate_bid_status_update_not_to_pending, + ), + ) + def patch(self): + return super().patch() diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py new file mode 100644 index 0000000000..cc56761d07 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py @@ -0,0 +1,99 @@ +from openprocurement.tender.openeu.procedure.views.bid_document import OpenEUTenderBidDocumentResource +from openprocurement.tender.competitivedialogue.constants import CD_EU_TYPE, CD_UA_TYPE +from openprocurement.api.utils import json_view +from openprocurement.tender.competitivedialogue.procedure.models.document import PostDocument, PatchDocument, Document +from openprocurement.tender.core.procedure.validation import ( + validate_input_data, + validate_patch_data, + validate_item_owner, + validate_bid_document_operation_period, + unless_allowed_by_qualification_milestone, + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model, +) +from openprocurement.tender.openua.procedure.validation import ( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + validate_update_bid_document_confidentiality, +) +from openprocurement.tender.openeu.procedure.validation import ( + validate_bid_document_operation_in_bid_status, +) +from cornice.resource import resource + + +@resource( + name="{}:Tender Bid Documents".format(CD_EU_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType=CD_EU_TYPE, + description="Competitive Dialogue EU bidder documents", +) +class EUTenderBidDocumentResource(OpenEUTenderBidDocumentResource): + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), + + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_bid_status, + ), + permission="edit_bid", + ) + def collection_post(self): + return super().collection_post() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument), + + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model(Document), + ), + permission="edit_bid", + ) + def put(self): + return super().put() + + @json_view( + content_type="application/json", + validators=( + validate_item_owner("bid"), + validate_input_data(PatchDocument), + validate_patch_data(Document, item_name="document"), + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, + ), + permission="edit_bid", + ) + def patch(self): + return super().patch() + + +@resource( + name="{}:Tender Bid Documents".format(CD_UA_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType=CD_UA_TYPE, + description="Competitive Dialogue UA bidder documents", +) +class UATenderBidDocumentResource(EUTenderBidDocumentResource): + pass diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/__init__.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py new file mode 100644 index 0000000000..3937949046 --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py @@ -0,0 +1,70 @@ +from openprocurement.tender.openeu.procedure.views.bid import TenderBidResource as BaseResourceEU +from openprocurement.tender.openua.procedure.views.bid import TenderBidResource as BaseResourceUA +from openprocurement.tender.competitivedialogue.constants import STAGE_2_UA_TYPE, STAGE_2_EU_TYPE +from openprocurement.tender.competitivedialogue.procedure.validation import validate_firm_to_create_bid +from openprocurement.tender.openeu.procedure.models.bid import PostBid as PostBidEU +from openprocurement.tender.openua.procedure.models.bid import PostBid as PostBidUA +from openprocurement.tender.openeu.procedure.validation import ( + validate_post_bid_status, +) +from openprocurement.tender.core.procedure.validation import ( + validate_bid_accreditation_level, + validate_input_data, + validate_data_documents, + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, +) +from openprocurement.api.utils import json_view +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="{}:Tender Bids".format(STAGE_2_EU_TYPE), + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType=STAGE_2_EU_TYPE, + description="Competitive Dialogue Stage2EU bids", +) +class CompetitiveDialogueStage2EUBidResource(BaseResourceEU): + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBidEU), + validate_post_bid_status, + validate_firm_to_create_bid, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + +@resource( + name="{}:Tender Bids".format(STAGE_2_UA_TYPE), + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType=STAGE_2_UA_TYPE, + description="Competitive Dialogue Stage2 UA bids", +) +class CompetitiveDialogueStage2UABidResource(BaseResourceUA): + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBidUA), + validate_firm_to_create_bid, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid_document.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid_document.py new file mode 100644 index 0000000000..8350d5904f --- /dev/null +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid_document.py @@ -0,0 +1,64 @@ +from openprocurement.tender.openeu.procedure.views.bid_document import ( + OpenEUTenderBidDocumentResource, + TenderEUBidFinancialDocumentResource, + TenderEUBidEligibilityDocumentResource, + TenderEUBidQualificationDocumentResource, +) +from openprocurement.tender.openua.procedure.views.bid_document import TenderUaBidDocumentResource +from openprocurement.tender.competitivedialogue.constants import STAGE_2_UA_TYPE, STAGE_2_EU_TYPE +from cornice.resource import resource + + +@resource( + name="{}:Tender Bid Documents".format(STAGE_2_EU_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType=STAGE_2_EU_TYPE, + description="Competitive Dialogue Stage2 EU bidder documents", +) +class CompetitiveDialogueStage2EUBidDocumentResource(OpenEUTenderBidDocumentResource): + pass + + +@resource( + name="{}:Tender Bid Documents".format(STAGE_2_UA_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType=STAGE_2_UA_TYPE, + description="Competitive Dialogue Stage2 UA bidder documents", +) +class CompetitiveDialogueStage2UaBidDocumentResource(TenderUaBidDocumentResource): + pass + + +@resource( + name="{}:Tender Bid Financial Documents".format(STAGE_2_EU_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", + path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", + procurementMethodType=STAGE_2_EU_TYPE, + description="Competitive Dialogue Stage2 EU bidder financial documents", +) +class CompetitiveDialogueStage2EUBidFinancialDocumentResource(TenderEUBidFinancialDocumentResource): + pass + + +@resource( + name="{}:Tender Bid Eligibility Documents".format(STAGE_2_EU_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", + path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", + procurementMethodType=STAGE_2_EU_TYPE, + description="Competitive Dialogue Stage2 EU bidder eligibility documents", +) +class CompetitiveDialogueStage2EUBidEligibilityDocumentResource(TenderEUBidEligibilityDocumentResource): + pass + + +@resource( + name="{}:Tender Bid Qualification Documents".format(STAGE_2_EU_TYPE), + collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", + path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", + procurementMethodType=STAGE_2_EU_TYPE, + description="Competitive Dialogue Stage2 EU bidder qualification documents", +) +class CompetitiveDialogueStage2EUBidQualificationDocumentResource(TenderEUBidQualificationDocumentResource): + pass diff --git a/src/openprocurement/tender/competitivedialogue/tests/base.py b/src/openprocurement/tender/competitivedialogue/tests/base.py index 76f6663c59..acb7f8b561 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/base.py +++ b/src/openprocurement/tender/competitivedialogue/tests/base.py @@ -35,6 +35,12 @@ test_bids = deepcopy(test_bids) test_bids.append(deepcopy(test_bids[0])) # Minimal number of bits is 3 +test_bids_stage1 = deepcopy(test_bids) +for b in test_bids_stage1: + for f in tuple(b.keys()): + if f not in ("tenderers", "selfQualified", "selfEligible", "lotValues"): + del b[f] + now = datetime.now() test_tender_data_eu = deepcopy(base_test_tender_data_eu) test_tender_data_eu["procurementMethodType"] = CD_EU_TYPE diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid.py index 5849400e48..a9d299e15a 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid.py @@ -3,12 +3,9 @@ from copy import deepcopy from openprocurement.api.tests.base import snitch -from openprocurement.tender.belowthreshold.tests.bid_blanks import ( - # CompetitiveDialogEU2LotBidResourceTest - patch_tender_with_bids_lots_none, -) -from openprocurement.tender.openeu.tests.bid import TenderBidResourceTestMixin, CreateBidMixin +from openprocurement.tender.openeu.tests.bid import CreateBidMixin +from openprocurement.tender.openeu.tests.bid_blanks import bids_activation_on_tender_documents from openprocurement.tender.openua.tests.bid import ( TenderBidDocumentWithDSResourceTestMixin, TenderBidRequirementResponseTestMixin, @@ -17,13 +14,16 @@ from openprocurement.tender.competitivedialogue.tests.base import ( BaseCompetitiveDialogUAContentWebTest, BaseCompetitiveDialogEUContentWebTest, - test_bids, + test_bids_stage1 as test_bids, test_tenderer, test_features_tender_eu_data, test_lots, ) from openprocurement.tender.competitivedialogue.tests.stage1.bid_blanks import ( + patch_tender_with_bids_lots_none, # CompetitiveDialogEUBidResourceTest + create_tender_bidder, + deleted_bid_is_not_restorable, create_tender_bidder_invalid, status_jumping, create_bid_without_parameters, @@ -38,9 +38,6 @@ # CompetitiveDialogEUBidDocumentResourceTest get_tender_bidder_document, create_tender_bidder_document, - put_tender_bidder_document, - patch_tender_bidder_document, - patch_tender_bidder_document_private, patch_and_put_document_into_invalid_bid, download_tender_bidder_document, create_tender_bidder_document_nopending, @@ -51,11 +48,17 @@ ) -class CompetitiveDialogEUBidResourceTest(BaseCompetitiveDialogEUContentWebTest, TenderBidResourceTestMixin): +class CompetitiveDialogEUBidResourceTest(BaseCompetitiveDialogEUContentWebTest): initial_status = "active.tendering" initial_auth = ("Basic", ("broker", "")) test_bids_data = test_bids + docservice = True + + # overwriting TenderBidResourceTestMixin.test_create_tender_bidder + test_create_tender_bidder = snitch(create_tender_bidder) + test_deleted_bid_is_not_restorable = snitch(deleted_bid_is_not_restorable) + test_bids_activation_on_tender_documents = snitch(bids_activation_on_tender_documents) test_create_tender_bidder_invalid = snitch(create_tender_bidder_invalid) test_status_jumping = snitch(status_jumping) @@ -89,6 +92,7 @@ class CompetitiveDialogEUBidDocumentResourceTest(BaseCompetitiveDialogEUContentW initial_auth = ("Basic", ("broker", "")) initial_status = "active.tendering" test_bids_data = test_bids + docservice = True def setUp(self): super(CompetitiveDialogEUBidDocumentResourceTest, self).setUp() @@ -112,9 +116,6 @@ def setUp(self): test_get_tender_bidder_document = snitch(get_tender_bidder_document) test_create_tender_bidder_document = snitch(create_tender_bidder_document) - test_put_tender_bidder_document = snitch(put_tender_bidder_document) - test_patch_tender_bidder_document = snitch(patch_tender_bidder_document) - test_patch_tender_bidder_document_private = snitch(patch_tender_bidder_document_private) test_patch_and_put_document_into_invalid_bid = snitch(patch_and_put_document_into_invalid_bid) test_download_tender_bidder_document = snitch(download_tender_bidder_document) test_create_tender_bidder_document_nopending = snitch(create_tender_bidder_document_nopending) @@ -132,7 +133,6 @@ def setUp(self): super(TenderUABidDocumentWithDSWebTest, self).setUp() # Create bid bid_data = deepcopy(self.test_bids_data[0]) - bid_data["value"] = {"amount": 500} bid_data["tenderers"] = [test_tenderer] bid, bid_token = self.create_bid(self.tender_id, bid_data) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py index 1b69e337a1..0665cf40fb 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py @@ -6,6 +6,72 @@ # CompetitiveDialogEUBidResourceTest +def create_tender_bidder(self): + bid_data = deepcopy(self.test_bids_data[0]) + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": bid_data}, + ) + self.assertEqual(response.status, "201 Created") + self.assertEqual(response.content_type, "application/json") + bid = response.json["data"] + self.assertEqual(bid["tenderers"][0]["name"], self.test_bids_data[0]["tenderers"][0]["name"]) + self.assertIn("id", bid) + self.assertIn(bid["id"], response.headers["Location"]) + + for status in ("active", "unsuccessful", "deleted", "invalid"): + bid_data["status"] = status + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": bid_data}, + status=403, + ) + self.assertEqual(response.status, "403 Forbidden") + + self.set_status("complete") + + del bid_data["status"] + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": bid_data}, + status=403, + ) + self.assertEqual(response.status, "403 Forbidden") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["errors"][0]["description"], "Can't add bid in current (complete) tender status") + + +def deleted_bid_is_not_restorable(self): + bid_data = deepcopy(self.test_bids_data[0]) + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": bid_data}, + ) + self.assertEqual(response.status, "201 Created") + self.assertEqual(response.content_type, "application/json") + bid = response.json["data"] + bid_token = response.json["access"]["token"] + + response = self.app.delete("/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token)) + self.assertEqual(response.status, "200 OK") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["data"]["id"], bid["id"]) + self.assertEqual(response.json["data"]["status"], "deleted") + + # try to restore deleted bid + response = self.app.patch_json( + "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), + {"data": {"status": "pending"}}, + status=403, + ) + self.assertEqual(response.status, "403 Forbidden") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["errors"][0]["description"], "Can't update bid in (deleted) status") + + response = self.app.get("/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token)) + self.assertEqual(response.status, "200 OK") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["data"]["status"], "deleted") def create_tender_bidder_invalid(self): @@ -167,7 +233,6 @@ def create_tender_bidder_invalid(self): ) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] # Field value doesn't exists on first stage # Try create bid without description @@ -178,29 +243,21 @@ def create_tender_bidder_invalid(self): self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") - # Try create bid with bad valueAddedTaxIncluded + # Try create bid with value bid_data["value"] = {"amount": 500, "valueAddedTaxIncluded": False} response = self.app.post_json( request_path, {"data": bid_data}, + status=422 ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - - bid_data["value"] = {"amount": 500, "currency": "USD"} - # Try create bid bad currency - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json, + {"status": "error", "errors": [ + {"location": "body", "name": "value", "description": "Rogue field"}]}) def status_jumping(self): """ Owner try set active.stage2.waiting status after pre-qualification """ bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] bid, bid_token = self.create_bid(self.tender_id, bid_data) bidder_data = bid_data["tenderers"][0] @@ -320,13 +377,12 @@ def create_bid_without_parameters(self): response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": bid_data}, + status=422 + ) + self.assertEqual( + response.json, + {"status": "error", "errors": [{"location": "body", "name": "parameters", "description": "Rogue field"}]} ) - self.assertEqual(response.status, "201 Created") - bid = response.json["data"] - bid_token = response.json["access"]["token"] - # Get bid and check parameters - response = self.app.get("/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token)) - self.assertNotIn("parameters", response.json["data"]) def patch_tender_bidder(self): @@ -335,7 +391,6 @@ def patch_tender_bidder(self): """ # Create test bidder bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": bid_data}, @@ -365,13 +420,6 @@ def patch_tender_bidder(self): self.assertEqual(response.json["data"]["date"], bid["date"]) self.assertEqual(response.json["data"]["tenderers"][0]["name"], bid["tenderers"][0]["name"]) - # Try update bidder amount, return Null - response = self.app.patch_json( - "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), - {"data": {"value": {"amount": 400}}}, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") # Try update bidder amount by bad bidder id response = self.app.patch_json( @@ -414,7 +462,7 @@ def patch_tender_bidder(self): # Try update bidder when dialog status is complete response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), - {"data": {"value": {"amount": 400}}}, + {"data": {"tenderers": [{}]}}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -429,7 +477,6 @@ def get_tender_bidder(self): # Create bidder, and save bid_data = deepcopy(self.test_bids_data[0]) bidder_data = bid_data["tenderers"][0] - bid_data["value"]["amount"] = 500 bidder_data["identifier"]["id"] = "00037256" bid, bid_token = self.create_bid(self.tender_id, bid_data) @@ -602,7 +649,6 @@ def deleted_bid_do_not_locks_tender_in_state(self): def get_tender_tenderers(self): # Create bid bid_data = deepcopy(self.test_bids_data[0]) - bid_data["value"] = {"amount": 500} bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" bid, bid_token = self.create_bid(self.tender_id, bid_data) @@ -616,11 +662,9 @@ def get_tender_tenderers(self): ) # Create bid - bid_data["value"]["amount"] = 101 bidder_data["identifier"]["id"] = "00037257" self.create_bid(self.tender_id, bid_data) # Create another bid - bid_data["value"]["amount"] = 111 bidder_data["identifier"]["id"] = "00037258" self.create_bid(self.tender_id, bid_data) @@ -694,24 +738,33 @@ def bids_invalidation_on_tender_change(self): self.assertEqual(response.json["data"]["status"], "invalid") # try to add documents to bid doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid_id, doc_resource, token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") # we don't support another type of documents for doc_resource in ["qualification_documents", "eligibility_documents", "financial_documents"]: - response = self.app.post( + self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid_id, doc_resource, token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=404, ) # and submit valid bid data = deepcopy(self.test_bids_data[0]) - data["value"]["amount"] = 299 data["tenderers"][0]["identifier"]["id"] = "00037256" bid, valid_bid_token = self.create_bid(self.tender_id, data) valid_bid_id = bid["id"] @@ -720,7 +773,6 @@ def bids_invalidation_on_tender_change(self): data.update({ "tenderers": [bidder_data], - "value": {"amount": 101}, }) self.create_bid(self.tender_id, data) @@ -1027,9 +1079,14 @@ def all_public_documents_are_accessible_for_others(): self.app.authorization = orig_auth doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1040,9 +1097,14 @@ def all_public_documents_are_accessible_for_others(): doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} # upload private document - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}_private.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}_private.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1087,7 +1149,6 @@ def all_public_documents_are_accessible_for_others(): response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id)) self.assertEqual(response.status, "200 OK") self.assertEqual(len(response.json["data"]), 2) - self.assertIn(doc_id_by_type["documents"]["key"], response.json["data"][0]["url"]) doc_id = doc_id_by_type["documents"]["id"] response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id)) self.assertEqual(response.status, "200 OK") @@ -1126,7 +1187,6 @@ def all_public_documents_are_accessible_for_others(): response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id)) self.assertEqual(response.status, "200 OK") self.assertEqual(len(response.json["data"]), 2) - self.assertIn(doc_id_by_type["documents"]["key"], response.json["data"][0]["url"]) doc_id = doc_id_by_type["documents"]["id"] response = self.app.get("/tenders/{}/bids/{}/documents/{}".format(self.tender_id, self.bid_id, doc_id)) self.assertEqual(response.status, "200 OK") @@ -1141,17 +1201,27 @@ def create_tender_bidder_document(self): # we don't support another type of documents for doc_resource in ["qualification_documents", "eligibility_documents", "financial_documents"]: - response = self.app.post( + self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=404, ) # Create documents for bid doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -1209,10 +1279,11 @@ def create_tender_bidder_document(self): self.tender_id, self.bid_id, doc_resource, doc_id, key, self.bid_token ) ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 7) - self.assertEqual(response.body, b"content") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) response = self.app.get( "/tenders/{}/bids/{}/{}/{}".format(self.tender_id, self.bid_id, doc_resource, doc_id), status=403 @@ -1241,9 +1312,14 @@ def create_tender_bidder_document(self): self.app.authorization = auth doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1271,9 +1347,14 @@ def create_tender_bidder_document(self): ) doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1284,380 +1365,17 @@ def create_tender_bidder_document(self): ) -def put_tender_bidder_document(self): - doc_id_by_type = {} - doc_resource = "documents" - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], - ) - - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1] - doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - status=404, - upload_files=[("invalid_name", "name.doc", b"content")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "body", "name": "file"}]) - - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content2") - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("name.doc", response.json["data"]["title"]) - - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - "content3", - content_type="application/msword", - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content3") - - # switch to active.pre-qualification - self.set_status("active.pre-qualification", {"status": "active.tendering"}) - auth = self.app.authorization - self.app.authorization = ("Basic", ("chronograph", "")) - response = self.app.patch_json("/tenders/{}".format(self.tender_id), {"data": {"id": self.tender_id}}) - self.app.authorization = auth - - for doc_resource in ["documents"]: - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token - ), - upload_files=[("file", "name.doc", b"content4")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document in current (active.pre-qualification) tender status", - ) - - # list qualifications - response = self.app.get("/tenders/{}/qualifications".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - # qualify bids - for qualification in response.json["data"]: - response = self.app.patch_json( - "/tenders/{}/qualifications/{}?acc_token={}".format(self.tender_id, qualification["id"], self.tender_token), - {"data": {"status": "active", "qualified": True, "eligible": True}}, - ) - self.assertEqual(response.status, "200 OK") - - # switch to active.pre-qualification.stand-still - response = self.app.patch_json( - "/tenders/{}?acc_token={}".format(self.tender_id, self.tender_token), - {"data": {"status": "active.pre-qualification.stand-still"}}, - ) - - doc_resource = "documents" - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token - ), - upload_files=[("file", "name.doc", b"content4")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document in current (active.pre-qualification.stand-still) tender status", - ) - - -def patch_tender_bidder_document(self): - doc_id_by_type = {} - doc_resource = "documents" - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], - ) - - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1] - doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - - # upload private document - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}_private.doc".format(doc_resource[:-1]), b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}_private.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1] - doc_id_by_type[doc_resource + "private"] = {"id": doc_id, "key": key} - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - { - "data": { - "confidentiality": "buyerOnly", - "confidentialityRationale": "Only our company sells badgers with pink hair.", - } - }, - ) - self.assertEqual(response.status, "200 OK") - - doc_resource = "documents" - doc_id = doc_id_by_type[doc_resource]["id"] - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - {"data": {"documentOf": "lot"}}, - status=422, - ) - self.assertEqual(response.status, "422 Unprocessable Entity") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], - [{"description": ["This field is required."], "location": "body", "name": "relatedItem"}], - ) - - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - {"data": {"documentOf": "lot", "relatedItem": "0" * 32}}, - status=422, - ) - self.assertEqual(response.status, "422 Unprocessable Entity") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], - [{"description": ["relatedItem should be one of lots"], "location": "body", "name": "relatedItem"}], - ) - - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - {"data": {"description": "document description", "language": "en"}}, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - - response = self.app.get( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("document description", response.json["data"]["description"]) - self.assertEqual("en", response.json["data"]["language"]) - - # test confidentiality change - doc_id = doc_id_by_type[doc_resource + "private"]["id"] - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - {"data": {"confidentiality": "public", "confidentialityRationale": ""}}, - ) - self.assertEqual(response.status, "200 OK") - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - { - "data": { - "confidentiality": "buyerOnly", - "confidentialityRationale": "Only our company sells badgers with pink hair.", - } - }, - ) - self.assertEqual(response.status, "200 OK") - - # switch to active.pre-qualification - self.set_status("active.pre-qualification", {"status": "active.tendering"}) - auth = self.app.authorization - self.app.authorization = ("Basic", ("chronograph", "")) - response = self.app.patch_json("/tenders/{}".format(self.tender_id), {"data": {"id": self.tender_id}}) - self.app.authorization = auth - - doc_resource = "documents" - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token - ), - {"data": {"description": "document description"}}, - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document in current (active.pre-qualification) tender status", - ) - - # list qualifications - response = self.app.get("/tenders/{}/qualifications".format(self.tender_id)) - self.assertEqual(response.status, "200 OK") - # qualify bids - for qualification in response.json["data"]: - response = self.app.patch_json( - "/tenders/{}/qualifications/{}?acc_token={}".format(self.tender_id, qualification["id"], self.tender_token), - {"data": {"status": "active", "qualified": True, "eligible": True}}, - ) - self.assertEqual(response.status, "200 OK") - - # switch to active.pre-qualification.stand-still - response = self.app.patch_json( - "/tenders/{}?acc_token={}".format(self.tender_id, self.tender_token), - {"data": {"status": "active.pre-qualification.stand-still"}}, - ) - doc_resource = "documents" - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource]["id"], self.bid_token - ), - {"data": {"description": "document description"}}, - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document in current (active.pre-qualification.stand-still) tender status", - ) - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id_by_type[doc_resource + "private"]["id"], self.bid_token - ), - {"data": {"description": "document description"}}, - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document in current (active.pre-qualification.stand-still) tender status", - ) - - -def patch_tender_bidder_document_private(self): - doc_id_by_type = {} - private_doc_id_by_type = {} - doc_resource = "documents" - response = self.app.post( - "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], - ) - - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - self.assertEqual("name_{}.doc".format(doc_resource[:-1]), response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1] - doc_id_by_type[doc_resource] = {"id": doc_id, "key": key} - response = self.app.patch_json( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - { - "data": { - "confidentiality": "buyerOnly", - "confidentialityRationale": "Only our company sells badgers with pink hair.", - } - }, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("buyerOnly", response.json["data"]["confidentiality"]) - self.assertEqual( - "Only our company sells badgers with pink hair.", response.json["data"]["confidentialityRationale"] - ) - response = self.app.put( - "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token - ), - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - - self.assertEqual("buyerOnly", response.json["data"]["confidentiality"]) - self.assertEqual( - "Only our company sells badgers with pink hair.", response.json["data"]["confidentialityRationale"] - ) - - def patch_and_put_document_into_invalid_bid(self): doc_id_by_type = {} doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -1692,12 +1410,16 @@ def patch_and_put_document_into_invalid_bid(self): ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token ), - "updated", - content_type="application/msword", + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") @@ -1707,9 +1429,14 @@ def download_tender_bidder_document(self): private_doc_id_by_type = {} # Create documents of all type doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1735,9 +1462,14 @@ def download_tender_bidder_document(self): }, ) # Update document - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1762,12 +1494,11 @@ def download_tender_bidder_document(self): container[doc_resource]["key"], ) ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], "attachment; filename=name_{}.doc".format(doc_resource[:-1]) - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) # Try get bid document by tender owner when tender status is active.tendering response = self.app.get( @@ -1817,12 +1548,10 @@ def test_bids_documents_after_tendering_resource(self, doc_id_by_type, private_d container[doc_resource]["key"], ) ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], "attachment; filename=name_{}.doc".format(doc_resource[:-1]) - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) for container in private_doc_id_by_type, doc_id_by_type: response = self.app.get( @@ -1835,7 +1564,10 @@ def test_bids_documents_after_tendering_resource(self, doc_id_by_type, private_d container["documents"]["key"], ) ) - self.assertEqual(response.status, "200 OK") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) test_bids_documents_after_tendering_resource( self, doc_id_by_type, private_doc_id_by_type, "active.pre-qualification" @@ -1868,9 +1600,14 @@ def create_tender_bidder_document_nopending(self): token = response.json["access"]["token"] bid_id = bid["id"] - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1904,9 +1641,14 @@ def create_tender_bidder_document_description(self): doc_id_by_type = {} private_doc_id_by_type = {} for doc_resource in ["documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1935,9 +1677,14 @@ def create_tender_bidder_document_description(self): self.assertTrue(response.json["data"]["confidentiality"]) # Check if isDescriptionDecision is True # Update document - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1962,12 +1709,11 @@ def create_tender_bidder_document_description(self): container[doc_resource]["key"], ) ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], "attachment; filename=name_{}.doc".format(doc_resource[:-1]) - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) # Try get bid document by tender owner when tender status is active.tendering response = self.app.get( @@ -2009,9 +1755,14 @@ def create_tender_bidder_invalid_document_description(self): doc_id_by_type = {} private_doc_id_by_type = {} doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2035,9 +1786,14 @@ def create_tender_bidder_invalid_document_description(self): self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["errors"][0]["description"][0], "confidentialityRationale is required") # Update document - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2063,12 +1819,11 @@ def create_tender_bidder_invalid_document_description(self): container[doc_resource]["key"], ) ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.body, b"content") - self.assertEqual( - response.headers["Content-Disposition"], "attachment; filename=name_{}.doc".format(doc_resource[:-1]) - ) - self.assertEqual(response.headers["Content-Type"], "application/msword") + self.assertEqual(response.status, "302 Moved Temporarily") + self.assertIn("http://localhost/get/", response.location) + self.assertIn("Signature=", response.location) + self.assertIn("KeyID=", response.location) + self.assertIn("Expires=", response.location) # Try get bid document by tender owner when tender status is active.tendering response = self.app.get( @@ -2105,9 +1860,14 @@ def create_tender_bidder_invalid_document_description(self): def create_tender_bidder_invalid_confidential_document(self): private_doc_id_by_type = {} doc_resource = "documents" - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -2160,9 +1920,14 @@ def bids_view_j1446(self): last_bid_token = token # load document to last bid - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(tender_id, last_bid_id, "documents", last_bid_token), - upload_files=[("file", "name_{}.doc".format("documents"), b"content")], + {"data": { + "title": "name_documents.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -2238,3 +2003,23 @@ def bids_view_j1446(self): # private info is hidden self.assertNotIn("owner", response.json["data"]["bids"][0]) self.assertNotIn("owner_token", response.json["data"]["bids"][0]) + + +def patch_tender_with_bids_lots_none(self): + bid = self.test_bids_data[0].copy() + lots = self.db.get(self.tender_id).get("lots") + + bid["lotValues"] = [{"relatedLot": lot["id"]} for lot in lots] + + response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": bid}) + self.assertEqual(response.status, "201 Created") + + response = self.app.patch_json( + "/tenders/{}?acc_token={}".format(self.tender_id, self.tender_token), {"data": {"lots": [None]}}, status=422 + ) + self.assertEqual(response.status, "422 Unprocessable Entity") + self.assertEqual(response.content_type, "application/json") + + errors = {error["name"]: error["description"] for error in response.json["errors"]} + self.assertEqual(errors["lots"][0], ["This field is required."]) + self.assertEqual(errors["bids"][0]["lotValues"][0], {"relatedLot": ["relatedLot should be one of lots"]}) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation.py index 56e6bd77ae..68b9ce7541 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation.py @@ -10,8 +10,8 @@ from openprocurement.tender.competitivedialogue.tests.base import ( BaseCompetitiveDialogUAContentWebTest, BaseCompetitiveDialogEUContentWebTest, + test_bids_stage1 as test_bids, test_lots, - test_bids, ) from openprocurement.tender.belowthreshold.tests.cancellation import ( @@ -51,6 +51,7 @@ class CompetitiveDialogUACancellationResourceTest( class CompetitiveDialogUALotCancellationResourceTest(BaseCompetitiveDialogUAContentWebTest): initial_lots = test_lots initial_bids = test_bids + test_bids_data = test_bids test_create_tender_cancellation = snitch(create_tender_lot_cancellation) test_patch_tender_cancellation = snitch(patch_tender_lot_cancellation) @@ -60,6 +61,7 @@ class CompetitiveDialogUALotCancellationResourceTest(BaseCompetitiveDialogUACont class CompetitiveDialogUALotsCancellationResourceTest(BaseCompetitiveDialogUAContentWebTest): initial_lots = 2 * test_lots initial_bids = test_bids + test_bids_data = test_bids test_create_tender_cancellation = snitch(create_tender_lots_cancellation) test_patch_tender_cancellation = snitch(patch_tender_lots_cancellation) @@ -72,6 +74,7 @@ class CompetitiveDialogUACancellationComplaintResourceTest( ): initial_bids = test_bids + test_bids_data = test_bids @patch("openprocurement.tender.core.models.RELEASE_2020_04_19", get_now() - timedelta(days=1)) @patch("openprocurement.tender.core.views.cancellation.RELEASE_2020_04_19", get_now() - timedelta(days=1)) @@ -118,6 +121,7 @@ class CompetitiveDialogEUCancellationResourceTest( class CompetitiveDialogEULotCancellationResourceTest(BaseCompetitiveDialogEUContentWebTest): initial_lots = test_lots initial_bids = test_bids + test_bids_data = test_bids initial_auth = ("Basic", ("broker", "")) @@ -129,6 +133,7 @@ class CompetitiveDialogEULotCancellationResourceTest(BaseCompetitiveDialogEUCont class CompetitiveDialogEULotsCancellationResourceTest(BaseCompetitiveDialogEUContentWebTest): initial_lots = 2 * test_lots initial_bids = test_bids + test_bids_data = test_bids initial_auth = ("Basic", ("broker", "")) test_create_tender_cancellation = snitch(create_tender_lots_cancellation) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation_blanks.py index ac67d9ac0e..76adb3314b 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/cancellation_blanks.py @@ -10,8 +10,9 @@ def cancellation_active_qualification_j1427(self): - bid_data = deepcopy(self.initial_bids[0]) - bid_data["lotValues"] = bid_data["lotValues"][:1] + bid_data = deepcopy(self.test_bids_data[0]) + lots = self.db.get(self.tender_id).get("lots") + bid_data["lotValues"] = [{"relatedLot": lot["id"]} for lot in lots[:1]] # post three bids bid_data["tenderers"][0]["identifier"]["id"] = "00037256" diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/lot.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/lot.py index 48fe3ca9ce..336cfe9775 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/lot.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/lot.py @@ -9,7 +9,7 @@ from openprocurement.tender.competitivedialogue.tests.base import ( BaseCompetitiveDialogUAContentWebTest, BaseCompetitiveDialogEUContentWebTest, - test_bids, + test_bids_stage1 as test_bids, test_tender_data_eu, test_tender_data_ua, test_lots, @@ -24,16 +24,7 @@ create_tender_lot_minimalstep_validation, patch_tender_lot_minimalstep_validation, ) -from openprocurement.tender.openua.tests.lot_blanks import ( - # CompetitiveDialogueEULotFeatureBidderResourceTest - create_tender_bidder_feature, -) from openprocurement.tender.openeu.tests.lot import TenderLotEdgeCasesTestMixin -from openprocurement.tender.openeu.tests.lot_blanks import ( - # CompetitiveDialogueEULotProcessTest - one_lot_1bid, - two_lot_1can, -) from openprocurement.tender.competitivedialogue.tests.stage1.lot_blanks import ( # CompetitiveDialogueEU(UA)LotBidderResourceTest create_tender_bidder_invalid, @@ -101,60 +92,12 @@ class CompetitiveDialogueEULotBidderResourceTest(BaseCompetitiveDialogEUContentW test_patch_tender_bidder = snitch(patch_tender_bidder) -class CompetitiveDialogueEULotFeatureBidderResourceTest(BaseCompetitiveDialogEUContentWebTest): - initial_lots = test_lots - initial_auth = ("Basic", ("broker", "")) - test_bids_data = test_bids # TODO: change attribute identifier - test_tender_data = test_tender_data_eu - - def setUp(self): - super(CompetitiveDialogueEULotFeatureBidderResourceTest, self).setUp() - self.lot_id = self.initial_lots[0]["id"] - response = self.app.patch_json( - "/tenders/{}?acc_token={}".format(self.tender_id, self.tender_token), - { - "data": { - "items": [{"relatedLot": self.lot_id, "id": "1"}], - "features": [ - { - "code": "code_item", - "featureOf": "item", - "relatedItem": "1", - "title": "item feature", - "enum": [{"value": 0.01, "title": "good"}, {"value": 0.02, "title": "best"}], - }, - { - "code": "code_lot", - "featureOf": "lot", - "relatedItem": self.lot_id, - "title": "lot feature", - "enum": [{"value": 0.01, "title": "good"}, {"value": 0.02, "title": "best"}], - }, - { - "code": "code_tenderer", - "featureOf": "tenderer", - "title": "tenderer feature", - "enum": [{"value": 0.01, "title": "good"}, {"value": 0.02, "title": "best"}], - }, - ], - } - }, - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["data"]["items"][0]["relatedLot"], self.lot_id) - - test_create_tender_bidder_invalid = snitch(create_tender_with_features_bidder_invalid) - test_create_tender_bidder = snitch(create_tender_bidder_feature) - - class CompetitiveDialogueEULotProcessTest(BaseCompetitiveDialogEUContentWebTest): test_tender_data = test_tender_data_eu # TODO: change attribute identifier test_lots_data = test_lots # TODO: change attribute identifier test_bids_data = test_bids # TODO: change attribute identifier test_1lot_0bid = snitch(one_lot_0bid) - test_1lot_1bid = snitch(one_lot_1bid) test_1lot_2bid_1unqualified = snitch(one_lot_2bid_1unqualified) test_1lot_2bid = snitch(one_lot_2bid) test_2lot_2bid_1lot_del = snitch(two_lot_2bid_1lot_del) @@ -162,7 +105,6 @@ class CompetitiveDialogueEULotProcessTest(BaseCompetitiveDialogEUContentWebTest) test_1lot_3bid_1un = snitch(one_lot_3bid_1un) test_2lot_0bid = snitch(two_lot_0bid) test_2lot_2can = snitch(two_lot_2can) - test_2lot_1can = snitch(two_lot_1can) test_2lot_2bid_0com_1can = snitch(two_lot_2bid_0com_1can) test_2lot_2bid_2com_2win = snitch(two_lot_2bid_2com_2win) @@ -248,7 +190,6 @@ def setUp(self): self.assertEqual(response.json["data"]["items"][0]["relatedLot"], self.lot_id) test_create_tender_bidder_invalid = snitch(create_tender_with_features_bidder_invalid) - test_create_tender_bidder = snitch(create_tender_bidder_feature) class CompetitiveDialogueUALotProcessTest(BaseCompetitiveDialogUAContentWebTest): @@ -257,7 +198,6 @@ class CompetitiveDialogueUALotProcessTest(BaseCompetitiveDialogUAContentWebTest) test_bids_data = test_bids # TODO: change attribute identifier test_1lot_0bid = snitch(one_lot_0bid) - test_1lot_1bid = snitch(one_lot_1bid) test_1lot_2bid_1unqualified = snitch(one_lot_2bid_1unqualified) test_1lot_2bid = snitch(one_lot_2bid) test_2lot_2bid_1lot_del = snitch(two_lot_2bid_1lot_del) @@ -265,7 +205,6 @@ class CompetitiveDialogueUALotProcessTest(BaseCompetitiveDialogUAContentWebTest) test_1lot_3bid_1un = snitch(one_lot_3bid_1un) test_2lot_0bid = snitch(two_lot_0bid) test_2lot_2can = snitch(two_lot_2can) - test_2lot_1can = snitch(two_lot_1can) test_2lot_2bid_0com_1can = snitch(two_lot_2bid_0com_1can) test_2lot_2bid_2com_2win = snitch(two_lot_2bid_2com_2win) @@ -275,7 +214,6 @@ def suite(): suite.addTest(unittest.makeSuite(CompetitiveDialogueEULotResourceTest)) suite.addTest(unittest.makeSuite(CompetitiveDialogueEULotBidderResourceTest)) suite.addTest(unittest.makeSuite(CompetitiveDialogueEULotFeatureResourceTest)) - suite.addTest(unittest.makeSuite(CompetitiveDialogueEULotFeatureBidderResourceTest)) suite.addTest(unittest.makeSuite(CompetitiveDialogueEULotProcessTest)) suite.addTest(unittest.makeSuite(CompetitiveDialogueUALotResourceTest)) suite.addTest(unittest.makeSuite(CompetitiveDialogueUALotFeatureResourceTest)) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/lot_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/lot_blanks.py index 8f13aae730..5054bcb8a6 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/lot_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/lot_blanks.py @@ -14,7 +14,7 @@ @patch("openprocurement.tender.core.models.TWO_PHASE_COMMIT_FROM", get_now() + timedelta(days=1)) def create_tender_bidder_invalid(self): bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] + bid_data.pop("lotValues", None) request_path = "/tenders/{}/bids".format(self.tender_id) response = self.app.post_json( request_path, @@ -29,27 +29,7 @@ def create_tender_bidder_invalid(self): [{"description": ["This field is required."], "location": "body", "name": "lotValues"}], ) - bid_data["lotValues"] = [{"value": {"amount": 500}}] - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - self.assertEqual(response.status, "422 Unprocessable Entity") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], - [ - { - "description": [{"relatedLot": ["This field is required."]}], - "location": "body", - "name": "lotValues", - } - ], - ) - - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": "0" * 32}] + bid_data["lotValues"] = [{"relatedLot": "0" * 32}] response = self.app.post_json( request_path, {"data": bid_data}, @@ -75,44 +55,18 @@ def create_tender_bidder_invalid(self): response = self.app.post_json( request_path, {"data": bid_data}, + status=422 ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - - bid_data["lotValues"] = [ - {"value": {"amount": 500, "valueAddedTaxIncluded": False}, "relatedLot": self.initial_lots[0]["id"]} - ] - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - - bid_data["lotValues"] = [{"value": {"amount": 500, "currency": "USD"}, "relatedLot": self.initial_lots[0]["id"]}] - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - - bid_data["value"] = {"amount": 500} - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": self.initial_lots[0]["id"]}] - - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") + self.assertEqual( + response.json, + {"status": "error", "errors": [ + {"location": "body", "name": "lotValues", "description": {"value": "Rogue field"}}]}) def patch_tender_bidder(self): lot_id = self.initial_lots[0]["id"] bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder, bid_token = self.create_bid(self.tender_id, bid_data) lot = bidder["lotValues"][0] @@ -129,7 +83,7 @@ def patch_tender_bidder(self): "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bidder["id"], bid_token), { "data": { - "lotValues": [{"value": {"amount": 500}, "relatedLot": lot_id}], + "lotValues": [{"relatedLot": lot_id}], "tenderers": self.test_bids_data[0]["tenderers"], } }, @@ -142,7 +96,7 @@ def patch_tender_bidder(self): # If we don't change anything then return null response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bidder["id"], bid_token), - {"data": {"lotValues": [{"value": {"amount": 400}, "relatedLot": lot_id}]}}, + {"data": {"lotValues": [{"relatedLot": lot_id}]}}, ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") @@ -157,7 +111,7 @@ def patch_tender_bidder(self): response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bidder["id"], bid_token), - {"data": {"lotValues": [{"value": {"amount": 500}, "relatedLot": lot_id}], "status": "active"}}, + {"data": {"lotValues": [{"relatedLot": lot_id}], "status": "active"}}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -173,7 +127,6 @@ def patch_tender_bidder(self): def create_tender_with_features_bidder_invalid(self): request_path = "/tenders/{}/bids".format(self.tender_id) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] response = self.app.post_json( request_path, {"data": bid_data}, @@ -182,28 +135,7 @@ def create_tender_with_features_bidder_invalid(self): self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") - bid_data["lotValues"] = [{"value": {"amount": 500}}] - - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - self.assertEqual(response.status, "422 Unprocessable Entity") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], - [ - { - "description": [{"relatedLot": ["This field is required."]}], - "location": "body", - "name": "lotValues", - } - ], - ) - - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": "0" * 32}] + bid_data["lotValues"] = [{"relatedLot": "0" * 32}] response = self.app.post_json( request_path, {"data": bid_data}, @@ -224,24 +156,8 @@ def create_tender_with_features_bidder_invalid(self): ) # Field 'value' doesn't exists on first stage - bid_data["lotValues"] = [{"value": {"amount": 5000000}, "relatedLot": self.lot_id}] - - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - - bid_data["lotValues"] = [{"value": {"amount": 500, "valueAddedTaxIncluded": False}, "relatedLot": self.lot_id}] - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") + bid_data["lotValues"] = [{"relatedLot": self.lot_id}] - bid_data["lotValues"] = [{"value": {"amount": 500, "currency": "USD"}, "relatedLot": self.lot_id}] response = self.app.post_json( request_path, {"data": bid_data}, @@ -310,8 +226,7 @@ def one_lot_2bid_1unqualified(self): self.app.authorization = ("Basic", ("broker", "")) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" self.create_bid(tender_id, bid_data, "pending") @@ -378,19 +293,18 @@ def one_lot_2bid(self): # create bid self.app.authorization = ("Basic", ("broker", "")) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 450}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" bid, bid_token = self.create_bid(tender_id, bid_data, "pending") bid_id = bid["id"] # create second bid self.app.authorization = ("Basic", ("broker", "")) - bid_data["lotValues"] = [{"value": {"amount": 475}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data["identifier"]["id"] = "00037257" bid, bid_token = self.create_bid(tender_id, bid_data, "pending") # create third - bid_data["lotValues"] = [{"value": {"amount": 470}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data["identifier"]["id"] = "00037258" bid, bid_token = self.create_bid(tender_id, bid_data, "pending") # switch to active.pre-qualification @@ -452,8 +366,7 @@ def two_lot_2bid_1lot_del(self): bids = [] bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": lot_id} for lot_id in lots] + bid_data["lotValues"] = [{"relatedLot": lot_id} for lot_id in lots] self.app.authorization = ("Basic", ("broker", "")) response = self.app.post_json( "/tenders/{}/bids".format(tender_id), @@ -497,7 +410,7 @@ def one_lot_3bid_1del(self): self.app.authorization = ("Basic", ("broker", "")) bids = [] bid_data = deepcopy(self.test_bids_data[0]) - bid_data["lotValues"] = [{"value": {"amount": 450}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data = bid_data["tenderers"][0] for index, test_bid in enumerate(self.test_bids_data): bidder_data["identifier"]["id"] = "00037256" + str(index) @@ -540,8 +453,7 @@ def one_lot_3bid_1un(self): self.app.authorization = ("Basic", ("broker", "")) bids = [] bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 450}, "relatedLot": lot_id}] + bid_data["lotValues"] = [{"relatedLot": lot_id}] bidder_data = bid_data["tenderers"][0] for i in range(3): bidder_data["identifier"]["id"] = "00037256" + str(i) @@ -703,13 +615,12 @@ def two_lot_2bid_0com_1can(self): self.app.authorization = ("Basic", ("broker", "")) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": lot_id} for lot_id in lots] + bid_data["lotValues"] = [{"relatedLot": lot_id} for lot_id in lots] bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" self.create_bid(tender_id, bid_data, "pending") - bid_data["lotValues"] = [{"value": {"amount": 499}, "relatedLot": lot_id} for lot_id in lots] + bid_data["lotValues"] = [{"relatedLot": lot_id} for lot_id in lots] bidder_data["identifier"]["id"] = "00037257" self.create_bid(tender_id, bid_data, "pending") @@ -789,8 +700,7 @@ def two_lot_2bid_2com_2win(self): self.assertEqual(response.status, "200 OK") # create bid bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] - bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": lot_id} for lot_id in lots] + bid_data["lotValues"] = [{"relatedLot": lot_id} for lot_id in lots] bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" self.app.authorization = ("Basic", ("broker", "")) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/post.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/post.py index b0c579269b..fe66c46af0 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/post.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/post.py @@ -6,7 +6,7 @@ BaseCompetitiveDialogUAContentWebTest, BaseCompetitiveDialogEUContentWebTest, test_author, - test_bids, + test_bids_stage1 as test_bids, ) from openprocurement.tender.openua.tests.post import ( ComplaintPostResourceMixin, @@ -79,7 +79,6 @@ def setUp(self): super(TenderCompetitiveDialogUAQualificationComplaintPostResourceTest, self).setUp() # Create bid bid_data = deepcopy(test_bids[0]) - bid_data["value"] = {"amount": 500} bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" response = self.app.post_json( @@ -90,14 +89,12 @@ def setUp(self): self.assertEqual(response.content_type, "application/json") # Create bid - bid_data["value"] = {"amount": 101} bidder_data["identifier"]["id"] = "00037257" response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": bid_data}, ) # Create another bid - bid_data["value"] = {"amount": 111} bidder_data["identifier"]["id"] = "00037258" response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), @@ -166,14 +163,14 @@ class TenderCompetitiveDialogEUQualificationComplaintPostResourceTest( docservice = True initial_status = "active.tendering" # 'active.pre-qualification.stand-still' status sets in setUp initial_bids = test_bids + initial_bid_data = test_bids initial_auth = ("Basic", ("broker", "")) author_data = test_author def setUp(self): super(TenderCompetitiveDialogEUQualificationComplaintPostResourceTest, self).setUp() # Create bid - bid_data = deepcopy(self.initial_bids[0]) - bid_data["value"] = {"amount": 500} + bid_data = deepcopy(self.initial_bid_data[0]) bidder_data = bid_data["tenderers"][0] bidder_data["identifier"]["id"] = "00037256" response = self.app.post_json( @@ -184,14 +181,12 @@ def setUp(self): self.assertEqual(response.content_type, "application/json") # Create bid - bid_data["value"] = {"amount": 101} bidder_data["identifier"]["id"] = "00037257" response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": bid_data}, ) # Create another bid - bid_data["value"] = {"amount": 111} bidder_data["identifier"]["id"] = "00037258" response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/qualification_milestone.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/qualification_milestone.py index f8f54134f9..840c588b7b 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/qualification_milestone.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/qualification_milestone.py @@ -1,7 +1,7 @@ from openprocurement.tender.competitivedialogue.tests.base import ( BaseCompetitiveDialogUAContentWebTest, BaseCompetitiveDialogEUContentWebTest, - test_bids, + test_bids_stage1 as test_bids, ) from openprocurement.tender.core.tests.qualification_milestone import TenderQualificationMilestone24HMixin from copy import deepcopy @@ -10,12 +10,13 @@ class TenderPreQualificationMixin(object): initial_auth = ("Basic", ("broker", "")) initial_bids = test_bids + initial_bids_data = test_bids context_name = "qualification" def setUp(self): super(TenderPreQualificationMixin, self).setUp() - for n, bid in enumerate(self.initial_bids): + for n, bid in enumerate(self.initial_bids_data): bid = deepcopy(bid) bid["tenderers"][0]["identifier"]["id"] = "0000{}".format(n) self.app.post_json( diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender.py index 75df90adb8..fe4cfd3cf3 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender.py @@ -29,7 +29,7 @@ BaseCompetitiveDialogUAWebTest, BaseCompetitiveDialogWebTest, test_lots, - test_bids, + test_bids_stage1 as test_bids, ) from openprocurement.tender.competitivedialogue.tests.stage1.tender_blanks import ( # CompetitiveDialogResourceTest diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py index 96bf906f01..96e24af2e6 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py @@ -8,7 +8,7 @@ from openprocurement.tender.belowthreshold.tests.base import test_organization, set_tender_lots from openprocurement.tender.competitivedialogue.constants import CD_EU_TYPE, CD_UA_TYPE, FEATURES_MAX_SUM -from openprocurement.tender.competitivedialogue.tests.base import test_bids +from openprocurement.tender.competitivedialogue.tests.base import test_bids_stage1 as test_bids # CompetitiveDialogTest @@ -575,7 +575,6 @@ def multiple_bidders_tender_eu(self): bidder_data = deepcopy(test_organization) self.app.authorization = ("Basic", ("broker", "")) bid_data = deepcopy(test_bids[0]) - bid_data["value"] = {"amount": 500} bid_data["tenderers"] = [bidder_data] self.create_bid(tender_id, bid_data, "pending") bid_data["value"]["amount"] = 499 @@ -583,7 +582,6 @@ def multiple_bidders_tender_eu(self): self.create_bid(tender_id, bid_data, "pending") bid_id = response.json["data"]["id"] bid_token = response.json["access"]["token"] - bid_data["value"]["amount"] = 498 bidder_data["identifier"]["id"] = "00037259" self.create_bid(tender_id, bid_data, "pending") # switch to active.pre-qualification @@ -676,7 +674,6 @@ def try_go_to_ready_stage_eu(self): self.set_initial_status(response.json) # create bids bid_data = deepcopy(test_bids[0]) - bid_data["value"] = {"amount": 500} bidder_data = deepcopy(test_organization) bid_data["tenderers"] = [bidder_data] self.app.authorization = ("Basic", ("broker", "")) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid.py index 1d10a95567..f03bbd6bb8 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid.py @@ -6,7 +6,6 @@ from openprocurement.tender.belowthreshold.tests.bid_blanks import ( # TenderStage2UABidDocumentResourceTest - not_found as not_found_ua, patch_tender_with_bids_lots_none, ) @@ -64,8 +63,6 @@ bids_activation_on_tender_documents_ua, # TenderStage2UABidFeaturesResourceTest features_bidder_ua, - # TenderStage2UABidDocumentResourceTest - put_tender_bidder_document_ua, ) from openprocurement.tender.core.tests.criteria_utils import generate_responses from openprocurement.api.constants import RELEASE_ECRITERIA_ARTICLE_17 @@ -90,7 +87,7 @@ def setUp(self): class TenderStage2EUBidResourceTest( BaseCompetitiveDialogEUStage2ContentWebTest, TenderBidResourceTestMixin, Tender2BidResourceTestMixin ): - + docservice = True initial_status = "active.tendering" initial_auth = ("Basic", ("broker", "")) initial_data = test_tender_stage2_data_eu @@ -157,6 +154,7 @@ def setUp(self): class TenderStage2UABidResourceTest(BaseCompetitiveDialogUAStage2ContentWebTest): + docservice = True initial_status = "active.tendering" initial_data = test_tender_stage2_data_ua test_bids_data = test_bids_stage2 @@ -216,11 +214,6 @@ def setUp(self): self.bid_token = bid_token -class TenderStage2UABidDocumentResourceTest(BaseCDUAStage2BidContentWebTest, TenderUABidDocumentResourceTestMixin): - test_not_found = snitch(not_found_ua) - test_put_tender_bidder_document = snitch(put_tender_bidder_document_ua) - - class TenderStage2UABidDocumentWithDSResourceTest( TenderUABidDocumentWithDSResourceTestMixin, BaseCDUAStage2BidContentWebTest, ): diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py index 63ac7a786a..caeb645362 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py @@ -44,9 +44,14 @@ def delete_tender_bidder_eu(self): # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid["id"], doc_resource, bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -206,9 +211,14 @@ def bids_invalidation_on_tender_change_eu(self): self.assertEqual(response.json["data"]["status"], "invalid") # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid_id, doc_resource, token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -425,9 +435,14 @@ def create_tender_bidder_document_nopending_eu(self): bid, token = self.create_bid(self.tender_id, test_bid) bid_id = bid["id"] - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -484,10 +499,14 @@ def create_tender_bidder_document_nopending_eu(self): "Can't update document because award of bid is not active", ) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, token), - "content3", - content_type="application/msword", + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -497,9 +516,14 @@ def create_tender_bidder_document_nopending_eu(self): "Can't update document because award of bid is not active", ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -911,9 +935,14 @@ def bids_activation_on_tender_documents_ua(self): self.assertEqual(response.status, "200 OK") self.assertEqual(response.json["data"]["status"], "active") - response = self.app.post( + response = self.app.post_json( "/tenders/{}/documents?acc_token={}".format(self.tender_id, self.tender_token), - upload_files=[("file", "укр.doc", b"content")], + {"data": { + "title": "укрґ.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -965,91 +994,6 @@ def features_bidder_ua(self): self.assertEqual(bid, i) -# TenderStage2UABidDocumentResourceTest - - -def put_tender_bidder_document_ua(self): - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - status=404, - upload_files=[("invalid_name", "name.doc", b"content")], - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual(response.json["errors"], [{"description": "Not Found", "location": "body", "name": "file"}]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - upload_files=[("file", "name.doc", b"content2")], - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content2") - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - self.assertEqual("name.doc", response.json["data"]["title"]) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - "content3", - content_type="application/msword", - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] - - response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( - self.tender_id, self.bid_id, doc_id, key, self.bid_token - ) - ) - self.assertEqual(response.status, "200 OK") - self.assertEqual(response.content_type, "application/msword") - self.assertEqual(response.content_length, 8) - self.assertEqual(response.body, b"content3") - - self.set_status("active.awarded") - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), - upload_files=[("file", "name.doc", b"content3")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document because award of bid is not active", - ) - - # TenderStage2BidResourceTest diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation.py index 0ace637244..ee939c5c87 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation.py @@ -56,6 +56,7 @@ class TenderStage2EUCancellationResourceTest( class TenderStage2EULotCancellationResourceTest(BaseCompetitiveDialogEUStage2ContentWebTest): initial_lots = test_lots initial_bids = test_bids + initial_bids_data = test_bids test_create_tender_cancellation = snitch(create_tender_lot_cancellation) test_patch_tender_cancellation = snitch(patch_tender_lot_cancellation) @@ -65,6 +66,7 @@ class TenderStage2EULotCancellationResourceTest(BaseCompetitiveDialogEUStage2Con class TenderStage2EULotsCancellationResourceTest(BaseCompetitiveDialogEUStage2ContentWebTest): initial_lots = 2 * test_lots initial_bids = test_bids + initial_bids_data = test_bids test_create_tender_cancellation = snitch(create_tender_lots_cancellation) test_patch_tender_cancellation = snitch(patch_tender_lots_cancellation) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation_blanks.py index 01d4267fa0..1bdf642719 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/cancellation_blanks.py @@ -8,8 +8,9 @@ def cancellation_active_qualification_j1427(self): - bid_data = deepcopy(self.initial_bids[0]) - bid_data["lotValues"] = bid_data["lotValues"][:1] + bid_data = deepcopy(self.initial_bids_data[0]) + bid_data["lotValues"] = [{"value": bid_data.pop("value"), "relatedLot": l["id"]} + for l in self.initial_lots[:1]] # post three bids bid_ids = [] diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/document.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/document.py index c808b634a3..7160fade3a 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/document.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/document.py @@ -14,32 +14,6 @@ patch_tender_document, ) -# _____________________________________________________________________ -# | | -# | | -# | | -# | _A_ | -# | _A_ /"\ _A_ | -# | /"\ /"\ | -# | | -# | _A_ _A_ | -# | /"\ /"\ | -# | | -# | | -# | _A_ _A_ | -# | /"\ /"\ | -# | | -# | | -# | _A_ _A_ | -# | /"\ /"\ | -# | | -# | _A_ _A_ | -# | /"\ _A_ /"\ | -# | /"\ | -# | | -# | | -# |___________________________________________________________________sm| - class TenderStage2EUDocumentResourceTest(BaseCompetitiveDialogEUStage2ContentWebTest, TenderDocumentResourceTestMixin): @@ -54,11 +28,6 @@ class TenderStage2DocumentWithDSResourceTest(TenderStage2EUDocumentResourceTest, docservice = True -########## -# UA -########## - - class TenderStage2UADocumentResourceTest(BaseCompetitiveDialogUAStage2ContentWebTest, TenderDocumentResourceTestMixin): docservice = False diff --git a/src/openprocurement/tender/competitivedialogue/utils.py b/src/openprocurement/tender/competitivedialogue/utils.py index 718457c3da..69a269733f 100644 --- a/src/openprocurement/tender/competitivedialogue/utils.py +++ b/src/openprocurement/tender/competitivedialogue/utils.py @@ -239,9 +239,9 @@ def prepare_shortlistedFirms(shortlistedFirms): firm_id=firm["identifier"]["id"], firm_scheme=firm["identifier"]["scheme"] ) if firm.get("lots"): - keys = set(["{key}_{lot_id}".format(key=key, lot_id=lot["id"]) for lot in firm.get("lots")]) + keys = set("{key}_{lot_id}".format(key=key, lot_id=lot["id"]) for lot in firm.get("lots")) else: - keys = set([key]) + keys = {key} all_keys |= keys return all_keys @@ -271,9 +271,9 @@ def prepare_bid_identifier(bid): for tenderer in bid["tenderers"]: key = "{id}_{scheme}".format(id=tenderer["identifier"]["id"], scheme=tenderer["identifier"]["scheme"]) if bid.get("lotValues"): - keys = set(["{key}_{lot_id}".format(key=key, lot_id=lot["relatedLot"]) for lot in bid.get("lotValues")]) + keys = set("{key}_{lot_id}".format(key=key, lot_id=lot["relatedLot"]) for lot in bid.get("lotValues")) else: - keys = set([key]) + keys = {key} all_keys |= keys return all_keys diff --git a/src/openprocurement/tender/competitivedialogue/views/stage1/bid.py b/src/openprocurement/tender/competitivedialogue/views/stage1/bid.py index c1520f47b8..44a6719031 100644 --- a/src/openprocurement/tender/competitivedialogue/views/stage1/bid.py +++ b/src/openprocurement/tender/competitivedialogue/views/stage1/bid.py @@ -67,13 +67,13 @@ def patch_bid_first_stage(self): return {"data": self.request.context.serialize("view")} -@optendersresource( - name="{}:Tender Bids".format(CD_EU_TYPE), - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType=CD_EU_TYPE, - description="Competitive Dialogue EU bids", -) +# @optendersresource( +# name="{}:Tender Bids".format(CD_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType=CD_EU_TYPE, +# description="Competitive Dialogue EU bids", +# ) class CompetitiveDialogueEUBidResource(BaseResourceEU): """ Tender EU bids """ @@ -90,13 +90,13 @@ class CompetitiveDialogueEUBidResource(BaseResourceEU): )(patch_bid_first_stage) -@optendersresource( - name="{}:Tender Bids".format(CD_UA_TYPE), - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType=CD_UA_TYPE, - description="Competitive Dialogue UA bids", -) +# @optendersresource( +# name="{}:Tender Bids".format(CD_UA_TYPE), +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType=CD_UA_TYPE, +# description="Competitive Dialogue UA bids", +# ) class CompetitiveDialogueUABidResource(BaseResourceEU): """ Tender UA bids """ diff --git a/src/openprocurement/tender/competitivedialogue/views/stage1/bid_document.py b/src/openprocurement/tender/competitivedialogue/views/stage1/bid_document.py index d9aa9c3c4b..d55605dc70 100644 --- a/src/openprocurement/tender/competitivedialogue/views/stage1/bid_document.py +++ b/src/openprocurement/tender/competitivedialogue/views/stage1/bid_document.py @@ -4,23 +4,23 @@ from openprocurement.tender.competitivedialogue.constants import CD_EU_TYPE, CD_UA_TYPE -@optendersresource( - name="{}:Tender Bid Documents".format(CD_EU_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType=CD_EU_TYPE, - description="Competitive Dialogue EU bidder documents", -) +# @optendersresource( +# name="{}:Tender Bid Documents".format(CD_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType=CD_EU_TYPE, +# description="Competitive Dialogue EU bidder documents", +# ) class CompetitiveDialogueEUBidDocumentResource(TenderEUBidDocumentResource): pass -@optendersresource( - name="{}:Tender Bid Documents".format(CD_UA_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType=CD_UA_TYPE, - description="Competitive Dialogue UA bidder documents", -) +# @optendersresource( +# name="{}:Tender Bid Documents".format(CD_UA_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType=CD_UA_TYPE, +# description="Competitive Dialogue UA bidder documents", +# ) class CompetitiveDialogueUaBidDocumentResource(TenderEUBidDocumentResource): pass diff --git a/src/openprocurement/tender/competitivedialogue/views/stage2/bid.py b/src/openprocurement/tender/competitivedialogue/views/stage2/bid.py index 1aef475242..b6f51546fc 100644 --- a/src/openprocurement/tender/competitivedialogue/views/stage2/bid.py +++ b/src/openprocurement/tender/competitivedialogue/views/stage2/bid.py @@ -13,13 +13,13 @@ from openprocurement.tender.competitivedialogue.validation import validate_firm_to_create_bid -@optendersresource( - name="{}:Tender Bids".format(STAGE_2_EU_TYPE), - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType=STAGE_2_EU_TYPE, - description="Competitive Dialogue Stage2EU bids", -) +# @optendersresource( +# name="{}:Tender Bids".format(STAGE_2_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType=STAGE_2_EU_TYPE, +# description="Competitive Dialogue Stage2EU bids", +# ) class CompetitiveDialogueStage2EUBidResource(BaseResourceEU): """ Tender Stage2 EU bids """ @@ -39,13 +39,13 @@ def collection_post(self): return stage2_bid_post(self) -@optendersresource( - name="{}:Tender Bids".format(STAGE_2_UA_TYPE), - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType=STAGE_2_UA_TYPE, - description="Competitive Dialogue Stage2 UA bids", -) +# @optendersresource( +# name="{}:Tender Bids".format(STAGE_2_UA_TYPE), +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType=STAGE_2_UA_TYPE, +# description="Competitive Dialogue Stage2 UA bids", +# ) class CompetitiveDialogueStage2UABidResource(BaseResourceUA): """ Tender Stage2 UA Stage2 bids """ diff --git a/src/openprocurement/tender/competitivedialogue/views/stage2/bid_document.py b/src/openprocurement/tender/competitivedialogue/views/stage2/bid_document.py index 948ac168a3..66dad56b6d 100644 --- a/src/openprocurement/tender/competitivedialogue/views/stage2/bid_document.py +++ b/src/openprocurement/tender/competitivedialogue/views/stage2/bid_document.py @@ -13,56 +13,56 @@ from openprocurement.tender.competitivedialogue.constants import STAGE_2_UA_TYPE, STAGE_2_EU_TYPE -@optendersresource( - name="{}:Tender Bid Documents".format(STAGE_2_EU_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType=STAGE_2_EU_TYPE, - description="Competitive Dialogue Stage2 EU bidder documents", -) +# @optendersresource( +# name="{}:Tender Bid Documents".format(STAGE_2_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType=STAGE_2_EU_TYPE, +# description="Competitive Dialogue Stage2 EU bidder documents", +# ) class CompetitiveDialogueStage2EUBidDocumentResource(TenderEUBidDocumentResource): pass -@optendersresource( - name="{}:Tender Bid Documents".format(STAGE_2_UA_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType=STAGE_2_UA_TYPE, - description="Competitive Dialogue Stage2 UA bidder documents", -) +# @optendersresource( +# name="{}:Tender Bid Documents".format(STAGE_2_UA_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType=STAGE_2_UA_TYPE, +# description="Competitive Dialogue Stage2 UA bidder documents", +# ) class CompetitiveDialogueStage2UaBidDocumentResource(TenderUaBidDocumentResource): pass -@bid_financial_documents_resource( - name="{}:Tender Bid Financial Documents".format(STAGE_2_EU_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", - path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", - procurementMethodType=STAGE_2_EU_TYPE, - description="Competitive Dialogue Stage2 EU bidder financial documents", -) +# @bid_financial_documents_resource( +# name="{}:Tender Bid Financial Documents".format(STAGE_2_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", +# procurementMethodType=STAGE_2_EU_TYPE, +# description="Competitive Dialogue Stage2 EU bidder financial documents", +# ) class CompetitiveDialogueStage2EUBidFinancialDocumentResource(TenderEUBidFinancialDocumentResource): pass -@bid_eligibility_documents_resource( - name="{}:Tender Bid Eligibility Documents".format(STAGE_2_EU_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", - path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", - procurementMethodType=STAGE_2_EU_TYPE, - description="Competitive Dialogue Stage2 EU bidder eligibility documents", -) +# @bid_eligibility_documents_resource( +# name="{}:Tender Bid Eligibility Documents".format(STAGE_2_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", +# procurementMethodType=STAGE_2_EU_TYPE, +# description="Competitive Dialogue Stage2 EU bidder eligibility documents", +# ) class CompetitiveDialogueStage2EUBidEligibilityDocumentResource(TenderEUBidEligibilityDocumentResource): pass -@bid_qualification_documents_resource( - name="{}:Tender Bid Qualification Documents".format(STAGE_2_EU_TYPE), - collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", - path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", - procurementMethodType=STAGE_2_EU_TYPE, - description="Competitive Dialogue Stage2 EU bidder qualification documents", -) +# @bid_qualification_documents_resource( +# name="{}:Tender Bid Qualification Documents".format(STAGE_2_EU_TYPE), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", +# procurementMethodType=STAGE_2_EU_TYPE, +# description="Competitive Dialogue Stage2 EU bidder qualification documents", +# ) class CompetitiveDialogueStage2EUBidQualificationDocumentResource(TenderEUBidQualificationDocumentResource): pass diff --git a/src/openprocurement/tender/core/procedure/models/base.py b/src/openprocurement/tender/core/procedure/models/base.py index 42b54a81f0..8d41389170 100644 --- a/src/openprocurement/tender/core/procedure/models/base.py +++ b/src/openprocurement/tender/core/procedure/models/base.py @@ -6,7 +6,7 @@ EmailType, ) from schematics.types.compound import ModelType as BaseModelType, ListType as BaseListType -from openprocurement.api.models import Model +from openprocurement.api.models import Model, DecimalType as BaseDecimalType from openprocurement.api.utils import get_now from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.core.procedure.utils import get_first_revision_date @@ -19,6 +19,7 @@ UA_REGIONS, VALIDATE_ADDRESS_FROM, ) +from decimal import Decimal from logging import getLogger import re @@ -48,6 +49,14 @@ def __init__(self, model_class, **kwargs): super().__init__(model_class, **kwargs) +class DecimalType(BaseDecimalType): + def to_primitive(self, *args, **kwargs): + value = super().to_primitive(*args, **kwargs) + if isinstance(value, Decimal): + return '{0:f}'.format(value) + return value + + # Patch and Post models differences: # patch models usually don't have required and default fields, # patch models assume that the object already valid diff --git a/src/openprocurement/tender/core/procedure/models/bid.py b/src/openprocurement/tender/core/procedure/models/bid.py index ceed8021b8..60faa4c16a 100644 --- a/src/openprocurement/tender/core/procedure/models/bid.py +++ b/src/openprocurement/tender/core/procedure/models/bid.py @@ -4,11 +4,11 @@ from schematics.types import MD5Type from schematics.types.compound import ModelType from schematics.types.serializable import serializable -from openprocurement.api.models import Value +from openprocurement.api.models import Value, Model from schematics.types import StringType from openprocurement.tender.core.constants import BID_LOTVALUES_VALIDATION_FROM from openprocurement.tender.core.procedure.validation import validate_bid_value -from openprocurement.tender.core.procedure.context import get_tender, get_bid +from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.base import ( ListType, @@ -17,7 +17,7 @@ PostBusinessOrganization, ) from openprocurement.tender.core.procedure.models.parameter import Parameter, PatchParameter -from openprocurement.tender.core.procedure.models.lot_value import LotValue, PostLotValue +from openprocurement.tender.core.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.core.procedure.models.document import PostDocument, Document from openprocurement.tender.core.models import validate_parameters_uniq, Administrator_bid_role from openprocurement.api.utils import get_now @@ -28,12 +28,23 @@ class PatchBid(BaseBid): parameters = ListType(ModelType(PatchParameter, required=True), validators=[validate_parameters_uniq]) value = ModelType(Value) - lotValues = ListType(ModelType(PostLotValue, required=True)) + lotValues = ListType(ModelType(PatchLotValue, required=True)) tenderers = ListType(ModelType(PatchBusinessOrganization, required=True), min_size=1, max_size=1) status = StringType(choices=["active", "draft"]) # --- PATCH DATA +def validate_lot_values(values): + tender = get_tender() + if tender.get("lots") and not values: + raise ValidationError("This field is required.") + date = get_first_revision_date(tender, default=None) + if date and date > BID_LOTVALUES_VALIDATION_FROM and values: + lots = [i.relatedLot for i in values] + if len(lots) != len(set(lots)): + raise ValidationError("bids don't allow duplicated proposals") + + # BASE --- class CommonBid(BaseBid): parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) @@ -47,14 +58,7 @@ def validate_value(self, data, value): validate_bid_value(tender, value) def validate_lotValues(self, data, values): - tender = get_tender() - if tender.get("lots") and not values: - raise ValidationError("This field is required.") - date = get_first_revision_date(tender, default=None) - if date and date > BID_LOTVALUES_VALIDATION_FROM and values: - lots = [i.relatedLot for i in values] - if len(lots) != len(set(lots)): - raise ValidationError("bids don't allow duplicated proposals") + validate_lot_values(values) def validate_parameters(self, data, parameters): lot_values = data.get("lotValues") or "" @@ -105,13 +109,16 @@ def default_status(self): # -- POST -# model to validate a bid after patch -class Bid(CommonBid): +class MetaBid(Model): id = MD5Type() date = StringType() owner = StringType() owner_token = StringType() transfer_token = StringType() + + +# model to validate a bid after patch +class Bid(MetaBid, CommonBid): documents = ListType(ModelType(Document, required=True)) diff --git a/src/openprocurement/tender/core/procedure/models/lot_value.py b/src/openprocurement/tender/core/procedure/models/lot_value.py index f26cedcbf5..fed13fe93d 100644 --- a/src/openprocurement/tender/core/procedure/models/lot_value.py +++ b/src/openprocurement/tender/core/procedure/models/lot_value.py @@ -22,5 +22,18 @@ def validate_relatedLot(self, data, related_lot): validate_relatedlot(tender, related_lot) +class PatchLotValue(PostLotValue): + value = ModelType(Value) + relatedLot = MD5Type() + + def validate_value(self, data, value): + if value is not None: + super().validate_value(self, data, value) + + def validate_relatedLot(self, data, related_lot): + if related_lot is not None: + super().validate_relatedLot(self, data, related_lot) + + class LotValue(PostLotValue): date = StringType() diff --git a/src/openprocurement/tender/core/procedure/models/parameter.py b/src/openprocurement/tender/core/procedure/models/parameter.py index cb2308e1bf..9dcaed0314 100644 --- a/src/openprocurement/tender/core/procedure/models/parameter.py +++ b/src/openprocurement/tender/core/procedure/models/parameter.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from schematics.exceptions import ValidationError from schematics.types import FloatType from openprocurement.api.models import Model diff --git a/src/openprocurement/tender/core/procedure/models/req_response.py b/src/openprocurement/tender/core/procedure/models/req_response.py index 0d286aadf4..b867570d60 100644 --- a/src/openprocurement/tender/core/procedure/models/req_response.py +++ b/src/openprocurement/tender/core/procedure/models/req_response.py @@ -12,7 +12,6 @@ Reference, ) from schematics.types import StringType -from openprocurement.api.utils import get_now from openprocurement.api.constants import ( RELEASE_ECRITERIA_ARTICLE_17, CRITERION_REQUIREMENT_STATUSES_FROM, @@ -20,7 +19,7 @@ from openprocurement.tender.core.procedure.validation import ( validate_value_type, ) -from openprocurement.tender.core.procedure.context import get_tender, get_bid, get_json_data +from openprocurement.tender.core.procedure.context import get_tender, get_bid, get_json_data, get_now from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.base import ( BaseBid, diff --git a/src/openprocurement/tender/core/procedure/state.py b/src/openprocurement/tender/core/procedure/state.py index d821e4a1c5..c701032148 100644 --- a/src/openprocurement/tender/core/procedure/state.py +++ b/src/openprocurement/tender/core/procedure/state.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from openprocurement.api.utils import error_handler, handle_data_exceptions +from openprocurement.api.utils import error_handler from openprocurement.tender.core.procedure.context import get_now diff --git a/src/openprocurement/tender/core/procedure/utils.py b/src/openprocurement/tender/core/procedure/utils.py index 9847858ec3..2fe0d35bd5 100644 --- a/src/openprocurement/tender/core/procedure/utils.py +++ b/src/openprocurement/tender/core/procedure/utils.py @@ -118,7 +118,8 @@ def get_items(request, parent, key, uid): return items else: from openprocurement.api.utils import error_handler - request.errors.add("url", f"{key.rstrip('s')}_id", "Not Found") + obj_name = "document" if "Document" in key else key.rstrip('s') + request.errors.add("url", f"{obj_name}_id", "Not Found") request.errors.status = 404 raise error_handler(request) @@ -131,6 +132,8 @@ def set_item(parent, key, uid, value): if item["id"] == uid: initial_list[-1 * n] = value break + else: + raise AssertionError(f"Item with id {uid} unexpectedly not found") # --- GETTING/SETTING sub documents diff --git a/src/openprocurement/tender/core/procedure/validation.py b/src/openprocurement/tender/core/procedure/validation.py index b30d586813..a468e4ff65 100644 --- a/src/openprocurement/tender/core/procedure/validation.py +++ b/src/openprocurement/tender/core/procedure/validation.py @@ -155,11 +155,11 @@ def validate_bid_accreditation_level(request, **kwargs): def validate_bid_operation_period(request, **kwargs): tender = request.validated["tender"] - tender_periond = tender.get("tenderPeriod", {}) + tender_period = tender.get("tenderPeriod", {}) if ( - tender_periond.get("startDate") - and get_now().isoformat() < tender_periond.get("startDate") - or get_now().isoformat() > tender_periond.get("endDate", "") # TODO: may "endDate" be missed ? + tender_period.get("startDate") + and get_now().isoformat() < tender_period.get("startDate") + or get_now().isoformat() > tender_period.get("endDate", "") # TODO: may "endDate" be missed ? ): operation = "added" if request.method == "POST" else "deleted" if request.authenticated_role != "Administrator" and request.method in ("PUT", "PATCH"): @@ -168,13 +168,24 @@ def validate_bid_operation_period(request, **kwargs): request, "Bid can be {} only during the tendering period: from ({}) to ({}).".format( operation, - tender_periond.get("startDate"), - tender_periond.get("endDate"), + tender_period.get("startDate"), + tender_period.get("endDate"), ), ) -def validate_bid_operation_not_in_tendering(request, **kwargs): +def validate_bid_operation_in_tendering(request, **_): + tender_status = request.validated["tender"]["status"] + if tender_status == "active.tendering": + raise_operation_error( + request, + "Can't view {} in current ({}) tender status".format( + "bid" if request.matchdict.get("bid_id") else "bids", tender_status + ), + ) + + +def validate_bid_operation_not_in_tendering(request, **_): status = request.validated["tender"]["status"] if status != "active.tendering": operation = "add" if request.method == "POST" else "delete" diff --git a/src/openprocurement/tender/core/procedure/views/bid_document.py b/src/openprocurement/tender/core/procedure/views/bid_document.py index bc8de7b128..619464f71a 100644 --- a/src/openprocurement/tender/core/procedure/views/bid_document.py +++ b/src/openprocurement/tender/core/procedure/views/bid_document.py @@ -13,12 +13,15 @@ get_items, set_item, save_tender, + apply_data_patch, ) class TenderBidDocumentResource(TenderBidResource): serializer_class = DocumentSerializer model_class = Document + container = "documents" + # document_type = "qualification" ?? def __init__(self, request, context=None): super().__init__(request, context) @@ -26,11 +29,11 @@ def __init__(self, request, context=None): match_dict = request.matchdict if match_dict.get("document_id"): document_id = match_dict["document_id"] - documents = get_items(request, request.validated["bid"], "documents", document_id) + documents = get_items(request, request.validated["bid"], self.container, document_id) request.validated["documents"] = documents request.validated["document"] = documents[-1] else: - request.validated["documents"] = request.validated["bid"].get("documents", tuple()) + request.validated["documents"] = request.validated["bid"].get(self.container, tuple()) def set_doc_author(self, doc): pass @@ -69,9 +72,9 @@ def collection_post(self): # attaching documents to the bid bid = self.request.validated["bid"] - if "documents" not in bid: - bid["documents"] = [] - bid["documents"].extend(documents) + if self.container not in bid: + bid[self.container] = [] + bid[self.container].extend(documents) # saving tender modified = self.request.validated["tender"]["status"] != "active.tendering" @@ -112,7 +115,7 @@ def get(self): def put(self): document = self.request.validated["data"] bid = self.request.validated["bid"] - bid["documents"].append(document) + bid[self.container].append(document) modified = self.request.validated["tender"]["status"] != "active.tendering" if save_tender(self.request, modified=modified): @@ -126,7 +129,7 @@ def patch(self): document = self.request.validated["document"] updated_document = self.request.validated["data"] if updated_document: - set_item(self.request.validated["bid"], "documents", document["id"], updated_document) + set_item(self.request.validated["bid"], self.container, document["id"], updated_document) modified = self.request.validated["tender"]["status"] != "active.tendering" if save_tender(self.request, modified=modified): diff --git a/src/openprocurement/tender/esco/includeme.py b/src/openprocurement/tender/esco/includeme.py index 33f15c3d61..ba9bab70c8 100644 --- a/src/openprocurement/tender/esco/includeme.py +++ b/src/openprocurement/tender/esco/includeme.py @@ -13,5 +13,6 @@ def includeme(config): config.add_tender_procurementMethodType(Tender) config.scan("openprocurement.tender.esco.views") + config.scan("openprocurement.tender.esco.procedure.views") config.scan("openprocurement.tender.esco.subscribers") config.registry.registerAdapter(TenderESCOConfigurator, (IESCOTender, IRequest), IContentConfigurator) diff --git a/src/openprocurement/tender/esco/procedure/__init__.py b/src/openprocurement/tender/esco/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/esco/procedure/models/__init__.py b/src/openprocurement/tender/esco/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/esco/procedure/models/bid.py b/src/openprocurement/tender/esco/procedure/models/bid.py new file mode 100644 index 0000000000..2393c0a9b9 --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/models/bid.py @@ -0,0 +1,59 @@ +from schematics.types import StringType, BooleanType +from openprocurement.api.models import Model +from openprocurement.tender.core.procedure.context import get_tender, get_now +from openprocurement.tender.core.procedure.utils import get_first_revision_date +from openprocurement.tender.openeu.procedure.models.bid import ( + Bid as BaseBid, + PostBid as BasePostBid, + PatchBid as BasePatchBid, +) +from openprocurement.tender.esco.procedure.models.lot_value import LotValue, PatchLotValue, PostLotValue +from openprocurement.tender.esco.procedure.models.value import ESCOValue, PatchESCOValue +from openprocurement.api.constants import RELEASE_ECRITERIA_ARTICLE_17 +from schematics.types.compound import ListType, ModelType +from schematics.exceptions import ValidationError + + +class ESCOMixin(Model): + value = ModelType(ESCOValue) + lotValues = ListType(ModelType(LotValue, required=True)) + selfQualified = BooleanType(required=False) + selfEligible = BooleanType(required=False) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + if tender.get("lots"): + if value: + raise ValidationError("value should be posted for each lot of bid") + else: + if not value: + raise ValidationError("This field is required.") + if tender["minValue"].get("currency") != value.get("currency"): + raise ValidationError("currency of bid should be identical to currency of minValue of tender") + if tender["minValue"].get("valueAddedTaxIncluded") != value.get("valueAddedTaxIncluded"): + raise ValidationError( + "valueAddedTaxIncluded of bid should be identical to valueAddedTaxIncluded of minValue of tender" + ) + + def validate_selfEligible(self, data, value): + tender = get_tender() + if get_first_revision_date(tender, default=get_now()) > RELEASE_ECRITERIA_ARTICLE_17: + if value is not None: + raise ValidationError("Rogue field.") + + +class PatchBid(ESCOMixin, BasePatchBid): + value = ModelType(PatchESCOValue) + lotValues = ListType(ModelType(PatchLotValue, required=True)) + + def validate_value(self, data, value): + return # will be validated at Bid model + + +class PostBid(ESCOMixin, BasePostBid): + lotValues = ListType(ModelType(PostLotValue, required=True)) + + +class Bid(ESCOMixin, BaseBid): + pass diff --git a/src/openprocurement/tender/esco/procedure/models/lot_value.py b/src/openprocurement/tender/esco/procedure/models/lot_value.py new file mode 100644 index 0000000000..1450ce5e4f --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/models/lot_value.py @@ -0,0 +1,41 @@ +from schematics.types.compound import ModelType +from schematics.types import StringType +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.esco.procedure.models.value import ESCOValue, PatchESCOValue +from openprocurement.tender.openua.procedure.models.lot_value import ( + PostLotValue as BasePostLotValue, + PatchLotValue as BasePatchLotValue, +) +from schematics.exceptions import ValidationError + + +class PostLotValue(BasePostLotValue): + + value = ModelType(ESCOValue, required=True) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + if value and tender["status"] not in ("invalid", "deleted", "draft") and data["relatedLot"]: + lots = [lot for lot in tender.get("lots", "") if lot and lot["id"] == data["relatedLot"]] + if not lots: + return + lot = lots[0] + if lot["minValue"].get("currency") != value.get("currency"): + raise ValidationError("currency of bid should be identical to currency of minValue of lot") + if lot["minValue"].get("valueAddedTaxIncluded") != value.get("valueAddedTaxIncluded"): + raise ValidationError( + "valueAddedTaxIncluded of bid should be identical to valueAddedTaxIncluded of minValue of lot" + ) + + +class PatchLotValue(BasePatchLotValue): + value = ModelType(PatchESCOValue) + + def validate_value(self, data, value): + return # depends on status, will be validated in LotValue model + + +class LotValue(PostLotValue): + date = StringType() + status = StringType(choices=["pending", "active", "unsuccessful"]) diff --git a/src/openprocurement/tender/esco/procedure/models/value.py b/src/openprocurement/tender/esco/procedure/models/value.py new file mode 100644 index 0000000000..8db7fff17c --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/models/value.py @@ -0,0 +1,121 @@ +from decimal import Decimal +from schematics.types import IntType +from schematics.types.compound import ModelType +from schematics.types.serializable import serializable +from schematics.exceptions import ValidationError +from datetime import datetime +from esculator import npv, escp +from openprocurement.api.models import ( + Value, + Model, + ListType, +) +from openprocurement.tender.core.procedure.models.base import DecimalType +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.esco.utils import to_decimal + + +class ContractDuration(Model): + years = IntType(required=True, min_value=0, max_value=15) + days = IntType(required=False, min_value=0, max_value=364, default=0) + + def validate_days(self, data, days): + if data["years"] == 15 and days > 0: + raise ValidationError("max contract duration 15 years") + if data["years"] == 0 and days < 1: + raise ValidationError("min contract duration 1 day") + + +class BaseESCOValue(Value): + amount = DecimalType( + min_value=Decimal("0"), required=False, precision=-2 + ) # Calculated energy service contract value. + amountPerformance = DecimalType( + required=False, precision=-2 + ) # Calculated energy service contract performance indicator + yearlyPaymentsPercentage = DecimalType(precision=-5, min_value=Decimal("0"), max_value=Decimal("1")) + # The percentage of annual payments in favor of Bidder + annualCostsReduction = ListType(DecimalType()) # Buyer's annual costs reduction + contractDuration = ModelType(ContractDuration) + + def validate_annualCostsReduction(self, data, value): + if len(value) != 21: + raise ValidationError("annual costs reduction should be set for 21 period") + + +class PatchESCOValue(BaseESCOValue): + + def validate_annualCostsReduction(self, data, value): + if value is not None: + return super().validate_annualCostsReduction(self, data, value) + + +class ESCOValue(BaseESCOValue): + amount = DecimalType( + min_value=Decimal("0"), required=False, precision=-2 + ) # Calculated energy service contract value. + amountPerformance = DecimalType( + required=False, precision=-2 + ) # Calculated energy service contract performance indicator + yearlyPaymentsPercentage = DecimalType( + required=True, precision=-5, min_value=Decimal("0"), max_value=Decimal("1") + ) # The percentage of annual payments in favor of Bidder + annualCostsReduction = ListType(DecimalType(), required=True) # Buyer's annual costs reduction + contractDuration = ModelType(ContractDuration, required=True) + + @serializable(serialized_name="amountPerformance", type=DecimalType(precision=-2)) + def amountPerformance_npv(self): + """ Calculated energy service contract performance indicator """ + tender = get_tender() + return to_decimal( + npv( + self.contractDuration.years, + self.contractDuration.days, + self.yearlyPaymentsPercentage, + self.annualCostsReduction, + datetime.fromisoformat(tender["noticePublicationDate"]), + tender["NBUdiscountRate"], + ) + ) + + @serializable(serialized_name="amount", type=DecimalType(precision=-2)) + def amount_escp(self): + tender = get_tender() + return to_decimal( + escp( + self.contractDuration.years, + self.contractDuration.days, + self.yearlyPaymentsPercentage, + self.annualCostsReduction, + datetime.fromisoformat(tender["noticePublicationDate"]), + ) + ) + + def validate_annualCostsReduction(self, data, value): + if len(value) != 21: + raise ValidationError("annual costs reduction should be set for 21 period") + + def validate_yearlyPaymentsPercentage(self, data, value): + if data.get("status") != "draft": + parent = data["__parent__"] + tender = get_tender() + + if tender["fundingKind"] == "other" and value < Decimal("0.8"): + raise ValidationError("yearlyPaymentsPercentage should be greater than 0.8 and less than 1") + if tender["fundingKind"] == "budget": + if tender.get("lots"): + lots = [i for i in tender.get("lots", "") if i["id"] == parent["relatedLot"]] + + if lots and value > Decimal(lots[0]["yearlyPaymentsPercentageRange"]): + raise ValidationError( + "yearlyPaymentsPercentage should be greater than 0 and less than {}".format( + lots[0]["yearlyPaymentsPercentageRange"] + ) + ) + else: + if value > Decimal(tender["yearlyPaymentsPercentageRange"]): + raise ValidationError( + "yearlyPaymentsPercentage should be greater than 0 and less than {}".format( + tender["yearlyPaymentsPercentageRange"] + ) + ) diff --git a/src/openprocurement/tender/esco/procedure/serializers.py b/src/openprocurement/tender/esco/procedure/serializers.py new file mode 100644 index 0000000000..998d374fe2 --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/serializers.py @@ -0,0 +1,35 @@ +from openprocurement.tender.openeu.procedure.serializers import BidSerializer as BaseBidSerializer + + +def bid_value_to_float(_, value): + costs_reduction = value.get("annualCostsReduction") + if isinstance(costs_reduction, list): + value["annualCostsReduction"] = tuple(float(e) for e in costs_reduction) + + yearly_percentage = value.get("yearlyPaymentsPercentage") + if yearly_percentage: + value["yearlyPaymentsPercentage"] = float(yearly_percentage) + + amount = value.get("amount") + if amount: + value["amount"] = float(amount) + + amount_performance = value.get("amountPerformance") + if amount_performance: + value["amountPerformance"] = float(amount_performance) + + return value + + +def bid_lot_values_to_float(s, lot_values): + if isinstance(lot_values, list): + for lot_value in lot_values: + lot_value["value"] = bid_value_to_float(s, lot_value["value"]) + return lot_values + + +class BidSerializer(BaseBidSerializer): + serializers = { + "value": bid_value_to_float, + "lotValues": bid_lot_values_to_float, + } diff --git a/src/openprocurement/tender/esco/procedure/views/__init__.py b/src/openprocurement/tender/esco/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/esco/procedure/views/bid.py b/src/openprocurement/tender/esco/procedure/views/bid.py new file mode 100644 index 0000000000..dc8f07a664 --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/views/bid.py @@ -0,0 +1,104 @@ +from openprocurement.api.utils import json_view +from openprocurement.tender.openeu.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.esco.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.esco.procedure.serializers import BidSerializer +from openprocurement.tender.openeu.procedure.validation import ( + validate_post_bid_status, + validate_view_bids, + validate_bid_status_update_not_to_pending, +) +from openprocurement.tender.core.procedure.validation import ( + unless_administrator, + validate_bid_accreditation_level, + unless_item_owner, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, +) +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="esco:Tender Bids", + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType="esco", + description="Tender ESCO bids", +) +class ESCOTenderBidResource(TenderBidResource): + serializer_class = BidSerializer + + @json_view( + permission="view_tender", + validators=( + validate_view_bids, + ) + ) + def collection_get(self): + return super().collection_get() + + @json_view( + permission="view_tender", + validators=( + unless_item_owner( + validate_view_bids, + item_name="bid" + ), + ) + ) + def get(self): + return super().get() + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_post_bid_status, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + + validate_bid_operation_not_in_tendering, + # I believe it should be before validate_patch_data + # but also i want the tests to pass without changing them + validate_bid_status_update_not_to_pending, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() + + @json_view( + permission="edit_bid", + validators=( + validate_item_owner("bid"), + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ) + ) + def delete(self): + return super().delete() diff --git a/src/openprocurement/tender/esco/procedure/views/bid_document.py b/src/openprocurement/tender/esco/procedure/views/bid_document.py new file mode 100644 index 0000000000..af45bd8f15 --- /dev/null +++ b/src/openprocurement/tender/esco/procedure/views/bid_document.py @@ -0,0 +1,50 @@ +from openprocurement.tender.openeu.procedure.views.bid_document import ( + OpenEUTenderBidDocumentResource, + TenderEUBidFinancialDocumentResource, +) +from cornice.resource import resource + + +@resource( + name="esco:Tender Bid Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType="esco", + description="Tender ESCO bidder documents", +) +class ESCOTenderBidDocumentResource(OpenEUTenderBidDocumentResource): + pass + + +@resource( + name="esco:Tender Bid Eligibility Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", + path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", + procurementMethodType="esco", + description="Tender ESCO bidder eligibility documents", +) +class TenderESCOBidEligibilityDocumentResource(OpenEUTenderBidDocumentResource): + container = "eligibilityDocuments" + + +@resource( + name="esco:Tender Bid Financial Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", + path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", + procurementMethodType="esco", + description="Tender ESCO bidder financial documents", +) +class TenderESCOBidFinancialDocumentResource(TenderEUBidFinancialDocumentResource): + container = "financialDocuments" + + +@resource( + name="esco:Tender Bid Qualification Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", + path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", + procurementMethodType="esco", + description="Tender ESCO bidder qualification documents", +) +class TenderESCOBidQualificationDocumentResource(TenderEUBidFinancialDocumentResource): + container = "qualificationDocuments" + diff --git a/src/openprocurement/tender/esco/tests/award.py b/src/openprocurement/tender/esco/tests/award.py index 46370825ab..6f7737843b 100644 --- a/src/openprocurement/tender/esco/tests/award.py +++ b/src/openprocurement/tender/esco/tests/award.py @@ -117,6 +117,12 @@ def setUp(self): patcher = mock.patch("openprocurement.api.models.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) patcher.start() self.addCleanup(patcher.stop) + + patcher = mock.patch("openprocurement.tender.core.procedure.models.base.ORGANIZATION_SCALE_FROM", + get_now() + timedelta(days=1)) + patcher.start() + self.addCleanup(patcher.stop) + test_bid = deepcopy(test_bids[0]) test_bid["tenderers"][0].pop("scale") self.initial_bids = [test_bid] diff --git a/src/openprocurement/tender/esco/tests/bid.py b/src/openprocurement/tender/esco/tests/bid.py index 9fd057faeb..0ff5d4dfed 100644 --- a/src/openprocurement/tender/esco/tests/bid.py +++ b/src/openprocurement/tender/esco/tests/bid.py @@ -110,6 +110,7 @@ class TenderBidResourceTest(BaseESCOContentWebTest): + docservice = True initial_status = "active.tendering" test_bids_data = test_bids author_data = test_author @@ -159,6 +160,7 @@ class TenderBidDocumentResourceTest(BaseESCOContentWebTest): initial_auth = ("Basic", ("broker", "")) initial_status = "active.tendering" test_bids_data = test_bids + docservice = True def setUp(self): super(TenderBidDocumentResourceTest, self).setUp() @@ -192,10 +194,6 @@ class TenderBidDocumentWithDSResourceTest(TenderBidDocumentResourceTest): test_create_tender_bidder_document_nopending = snitch(create_tender_bidder_document_nopending) -class TenderBidDocumentWithoutDSResourceTest(TenderBidDocumentResourceTest): - docservice = False - - class TenderBidBatchDocumentsWithDSResourceTest(BaseESCOContentWebTest): docservice = True initial_status = "active.tendering" diff --git a/src/openprocurement/tender/esco/tests/bid_blanks.py b/src/openprocurement/tender/esco/tests/bid_blanks.py index c3da8239af..dded67b518 100644 --- a/src/openprocurement/tender/esco/tests/bid_blanks.py +++ b/src/openprocurement/tender/esco/tests/bid_blanks.py @@ -836,9 +836,14 @@ def delete_tender_bidder(self): # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid["id"], doc_resource, bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -1113,9 +1118,14 @@ def bids_invalidation_on_tender_change(self): self.assertEqual(response.json["data"]["status"], "invalid") # try to add documents to bid for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, bid_id, doc_resource, token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -1331,6 +1341,7 @@ def create_tender_bid_no_scale_invalid(self): @mock.patch("openprocurement.api.models.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) +@mock.patch("openprocurement.tender.core.procedure.models.base.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) def create_tender_bid_with_scale_not_required(self): request_path = "/tenders/{}/bids".format(self.tender_id) bid_data = { @@ -1350,6 +1361,7 @@ def create_tender_bid_with_scale_not_required(self): @mock.patch("openprocurement.api.models.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) +@mock.patch("openprocurement.tender.core.procedure.models.base.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) def create_tender_bid_no_scale(self): request_path = "/tenders/{}/bids".format(self.tender_id) bid_data = { @@ -1470,9 +1482,14 @@ def features_bid(self): def patch_and_put_document_into_invalid_bid(self): doc_id_by_type = {} for doc_resource in ["documents", "financial_documents", "eligibility_documents", "qualification_documents"]: - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_resource, self.bid_token), - upload_files=[("file", "name_{}.doc".format(doc_resource[:-1]), b"content")], + {"data": { + "title": "name_{}.doc".format(doc_resource[:-1]), + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "201 Created") @@ -1507,11 +1524,15 @@ def patch_and_put_document_into_invalid_bid(self): ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/{}/{}?acc_token={}".format( self.tender_id, self.bid_id, doc_resource, doc_id, self.bid_token ), - "updated", - content_type="application/msword", + {"data": { + "title": "u[dated.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }} ) self.assertEqual(response.status, "200 OK") diff --git a/src/openprocurement/tender/esco/views/bid.py b/src/openprocurement/tender/esco/views/bid.py index 2d03e4e899..1590c50e07 100644 --- a/src/openprocurement/tender/esco/views/bid.py +++ b/src/openprocurement/tender/esco/views/bid.py @@ -3,12 +3,12 @@ from openprocurement.tender.openeu.views.bid import TenderBidResource as TenderEUBidResource -@optendersresource( - name="esco:Tender Bids", - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType="esco", - description="Tender ESCO bids", -) +# @optendersresource( +# name="esco:Tender Bids", +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType="esco", +# description="Tender ESCO bids", +# ) class TenderESCOBidResource(TenderEUBidResource): """ Tender ESCO Bid Resource """ diff --git a/src/openprocurement/tender/esco/views/bid_document.py b/src/openprocurement/tender/esco/views/bid_document.py index f02989b05c..7d98422c89 100644 --- a/src/openprocurement/tender/esco/views/bid_document.py +++ b/src/openprocurement/tender/esco/views/bid_document.py @@ -11,48 +11,48 @@ ) -@optendersresource( - name="esco:Tender Bid Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType="esco", - description="Tender ESCO bidder documents", -) +# @optendersresource( +# name="esco:Tender Bid Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType="esco", +# description="Tender ESCO bidder documents", +# ) class TenderESCOBidDocumentResource(TenderEUBidDocumentResource): """ Tender ESCO Bid Document Resource """ -@bid_eligibility_documents_resource( - name="esco:Tender Bid Eligibility Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", - path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", - procurementMethodType="esco", - description="Tender ESCO bidder eligibility documents", -) +# @bid_eligibility_documents_resource( +# name="esco:Tender Bid Eligibility Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", +# procurementMethodType="esco", +# description="Tender ESCO bidder eligibility documents", +# ) class TenderESCOBidEligibilityDocumentResource(TenderEUBidDocumentResource): """ Tender ESCO Bid Eligibility Documents """ container = "eligibilityDocuments" -@bid_financial_documents_resource( - name="esco:Tender Bid Financial Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", - path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", - procurementMethodType="esco", - description="Tender ESCO bidder financial documents", -) +# @bid_financial_documents_resource( +# name="esco:Tender Bid Financial Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", +# procurementMethodType="esco", +# description="Tender ESCO bidder financial documents", +# ) class TenderESCOBidFinancialDocumentResource(TenderEUBidFinancialDocumentResource): """ Tender ESCO Bid Financial Documents """ -@bid_qualification_documents_resource( - name="esco:Tender Bid Qualification Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", - path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", - procurementMethodType="esco", - description="Tender ESCO bidder qualification documents", -) +# @bid_qualification_documents_resource( +# name="esco:Tender Bid Qualification Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", +# procurementMethodType="esco", +# description="Tender ESCO bidder qualification documents", +# ) class TenderESCOBidQualificationDocumentResource(TenderEUBidFinancialDocumentResource): """ Tender ESCO Bid Qualification Documents """ diff --git a/src/openprocurement/tender/openeu/procedure/models/bid.py b/src/openprocurement/tender/openeu/procedure/models/bid.py index f8ee30f7ea..9bdfeed0de 100644 --- a/src/openprocurement/tender/openeu/procedure/models/bid.py +++ b/src/openprocurement/tender/openeu/procedure/models/bid.py @@ -5,7 +5,7 @@ PatchBid as BasePatchBid, ) from openprocurement.tender.core.procedure.models.base import ListType -from openprocurement.tender.openeu.procedure.models.lot_value import LotValue, PostLotValue +from openprocurement.tender.openeu.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.openua.procedure.models.document import ( PostDocument, Document, @@ -14,7 +14,7 @@ class PatchBid(BasePatchBid): - lotValues = ListType(ModelType(LotValue, required=True)) + lotValues = ListType(ModelType(PatchLotValue, required=True)) selfQualified = BooleanType(choices=[True]) # selfQualified, selfEligible are the same as in the parent but selfEligible = BooleanType(choices=[True]) # tests fail because they in different order status = StringType( diff --git a/src/openprocurement/tender/openeu/procedure/models/lot_value.py b/src/openprocurement/tender/openeu/procedure/models/lot_value.py index 661ce6d721..e13195139e 100644 --- a/src/openprocurement/tender/openeu/procedure/models/lot_value.py +++ b/src/openprocurement/tender/openeu/procedure/models/lot_value.py @@ -2,6 +2,7 @@ from openprocurement.tender.openua.procedure.models.lot_value import ( LotValue as BaseLotValue, PostLotValue as BasePostLotValue, + PatchLotValue as BasePatchLotValue, ) @@ -11,3 +12,7 @@ class LotValue(BaseLotValue): class PostLotValue(BasePostLotValue): status = StringType(choices=["pending", "active", "unsuccessful"], default="pending") + + +class PatchLotValue(BasePatchLotValue): + pass diff --git a/src/openprocurement/tender/openeu/procedure/validation.py b/src/openprocurement/tender/openeu/procedure/validation.py index 9c32b6c13e..42f1cc3b50 100644 --- a/src/openprocurement/tender/openeu/procedure/validation.py +++ b/src/openprocurement/tender/openeu/procedure/validation.py @@ -51,8 +51,33 @@ def validate_bid_document_operation_in_bid_status(request, **_): def validate_view_bid_documents_allowed_in_bid_status(request, **_): bid_status = request.validated["bid"]["status"] - if bid_status in ("invalid", "deleted") and request.authenticated_role != "bid_owner": + if bid_status in ("invalid", "deleted") and not is_item_owner(request, request.validated["bid"]): raise_operation_error( request, - "Can't view bid documents in current ({}) bid status".format(bid_status) + f"Can't view bid documents in current ({bid_status}) bid status" + ) + + +def validate_view_financial_bid_documents_allowed_in_tender_status(request, **_): + tender_status = request.validated["tender"]["status"] + view_forbidden_states = ( + "active.tendering", + "active.pre-qualification", + "active.pre-qualification.stand-still", + "active.auction", + ) + if tender_status in view_forbidden_states and not is_item_owner(request, request.validated["bid"]): + raise_operation_error( + request, + f"Can't view bid documents in current ({tender_status}) tender status", + ) + + +def validate_view_financial_bid_documents_allowed_in_bid_status(request, **_): + bid_status = request.validated["bid"]["status"] + if bid_status in ("invalid", "deleted", "invalid.pre-qualification", "unsuccessful") \ + and not is_item_owner(request, request.validated["bid"]): + raise_operation_error( + request, + f"Can't view bid documents in current ({bid_status}) bid status" ) diff --git a/src/openprocurement/tender/openeu/procedure/views/bid_document.py b/src/openprocurement/tender/openeu/procedure/views/bid_document.py index f45936808b..3468f23ce4 100644 --- a/src/openprocurement/tender/openeu/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openeu/procedure/views/bid_document.py @@ -22,6 +22,8 @@ validate_view_bid_document, validate_bid_document_operation_in_bid_status, validate_view_bid_documents_allowed_in_bid_status, + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, ) from cornice.resource import resource @@ -114,3 +116,63 @@ def put(self): ) def patch(self): return super().patch() + + +@resource( + name="aboveThresholdEU:Tender Bid Eligibility Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", + path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", + procurementMethodType="aboveThresholdEU", + description="Tender EU bidder eligibility documents", +) +class TenderEUBidEligibilityDocumentResource(OpenEUTenderBidDocumentResource): + """ Tender EU Bid Eligibility Documents """ + + container = "eligibilityDocuments" + + +@resource( + name="aboveThresholdEU:Tender Bid Financial Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", + path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", + procurementMethodType="aboveThresholdEU", + description="Tender EU bidder financial documents", +) +class TenderEUBidFinancialDocumentResource(OpenEUTenderBidDocumentResource): + """ Tender EU Bid Financial Documents """ + + container = "financialDocuments" + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + ), + permission="view_tender", + ) + def collection_get(self): + return super(TenderEUBidFinancialDocumentResource, self).collection_get() + + @json_view( + validators=( + validate_view_financial_bid_documents_allowed_in_tender_status, + validate_view_financial_bid_documents_allowed_in_bid_status, + validate_download_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super(TenderEUBidFinancialDocumentResource, self).get() + + +@resource( + name="aboveThresholdEU:Tender Bid Qualification Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", + path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", + procurementMethodType="aboveThresholdEU", + description="Tender EU bidder qualification documents", +) +class TenderEUBidQualificationDocumentResource(TenderEUBidFinancialDocumentResource): + """ Tender EU Bid Qualification Documents """ + + container = "qualificationDocuments" diff --git a/src/openprocurement/tender/openeu/tests/bid_blanks.py b/src/openprocurement/tender/openeu/tests/bid_blanks.py index 1579fc91b2..4e82da7b22 100644 --- a/src/openprocurement/tender/openeu/tests/bid_blanks.py +++ b/src/openprocurement/tender/openeu/tests/bid_blanks.py @@ -1316,21 +1316,6 @@ def not_found(self): response.json["errors"], [{"description": "Not Found", "location": "url", "name": "document_id"}] ) - self.app.authorization = ("Basic", ("invalid", "")) - response = self.app.put_json( - "/tenders/{}/bids/{}/{}/some_id?acc_token={}".format( - self.tender_id, self.bid_id, doc_resource, self.bid_token - ), - {"data": document}, - status=404, - ) - self.assertEqual(response.status, "404 Not Found") - self.assertEqual(response.content_type, "application/json") - self.assertEqual(response.json["status"], "error") - self.assertEqual( - response.json["errors"], [{"description": "Not Found", "location": "url", "name": "document_id"}] - ) - def get_tender_bidder_document(self): diff --git a/src/openprocurement/tender/openeu/views/bid_document.py b/src/openprocurement/tender/openeu/views/bid_document.py index 45dcb4eb60..85d626c08b 100644 --- a/src/openprocurement/tender/openeu/views/bid_document.py +++ b/src/openprocurement/tender/openeu/views/bid_document.py @@ -110,26 +110,26 @@ def put(self): return super(TenderEUBidDocumentResource, self).put() -@bid_eligibility_documents_resource( - name="aboveThresholdEU:Tender Bid Eligibility Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", - path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", - procurementMethodType="aboveThresholdEU", - description="Tender EU bidder eligibility documents", -) +# @bid_eligibility_documents_resource( +# name="aboveThresholdEU:Tender Bid Eligibility Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/eligibility_documents/{document_id}", +# procurementMethodType="aboveThresholdEU", +# description="Tender EU bidder eligibility documents", +# ) class TenderEUBidEligibilityDocumentResource(TenderEUBidDocumentResource): """ Tender EU Bid Eligibility Documents """ container = "eligibilityDocuments" -@bid_financial_documents_resource( - name="aboveThresholdEU:Tender Bid Financial Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", - path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", - procurementMethodType="aboveThresholdEU", - description="Tender EU bidder financial documents", -) +# @bid_financial_documents_resource( +# name="aboveThresholdEU:Tender Bid Financial Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/financial_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/financial_documents/{document_id}", +# procurementMethodType="aboveThresholdEU", +# description="Tender EU bidder financial documents", +# ) class TenderEUBidFinancialDocumentResource(TenderEUBidDocumentResource): """ Tender EU Bid Financial Documents """ @@ -157,13 +157,13 @@ def get(self): return super(TenderEUBidFinancialDocumentResource, self).get() -@bid_qualification_documents_resource( - name="aboveThresholdEU:Tender Bid Qualification Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", - path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", - procurementMethodType="aboveThresholdEU", - description="Tender EU bidder qualification documents", -) +# @bid_qualification_documents_resource( +# name="aboveThresholdEU:Tender Bid Qualification Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents", +# path="/tenders/{tender_id}/bids/{bid_id}/qualification_documents/{document_id}", +# procurementMethodType="aboveThresholdEU", +# description="Tender EU bidder qualification documents", +# ) class TenderEUBidQualificationDocumentResource(TenderEUBidFinancialDocumentResource): """ Tender EU Bid Qualification Documents """ diff --git a/src/openprocurement/tender/openua/procedure/models/bid.py b/src/openprocurement/tender/openua/procedure/models/bid.py index 6b1a6b54a5..62e1d7bcc8 100644 --- a/src/openprocurement/tender/openua/procedure/models/bid.py +++ b/src/openprocurement/tender/openua/procedure/models/bid.py @@ -1,16 +1,12 @@ from schematics.types import StringType, BooleanType from schematics.types.compound import ModelType -from openprocurement.api.models import Model -from openprocurement.tender.core.models import ( - ConfidentialDocumentModelType, - validate_parameters_uniq, -) +from openprocurement.tender.core.models import validate_parameters_uniq from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.core.procedure.validation import validate_bid_value from openprocurement.tender.core.procedure.models.base import ListType from openprocurement.tender.core.procedure.models.parameter import Parameter, PatchParameter from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin -from openprocurement.tender.openua.procedure.models.lot_value import LotValue, PostLotValue +from openprocurement.tender.openua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.openua.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.bid import ( Bid as BaseBid, @@ -19,25 +15,21 @@ ) -class UABidMixin(Model): +class PatchBid(BasePatchBid, PatchBidResponsesMixin): selfEligible = BooleanType(choices=[True]) selfQualified = BooleanType(choices=[True]) subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True)) - # parameters field below is the same as in the parent, but I keep order, so the tests pass - # like, self.assertEqual(response.json["errors"], [error1, error2]) will fail if errors in different order - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) - - -class PatchBid(UABidMixin, BasePatchBid, PatchBidResponsesMixin): + lotValues = ListType(ModelType(PatchLotValue, required=True)) parameters = ListType(ModelType(PatchParameter, required=True), validators=[validate_parameters_uniq]) -class PostBid(UABidMixin, BasePostBid, PostBidResponsesMixin): +class PostBid(BasePostBid, PostBidResponsesMixin): + selfEligible = BooleanType(choices=[True]) + selfQualified = BooleanType(required=True, choices=[True]) + subcontractingDetails = StringType() lotValues = ListType(ModelType(PostLotValue, required=True)) parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) - selfQualified = BooleanType(required=True, choices=[True]) - documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True)) + documents = ListType(ModelType(PostDocument, required=True)) def validate_value(self, data, value): if data.get("status") != "draft": @@ -45,9 +37,13 @@ def validate_value(self, data, value): validate_bid_value(tender, value) -class Bid(UABidMixin, BaseBid, PostBidResponsesMixin): +class Bid(BaseBid, PostBidResponsesMixin): + selfEligible = BooleanType(choices=[True]) + selfQualified = BooleanType(required=True, choices=[True]) + subcontractingDetails = StringType() lotValues = ListType(ModelType(LotValue, required=True)) - documents = ListType(ConfidentialDocumentModelType(Document, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + documents = ListType(ModelType(Document, required=True)) def validate_value(self, data, value): if data.get("status") != "draft": diff --git a/src/openprocurement/tender/openua/procedure/models/document.py b/src/openprocurement/tender/openua/procedure/models/document.py index 48b8c92c7e..d2057be96f 100644 --- a/src/openprocurement/tender/openua/procedure/models/document.py +++ b/src/openprocurement/tender/openua/procedure/models/document.py @@ -9,7 +9,7 @@ class ConfidentialityMixin(Model): - confidentiality = StringType(choices=["public", "buyerOnly"]) + confidentiality = StringType(choices=["public", "buyerOnly"], default="public") confidentialityRationale = StringType() def validate_confidentialityRationale(self, data, val): @@ -26,6 +26,7 @@ class PostDocument(BasePostDocument, ConfidentialityMixin): class PatchDocument(BasePatchDocument, ConfidentialityMixin): + confidentiality = StringType(choices=["public", "buyerOnly"]) language = StringType(choices=["uk", "en", "ru"]) diff --git a/src/openprocurement/tender/openua/procedure/models/lot_value.py b/src/openprocurement/tender/openua/procedure/models/lot_value.py index 219300fc7e..9b0d4acacc 100644 --- a/src/openprocurement/tender/openua/procedure/models/lot_value.py +++ b/src/openprocurement/tender/openua/procedure/models/lot_value.py @@ -2,6 +2,7 @@ from openprocurement.tender.core.procedure.models.lot_value import ( LotValue as BaseLotValue, PostLotValue as BasePostLotValue, + PatchLotValue as BasePatchLotValue, ) @@ -11,3 +12,7 @@ class LotValue(BaseLotValue): class PostLotValue(BasePostLotValue): subcontractingDetails = StringType() + + +class PatchLotValue(BasePatchLotValue): + subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/openua/procedure/views/bid_document.py b/src/openprocurement/tender/openua/procedure/views/bid_document.py index 8a70ca802d..108152e5d9 100644 --- a/src/openprocurement/tender/openua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openua/procedure/views/bid_document.py @@ -30,7 +30,7 @@ procurementMethodType="aboveThresholdUA", description="Tender UA bidder documents", ) -class BelowThresholdTenderBidDocumentResource(TenderBidDocumentResource): +class TenderUaBidDocumentResource(TenderBidDocumentResource): serializer_class = ConfidentialDocumentSerializer @json_view( @@ -57,7 +57,7 @@ def get(self): permission="edit_bid", ) def collection_post(self): - return super(BelowThresholdTenderBidDocumentResource, self).collection_post() + return super(TenderUaBidDocumentResource, self).collection_post() @json_view( validators=( @@ -79,7 +79,7 @@ def collection_post(self): permission="edit_bid", ) def put(self): - return super(BelowThresholdTenderBidDocumentResource, self).put() + return super(TenderUaBidDocumentResource, self).put() @json_view( content_type="application/json", @@ -99,4 +99,4 @@ def put(self): permission="edit_bid", ) def patch(self): - return super(BelowThresholdTenderBidDocumentResource, self).patch() + return super(TenderUaBidDocumentResource, self).patch() diff --git a/src/openprocurement/tender/openua/tests/bid_blanks.py b/src/openprocurement/tender/openua/tests/bid_blanks.py index 61cfc4d068..086af6eab2 100644 --- a/src/openprocurement/tender/openua/tests/bid_blanks.py +++ b/src/openprocurement/tender/openua/tests/bid_blanks.py @@ -1303,6 +1303,82 @@ def patch_tender_bidder_document_json(self): ) +def patch_tender_bidder_document_json(self): + document = { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + } + response = self.app.post_json( + "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), + {"data": document}, + ) + self.assertEqual(response.status, "201 Created") + self.assertEqual(response.content_type, "application/json") + doc_id = response.json["data"]["id"] + self.assertIn(doc_id, response.headers["Location"]) + + response = self.app.patch_json( + "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), + {"data": {"documentOf": "lot"}}, + status=422, + ) + self.assertEqual(response.status, "422 Unprocessable Entity") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["status"], "error") + self.assertEqual( + response.json["errors"], + [{"description": ["This field is required."], "location": "body", "name": "relatedItem"}], + ) + + response = self.app.patch_json( + "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), + {"data": {"documentOf": "lot", "relatedItem": "0" * 32}}, + status=422, + ) + self.assertEqual(response.status, "422 Unprocessable Entity") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(response.json["status"], "error") + self.assertEqual( + response.json["errors"], + [{"description": ["relatedItem should be one of lots"], "location": "body", "name": "relatedItem"}], + ) + + response = self.app.patch_json( + "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), + {"data": {"description": "document description"}}, + ) + self.assertEqual(response.status, "200 OK") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(doc_id, response.json["data"]["id"]) + + response = self.app.get( + "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token) + ) + self.assertEqual(response.status, "200 OK") + self.assertEqual(response.content_type, "application/json") + self.assertEqual(doc_id, response.json["data"]["id"]) + self.assertEqual("document description", response.json["data"]["description"]) + + self.set_status("active.awarded") + + response = self.app.patch_json( + "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, self.bid_id, doc_id, self.bid_token), + {"data": {"description": "document description"}}, + status=403, + ) + self.assertEqual(response.status, "403 Forbidden") + self.assertEqual(response.content_type, "application/json") + self.assertIn( + response.json["errors"][0]["description"], + ( + "Can't update document because award of bid is not active", + "Can't update document because award of bid is not in pending or active state", + ) + ) + + def create_tender_bidder_document_nopending(self): bid_data = deepcopy(test_bids[0]) bid_data.update({ @@ -1375,11 +1451,7 @@ def create_tender_bidder_document_nopending(self): # TenderBidDocumentWithDSResourceTest def create_tender_bidder_document_nopending_json(self): - bid_data = deepcopy(test_bids[0]) - bid_data.update({ - "tenderers": [self.test_bids_data[0]["tenderers"][0]], - "value": {"amount": 500}, - }) + bid_data = deepcopy(self.test_bids_data[0]) response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), diff --git a/src/openprocurement/tender/openua/tests/lot_blanks.py b/src/openprocurement/tender/openua/tests/lot_blanks.py index 3e3be97d7a..a3df730408 100644 --- a/src/openprocurement/tender/openua/tests/lot_blanks.py +++ b/src/openprocurement/tender/openua/tests/lot_blanks.py @@ -904,7 +904,7 @@ def create_tender_bidder_feature(self): request_path = "/tenders/{}/bids".format(self.tender_id) bid_data = deepcopy(self.test_bids_data[0]) - del bid_data["value"] + bid_data.pop("value", None) bid_data.update({ "lotValues": [{"value": {"amount": 500}, "relatedLot": self.lot_id}], diff --git a/src/openprocurement/tender/openuadefense/includeme.py b/src/openprocurement/tender/openuadefense/includeme.py index 46dfe74a83..17012baae2 100644 --- a/src/openprocurement/tender/openuadefense/includeme.py +++ b/src/openprocurement/tender/openuadefense/includeme.py @@ -13,6 +13,7 @@ def includeme(config): config.add_tender_procurementMethodType(Tender) config.scan("openprocurement.tender.openuadefense.views") + config.scan("openprocurement.tender.openuadefense.procedure.views") config.scan("openprocurement.tender.openuadefense.subscribers") config.registry.registerAdapter( TenderAboveThresholdUADefConfigurator, (IAboveThresholdUADefTender, IRequest), IContentConfigurator diff --git a/src/openprocurement/tender/openuadefense/procedure/__init__.py b/src/openprocurement/tender/openuadefense/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/openuadefense/procedure/models/__init__.py b/src/openprocurement/tender/openuadefense/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/openuadefense/procedure/models/bid.py b/src/openprocurement/tender/openuadefense/procedure/models/bid.py new file mode 100644 index 0000000000..138360f475 --- /dev/null +++ b/src/openprocurement/tender/openuadefense/procedure/models/bid.py @@ -0,0 +1,55 @@ +from schematics.types import BooleanType +from openprocurement.tender.core.procedure.models.bid import ( + PostBid as BasePostBid, + PatchBid as BasePatchBid, + Bid as BaseBid, +) +from openprocurement.tender.core.models import ( + ConfidentialDocumentModelType, + validate_parameters_uniq, +) +from openprocurement.tender.core.procedure.models.parameter import Parameter, PatchParameter +from openprocurement.tender.openua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue +from openprocurement.tender.openua.procedure.models.document import PostDocument, Document +from openprocurement.tender.core.procedure.models.base import ListType +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.validation import validate_bid_value +from schematics.types.compound import ModelType +from schematics.types import StringType + + +class PostBid(BasePostBid): + selfEligible = BooleanType(choices=[True], required=True) + selfQualified = BooleanType(choices=[True], required=True) + subcontractingDetails = StringType() + lotValues = ListType(ModelType(PostLotValue, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True)) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + validate_bid_value(tender, value) + + +class PatchBid(BasePatchBid): + selfEligible = BooleanType(choices=[True]) + selfQualified = BooleanType(choices=[True]) + subcontractingDetails = StringType() + lotValues = ListType(ModelType(PatchLotValue, required=True)) + parameters = ListType(ModelType(PatchParameter, required=True), validators=[validate_parameters_uniq]) + + +class Bid(BaseBid): + selfEligible = BooleanType(choices=[True], required=True) + selfQualified = BooleanType(choices=[True], required=True) + subcontractingDetails = StringType() + lotValues = ListType(ModelType(LotValue, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + documents = ListType(ConfidentialDocumentModelType(Document, required=True)) + + def validate_value(self, data, value): + if data.get("status") != "draft": + tender = get_tender() + validate_bid_value(tender, value) + diff --git a/src/openprocurement/tender/openuadefense/procedure/validation.py b/src/openprocurement/tender/openuadefense/procedure/validation.py new file mode 100644 index 0000000000..63b8ed0edc --- /dev/null +++ b/src/openprocurement/tender/openuadefense/procedure/validation.py @@ -0,0 +1,15 @@ +from openprocurement.api.utils import raise_operation_error +from openprocurement.api.validation import OPERATIONS + + +def validate_bid_document_operation_in_award_status(request, **_): + if request.validated["tender"]["status"] in ("active.qualification", "active.awarded") and not any( + award["status"] in ("pending", "active") and award["bid_id"] == request.validated["bid"]["id"] + for award in request.validated["tender"].get("awards", "") + ): + raise_operation_error( + request, + "Can't {} document because award of bid is not in pending or active state".format( + OPERATIONS.get(request.method) + ), + ) diff --git a/src/openprocurement/tender/openuadefense/procedure/views/__init__.py b/src/openprocurement/tender/openuadefense/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/openuadefense/procedure/views/bid.py b/src/openprocurement/tender/openuadefense/procedure/views/bid.py new file mode 100644 index 0000000000..642e07d5b8 --- /dev/null +++ b/src/openprocurement/tender/openuadefense/procedure/views/bid.py @@ -0,0 +1,84 @@ +from openprocurement.api.utils import json_view, context_unpack +from openprocurement.tender.core.procedure.validation import ( + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, +) +from openprocurement.tender.openua.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.openuadefense.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.openua.procedure.serializers import BidSerializer +from openprocurement.tender.core.procedure.utils import save_tender +from openprocurement.tender.core.procedure.validation import ( + unless_administrator, + validate_bid_accreditation_level, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, +) +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="aboveThresholdUA.defense:Tender Bids", + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType="aboveThresholdUA.defense", + description="Tender UA.defense bids", +) +class TenderBidResource(TenderBidResource): + serializer_class = BidSerializer + model_class = Bid + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() + + @json_view( + permission="edit_bid", + validators=( + validate_item_owner("bid"), + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ) + ) + def delete(self): + bid = self.request.validated["bid"] + bid["status"] = "deleted" + if save_tender(self.request, modified=False): + self.LOGGER.info( + "Deleted tender bid {}".format(bid["id"]), + extra=context_unpack(self.request, {"MESSAGE_ID": "tender_bid_delete"}), + ) + return {"data": self.serializer_class(bid).data} diff --git a/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py new file mode 100644 index 0000000000..8164df04a8 --- /dev/null +++ b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- +from openprocurement.tender.core.procedure.views.bid_document import TenderBidDocumentResource +from openprocurement.api.utils import json_view +from openprocurement.tender.openua.procedure.models.document import PostDocument, PatchDocument, Document +from openprocurement.tender.openua.procedure.serializers import ConfidentialDocumentSerializer +from openprocurement.tender.core.procedure.validation import ( + validate_input_data, + validate_patch_data, + validate_item_owner, + validate_view_bid_document, + validate_bid_document_operation_period, + unless_allowed_by_qualification_milestone, + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model, +) +from openprocurement.tender.openua.procedure.validation import ( + validate_download_bid_document, + validate_bid_document_in_tender_status, + validate_update_bid_document_confidentiality, +) +from openprocurement.tender.openuadefense.procedure.validation import validate_bid_document_operation_in_award_status +from cornice.resource import resource + + +@resource( + name="aboveThresholdUA.defense:Tender Bid Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType="aboveThresholdUA.defense", + description="Tender UA.defense bidder documents", +) +class UADefenseTenderBidDocumentResource(TenderBidDocumentResource): + serializer_class = ConfidentialDocumentSerializer + + @json_view( + validators=( + validate_view_bid_document, + validate_download_bid_document, + ), + permission="view_tender", + ) + def get(self): + return super().get() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), + + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_award_status, + ), + permission="edit_bid", + ) + def collection_post(self): + return super(UADefenseTenderBidDocumentResource, self).collection_post() + + @json_view( + validators=( + validate_item_owner("bid"), + validate_input_data(PostDocument), + + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_award_status, + validate_update_bid_document_confidentiality, + + validate_upload_document, + update_doc_fields_on_put_document, + validate_data_model(Document), + ), + permission="edit_bid", + ) + def put(self): + return super(UADefenseTenderBidDocumentResource, self).put() + + @json_view( + content_type="application/json", + validators=( + validate_item_owner("bid"), + validate_input_data(PatchDocument), + validate_patch_data(Document, item_name="document"), + + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_award_status, + validate_update_bid_document_confidentiality, + ), + permission="edit_bid", + ) + def patch(self): + return super(UADefenseTenderBidDocumentResource, self).patch() diff --git a/src/openprocurement/tender/openuadefense/tests/award.py b/src/openprocurement/tender/openuadefense/tests/award.py index 3fe29bf323..0745bc51e8 100644 --- a/src/openprocurement/tender/openuadefense/tests/award.py +++ b/src/openprocurement/tender/openuadefense/tests/award.py @@ -133,6 +133,10 @@ def setUp(self): patcher = mock.patch("openprocurement.api.models.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) patcher.start() self.addCleanup(patcher.stop) + patcher_procedure = mock.patch("openprocurement.tender.core.procedure.models.base.ORGANIZATION_SCALE_FROM", + get_now() + timedelta(days=1)) + patcher_procedure.start() + self.addCleanup(patcher_procedure.stop) test_bid = deepcopy(test_bids[0]) test_bid["tenderers"][0].pop("scale") self.initial_bids = [test_bid] diff --git a/src/openprocurement/tender/openuadefense/tests/bid.py b/src/openprocurement/tender/openuadefense/tests/bid.py index a295cae19e..4d5897e3d7 100644 --- a/src/openprocurement/tender/openuadefense/tests/bid.py +++ b/src/openprocurement/tender/openuadefense/tests/bid.py @@ -1,13 +1,10 @@ # -*- coding: utf-8 -*- import unittest -from copy import deepcopy from openprocurement.api.tests.base import snitch from openprocurement.tender.belowthreshold.tests.base import test_author, test_organization, test_lots from openprocurement.tender.belowthreshold.tests.bid_blanks import ( - # TenderBidDocumentResourceTest - not_found, # TenderBidderBatchDocumentWithDSResourceTest create_tender_bid_with_documents, create_tender_bid_with_document_invalid, @@ -17,15 +14,11 @@ ) -from openprocurement.tender.openua.tests.bid import TenderBidResourceTestMixin, TenderBidDocumentResourceTestMixin +from openprocurement.tender.openua.tests.bid import TenderBidResourceTestMixin, TenderBidDocumentWithDSResourceTestMixin from openprocurement.tender.openua.tests.bid_blanks import ( # TenderBidFeaturesResourceTest features_bidder, features_bidder_invalid, - # TenderBidDocumentWithDSResourceTest - create_tender_bidder_document_json, - put_tender_bidder_document_json, - tender_bidder_confidential_document, ) from openprocurement.tender.openuadefense.tests.base import ( @@ -59,96 +52,9 @@ class TenderBidFeaturesResourceTest(BaseTenderUAContentWebTest): # test_features_bidder_invalid = snitch(features_bidder_invalid) -class TenderBidDocumentResourceTest(BaseTenderUAContentWebTest, TenderBidDocumentResourceTestMixin): - initial_status = "active.tendering" - test_bids_data = test_bids - author_data = test_author - - def setUp(self): - super(TenderBidDocumentResourceTest, self).setUp() - - bid_data = deepcopy(self.test_bids_data[0]) - bid_data["value"] = {"amount": 500} - # Create bid - response = self.app.post_json( - "/tenders/{}/bids".format(self.tender_id), - {"data": bid_data}, - ) - bid = response.json["data"] - self.bid_id = bid["id"] - self.bid_token = response.json["access"]["token"] - - test_not_found = snitch(not_found) - - def test_create_tender_bidder_document_nopending(self): - bid_data = deepcopy(self.test_bids_data[0]) - bid_data["value"] = {"amount": 500} - - response = self.app.post_json( - "/tenders/{}/bids".format(self.tender_id), - {"data": bid_data}, - ) - bid = response.json["data"] - bid_id = bid["id"] - bid_token = response.json["access"]["token"] - - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, bid_token), - upload_files=[("file", "name.doc", b"content")], - ) - self.assertEqual(response.status, "201 Created") - self.assertEqual(response.content_type, "application/json") - doc_id = response.json["data"]["id"] - self.assertIn(doc_id, response.headers["Location"]) - - self.set_status("active.qualification") - - response = self.app.patch_json( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, bid_token), - {"data": {"description": "document description"}}, - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document because award of bid is not in pending or active state", - ) - - response = self.app.put( - "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, bid_token), - "content3", - content_type="application/msword", - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't update document because award of bid is not in pending or active state", - ) - - response = self.app.post( - "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, bid_token), - upload_files=[("file", "name.doc", b"content")], - status=403, - ) - self.assertEqual(response.status, "403 Forbidden") - self.assertEqual(response.content_type, "application/json") - self.assertEqual( - response.json["errors"][0]["description"], - "Can't add document because award of bid is not in pending or active state", - ) - - -class TenderBidDocumentWithDSResourceTest(TenderBidDocumentResourceTest): - docservice = True +class TenderBidDocumentWithDSResourceTest(TenderBidDocumentWithDSResourceTestMixin): test_bids_data = test_bids - test_create_tender_bidder_document_json = snitch(create_tender_bidder_document_json) - test_put_tender_bidder_document_json = snitch(put_tender_bidder_document_json) - test_tender_bidder_confidential_document = snitch(tender_bidder_confidential_document) - class TenderBidderBatchDocumentsWithDSResourceTest(BaseTenderUAContentWebTest): docservice = True @@ -169,7 +75,7 @@ class TenderBidderBatchDocumentsWithDSResourceTest(BaseTenderUAContentWebTest): def suite(): suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TenderBidDocumentResourceTest)) + suite.addTest(unittest.makeSuite(TenderBidderBatchDocumentsWithDSResourceTest)) suite.addTest(unittest.makeSuite(TenderBidDocumentWithDSResourceTest)) suite.addTest(unittest.makeSuite(TenderBidFeaturesResourceTest)) suite.addTest(unittest.makeSuite(TenderBidResourceTest)) diff --git a/src/openprocurement/tender/openuadefense/views/bid.py b/src/openprocurement/tender/openuadefense/views/bid.py index ce3d31d567..03582c2019 100644 --- a/src/openprocurement/tender/openuadefense/views/bid.py +++ b/src/openprocurement/tender/openuadefense/views/bid.py @@ -11,13 +11,13 @@ from openprocurement.tender.openua.validation import validate_update_bid_to_draft, validate_update_bid_to_active_status -@optendersresource( - name="aboveThresholdUA.defense:Tender Bids", - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType="aboveThresholdUA.defense", - description="Tender UA.defense bids", -) +# @optendersresource( +# name="aboveThresholdUA.defense:Tender Bids", +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType="aboveThresholdUA.defense", +# description="Tender UA.defense bids", +# ) class TenderUABidResource(TenderBidResource): @json_view( content_type="application/json", diff --git a/src/openprocurement/tender/openuadefense/views/bid_document.py b/src/openprocurement/tender/openuadefense/views/bid_document.py index 451aa92052..076978ec86 100644 --- a/src/openprocurement/tender/openuadefense/views/bid_document.py +++ b/src/openprocurement/tender/openuadefense/views/bid_document.py @@ -16,13 +16,13 @@ from openprocurement.tender.openua.validation import validate_update_bid_document_confidentiality -@optendersresource( - name="aboveThresholdUA.defense:Tender Bid Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType="aboveThresholdUA.defense", - description="Tender UA.defense bidder documents", -) +# @optendersresource( +# name="aboveThresholdUA.defense:Tender Bid Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType="aboveThresholdUA.defense", +# description="Tender UA.defense bidder documents", +# ) class TenderUaBidDocumentResource(TenderBidDocumentResource): @json_view( diff --git a/src/openprocurement/tender/pricequotation/includeme.py b/src/openprocurement/tender/pricequotation/includeme.py index ee5cee9ea5..c66ba36d7d 100644 --- a/src/openprocurement/tender/pricequotation/includeme.py +++ b/src/openprocurement/tender/pricequotation/includeme.py @@ -20,6 +20,7 @@ def includeme(config): LOGGER.info("Init tender.pricequotation plugin.") config.add_tender_procurementMethodType(PriceQuotationTender) config.scan("openprocurement.tender.pricequotation.views") + config.scan("openprocurement.tender.pricequotation.procedure.views") config.scan("openprocurement.tender.pricequotation.subscribers") config.registry.registerAdapter( PQTenderConfigurator, diff --git a/src/openprocurement/tender/pricequotation/procedure/__init__.py b/src/openprocurement/tender/pricequotation/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/pricequotation/procedure/models/__init__.py b/src/openprocurement/tender/pricequotation/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/pricequotation/procedure/models/bid.py b/src/openprocurement/tender/pricequotation/procedure/models/bid.py new file mode 100644 index 0000000000..095d4a532b --- /dev/null +++ b/src/openprocurement/tender/pricequotation/procedure/models/bid.py @@ -0,0 +1,79 @@ +from schematics.types import StringType, MD5Type +from schematics.types.compound import ModelType +from schematics.types.serializable import serializable +from openprocurement.api.models import Model, Value +from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.models.document import PostDocument, Document +from openprocurement.tender.core.procedure.models.base import ( + ListType, + PatchBusinessOrganization, + PostBusinessOrganization, +) +from openprocurement.tender.pricequotation.procedure.models.req_response import RequirementResponse +from openprocurement.tender.pricequotation.validation import _validate_requirement_responses +from openprocurement.tender.pricequotation.procedure.validation import validate_bid_value +from uuid import uuid4 + + +class PatchBid(Model): + value = ModelType(Value) + tenderers = ListType(ModelType(PatchBusinessOrganization, required=True), min_size=1, max_size=1) + status = StringType(choices=["active", "draft"]) + + def validate_value(self, data, value): + if value is not None: + tender = get_tender() + validate_bid_value(tender, value) + + +class PostBid(PatchBid): + @serializable + def id(self): + return uuid4().hex + + tenderers = ListType( + ModelType(PostBusinessOrganization, required=True), + required=True, + min_size=1, + max_size=1 + ) + status = StringType(choices=["active", "draft"], default="active") + value = ModelType(Value) + documents = ListType(ModelType(PostDocument, required=True), default=list) + requirementResponses = ListType( + ModelType(RequirementResponse), + required=True, + min_size=1, + ) + + def validate_value(self, data, value): + tender = get_tender() + validate_bid_value(tender, value) + + def validate_requirementResponses(self, data, value): + tender = get_tender() + criterion = tender['criteria'] + _validate_requirement_responses(criterion, value) + + +class Bid(Model): + id = MD5Type() + date = StringType() + owner = StringType() + owner_token = StringType() + transfer_token = StringType() + documents = ListType(ModelType(Document, required=True)) + + tenderers = ListType( + ModelType(PostBusinessOrganization, required=True), + required=True, + min_size=1, + max_size=1 + ) + status = StringType(choices=["active", "draft"]) + value = ModelType(Value) + requirementResponses = ListType( + ModelType(RequirementResponse), + required=True, + min_size=1, + ) diff --git a/src/openprocurement/tender/pricequotation/procedure/models/req_response.py b/src/openprocurement/tender/pricequotation/procedure/models/req_response.py new file mode 100644 index 0000000000..4884239e4f --- /dev/null +++ b/src/openprocurement/tender/pricequotation/procedure/models/req_response.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +from uuid import uuid4 +from schematics.exceptions import ValidationError +from schematics.types.compound import ModelType +from schematics.types.serializable import serializable +from schematics.types import MD5Type, IntType +from openprocurement.api.models import ( + Model, + Period, + IsoDateTimeType, + ListType, + Reference, +) +from schematics.types import StringType +from openprocurement.api.constants import ( + RELEASE_ECRITERIA_ARTICLE_17, + CRITERION_REQUIREMENT_STATUSES_FROM, +) +from openprocurement.tender.core.procedure.validation import ( + validate_value_type, +) +from openprocurement.tender.core.procedure.context import get_tender, get_bid, get_json_data, get_now +from openprocurement.tender.core.procedure.utils import get_first_revision_date +from openprocurement.tender.core.procedure.models.base import ( + BaseBid, + validate_object_id_uniq, +) +from openprocurement.tender.core.models import ( + BaseAward, QualificationMilestoneListMixin, + validate_response_requirement_uniq, +) +from logging import getLogger + +LOGGER = getLogger(__name__) + + +class RequirementReference(Model): + id = StringType(required=True) + title = StringType() + + +class RequirementResponse(Model): + id = MD5Type(required=True, default=lambda: uuid4().hex) + requirement = ModelType(RequirementReference, required=True) + value = StringType(required=True) + diff --git a/src/openprocurement/tender/pricequotation/procedure/validation.py b/src/openprocurement/tender/pricequotation/procedure/validation.py new file mode 100644 index 0000000000..7a81038675 --- /dev/null +++ b/src/openprocurement/tender/pricequotation/procedure/validation.py @@ -0,0 +1,23 @@ +from schematics.exceptions import ValidationError +from openprocurement.api.utils import raise_operation_error + + +def validate_post_bid_tenderers(request, **_): + bid = request.validated["data"] + tender = request.validated["tender"] + tenderer_id = bid["tenderers"][0]["identifier"]["id"] + if tenderer_id not in (i["identifier"]["id"] for i in tender.get("shortlistedFirms", "")): + raise_operation_error(request, f"Can't add bid if tenderer not in shortlistedFirms") + + +def validate_bid_value(tender, value): + if not value: + raise ValidationError("This field is required.") + if tender["value"]["amount"] < value["amount"]: + raise ValidationError("value of bid should be less than value of tender") + if tender["value"].get("currency") != value.get("currency"): + raise ValidationError("currency of bid should be identical to currency of value of tender") + if tender["value"].get("valueAddedTaxIncluded") != value.get("valueAddedTaxIncluded"): + raise ValidationError( + "valueAddedTaxIncluded of bid should be identical " "to valueAddedTaxIncluded of value of tender" + ) diff --git a/src/openprocurement/tender/pricequotation/procedure/views/__init__.py b/src/openprocurement/tender/pricequotation/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/pricequotation/procedure/views/bid.py b/src/openprocurement/tender/pricequotation/procedure/views/bid.py new file mode 100644 index 0000000000..c8a87935ae --- /dev/null +++ b/src/openprocurement/tender/pricequotation/procedure/views/bid.py @@ -0,0 +1,77 @@ +from openprocurement.api.utils import json_view, raise_operation_error +from openprocurement.tender.core.procedure.validation import ( + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, + unless_administrator, + validate_bid_accreditation_level, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, +) +from openprocurement.tender.belowthreshold.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.pricequotation.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.pricequotation.constants import PMT +from openprocurement.tender.pricequotation.procedure.validation import validate_post_bid_tenderers +from cornice.resource import resource +from logging import getLogger + +LOGGER = getLogger(__name__) + + +@resource( + name="{}:Tender Bids".format(PMT), + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType=PMT, + description="Tender bids", +) +class TenderBidResource(TenderBidResource): + + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_post_bid_tenderers, + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() + + @json_view( + permission="edit_bid", + validators=( + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, # validations before forbidding, hmm... + ) + ) + def delete(self): + """ + Cancelling the proposal. + Forbidden for price quotation tender. + """ + request = self.request + raise_operation_error( + request, + "Can't delete bid in Price Quotation tender", + ) diff --git a/src/openprocurement/tender/pricequotation/procedure/views/bid_document.py b/src/openprocurement/tender/pricequotation/procedure/views/bid_document.py new file mode 100644 index 0000000000..7176b904ba --- /dev/null +++ b/src/openprocurement/tender/pricequotation/procedure/views/bid_document.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +from openprocurement.tender.belowthreshold.procedure.views.bid_document import BelowThresholdTenderBidDocumentResource +from openprocurement.tender.pricequotation.constants import PMT +from cornice.resource import resource + + +@resource( + name="{}:Tender Bid Documents".format(PMT), + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType=PMT, + description="Tender bidder documents", +) +class PQBidDocumentResource(BelowThresholdTenderBidDocumentResource): + pass diff --git a/src/openprocurement/tender/pricequotation/tests/bid.py b/src/openprocurement/tender/pricequotation/tests/bid.py index 80c3865877..e2d02e15cb 100644 --- a/src/openprocurement/tender/pricequotation/tests/bid.py +++ b/src/openprocurement/tender/pricequotation/tests/bid.py @@ -92,7 +92,7 @@ class TenderBidCriteriaOneGroupMultipleRequirementsTest(TenderContentWebTest): class TenderBidDocumentResourceTest(TenderContentWebTest): - + docservice = True initial_status = "active.tendering" def setUp(self): diff --git a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py index 2462b1f1fe..a5254677e4 100644 --- a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py +++ b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py @@ -11,6 +11,7 @@ test_organization, test_requirement_response_valid, test_response_1,\ test_response_2_1, test_response_2_2, test_response_3_1,\ test_response_3_2, test_response_4 +from openprocurement.tender.core.tests.base import change_auth def create_tender_bid_invalid(self): @@ -207,9 +208,22 @@ def create_tender_bid_invalid(self): [{"description": ["This field is required."], "location": "body", "name": "requirementResponses"}], ) + non_shortlist_org = deepcopy(test_organization) + non_shortlist_org["identifier"]["id"] = "69" + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": {"tenderers": [non_shortlist_org], "value": {"amount": 500}, + "requirementResponses": test_requirement_response_valid}}, + status=403, + ) + self.assertEqual( + response.json, + {'status': 'error', 'errors': [ + {'location': 'body', 'name': 'data', 'description': "Can't add bid if tenderer not in shortlistedFirms"}]} + ) + def create_tender_bid(self): - dateModified = self.db.get(self.tender_id).get("dateModified") # Revert tender to statuses ('draft', 'draft.unsuccessful', 'draft.publishing') data = self.db.get(self.tender_id) @@ -219,6 +233,7 @@ def create_tender_bid(self): for status in ('draft', 'draft.publishing', 'draft.unsuccessful'): data['status'] = status self.db.save(data) + response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), { @@ -236,11 +251,19 @@ def create_tender_bid(self): "name": "data", "description": "Can't add bid in current ({}) tender status".format(status)}]) - # Restore tender to 'active.tendering' status - data['status'] = current_status + # Restore tender to 'draft' status + data['status'] = "draft.publishing" data['criteria'] = criteria self.db.save(data) + # switch to tendering + with change_auth(self.app, ("Basic", ("pricequotation", ""))): + response = self.app.patch_json( + "/tenders/{}".format(self.tender_id), + {"data": {"status": "active.tendering"}} + ) + date_modified = response.json["data"].get("dateModified") + response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": {"tenderers": [test_organization], "value": {"amount": 500}, "requirementResponses": test_requirement_response_valid }}, @@ -252,7 +275,15 @@ def create_tender_bid(self): self.assertIn("id", bid) self.assertIn(bid["id"], response.headers["Location"]) - self.assertEqual(self.db.get(self.tender_id).get("dateModified"), dateModified) + self.assertEqual(self.db.get(self.tender_id).get("dateModified"), date_modified) + + # post second + response = self.app.post_json( + "/tenders/{}/bids".format(self.tender_id), + {"data": {"tenderers": [test_organization], "value": {"amount": 501}, + "requirementResponses": test_requirement_response_valid}}, + ) + self.assertEqual(response.status, "201 Created") self.set_status("complete") @@ -756,9 +787,14 @@ def bid_Administrator_change(self): def patch_tender_bid_document(self): - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, self.bid_id, self.bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -812,9 +848,14 @@ def create_tender_bid_document_nopending(self): {"data": {"status": "active"}}, ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -825,10 +866,14 @@ def create_tender_bid_document_nopending(self): response = self.check_chronograph() self.assertEqual(response.json["data"]["status"], "active.qualification") - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, token), - "content3", - content_type="application/msword", + {"data": { + "title": "name_3.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -837,9 +882,14 @@ def create_tender_bid_document_nopending(self): response.json["errors"][0]["description"], "Can't update document because award of bid is not in pending state" ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") diff --git a/src/openprocurement/tender/pricequotation/views/bid.py b/src/openprocurement/tender/pricequotation/views/bid.py index 02c0c8d006..a8e6a03653 100644 --- a/src/openprocurement/tender/pricequotation/views/bid.py +++ b/src/openprocurement/tender/pricequotation/views/bid.py @@ -18,13 +18,13 @@ from openprocurement.tender.pricequotation.constants import PMT -@optendersresource( - name="{}:Tender Bids".format(PMT), - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType=PMT, - description="Tender bids", -) +# @optendersresource( +# name="{}:Tender Bids".format(PMT), +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType=PMT, +# description="Tender bids", +# ) class TenderBidResource(BaseTenderBidResource): """ PriceQuotation tender bid resource """ diff --git a/src/openprocurement/tender/pricequotation/views/bid_document.py b/src/openprocurement/tender/pricequotation/views/bid_document.py index 0c6660953d..7dafd7d0aa 100644 --- a/src/openprocurement/tender/pricequotation/views/bid_document.py +++ b/src/openprocurement/tender/pricequotation/views/bid_document.py @@ -5,12 +5,12 @@ from openprocurement.tender.pricequotation.constants import PMT -@optendersresource( - name="{}:Tender Bid Documents".format(PMT), - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType=PMT, - description="Tender bidder documents", -) +# @optendersresource( +# name="{}:Tender Bid Documents".format(PMT), +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType=PMT, +# description="Tender bidder documents", +# ) class PQTenderBidDocumentResource(TenderBidDocumentResource): pass diff --git a/src/openprocurement/tender/simpledefense/includeme.py b/src/openprocurement/tender/simpledefense/includeme.py index bbf8be583a..6cbcf6b865 100644 --- a/src/openprocurement/tender/simpledefense/includeme.py +++ b/src/openprocurement/tender/simpledefense/includeme.py @@ -13,6 +13,7 @@ def includeme(config): config.add_tender_procurementMethodType(Tender) config.scan("openprocurement.tender.simpledefense.views") + config.scan("openprocurement.tender.simpledefense.procedure.views") config.scan("openprocurement.tender.simpledefense.subscribers") config.registry.registerAdapter( TenderSimpleDefConfigurator, (ISimpleDefTender, IRequest), IContentConfigurator diff --git a/src/openprocurement/tender/simpledefense/procedure/__init__.py b/src/openprocurement/tender/simpledefense/procedure/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/simpledefense/procedure/models/__init__.py b/src/openprocurement/tender/simpledefense/procedure/models/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/simpledefense/procedure/models/bid.py b/src/openprocurement/tender/simpledefense/procedure/models/bid.py new file mode 100644 index 0000000000..aaf4a7e4b6 --- /dev/null +++ b/src/openprocurement/tender/simpledefense/procedure/models/bid.py @@ -0,0 +1,21 @@ +from openprocurement.tender.openuadefense.procedure.models.bid import ( + Bid as BaseBid, + PostBid as BasePostBid, + PatchBid as BasePatchBid, +) +from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin + + +class PostBid(BasePostBid, PostBidResponsesMixin): + def validate_selfEligible(self, data, value): + return # to deactivate validation of selfEligible from BidResponsesMixin + + +class PatchBid(BasePatchBid, PatchBidResponsesMixin): + def validate_selfEligible(self, data, value): + return # to deactivate validation of selfEligible from BidResponsesMixin + + +class Bid(BaseBid, PostBidResponsesMixin): + def validate_selfEligible(self, data, value): + return # to deactivate validation of selfEligible from BidResponsesMixin diff --git a/src/openprocurement/tender/simpledefense/procedure/views/__init__.py b/src/openprocurement/tender/simpledefense/procedure/views/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/openprocurement/tender/simpledefense/procedure/views/bid.py b/src/openprocurement/tender/simpledefense/procedure/views/bid.py new file mode 100644 index 0000000000..5c2728f41a --- /dev/null +++ b/src/openprocurement/tender/simpledefense/procedure/views/bid.py @@ -0,0 +1,69 @@ +from openprocurement.tender.openuadefense.procedure.views.bid import TenderBidResource +from openprocurement.tender.core.procedure.validation import ( + validate_bid_operation_period, + validate_bid_operation_not_in_tendering, +) +from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update +from openprocurement.tender.simpledefense.procedure.models.bid import PostBid, PatchBid, Bid +from openprocurement.tender.core.procedure.validation import ( + unless_administrator, + validate_bid_accreditation_level, + validate_item_owner, + validate_input_data, + validate_patch_data, + validate_data_documents, + validate_update_deleted_bid, +) +from openprocurement.api.utils import json_view +from cornice.resource import resource + + +@resource( + name="simple.defense:Tender Bids", + collection_path="/tenders/{tender_id}/bids", + path="/tenders/{tender_id}/bids/{bid_id}", + procurementMethodType="simple.defense", + description="Tender simple.defense bids", +) +class TenderBidResource(TenderBidResource): + @json_view( + content_type="application/json", + permission="create_bid", + validators=( + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBid), + validate_data_documents, + ), + ) + def collection_post(self): + return super().collection_post() + + @json_view( + content_type="application/json", + permission="edit_bid", + validators=( + unless_administrator(validate_item_owner("bid")), + validate_update_deleted_bid, + + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_patch_data(Bid, item_name="bid"), + + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ), + ) + def patch(self): + return super().patch() + + @json_view( + permission="edit_bid", + validators=( + validate_item_owner("bid"), + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + ) + ) + def delete(self): + return super().delete() diff --git a/src/openprocurement/tender/simpledefense/procedure/views/bid_document.py b/src/openprocurement/tender/simpledefense/procedure/views/bid_document.py new file mode 100644 index 0000000000..e737f9d5fa --- /dev/null +++ b/src/openprocurement/tender/simpledefense/procedure/views/bid_document.py @@ -0,0 +1,13 @@ +from openprocurement.tender.openuadefense.procedure.views.bid_document import UADefenseTenderBidDocumentResource +from cornice.resource import resource + + +@resource( + name="simple.defense:Tender Bid Documents", + collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", + path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", + procurementMethodType="simple.defense", + description="Tender simple.defense bidder documents", +) +class SimpleDefenseTenderBidDocumentResource(UADefenseTenderBidDocumentResource): + pass diff --git a/src/openprocurement/tender/simpledefense/tests/award.py b/src/openprocurement/tender/simpledefense/tests/award.py index 998f375bef..9c0cf0721c 100644 --- a/src/openprocurement/tender/simpledefense/tests/award.py +++ b/src/openprocurement/tender/simpledefense/tests/award.py @@ -138,6 +138,12 @@ def setUp(self): patcher = mock.patch("openprocurement.api.models.ORGANIZATION_SCALE_FROM", get_now() + timedelta(days=1)) patcher.start() self.addCleanup(patcher.stop) + + patcher = mock.patch("openprocurement.tender.core.procedure.models.base.ORGANIZATION_SCALE_FROM", + get_now() + timedelta(days=1)) + patcher.start() + self.addCleanup(patcher.stop) + test_bid = deepcopy(test_bids[0]) test_bid["tenderers"][0].pop("scale") self.initial_bids = [test_bid] diff --git a/src/openprocurement/tender/simpledefense/tests/bid.py b/src/openprocurement/tender/simpledefense/tests/bid.py index d213ccb230..00d79b8c99 100644 --- a/src/openprocurement/tender/simpledefense/tests/bid.py +++ b/src/openprocurement/tender/simpledefense/tests/bid.py @@ -17,7 +17,7 @@ ) from openprocurement.tender.openua.tests.bid import ( TenderBidResourceTestMixin, - TenderBidDocumentResourceTestMixin, + TenderBidDocumentWithDSResourceTestMixin, TenderBidRequirementResponseTestMixin, TenderBidRequirementResponseEvidenceTestMixin, ) @@ -25,10 +25,6 @@ # TenderBidFeaturesResourceTest features_bidder, features_bidder_invalid, - # TenderBidDocumentWithDSResourceTest - create_tender_bidder_document_json, - put_tender_bidder_document_json, - tender_bidder_confidential_document, ) from openprocurement.tender.simpledefense.tests.base import ( BaseSimpleDefContentWebTest, @@ -79,10 +75,11 @@ class TenderBidFeaturesResourceTest(BaseSimpleDefContentWebTest): # test_features_bidder_invalid = snitch(features_bidder_invalid) -class TenderBidDocumentResourceTest(BaseSimpleDefContentWebTest, TenderBidDocumentResourceTestMixin): +class TenderBidDocumentResourceTest(BaseSimpleDefContentWebTest, TenderBidDocumentWithDSResourceTestMixin): initial_status = "active.tendering" test_bids_data = test_bids author_data = test_author + docservice = True def setUp(self): super(TenderBidDocumentResourceTest, self).setUp() @@ -112,9 +109,14 @@ def test_create_tender_bidder_document_nopending(self): bid_id = bid["id"] bid_token = response.json["access"]["token"] - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_3.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") @@ -135,10 +137,14 @@ def test_create_tender_bidder_document_nopending(self): "Can't update document because award of bid is not in pending or active state", ) - response = self.app.put( + response = self.app.put_json( "/tenders/{}/bids/{}/documents/{}?acc_token={}".format(self.tender_id, bid_id, doc_id, bid_token), - "content3", - content_type="application/msword", + {"data": { + "title": "name_3.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -148,9 +154,14 @@ def test_create_tender_bidder_document_nopending(self): "Can't update document because award of bid is not in pending or active state", ) - response = self.app.post( + response = self.app.post_json( "/tenders/{}/bids/{}/documents?acc_token={}".format(self.tender_id, bid_id, bid_token), - upload_files=[("file", "name.doc", b"content")], + {"data": { + "title": "name_3.doc", + "url": self.generate_docservice_url(), + "hash": "md5:" + "0" * 32, + "format": "application/msword", + }}, status=403, ) self.assertEqual(response.status, "403 Forbidden") @@ -161,15 +172,6 @@ def test_create_tender_bidder_document_nopending(self): ) -class TenderBidDocumentWithDSResourceTest(TenderBidDocumentResourceTest): - docservice = True - test_bids_data = test_bids - - test_create_tender_bidder_document_json = snitch(create_tender_bidder_document_json) - test_put_tender_bidder_document_json = snitch(put_tender_bidder_document_json) - test_tender_bidder_confidential_document = snitch(tender_bidder_confidential_document) - - class TenderBidderBatchDocumentsWithDSResourceTest(BaseSimpleDefContentWebTest): docservice = True initial_status = "active.tendering" diff --git a/src/openprocurement/tender/simpledefense/views/bid.py b/src/openprocurement/tender/simpledefense/views/bid.py index b0773d68d2..a9a4753297 100644 --- a/src/openprocurement/tender/simpledefense/views/bid.py +++ b/src/openprocurement/tender/simpledefense/views/bid.py @@ -3,12 +3,12 @@ from openprocurement.tender.openuadefense.views.bid import TenderUABidResource -@optendersresource( - name="simple.defense:Tender Bids", - collection_path="/tenders/{tender_id}/bids", - path="/tenders/{tender_id}/bids/{bid_id}", - procurementMethodType="simple.defense", - description="Tender simple.defense bids", -) +# @optendersresource( +# name="simple.defense:Tender Bids", +# collection_path="/tenders/{tender_id}/bids", +# path="/tenders/{tender_id}/bids/{bid_id}", +# procurementMethodType="simple.defense", +# description="Tender simple.defense bids", +# ) class TenderSimpleBidBidResource(TenderUABidResource): pass diff --git a/src/openprocurement/tender/simpledefense/views/bid_document.py b/src/openprocurement/tender/simpledefense/views/bid_document.py index daae6c7dbf..59845054e6 100644 --- a/src/openprocurement/tender/simpledefense/views/bid_document.py +++ b/src/openprocurement/tender/simpledefense/views/bid_document.py @@ -3,12 +3,12 @@ from openprocurement.tender.openuadefense.views.bid_document import TenderUaBidDocumentResource -@optendersresource( - name="simple.defense:Tender Bid Documents", - collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", - path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", - procurementMethodType="simple.defense", - description="Tender simple.defense bidder documents", -) +# @optendersresource( +# name="simple.defense:Tender Bid Documents", +# collection_path="/tenders/{tender_id}/bids/{bid_id}/documents", +# path="/tenders/{tender_id}/bids/{bid_id}/documents/{document_id}", +# procurementMethodType="simple.defense", +# description="Tender simple.defense bidder documents", +# ) class TenderSimpleDefBidDocumentResource(TenderUaBidDocumentResource): pass From 92c9ba69ccc6488e8b85c35ebc830eafe081c869 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Mon, 12 Jul 2021 13:52:52 +0300 Subject: [PATCH 05/17] Fixing bug with patching tenderers.identifier.id in price quotation procedure --- .../contracting/http/set-active-award.http | 8 +++--- .../tutorial/register-bidder.http | 1 + .../cfaua/tutorial/activate-bidder.http | 1 + .../bidder-view-financial-documents.http | 1 + .../esco/tutorial/activate-bidder.http | 5 ++++ .../esco/tutorial/register-bidder.http | 5 ++++ .../pricequotation/procedure/models/bid.py | 16 +++++++++++- .../pricequotation/procedure/validation.py | 9 ------- .../pricequotation/procedure/views/bid.py | 2 -- .../tender/pricequotation/tests/bid_blanks.py | 25 ++++++++++++++++--- 10 files changed, 54 insertions(+), 19 deletions(-) diff --git a/docs/source/contracting/http/set-active-award.http b/docs/source/contracting/http/set-active-award.http index 8841a7ac06..f24daa19c0 100644 --- a/docs/source/contracting/http/set-active-award.http +++ b/docs/source/contracting/http/set-active-award.http @@ -1,7 +1,7 @@ -PATCH /api/2.5/tenders/27449ba567ee4755b723fd5d2248425f/awards/465daa0e35ef47a48a592b6abdf49562?acc_token=09fb3db5c4b0423685f58a6cf7176e7b HTTP/1.0 -Authorization: Bearer broker -Content-Length: 30 -Content-Type: application/json +PATCH /api/2.5/tenders/27449ba567ee4755b723fd5d2248425f/awards/465daa0e35ef47a48a592b6abdf49562?acc_token=09fb3db5c4b0423685f58a6cf7176e7b HTTP/1.0 +Authorization: Bearer broker +Content-Length: 30 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: { diff --git a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http index 493194e103..4fc3506f88 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http @@ -81,6 +81,7 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00", "id": "c26ef6529df44b02a91cfe5ce527d74f", "status": "draft", + "documents": [], "parameters": [ { "code": "OCDS-123454-AIR-INTAKE", diff --git a/docs/source/tendering/cfaua/tutorial/activate-bidder.http b/docs/source/tendering/cfaua/tutorial/activate-bidder.http index 60d72d8006..a3397fc192 100644 --- a/docs/source/tendering/cfaua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/activate-bidder.http @@ -15,6 +15,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", diff --git a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http index 7e84d7b536..38f2d711c3 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http @@ -7,6 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", diff --git a/docs/source/tendering/esco/tutorial/activate-bidder.http b/docs/source/tendering/esco/tutorial/activate-bidder.http index 6a9d3d4449..a3c5df268d 100644 --- a/docs/source/tendering/esco/tutorial/activate-bidder.http +++ b/docs/source/tendering/esco/tutorial/activate-bidder.http @@ -153,6 +153,11 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "pending", "value": { "currency": "UAH", diff --git a/docs/source/tendering/esco/tutorial/register-bidder.http b/docs/source/tendering/esco/tutorial/register-bidder.http index 2abc00e380..2dc964363a 100644 --- a/docs/source/tendering/esco/tutorial/register-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-bidder.http @@ -97,6 +97,11 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00", "id": "c2273631949e4fbeb8ff3a1be667e937", "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", diff --git a/src/openprocurement/tender/pricequotation/procedure/models/bid.py b/src/openprocurement/tender/pricequotation/procedure/models/bid.py index 095d4a532b..e2da8d730d 100644 --- a/src/openprocurement/tender/pricequotation/procedure/models/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/models/bid.py @@ -2,7 +2,9 @@ from schematics.types.compound import ModelType from schematics.types.serializable import serializable from openprocurement.api.models import Model, Value -from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.api.validation import OPERATIONS +from openprocurement.api.utils import raise_operation_error +from openprocurement.tender.core.procedure.context import get_tender, get_request from openprocurement.tender.core.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.base import ( ListType, @@ -25,6 +27,18 @@ def validate_value(self, data, value): tender = get_tender() validate_bid_value(tender, value) + def validate_tenderers(self, _, value): + if value and value[0].identifier: + tenderer_id = value[0].identifier.id + if tenderer_id and tenderer_id not in ( + i["identifier"]["id"] + for i in get_tender().get("shortlistedFirms", "") + ): + # it's 403, not 422, so we can't raise ValueError or ValidationError + request = get_request() + raise_operation_error(request, + f"Can't {OPERATIONS[request.method]} bid if tenderer not in shortlistedFirms") + class PostBid(PatchBid): @serializable diff --git a/src/openprocurement/tender/pricequotation/procedure/validation.py b/src/openprocurement/tender/pricequotation/procedure/validation.py index 7a81038675..0a9e8a78fc 100644 --- a/src/openprocurement/tender/pricequotation/procedure/validation.py +++ b/src/openprocurement/tender/pricequotation/procedure/validation.py @@ -1,13 +1,4 @@ from schematics.exceptions import ValidationError -from openprocurement.api.utils import raise_operation_error - - -def validate_post_bid_tenderers(request, **_): - bid = request.validated["data"] - tender = request.validated["tender"] - tenderer_id = bid["tenderers"][0]["identifier"]["id"] - if tenderer_id not in (i["identifier"]["id"] for i in tender.get("shortlistedFirms", "")): - raise_operation_error(request, f"Can't add bid if tenderer not in shortlistedFirms") def validate_bid_value(tender, value): diff --git a/src/openprocurement/tender/pricequotation/procedure/views/bid.py b/src/openprocurement/tender/pricequotation/procedure/views/bid.py index c8a87935ae..75cf32cc10 100644 --- a/src/openprocurement/tender/pricequotation/procedure/views/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/views/bid.py @@ -13,7 +13,6 @@ from openprocurement.tender.core.procedure.models.bid import filter_administrator_bid_update from openprocurement.tender.pricequotation.procedure.models.bid import PostBid, PatchBid, Bid from openprocurement.tender.pricequotation.constants import PMT -from openprocurement.tender.pricequotation.procedure.validation import validate_post_bid_tenderers from cornice.resource import resource from logging import getLogger @@ -37,7 +36,6 @@ class TenderBidResource(TenderBidResource): validate_bid_operation_not_in_tendering, validate_bid_operation_period, validate_input_data(PostBid), - validate_post_bid_tenderers, validate_data_documents, ), ) diff --git a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py index a5254677e4..cb53285705 100644 --- a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py +++ b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py @@ -576,6 +576,20 @@ def patch_tender_bid(self): self.assertEqual(response.json["data"]["date"], bid["date"]) self.assertNotEqual(response.json["data"]["tenderers"][0]["name"], bid["tenderers"][0]["name"]) + non_shortlist_org = deepcopy(test_organization) + non_shortlist_org["identifier"]["id"] = "69" + response = self.app.patch_json( + f"/tenders/{self.tender_id}/bids/{bid['id']}?acc_token={token}", + {"data": {"tenderers": [non_shortlist_org]}}, + status=403, + ) + self.assertEqual( + response.json, + {'status': 'error', 'errors': [ + {'location': 'body', 'name': 'data', + 'description': "Can't update bid if tenderer not in shortlistedFirms"}]} + ) + response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], token), {"data": {"value": {"amount": 500}, "tenderers": [test_organization]}}, @@ -776,14 +790,19 @@ def bid_Administrator_change(self): bid = response.json["data"] self.app.authorization = ("Basic", ("administrator", "")) + self.app.patch_json( + "/tenders/{}/bids/{}".format(self.tender_id, bid["id"]), + {"data": {"tenderers": [{"identifier": {"id": "00000000"}}]}}, + status=403 + ) + response = self.app.patch_json( "/tenders/{}/bids/{}".format(self.tender_id, bid["id"]), - {"data": {"tenderers": [{"identifier": {"id": "00000000"}}], "value": {"amount": 400}}}, + {"data": {"tenderers": [{"identifier": {"legalName": "ТМ Валєра"}}]}}, ) self.assertEqual(response.status, "200 OK") self.assertEqual(response.content_type, "application/json") - self.assertNotEqual(response.json["data"]["value"]["amount"], 400) - self.assertEqual(response.json["data"]["tenderers"][0]["identifier"]["id"], "00000000") + self.assertEqual(response.json["data"]["tenderers"][0]["identifier"]["legalName"], "ТМ Валєра") def patch_tender_bid_document(self): From 5d5d6b129d6e116f54e1d82a76b4d0b89130c032 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Wed, 14 Jul 2021 22:24:38 +0300 Subject: [PATCH 06/17] Fixing None as lists at all refactorred bid endpoint --- .../tendering/cfaua/tutorial/activate-bidder.http | 4 ++++ .../cfaua/tutorial/register-2nd-bidder.http | 4 ++++ .../tendering/cfaua/tutorial/register-bidder.http | 4 ++++ .../tendering/esco/tutorial/activate-bidder.http | 1 + .../tutorial/bidder-view-financial-documents.http | 1 + .../tender/cfaselectionua/procedure/models/bid.py | 9 +++++---- .../tender/cfaselectionua/tests/bid_blanks.py | 4 ++++ .../tender/cfaua/procedure/models/bid.py | 13 +++++++------ .../tender/cfaua/tests/bid_blanks.py | 6 ++++++ .../competitivedialogue/procedure/models/bid.py | 10 +++++----- .../tests/stage1/bid_blanks.py | 2 ++ .../tests/stage2/bid_blanks.py | 5 +++++ .../tender/esco/procedure/models/bid.py | 7 ++++--- .../tender/esco/tests/bid_blanks.py | 15 +++++++++++++-- .../tender/openuadefense/procedure/models/bid.py | 6 +++--- .../tender/pricequotation/tests/bid_blanks.py | 7 ++++++- 16 files changed, 74 insertions(+), 24 deletions(-) diff --git a/docs/source/tendering/cfaua/tutorial/activate-bidder.http b/docs/source/tendering/cfaua/tutorial/activate-bidder.http index a3397fc192..e00db50fdd 100644 --- a/docs/source/tendering/cfaua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/activate-bidder.http @@ -165,6 +165,10 @@ X-Content-Type-Options: nosniff } } ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" diff --git a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http index 0f48a2ea49..041b3085a1 100644 --- a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http @@ -85,6 +85,10 @@ X-Content-Type-Options: nosniff } } ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, "status": "draft" }, diff --git a/docs/source/tendering/cfaua/tutorial/register-bidder.http b/docs/source/tendering/cfaua/tutorial/register-bidder.http index f9033b38d2..1af83379ff 100644 --- a/docs/source/tendering/cfaua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-bidder.http @@ -86,6 +86,10 @@ X-Content-Type-Options: nosniff } } ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", "status": "draft" diff --git a/docs/source/tendering/esco/tutorial/activate-bidder.http b/docs/source/tendering/esco/tutorial/activate-bidder.http index a3c5df268d..dfedbcadd1 100644 --- a/docs/source/tendering/esco/tutorial/activate-bidder.http +++ b/docs/source/tendering/esco/tutorial/activate-bidder.http @@ -193,6 +193,7 @@ X-Content-Type-Options: nosniff "days": 74 } }, + "lotValues": [], "selfQualified": true } } diff --git a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http index ddb941ce38..f22546bea0 100644 --- a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http @@ -261,6 +261,7 @@ X-Content-Type-Options: nosniff "days": 74 } }, + "lotValues": [], "selfQualified": true } } diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py index 4729867660..c97892109f 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py @@ -1,4 +1,4 @@ -from schematics.types import StringType, BooleanType +from schematics.types import StringType from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin from openprocurement.tender.core.procedure.models.bid import ( Bid as BaseBid, @@ -7,7 +7,8 @@ ) from openprocurement.tender.cfaselectionua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.cfaselectionua.procedure.models.parameter import PatchParameter, Parameter -from schematics.types.compound import ListType, ModelType +from openprocurement.tender.core.procedure.models.base import ListType +from schematics.types.compound import ModelType from openprocurement.tender.core.models import validate_parameters_uniq @@ -18,8 +19,8 @@ class PatchBid(PatchBidResponsesMixin, BasePatchBid): class PostBid(PostBidResponsesMixin, BasePostBid): - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) - lotValues = ListType(ModelType(PostLotValue, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) + lotValues = ListType(ModelType(PostLotValue, required=True), default=list) subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py index 1f893a7a8d..da18c1e68c 100644 --- a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py @@ -304,6 +304,7 @@ def create_tender_bid(self): "relatedLot": self.initial_lots[0]["id"], } ], + "value": None, "parameters": None, "documents": None, } }, ) @@ -666,6 +667,7 @@ def features_bid(self): bid.pop("date") bid.pop("id") bid["lotValues"][0].pop("date") + self.assertEqual(bid.pop("documents", []), []) self.assertEqual(bid, i) # create tender only with one feature @@ -692,6 +694,7 @@ def features_bid(self): bid.pop("date") bid.pop("id") bid["lotValues"][0].pop("date") + self.assertEqual(bid.pop("documents", []), []) self.assertEqual(bid, feat_bid) @@ -787,6 +790,7 @@ def patch_features_bid_invalid(self): bid.pop("date") bid.pop("id") bid["lotValues"][0].pop("date") + self.assertEqual(bid.pop("documents", []), []) self.assertEqual(bid, test_bid) response = self.app.patch_json( diff --git a/src/openprocurement/tender/cfaua/procedure/models/bid.py b/src/openprocurement/tender/cfaua/procedure/models/bid.py index 5a0f3f3bc0..687fdbba12 100644 --- a/src/openprocurement/tender/cfaua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaua/procedure/models/bid.py @@ -5,12 +5,13 @@ PostBid as BasePostBid, PatchBid as BasePatchBid, ) +from openprocurement.tender.core.procedure.models.base import ListType from openprocurement.tender.cfaua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.openua.procedure.models.document import ( PostDocument, Document, ) -from schematics.types.compound import ListType, ModelType +from schematics.types.compound import ModelType class PatchBid(PatchBidResponsesMixin, BasePatchBid): @@ -25,12 +26,12 @@ class PatchBid(PatchBidResponsesMixin, BasePatchBid): class PostBid(PostBidResponsesMixin, BasePostBid): subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True)) + lotValues = ListType(ModelType(PostLotValue, required=True), default=list) - documents = ListType(ModelType(PostDocument, required=True)) - financialDocuments = ListType(ModelType(PostDocument, required=True)) - eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) - qualificationDocuments = ListType(ModelType(PostDocument, required=True)) + documents = ListType(ModelType(PostDocument, required=True), default=list) + financialDocuments = ListType(ModelType(PostDocument, required=True), default=list) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True), default=list) + qualificationDocuments = ListType(ModelType(PostDocument, required=True), default=list) selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) diff --git a/src/openprocurement/tender/cfaua/tests/bid_blanks.py b/src/openprocurement/tender/cfaua/tests/bid_blanks.py index 493fa01aa3..6ee98bf4c1 100644 --- a/src/openprocurement/tender/cfaua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaua/tests/bid_blanks.py @@ -1986,6 +1986,7 @@ def create_tender_bidder(self): self.convert_bids_for_tender_with_lots(initial_bids, self.initial_lots) bid_data = deepcopy(initial_bids[0]) + bid_data.update({"value": None, "parameters": None, "documents": None}) bid, bid_token = self.create_bid(self.tender_id, bid_data) self.assertEqual(bid["tenderers"][0]["name"], initial_bids[0]["tenderers"][0]["name"]) self.assertIn("id", bid) @@ -2167,6 +2168,10 @@ def features_bidder(self): bid.pop("id") bid["lotValues"][0].pop("date") bid["lotValues"][0].pop("status") + self.assertEqual(bid.pop("documents", []), []) + self.assertEqual(bid.pop("financialDocuments", []), []) + self.assertEqual(bid.pop("eligibilityDocuments", []), []) + self.assertEqual(bid.pop("qualificationDocuments", []), []) self.assertEqual(bid, i) @@ -3429,6 +3434,7 @@ def view_bid_in_qualification_st_st(self): # CS-5342 expected_keys.add("selfEligible") self.assertEqual(set(bids[0].keys()), expected_keys) + expected_keys |= {"documents", "eligibilityDocuments", "parameters", "financialDocuments", "qualificationDocuments",} response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, bids[0]["id"])) self.assertEqual(set(response.json["data"].keys()), expected_keys) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py index aca7e90849..1679954e37 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py @@ -35,11 +35,11 @@ def id(self): tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True)) - documents = ListType(ModelType(PostDocument, required=True)) - financialDocuments = ListType(ModelType(PostDocument, required=True)) - eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) - qualificationDocuments = ListType(ModelType(PostDocument, required=True)) + lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + documents = ListType(ModelType(PostDocument, required=True), default=list) + financialDocuments = ListType(ModelType(PostDocument, required=True), default=list) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True), default=list) + qualificationDocuments = ListType(ModelType(PostDocument, required=True), default=list) selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py index 0665cf40fb..24094cf1fa 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py @@ -8,6 +8,8 @@ # CompetitiveDialogEUBidResourceTest def create_tender_bidder(self): bid_data = deepcopy(self.test_bids_data[0]) + bid_data.update({"lotValues": None, "documents": None, "financialDocuments": None, + "eligibilityDocuments": None, "qualificationDocuments": None}) response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), {"data": bid_data}, diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py index caeb645362..fd86576513 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py @@ -423,6 +423,9 @@ def features_bidder_eu(self): i["status"] = "pending" bid.pop("date") bid.pop("id") + for f in ("lotValues", "documents", "financialDocuments", "eligibilityDocuments", "qualificationDocuments"): + self.assertEqual(bid.pop(f), []) + self.assertEqual(bid, i) @@ -991,6 +994,8 @@ def features_bidder_ua(self): i["status"] = "active" bid.pop("date") bid.pop("id") + for f in ("lotValues", "documents"): + self.assertEqual(bid.pop(f), []) self.assertEqual(bid, i) diff --git a/src/openprocurement/tender/esco/procedure/models/bid.py b/src/openprocurement/tender/esco/procedure/models/bid.py index 2393c0a9b9..60ec752c31 100644 --- a/src/openprocurement/tender/esco/procedure/models/bid.py +++ b/src/openprocurement/tender/esco/procedure/models/bid.py @@ -1,4 +1,4 @@ -from schematics.types import StringType, BooleanType +from schematics.types import BooleanType from openprocurement.api.models import Model from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.core.procedure.utils import get_first_revision_date @@ -9,8 +9,9 @@ ) from openprocurement.tender.esco.procedure.models.lot_value import LotValue, PatchLotValue, PostLotValue from openprocurement.tender.esco.procedure.models.value import ESCOValue, PatchESCOValue +from openprocurement.tender.core.procedure.models.base import ListType from openprocurement.api.constants import RELEASE_ECRITERIA_ARTICLE_17 -from schematics.types.compound import ListType, ModelType +from schematics.types.compound import ModelType from schematics.exceptions import ValidationError @@ -52,7 +53,7 @@ def validate_value(self, data, value): class PostBid(ESCOMixin, BasePostBid): - lotValues = ListType(ModelType(PostLotValue, required=True)) + lotValues = ListType(ModelType(PostLotValue, required=True), default=list) class Bid(ESCOMixin, BaseBid): diff --git a/src/openprocurement/tender/esco/tests/bid_blanks.py b/src/openprocurement/tender/esco/tests/bid_blanks.py index dded67b518..f8f9f02461 100644 --- a/src/openprocurement/tender/esco/tests/bid_blanks.py +++ b/src/openprocurement/tender/esco/tests/bid_blanks.py @@ -526,7 +526,11 @@ def create_tender_bid_invalid_funding_kind_budget(self): def create_tender_bid(self): - response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": self.test_bids_data[0]}) + data = deepcopy(self.test_bids_data[0]) + data.update( + {"lotValues": None, "parameters": None, "documents": None} + ) + response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") bid = response.json["data"] @@ -1476,7 +1480,14 @@ def features_bid(self): bid = response.json["data"] bid.pop("date") bid.pop("id") - self.assertEqual(set(bid), set(i)) + default_fields = { + 'lotValues', + 'documents', + 'financialDocuments', + 'eligibilityDocuments', + 'qualificationDocuments' + } + self.assertEqual(set(bid), set(i) | default_fields) def patch_and_put_document_into_invalid_bid(self): diff --git a/src/openprocurement/tender/openuadefense/procedure/models/bid.py b/src/openprocurement/tender/openuadefense/procedure/models/bid.py index 138360f475..880e3c241a 100644 --- a/src/openprocurement/tender/openuadefense/procedure/models/bid.py +++ b/src/openprocurement/tender/openuadefense/procedure/models/bid.py @@ -22,9 +22,9 @@ class PostBid(BasePostBid): selfEligible = BooleanType(choices=[True], required=True) selfQualified = BooleanType(choices=[True], required=True) subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True)) - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) - documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True)) + lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) + documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True), default=list) def validate_value(self, data, value): if data.get("status") != "draft": diff --git a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py index cb53285705..cc29ee9399 100644 --- a/src/openprocurement/tender/pricequotation/tests/bid_blanks.py +++ b/src/openprocurement/tender/pricequotation/tests/bid_blanks.py @@ -266,7 +266,12 @@ def create_tender_bid(self): response = self.app.post_json( "/tenders/{}/bids".format(self.tender_id), - {"data": {"tenderers": [test_organization], "value": {"amount": 500}, "requirementResponses": test_requirement_response_valid }}, + {"data": { + "tenderers": [test_organization], + "value": {"amount": 500}, + "requirementResponses": test_requirement_response_valid, + "documents": None, + }}, ) self.assertEqual(response.status, "201 Created") self.assertEqual(response.content_type, "application/json") From 0b912582c294e943e46cf91f6bd6b17368917b00 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Mon, 9 Aug 2021 12:10:57 +0300 Subject: [PATCH 07/17] Fixing bid status deletion --- src/openprocurement/api/tests/base.py | 4 ++- .../tender/cfaua/procedure/models/bid.py | 16 ++++++++-- .../procedure/models/bid.py | 29 ++++++++++++------- .../procedure/models/lot_value.py | 2 +- .../tender/core/procedure/models/bid.py | 8 ++--- .../tender/esco/procedure/models/bid.py | 27 +++++++++-------- .../tender/openeu/procedure/models/bid.py | 13 ++++++++- .../tender/openua/procedure/models/bid.py | 5 ++-- .../tender/openua/tests/bid_blanks.py | 8 +---- .../openuadefense/procedure/models/bid.py | 10 +++---- .../pricequotation/procedure/models/bid.py | 16 ++++++++-- 11 files changed, 84 insertions(+), 54 deletions(-) diff --git a/src/openprocurement/api/tests/base.py b/src/openprocurement/api/tests/base.py index 69f551a41e..41d92e7981 100644 --- a/src/openprocurement/api/tests/base.py +++ b/src/openprocurement/api/tests/base.py @@ -180,7 +180,9 @@ def set_responses(self, tender_id, bid, status=None): patch_data = {"status": status} if "requirementResponses" not in bid["data"]: - patch_data["requirementResponses"] = generate_responses(self, tender_id) + rr = generate_responses(self, tender_id) + if rr: + patch_data["requirementResponses"] = rr response = self.app.patch_json( f"/tenders/{tender_id}/bids/{bid['data']['id']}?acc_token={bid['access']['token']}", diff --git a/src/openprocurement/tender/cfaua/procedure/models/bid.py b/src/openprocurement/tender/cfaua/procedure/models/bid.py index 687fdbba12..2407187c87 100644 --- a/src/openprocurement/tender/cfaua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaua/procedure/models/bid.py @@ -1,5 +1,8 @@ from schematics.types import StringType, BooleanType +from schematics.types.serializable import serializable +from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin +from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.bid import ( Bid as BaseBid, PostBid as BasePostBid, @@ -11,6 +14,7 @@ PostDocument, Document, ) +from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from schematics.types.compound import ModelType @@ -36,10 +40,17 @@ class PostBid(PostBidResponsesMixin, BasePostBid): selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) status = StringType( - choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], - default="pending", + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"] ) + @serializable(serialized_name="status", serialize_when_none=True) + def default_status(self): + if not self.status: + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: + return "draft" + return "pending" + return self.status + class Bid(PostBidResponsesMixin, BaseBid): subcontractingDetails = StringType() @@ -54,4 +65,5 @@ class Bid(PostBidResponsesMixin, BaseBid): status = StringType( choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + required=True ) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py index 1679954e37..34285fb041 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py @@ -4,12 +4,14 @@ PatchBusinessOrganization, PostBusinessOrganization, ) -from openprocurement.tender.core.procedure.context import get_tender +from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.core.procedure.validation import validate_bid_value from openprocurement.tender.competitivedialogue.procedure.models.lot_value import LotValue, PatchLotValue, PostLotValue from openprocurement.tender.competitivedialogue.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin from openprocurement.tender.core.procedure.models.bid import MetaBid, validate_lot_values +from openprocurement.tender.core.procedure.utils import get_first_revision_date +from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from schematics.types.compound import ModelType from schematics.types import BooleanType, StringType from schematics.types.serializable import serializable @@ -48,14 +50,20 @@ def id(self): default="pending", ) + @serializable(serialized_name="status", serialize_when_none=True) + def default_status(self): + if not self.status: + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: + return "draft" + return "pending" + return self.status + def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - validate_bid_value(tender, value) + tender = get_tender() + validate_bid_value(tender, value) def validate_lotValues(self, data, values): - if data.get("status") != "draft": - validate_lot_values(values) + validate_lot_values(values) class Bid(MetaBid, PostBidResponsesMixin, BaseBid): @@ -70,13 +78,12 @@ class Bid(MetaBid, PostBidResponsesMixin, BaseBid): selfEligible = BooleanType(choices=[True]) status = StringType( choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + required=True ) def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - validate_bid_value(tender, value) + tender = get_tender() + validate_bid_value(tender, value) def validate_lotValues(self, data, values): - if data.get("status") != "draft": - validate_lot_values(values) + validate_lot_values(values) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py b/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py index bbc29d4129..3a9c7cb78b 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/lot_value.py @@ -1,4 +1,4 @@ -from openprocurement.api.models import Model, Value, ModelType +from openprocurement.api.models import Model from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.core.procedure.validation import validate_relatedlot from schematics.types import StringType, MD5Type diff --git a/src/openprocurement/tender/core/procedure/models/bid.py b/src/openprocurement/tender/core/procedure/models/bid.py index 60faa4c16a..da9f609d6e 100644 --- a/src/openprocurement/tender/core/procedure/models/bid.py +++ b/src/openprocurement/tender/core/procedure/models/bid.py @@ -51,7 +51,7 @@ class CommonBid(BaseBid): value = ModelType(Value) lotValues = ListType(ModelType(LotValue, required=True)) tenderers = ListType(ModelType(PostBusinessOrganization, required=True), min_size=1, max_size=1) - status = StringType(choices=["active", "draft", "invalid"]) + status = StringType(choices=["active", "draft", "invalid"], required=True) def validate_value(self, data, value): tender = get_tender() @@ -96,14 +96,12 @@ def id(self): status = StringType(choices=["active", "draft"]) documents = ListType(ModelType(PostDocument, required=True)) - _old_default_status = "active" - @serializable(serialized_name="status", serialize_when_none=True) def default_status(self): if not self.status: - if get_first_revision_date(self.__parent__, default=get_now()) > TWO_PHASE_COMMIT_FROM: + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: return "draft" - return self._old_default_status + return "active" return self.status # -- POST diff --git a/src/openprocurement/tender/esco/procedure/models/bid.py b/src/openprocurement/tender/esco/procedure/models/bid.py index 60ec752c31..ec332b268f 100644 --- a/src/openprocurement/tender/esco/procedure/models/bid.py +++ b/src/openprocurement/tender/esco/procedure/models/bid.py @@ -22,20 +22,19 @@ class ESCOMixin(Model): selfEligible = BooleanType(required=False) def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - if tender.get("lots"): - if value: - raise ValidationError("value should be posted for each lot of bid") - else: - if not value: - raise ValidationError("This field is required.") - if tender["minValue"].get("currency") != value.get("currency"): - raise ValidationError("currency of bid should be identical to currency of minValue of tender") - if tender["minValue"].get("valueAddedTaxIncluded") != value.get("valueAddedTaxIncluded"): - raise ValidationError( - "valueAddedTaxIncluded of bid should be identical to valueAddedTaxIncluded of minValue of tender" - ) + tender = get_tender() + if tender.get("lots"): + if value: + raise ValidationError("value should be posted for each lot of bid") + else: + if not value: + raise ValidationError("This field is required.") + if tender["minValue"].get("currency") != value.get("currency"): + raise ValidationError("currency of bid should be identical to currency of minValue of tender") + if tender["minValue"].get("valueAddedTaxIncluded") != value.get("valueAddedTaxIncluded"): + raise ValidationError( + "valueAddedTaxIncluded of bid should be identical to valueAddedTaxIncluded of minValue of tender" + ) def validate_selfEligible(self, data, value): tender = get_tender() diff --git a/src/openprocurement/tender/openeu/procedure/models/bid.py b/src/openprocurement/tender/openeu/procedure/models/bid.py index 9bdfeed0de..2958722fb5 100644 --- a/src/openprocurement/tender/openeu/procedure/models/bid.py +++ b/src/openprocurement/tender/openeu/procedure/models/bid.py @@ -4,12 +4,16 @@ PostBid as BasePostBid, PatchBid as BasePatchBid, ) +from schematics.types.serializable import serializable +from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.base import ListType +from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.openeu.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.openua.procedure.models.document import ( PostDocument, Document, ) +from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from schematics.types.compound import ModelType @@ -36,7 +40,13 @@ class PostBid(BasePostBid): choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"] ) - _old_default_status = "pending" + @serializable(serialized_name="status", serialize_when_none=True) + def default_status(self): + if not self.status: + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: + return "draft" + return "pending" + return self.status class Bid(BaseBid): @@ -51,4 +61,5 @@ class Bid(BaseBid): status = StringType( choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + required=True ) diff --git a/src/openprocurement/tender/openua/procedure/models/bid.py b/src/openprocurement/tender/openua/procedure/models/bid.py index 62e1d7bcc8..a827d2f9a1 100644 --- a/src/openprocurement/tender/openua/procedure/models/bid.py +++ b/src/openprocurement/tender/openua/procedure/models/bid.py @@ -32,9 +32,8 @@ class PostBid(BasePostBid, PostBidResponsesMixin): documents = ListType(ModelType(PostDocument, required=True)) def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - validate_bid_value(tender, value) + tender = get_tender() + validate_bid_value(tender, value) class Bid(BaseBid, PostBidResponsesMixin): diff --git a/src/openprocurement/tender/openua/tests/bid_blanks.py b/src/openprocurement/tender/openua/tests/bid_blanks.py index 086af6eab2..27cb912592 100644 --- a/src/openprocurement/tender/openua/tests/bid_blanks.py +++ b/src/openprocurement/tender/openua/tests/bid_blanks.py @@ -299,16 +299,10 @@ def patch_tender_bidder(self): response = self.app.patch_json( "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), {"data": { + "status": "active", "value": {"amount": 600}, "lotValues": None, "parameters": None, }}, - status=200, - ) - self.assertEqual(response.status, "200 OK") - - response = self.app.patch_json( - "/tenders/{}/bids/{}?acc_token={}".format(self.tender_id, bid["id"], bid_token), - {"data": {"status": "active"}}, status=422, ) self.assertEqual(response.status, "422 Unprocessable Entity") diff --git a/src/openprocurement/tender/openuadefense/procedure/models/bid.py b/src/openprocurement/tender/openuadefense/procedure/models/bid.py index 880e3c241a..93b35a455c 100644 --- a/src/openprocurement/tender/openuadefense/procedure/models/bid.py +++ b/src/openprocurement/tender/openuadefense/procedure/models/bid.py @@ -27,9 +27,8 @@ class PostBid(BasePostBid): documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True), default=list) def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - validate_bid_value(tender, value) + tender = get_tender() + validate_bid_value(tender, value) class PatchBid(BasePatchBid): @@ -49,7 +48,6 @@ class Bid(BaseBid): documents = ListType(ConfidentialDocumentModelType(Document, required=True)) def validate_value(self, data, value): - if data.get("status") != "draft": - tender = get_tender() - validate_bid_value(tender, value) + tender = get_tender() + validate_bid_value(tender, value) diff --git a/src/openprocurement/tender/pricequotation/procedure/models/bid.py b/src/openprocurement/tender/pricequotation/procedure/models/bid.py index e2da8d730d..13cac11b37 100644 --- a/src/openprocurement/tender/pricequotation/procedure/models/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/models/bid.py @@ -1,10 +1,12 @@ from schematics.types import StringType, MD5Type from schematics.types.compound import ModelType from schematics.types.serializable import serializable +from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from openprocurement.api.models import Model, Value from openprocurement.api.validation import OPERATIONS from openprocurement.api.utils import raise_operation_error -from openprocurement.tender.core.procedure.context import get_tender, get_request +from openprocurement.tender.core.procedure.context import get_tender, get_request, get_now +from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.base import ( ListType, @@ -51,7 +53,7 @@ def id(self): min_size=1, max_size=1 ) - status = StringType(choices=["active", "draft"], default="active") + status = StringType(choices=["active", "draft"]) value = ModelType(Value) documents = ListType(ModelType(PostDocument, required=True), default=list) requirementResponses = ListType( @@ -60,6 +62,14 @@ def id(self): min_size=1, ) + @serializable(serialized_name="status", serialize_when_none=True) + def default_status(self): + if not self.status: + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: + return "draft" + return "active" + return self.status + def validate_value(self, data, value): tender = get_tender() validate_bid_value(tender, value) @@ -84,7 +94,7 @@ class Bid(Model): min_size=1, max_size=1 ) - status = StringType(choices=["active", "draft"]) + status = StringType(choices=["active", "draft"], required=True) value = ModelType(Value) requirementResponses = ListType( ModelType(RequirementResponse), From c8f7e90dbf4fa688332dca635d56aec17aa8f6db Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Mon, 9 Aug 2021 16:15:41 +0300 Subject: [PATCH 08/17] Changing bid default status --- .../tutorial/activate-bidder.http | 15 +- .../tutorial/award-qualification-active.http | 2 +- .../award-qualification-cancelled.http | 2 +- .../award-qualification-unsuccessful1.http | 2 +- .../cfaselectionua/tutorial/awards-get.http | 2 +- .../tutorial/bidder-documents.http | 10 +- .../tutorial/bidder-participation-url.http | 10 +- .../tutorial/bidder2-participation-url.http | 14 +- .../tutorial/confirm-qualification.http | 2 +- .../tutorial/register-2nd-bidder.http | 36 +-- .../tutorial/register-bidder.http | 20 +- .../tender-contract-upload-document.http | 4 +- ...ender-contract-upload-second-document.http | 4 +- .../tutorial/upload-bid-proposal.http | 12 +- .../cfaua/tutorial/activate-bidder.http | 48 ++-- .../add-requirement-responses-to-bidder.http | 53 +++-- .../agreement-contract-unitprices1.http | 2 +- .../agreement-contract-unitprices2.http | 2 +- .../agreement-contract-unitprices3.http | 2 +- .../tutorial/agreement-contracts-list.http | 6 +- .../tutorial/agreement-unsuccessful.http | 18 +- .../cfaua/tutorial/agreements-list.http | 6 +- .../tutorial/approve-qualification1.http | 2 +- .../tutorial/approve-qualification2.http | 2 +- .../tutorial/approve-qualification4.http | 2 +- .../tendering/cfaua/tutorial/auction-url.http | 126 +++++------ ...bidder-activate-after-changing-tender.http | 118 +++++----- .../bidder-after-changing-tender.http | 4 +- .../cfaua/tutorial/bidder-documents.http | 22 +- .../tutorial/bidder-financial-documents.http | 20 +- .../tutorial/bidder-participation-url.http | 106 ++------- .../bidder-view-financial-documents.http | 127 +++++------ .../tutorial/bidder2-participation-url.http | 41 ++-- .../tutorial/bidder4-participation-url.http | 77 ++----- .../cfaua/tutorial/confirm-qualification.http | 2 +- .../tutorial/confirm-qualification2.http | 2 +- .../cfaua/tutorial/mark-bid-doc-private.http | 13 +- .../cfaua/tutorial/patch-award-cancelled.http | 2 +- .../patch-award-unsuccessful-cancelled.http | 2 +- .../tutorial/patch-award-unsuccessful.http | 2 +- .../pre-qualification-confirmation.http | 132 +++++------ .../tutorial/qualificated-bids-view.http | 125 ++++++----- .../cfaua/tutorial/qualifications-list.http | 6 +- .../cfaua/tutorial/qualifications-list2.http | 8 +- .../cfaua/tutorial/qualifications-list3.http | 14 +- .../tutorial/qualifications-listing.http | 8 +- .../cfaua/tutorial/register-2nd-bidder.http | 33 +-- .../cfaua/tutorial/register-3rd-bidder.http | 91 ++++---- .../cfaua/tutorial/register-4rd-bidder.http | 91 ++++---- .../cfaua/tutorial/register-bidder.http | 35 +-- .../cfaua/tutorial/reject-qualification3.http | 2 +- .../cfaua/tutorial/rejected-bid-view.http | 35 ++- .../cfaua/tutorial/tender-agreement-get.http | 18 +- .../tutorial/tender-agreement-sign-date.http | 18 +- .../cfaua/tutorial/tender-agreement-sign.http | 18 +- .../cfaua/tutorial/tender-completed.http | 190 ++++++++-------- .../cfaua/tutorial/tender-unsuccessful.http | 40 ++-- ...oad-bid-eligibility-document-proposal.http | 32 +-- ...pload-bid-financial-document-proposal.http | 32 +-- .../tutorial/upload-bid-private-proposal.http | 32 +-- .../cfaua/tutorial/upload-bid-proposal.http | 32 +-- ...alification-document-proposal-updated.http | 32 +-- ...d-bid-qualification-document-proposal.http | 32 +-- .../tutorial/upload-prices-document.http | 34 +-- .../bid-lot1-invalid-view.http | 4 +- .../bid-lot1-update-view.http | 82 +++---- .../multiple_lots_tutorial/bid-lot1.http | 32 +-- .../bid-lot2-update-view.http | 82 +++---- .../multiple_lots_tutorial/bid-lot2.http | 36 +-- .../bid-lot3-update-view.http | 82 +++---- .../qualifications-view.http | 6 +- .../register_ok_bid.http | 29 ++- .../stage2-pending.http | 12 +- .../stage2-waiting.http | 12 +- .../tender-activate-qualifications.http | 2 +- ...er-view-pre-qualification-stand-still.http | 78 +++---- .../tender-view-pre-qualification.http | 78 +++---- .../tender_stage1_complete.http | 78 +++---- .../tutorial/activate-bidder.http | 79 +++---- .../add-requirement-responses-to-bidder.http | 79 +++---- .../tutorial/approve-qualification1.http | 2 +- .../tutorial/approve-qualification2.http | 2 +- .../tutorial/approve-qualification4.http | 2 +- ...bidder-activate-after-changing-tender.http | 106 ++++----- .../bidder-after-changing-tender.http | 4 +- .../tutorial/bidder-documents.http | 33 ++- .../mark-bid-doc-decision-private.http | 11 +- .../mark-bid-doc-decision-proposal.http | 11 +- .../tutorial/mark-bid-doc-private.http | 13 +- .../pre-qualification-confirmation.http | 122 +++++------ .../tutorial/qualificated-bids-view.http | 115 +++++----- .../tutorial/qualifications-listing.http | 8 +- .../tutorial/register-2nd-bidder.http | 30 +-- .../tutorial/register-3rd-bidder.http | 30 +-- .../tutorial/register-4rd-bidder.http | 56 ++--- .../tutorial/register-bidder.http | 27 ++- .../tutorial/reject-qualification3.http | 2 +- .../tutorial/rejected-bid-view.http | 27 ++- .../tutorial/stage2-pending.http | 34 +-- .../tutorial/stage2-waiting.http | 34 +-- .../tutorial/stage2/EU/activate-bidder.http | 30 ++- .../stage2/EU/approve-qualification1.http | 2 +- .../stage2/EU/approve-qualification2.http | 2 +- .../tutorial/stage2/EU/auction-url.http | 24 +- ...bidder-activate-after-changing-tender.http | 66 +++--- .../EU/bidder-after-changing-tender.http | 4 +- .../tutorial/stage2/EU/bidder-documents.http | 22 +- .../stage2/EU/bidder-financial-documents.http | 20 +- .../stage2/EU/bidder-participation-url.http | 26 +-- .../EU/bidder-view-financial-documents.http | 74 +++---- .../stage2/EU/bidder2-participation-url.http | 6 +- .../stage2/EU/confirm-qualification.http | 2 +- .../stage2/EU/mark-bid-doc-private.http | 13 +- .../EU/pre-qualification-confirmation.http | 28 +-- .../stage2/EU/qualificated-bids-view.http | 22 +- .../stage2/EU/qualifications-listing.http | 24 +- .../stage2/EU/register-2nd-bidder.http | 36 +-- .../stage2/EU/register-3rd-bidder.http | 78 ++++--- .../tutorial/stage2/EU/register-bidder.http | 38 ++-- .../stage2/EU/reject-qualification3.http | 2 +- .../tutorial/stage2/EU/rejected-bid-view.http | 12 +- ...pload-bid-financial-document-proposal.http | 32 +-- .../EU/upload-bid-private-proposal.http | 32 +-- .../stage2/EU/upload-bid-proposal.http | 32 +-- ...d-bid-qualification-document-proposal.http | 32 +-- .../tutorial/stage2/UA/activate-bidder.http | 29 +-- ...bidder-activate-after-changing-tender.http | 35 +-- .../UA/bidder-after-changing-tender.http | 4 +- .../tutorial/stage2/UA/bidder-documents.http | 11 +- .../stage2/UA/bidder-participation-url.http | 13 +- .../stage2/UA/bidder2-participation-url.http | 20 +- .../stage2/UA/confirm-qualification.http | 2 +- .../stage2/UA/register-2nd-bidder.http | 55 ++--- .../tutorial/stage2/UA/register-bidder.http | 35 +-- .../stage2/UA/upload-bid-proposal.http | 32 +-- .../tutorial/tender_stage1_complete.http | 122 +++++------ ...oad-bid-descriptive-decision-proposal.http | 34 +-- .../tutorial/upload-bid-private-proposal.http | 34 +-- .../tutorial/upload-bid-proposal.http | 34 +-- ...bidder-activate-after-changing-tender.http | 41 ++-- .../http/bidder-after-changing-tender.http | 39 ++-- .../defense/http/bidder-documents.http | 11 +- .../http/bidder-participation-url.http | 13 +- .../http/bidder2-participation-url.http | 6 +- .../defense/http/confirm-qualification.http | 2 +- .../http/new-complaints-list-award-2.http | 4 +- .../http/new-complaints-list-award-3.http | 8 +- .../http/new-complaints-list-award.http | 2 +- .../new-complaints-patch-award-active-2.http | 2 +- .../new-complaints-patch-award-active.http | 2 +- .../new-complaints-patch-award-cancelled.http | 2 +- ...complaints-patch-award-unsuccessful-2.http | 2 +- ...w-complaints-patch-award-unsuccessful.http | 2 +- .../defense/http/register-2nd-bidder.http | 33 +-- .../defense/http/register-bidder.http | 35 +-- .../defense/http/upload-bid-proposal.http | 32 +-- .../bid-lot1-invalid-view.http | 4 +- .../bid-lot1-update-view.http | 40 ++-- .../esco/multiple_lots_tutorial/bid-lot1.http | 36 +-- .../bid-lot2-update-view.http | 40 ++-- .../esco/multiple_lots_tutorial/bid-lot2.http | 47 ++-- .../qualifications-view.http | 4 +- .../tender-activate-qualifications.http | 2 +- ...er-view-pre-qualification-stand-still.http | 52 ++--- .../tender-view-pre-qualification.http | 52 ++--- .../esco/tutorial/activate-bidder.http | 34 +-- .../add-requirement-responses-to-bidder.http | 40 ++-- .../esco/tutorial/approve-qualification1.http | 2 +- .../esco/tutorial/approve-qualification2.http | 2 +- .../tendering/esco/tutorial/auction-url.http | 50 ++--- ...bidder-activate-after-changing-tender.http | 86 ++++---- .../bidder-after-changing-tender.http | 4 +- .../esco/tutorial/bidder-documents.http | 22 +- .../tutorial/bidder-financial-documents.http | 20 +- .../tutorial/bidder-participation-url.http | 52 ++--- .../bidder-view-financial-documents.http | 93 ++++---- .../tutorial/bidder2-participation-url.http | 28 +-- .../esco/tutorial/confirm-qualification.http | 2 +- .../esco/tutorial/mark-bid-doc-private.http | 13 +- .../pre-qualification-confirmation.http | 98 ++++----- .../esco/tutorial/qualificated-bids-view.http | 92 ++++---- .../esco/tutorial/qualifications-listing.http | 94 ++++---- .../esco/tutorial/register-2nd-bidder.http | 32 +-- .../esco/tutorial/register-3rd-bidder.http | 74 +++---- .../esco/tutorial/register-bidder.http | 27 +-- .../esco/tutorial/reject-qualification3.http | 2 +- .../esco/tutorial/rejected-bid-view.http | 34 +-- .../esco/tutorial/tender-cancelled.http | 116 +++++----- ...oad-bid-eligibility-document-proposal.http | 32 +-- ...pload-bid-financial-document-proposal.http | 64 +++--- .../tutorial/upload-bid-private-proposal.http | 32 +-- .../esco/tutorial/upload-bid-proposal.http | 32 +-- ...d-bid-qualification-document-proposal.http | 32 +-- .../http/tutorial/register-3rd-bidder.http | 5 + .../pricequotation/http/activate-bidder.http | 33 +-- .../pricequotation/http/award-active.http | 4 +- .../http/award-unsuccesful.http | 4 +- .../http/awards-listing-after-cancel.http | 4 +- .../pricequotation/http/awards-listing.http | 4 +- .../pricequotation/http/bidder-documents.http | 10 +- .../pricequotation/http/patch-bidder.http | 33 +-- .../http/register-2nd-bidder.http | 54 ++--- .../pricequotation/http/register-bidder.http | 39 ++-- .../http/tender-contract-upload-document.http | 4 +- ...ender-contract-upload-second-document.http | 4 +- .../http/upload-bid-proposal.http | 12 +- docs/tests/test_competitivedialogue.py | 2 +- .../tender/cfaua/procedure/models/bid.py | 16 +- .../procedure/models/bid.py | 16 +- .../tests/stage1/bid_blanks.py | 6 +- .../tests/stage1/tender_blanks.py | 3 - .../tender/core/procedure/models/bid.py | 19 +- .../tender/esco/tests/bid_blanks.py | 176 +++------------ .../tender/esco/tests/lot_blanks.py | 207 ++++-------------- .../tender/openeu/procedure/models/bid.py | 16 +- .../tender/openua/tests/tender_blanks.py | 1 + .../pricequotation/procedure/models/bid.py | 15 +- 217 files changed, 3316 insertions(+), 3684 deletions(-) diff --git a/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http index e5fb537397..2729ddcf89 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f?acc_token=9181c18d1ffd4256a3fff40d32a4c2f6 HTTP/1.0 +PATCH /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7?acc_token=873c24dbb920470291a301faa169ce64 HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -19,9 +19,9 @@ X-Content-Type-Options: nosniff { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -31,15 +31,16 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "large" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "c26ef6529df44b02a91cfe5ce527d74f", "status": "active", + "id": "03e8ecacaef043e9b20f1a36a5279ac7", + "date": "2021-03-16T00:00:00+02:00", + "documents": [], "parameters": [ { "code": "OCDS-123454-AIR-INTAKE", diff --git a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-active.http b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-active.http index b25869110c..563506f1ba 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-active.http +++ b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-active.http @@ -45,7 +45,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "eb8297a7c3984d7aad9ea624209072f5", + "bid_id": "51b3dee8818a41fea7a6bb43777476ec", "lotID": "f2599a519a45416db792d9ee833a8e5a" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-cancelled.http b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-cancelled.http index f0f1a5fdd8..0c7c786b92 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-cancelled.http +++ b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-cancelled.http @@ -46,7 +46,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "eb8297a7c3984d7aad9ea624209072f5", + "bid_id": "51b3dee8818a41fea7a6bb43777476ec", "lotID": "f2599a519a45416db792d9ee833a8e5a" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-unsuccessful1.http b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-unsuccessful1.http index 2a0301d132..2a101f0cb5 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/award-qualification-unsuccessful1.http +++ b/docs/source/tendering/cfaselectionua/tutorial/award-qualification-unsuccessful1.http @@ -46,7 +46,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "eb8297a7c3984d7aad9ea624209072f5", + "bid_id": "51b3dee8818a41fea7a6bb43777476ec", "lotID": "f2599a519a45416db792d9ee833a8e5a" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/awards-get.http b/docs/source/tendering/cfaselectionua/tutorial/awards-get.http index 7e7478c19d..a3e2c57048 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/awards-get.http +++ b/docs/source/tendering/cfaselectionua/tutorial/awards-get.http @@ -38,7 +38,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "eb8297a7c3984d7aad9ea624209072f5", + "bid_id": "51b3dee8818a41fea7a6bb43777476ec", "lotID": "f2599a519a45416db792d9ee833a8e5a" } ] diff --git a/docs/source/tendering/cfaselectionua/tutorial/bidder-documents.http b/docs/source/tendering/cfaselectionua/tutorial/bidder-documents.http index e2c36d9834..23d165fa7a 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/bidder-documents.http +++ b/docs/source/tendering/cfaselectionua/tutorial/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents?acc_token=9181c18d1ffd4256a3fff40d32a4c2f6 HTTP/1.0 +GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents?acc_token=873c24dbb920470291a301faa169ce64 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,14 +8,14 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents/82590e293cf5481bb59ac71a12ba8eeb?download=32dacd322185446594eb865b681b975d", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/32dacd322185446594eb865b681b975d?Signature=85b5nciCwPI27%2BpzlbJkhTXxKofcDEfqcJBl3NaonZpWyuMxZpx3sqVSNgt4mOL9%2F4%2FqnBEEcq%2FO6AQ6ndybAQ%3D%3D&KeyID=a8968c46", + "documentOf": "tender", + "id": "bf871fbed76240b1a0b359332f381ebb", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http b/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http index 7f4b96bc25..7c2f61d698 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http +++ b/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f?acc_token=9181c18d1ffd4256a3fff40d32a4c2f6 HTTP/1.0 +GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7?acc_token=873c24dbb920470291a301faa169ce64 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,15 +30,15 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "c26ef6529df44b02a91cfe5ce527d74f", + "id": "03e8ecacaef043e9b20f1a36a5279ac7", "status": "active", "documents": [ { - "id": "82590e293cf5481bb59ac71a12ba8eeb", + "id": "bf871fbed76240b1a0b359332f381ebb", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents/82590e293cf5481bb59ac71a12ba8eeb?download=32dacd322185446594eb865b681b975d", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents/bf871fbed76240b1a0b359332f381ebb?download=32dacd322185446594eb865b681b975d", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" @@ -62,7 +62,7 @@ X-Content-Type-Options: nosniff "valueAddedTaxIncluded": true }, "relatedLot": "f2599a519a45416db792d9ee833a8e5a", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/e08a950b18594d05b7c7318066bae24a_f2599a519a45416db792d9ee833a8e5a?key_for_bid=c26ef6529df44b02a91cfe5ce527d74f", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/e08a950b18594d05b7c7318066bae24a_f2599a519a45416db792d9ee833a8e5a?key_for_bid=03e8ecacaef043e9b20f1a36a5279ac7", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http b/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http index e85c0fade3..34f7b04894 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http +++ b/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5?acc_token=fcecc7b508824957a0052bbe66a485de HTTP/1.0 +GET /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec?acc_token=03dd1b90184d488cbb3507a375df1a68 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,25 +30,25 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "eb8297a7c3984d7aad9ea624209072f5", + "id": "51b3dee8818a41fea7a6bb43777476ec", "status": "active", "documents": [ { - "id": "8849d2d9f9e642aaac94732ae14e5057", + "id": "9383d40f6e404558827b2b7481dea5da", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5/documents/8849d2d9f9e642aaac94732ae14e5057?download=6f95f83074884c4793b92674ecbf017d", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/9383d40f6e404558827b2b7481dea5da?download=6f95f83074884c4793b92674ecbf017d", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "6985aca7291b4058b8d28661a01431cc", + "id": "d155a202959247a9b7d090c41ca410e7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5/documents/6985aca7291b4058b8d28661a01431cc?download=634443ba221c4aec9e80218dce5d9898", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/d155a202959247a9b7d090c41ca410e7?download=634443ba221c4aec9e80218dce5d9898", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff "valueAddedTaxIncluded": true }, "relatedLot": "f2599a519a45416db792d9ee833a8e5a", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/e08a950b18594d05b7c7318066bae24a_f2599a519a45416db792d9ee833a8e5a?key_for_bid=eb8297a7c3984d7aad9ea624209072f5", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/e08a950b18594d05b7c7318066bae24a_f2599a519a45416db792d9ee833a8e5a?key_for_bid=51b3dee8818a41fea7a6bb43777476ec", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaselectionua/tutorial/confirm-qualification.http b/docs/source/tendering/cfaselectionua/tutorial/confirm-qualification.http index 8de229a46d..76149351e0 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/confirm-qualification.http +++ b/docs/source/tendering/cfaselectionua/tutorial/confirm-qualification.http @@ -45,7 +45,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "34336ced0c744641a77232807714f508", + "bid_id": "8add297b182c475c918a154ab86a9d2a", "lotID": "f2599a519a45416db792d9ee833a8e5a" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http index f6a8e07e37..2e8aacbf1a 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http @@ -65,7 +65,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec X-Content-Type-Options: nosniff { "data": { @@ -73,9 +73,9 @@ X-Content-Type-Options: nosniff { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037257", - "uri": "http://www.dus.gov.ua/" + "id": "00037257" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -85,35 +85,33 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "eb8297a7c3984d7aad9ea624209072f5", "status": "draft", "documents": [ { - "id": "8849d2d9f9e642aaac94732ae14e5057", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5/documents/8849d2d9f9e642aaac94732ae14e5057?download=6f95f83074884c4793b92674ecbf017d", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/9383d40f6e404558827b2b7481dea5da?download=6f95f83074884c4793b92674ecbf017d", + "documentOf": "tender", + "id": "9383d40f6e404558827b2b7481dea5da", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "6985aca7291b4058b8d28661a01431cc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/eb8297a7c3984d7aad9ea624209072f5/documents/6985aca7291b4058b8d28661a01431cc?download=634443ba221c4aec9e80218dce5d9898", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/d155a202959247a9b7d090c41ca410e7?download=634443ba221c4aec9e80218dce5d9898", + "documentOf": "tender", + "id": "d155a202959247a9b7d090c41ca410e7", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" } ], "parameters": [ @@ -136,11 +134,13 @@ X-Content-Type-Options: nosniff "relatedLot": "f2599a519a45416db792d9ee833a8e5a", "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "id": "51b3dee8818a41fea7a6bb43777476ec", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "fcecc7b508824957a0052bbe66a485de", - "transfer": "23ef92d66c944d4aadd56605ad4e9456" + "token": "03dd1b90184d488cbb3507a375df1a68", + "transfer": "f298d4a6eee1483e85b5688314f3139d" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http index 4fc3506f88..0d0a3f02d1 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http @@ -52,7 +52,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7 X-Content-Type-Options: nosniff { "data": { @@ -60,9 +60,9 @@ X-Content-Type-Options: nosniff { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -72,14 +72,12 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "large" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "c26ef6529df44b02a91cfe5ce527d74f", "status": "draft", "documents": [], "parameters": [ @@ -102,11 +100,13 @@ X-Content-Type-Options: nosniff "relatedLot": "f2599a519a45416db792d9ee833a8e5a", "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "id": "03e8ecacaef043e9b20f1a36a5279ac7", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "9181c18d1ffd4256a3fff40d32a4c2f6", - "transfer": "b52db299b839443ea9ffb1b7fe57dfba" + "token": "873c24dbb920470291a301faa169ce64", + "transfer": "2ad1e58b3e694aca836cb61b9a3a62fe" } } diff --git a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-document.http b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-document.http index 566d76fe9a..7c9bad9366 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-document.http +++ b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-document.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/contracts/55ae8eb20ed4497d8c1022990d75e1b0/documents/66c6a0f2471644e49cf1c7808f226c24 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/contracts/55ae8eb20ed4497d8c1022990d75e1b0/documents/82590e293cf5481bb59ac71a12ba8eeb X-Content-Type-Options: nosniff { "data": { - "id": "66c6a0f2471644e49cf1c7808f226c24", + "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-second-document.http b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-second-document.http index 4198fecb5b..2980d8685d 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-second-document.http +++ b/docs/source/tendering/cfaselectionua/tutorial/tender-contract-upload-second-document.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/contracts/55ae8eb20ed4497d8c1022990d75e1b0/documents/a1317c7d25e6431fabfd127d9f68894f +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/contracts/55ae8eb20ed4497d8c1022990d75e1b0/documents/66c6a0f2471644e49cf1c7808f226c24 X-Content-Type-Options: nosniff { "data": { - "id": "a1317c7d25e6431fabfd127d9f68894f", + "id": "66c6a0f2471644e49cf1c7808f226c24", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/cfaselectionua/tutorial/upload-bid-proposal.http b/docs/source/tendering/cfaselectionua/tutorial/upload-bid-proposal.http index df40ecfff5..c09cf5d504 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/upload-bid-proposal.http +++ b/docs/source/tendering/cfaselectionua/tutorial/upload-bid-proposal.http @@ -1,4 +1,4 @@ -POST /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents?acc_token=9181c18d1ffd4256a3fff40d32a4c2f6 HTTP/1.0 +POST /api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents?acc_token=873c24dbb920470291a301faa169ce64 HTTP/1.0 Authorization: Bearer broker Content-Length: 326 Content-Type: application/json @@ -15,18 +15,18 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents/82590e293cf5481bb59ac71a12ba8eeb +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents/bf871fbed76240b1a0b359332f381ebb X-Content-Type-Options: nosniff { "data": { - "id": "82590e293cf5481bb59ac71a12ba8eeb", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/c26ef6529df44b02a91cfe5ce527d74f/documents/82590e293cf5481bb59ac71a12ba8eeb?download=32dacd322185446594eb865b681b975d", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents/bf871fbed76240b1a0b359332f381ebb?download=32dacd322185446594eb865b681b975d", + "documentOf": "tender", + "id": "bf871fbed76240b1a0b359332f381ebb", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/activate-bidder.http b/docs/source/tendering/cfaua/tutorial/activate-bidder.http index e00db50fdd..ec9aa21a3a 100644 --- a/docs/source/tendering/cfaua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -20,9 +20,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -32,18 +32,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -53,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -63,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -73,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -83,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -93,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -103,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -113,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -123,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -133,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -143,7 +143,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -153,16 +153,17 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", "lotValues": [ { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { + "amount": 500.0, "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" } ], "documents": [], @@ -170,7 +171,6 @@ X-Content-Type-Options: nosniff "eligibilityDocuments": [], "qualificationDocuments": [], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" } } diff --git a/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http index 38e1baf1ad..fc13e689ec 100644 --- a/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Content-Length: 14504 Content-Type: application/json @@ -115,13 +115,14 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -131,18 +132,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,7 +153,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -162,7 +163,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -172,7 +173,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -182,7 +183,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -192,7 +193,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -202,7 +203,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -212,7 +213,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -222,7 +223,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -232,7 +233,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -242,7 +243,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -252,20 +253,24 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", "lotValues": [ { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { + "amount": 500.0, "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" } ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "draft" } } diff --git a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices1.http b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices1.http index ddf0c839f9..6c6a4db0a3 100644 --- a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices1.http +++ b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices1.http @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices2.http b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices2.http index 26fbd3843d..6b7f6fed13 100644 --- a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices2.http +++ b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices2.http @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices3.http b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices3.http index 7353363f7f..9d377ecbe9 100644 --- a/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices3.http +++ b/docs/source/tendering/cfaua/tutorial/agreement-contract-unitprices3.http @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/agreement-contracts-list.http b/docs/source/tendering/cfaua/tutorial/agreement-contracts-list.http index d3e21b0a6e..43f192d91a 100644 --- a/docs/source/tendering/cfaua/tutorial/agreement-contracts-list.http +++ b/docs/source/tendering/cfaua/tutorial/agreement-contracts-list.http @@ -50,7 +50,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -96,7 +96,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -142,7 +142,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/agreement-unsuccessful.http b/docs/source/tendering/cfaua/tutorial/agreement-unsuccessful.http index 2af6891078..645c8661ae 100644 --- a/docs/source/tendering/cfaua/tutorial/agreement-unsuccessful.http +++ b/docs/source/tendering/cfaua/tutorial/agreement-unsuccessful.http @@ -21,23 +21,23 @@ X-Content-Type-Options: nosniff "dateSigned": "2021-03-16T00:00:01+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -165,7 +165,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -213,7 +213,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -261,7 +261,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/agreements-list.http b/docs/source/tendering/cfaua/tutorial/agreements-list.http index 059b85851b..de5a22f6fc 100644 --- a/docs/source/tendering/cfaua/tutorial/agreements-list.http +++ b/docs/source/tendering/cfaua/tutorial/agreements-list.http @@ -126,7 +126,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -172,7 +172,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -218,7 +218,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/approve-qualification1.http b/docs/source/tendering/cfaua/tutorial/approve-qualification1.http index fa58197f3e..cb527612fb 100644 --- a/docs/source/tendering/cfaua/tutorial/approve-qualification1.http +++ b/docs/source/tendering/cfaua/tutorial/approve-qualification1.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/approve-qualification2.http b/docs/source/tendering/cfaua/tutorial/approve-qualification2.http index fe0e9b9075..1974d6dfda 100644 --- a/docs/source/tendering/cfaua/tutorial/approve-qualification2.http +++ b/docs/source/tendering/cfaua/tutorial/approve-qualification2.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/approve-qualification4.http b/docs/source/tendering/cfaua/tutorial/approve-qualification4.http index bc129a6308..05f20fd4e6 100644 --- a/docs/source/tendering/cfaua/tutorial/approve-qualification4.http +++ b/docs/source/tendering/cfaua/tutorial/approve-qualification4.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/auction-url.http b/docs/source/tendering/cfaua/tutorial/auction-url.http index 4a466e3ecf..0df05bb4d0 100644 --- a/docs/source/tendering/cfaua/tutorial/auction-url.http +++ b/docs/source/tendering/cfaua/tutorial/auction-url.http @@ -621,10 +621,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -634,7 +634,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -644,7 +644,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -654,7 +654,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -664,7 +664,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -674,7 +674,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -684,7 +684,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -694,7 +694,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -704,7 +704,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -714,7 +714,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -724,7 +724,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -736,11 +736,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/34be9b5887d544b489e5950ad70c1f52?Signature=Wvh6AAIHRm3RHkU1FM5qxyJNOzVY%2FZ673gj%2FUIjWT5k2Mk4AhLmRzKNLwkqqsr9OB3onZ0xBL8OPpXTGiV4VDA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -748,7 +748,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -762,11 +762,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/43a81def8136461dbb13abf39024ca33?Signature=f8zfNWGAsfBdBJcpzXQJPJiGVZQSnNllMGZspKjF%2By%2Ba9SVG%2FyluZ8u6m8XbRYXhsttTthoYoiQiWfUHuVofBQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=26yB6ZiVTBL5q9Fb%2BLECZB5PoAYfiO3sZAE13zw0WZakcBgwrhRjoIt6Qf7c9DUYBFH%2BRi0LcGMSeMbqEmZfCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -800,10 +800,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "id": "5502be861ff24fa281a68247002d018c", "requirementResponses": [ { - "id": "6e896d3b30c1426db34bc9c4b78ce0af", + "id": "399c4a5c7ff6415888f8d0e28de48419", "title": "Requirement response", "description": "some description", "requirement": { @@ -813,7 +813,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "515ae4c24f48480fbd8e04ad79f4cb6f", + "id": "352fcfe76ab14fbb8a3c286cc4acd32d", "title": "Requirement response", "description": "some description", "requirement": { @@ -823,7 +823,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a76d449e6f874e5599d99a4b1265cbcc", + "id": "de584c88d32a49b597d9de7b3a2fccdc", "title": "Requirement response", "description": "some description", "requirement": { @@ -833,7 +833,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "438632b60d584fb3a19c2386adbe6756", + "id": "4d6578d04a314b7ea38fb8fbfcfcbeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -843,7 +843,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "39ac845f3608495db667cd34d5f2018f", + "id": "27a71a52863e4091af86a470a6f20062", "title": "Requirement response", "description": "some description", "requirement": { @@ -853,7 +853,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "476ff146e0fe4387baf06be753bb7459", + "id": "5acc30e59a9746b49fbee8c1be589e01", "title": "Requirement response", "description": "some description", "requirement": { @@ -863,7 +863,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56714f39a214490ea8e49c4ce399ad52", + "id": "b89741b1767d4d7c89266858fd52483c", "title": "Requirement response", "description": "some description", "requirement": { @@ -873,7 +873,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5f9bcc7eae504788b7a3b3475e2373b6", + "id": "59d12e84cb4a4620b8f4bf79240cfb22", "title": "Requirement response", "description": "some description", "requirement": { @@ -883,7 +883,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3727ff03d2c6447a8f6d118c0a028fe5", + "id": "b32ff2f271894905b7ca75ea80d9d153", "title": "Requirement response", "description": "some description", "requirement": { @@ -893,7 +893,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc84fde82d9c451abe7af459f7f5c065", + "id": "d4d8a9e342ec425bafb1f363ee843a3f", "title": "Requirement response", "description": "some description", "requirement": { @@ -903,7 +903,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c44bae101c54368aee27d549f31ae99", + "id": "f187d02918034a7ca78ad6d8efc8ade1", "title": "Requirement response", "description": "some description", "requirement": { @@ -939,10 +939,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "eac6e323ccd84f588542f76867850060", + "id": "7b1decebe35a4408b2fa079344de8313", "requirementResponses": [ { - "id": "8c57eb166e04443cad4aac981bd5b9d7", + "id": "0ef28e17f81b4e138e0546c3f697a29e", "title": "Requirement response", "description": "some description", "requirement": { @@ -952,7 +952,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "664434fa7e554b37b40d4222de69a4ae", + "id": "adcd53d47a854c359b3df89f512ea6c2", "title": "Requirement response", "description": "some description", "requirement": { @@ -962,7 +962,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "031e3b514c47431fafb02e05139d81f3", + "id": "0191cb8c4dcd43569ccf39a00a51292c", "title": "Requirement response", "description": "some description", "requirement": { @@ -972,7 +972,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "82c8466df30449d6893f11bee2a222f9", + "id": "e0b59b74b8e945be805fe0b50bea2f2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -982,7 +982,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4719898b6a8f419fa8781a57d1f364ad", + "id": "21476cbbf0ef4e74baffabad940f6aa4", "title": "Requirement response", "description": "some description", "requirement": { @@ -992,7 +992,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "049b4f7c671a479796620517cd5dd6de", + "id": "a5b22812253c4fdbb9b02dd5b4394557", "title": "Requirement response", "description": "some description", "requirement": { @@ -1002,7 +1002,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3c5ce4fcc54644aeaae393f7a84789e7", + "id": "c11c3429709e4e11ab68e916861d5eff", "title": "Requirement response", "description": "some description", "requirement": { @@ -1012,7 +1012,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c93733231988472cb8e471dd2b97cabf", + "id": "b49ca3954cf74a96be2acdd9c929a3dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -1022,7 +1022,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2978cde5e3d940b5b1f32dc32d9637f6", + "id": "1c596bd32d484eefa12335a0263d9b85", "title": "Requirement response", "description": "some description", "requirement": { @@ -1032,7 +1032,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "92d40082b82d4a9b9bdba99840874913", + "id": "ec6e243b29e145b187bbfb0e69640be5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1042,7 +1042,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d5e187d3ea744450866cb1683e5884ac", + "id": "0c54cbd308cd4bb98ced698cfae54587", "title": "Requirement response", "description": "some description", "requirement": { @@ -1054,7 +1054,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1066,7 +1066,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", + "id": "4474922426e24118a49f17150ce09eb9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -1080,7 +1080,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", + "id": "e60c97b6416945de8eafcde527d04901", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1119,10 +1119,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", "requirementResponses": [ { - "id": "55510c89203c4b6c9a0317dfa6525984", + "id": "f370c0c92fe8404387c9e65d10790c9a", "title": "Requirement response", "description": "some description", "requirement": { @@ -1132,7 +1132,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3614237effdf41f994f00b3ef8355935", + "id": "86ca9b3433bb4c4b811b83d4bf519329", "title": "Requirement response", "description": "some description", "requirement": { @@ -1142,7 +1142,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "df4e4d4b804e4ada8717b7e0768c4d00", + "id": "bf284e08c80744b1a906e2e52cbd3e57", "title": "Requirement response", "description": "some description", "requirement": { @@ -1152,7 +1152,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "22efa8be3b284758b2caffd5520a458d", + "id": "1c5ab47a897b4a61bde48b1edd9beb91", "title": "Requirement response", "description": "some description", "requirement": { @@ -1162,7 +1162,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d57861ec428444e39ea3336e9893577f", + "id": "b0caf075d0ce466fa9e78d172fd2b00c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1172,7 +1172,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f4199c3e117841a4bfb655e3c87bdbda", + "id": "2c9c35cc1f8a43839fe0d27914b3605c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1182,7 +1182,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3b8d856940ce418aa68459cfd9b3e5f9", + "id": "6cd5b68721214d6bae02d6bd9379eeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -1192,7 +1192,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e97bba0627427982eb7d5360cef312", + "id": "6f698a0169a542c6afb62058193589cf", "title": "Requirement response", "description": "some description", "requirement": { @@ -1202,7 +1202,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f31162937bc243aab21df8393193b257", + "id": "3dd19580026f4d75913fd70aa5b2c75e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1212,7 +1212,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9b7923fc5a3a43f482ef1d9218157742", + "id": "7bd3e64657724920b7669effd14eb15b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1222,7 +1222,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "32fafcad394142e9b6d5fa35af3ccca8", + "id": "3669eba0622a4302b27f1394850e6f7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1234,7 +1234,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", + "id": "b85ae26451e547cda0810ef04c777cf9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1246,7 +1246,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "f0fd216397c24b3491388919024cac37", + "id": "a18e17da85ee43b5bb4a3dc4117715de", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -1260,7 +1260,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", + "id": "7be151f4800e4be0a81acb90d6ba667a", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1459,7 +1459,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1468,7 +1468,7 @@ X-Content-Type-Options: nosniff }, { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1477,7 +1477,7 @@ X-Content-Type-Options: nosniff }, { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", @@ -1486,7 +1486,7 @@ X-Content-Type-Options: nosniff }, { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http index fec9e94919..1b81a33f96 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -19,9 +19,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,18 +31,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -52,7 +52,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -62,7 +62,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -82,7 +82,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -92,7 +92,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -102,7 +102,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -112,7 +112,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -122,7 +122,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -132,7 +132,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -142,7 +142,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,113 +152,113 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [ + { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" + } + ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8aac6a1034244423a16f6b72aa830d9d?download=34be9b5887d544b489e5950ad70c1f52", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add?download=576584a3773a4d2799e4af16de7afaef", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "language": "uk" } ], "financialDocuments": [ { - "id": "47d9ee757a374838bf177c41cdfd9e9a", + "id": "31e362b1e4e84669be8fb843c90ed601", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a?download=17a3ed53d97c4f95a5c3b318bfa16c51", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/31e362b1e4e84669be8fb843c90ed601?download=1d6de0bad71f4f41927965001d34373c", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "c759531b07fa4e90ad820cbb39afc07a", + "id": "5c0c8fe670df41848d71771bf7710cb7", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/c759531b07fa4e90ad820cbb39afc07a?download=2b98f86302714a93bcada4a025c55c71", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/5c0c8fe670df41848d71771bf7710cb7?download=566a898dcb5e4d6cbac7c19df3f2255d", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/eligibility_documents/1e06b720ac574c24bf7f35ec1bf04e72?download=43a81def8136461dbb13abf39024ca33", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/eligibility_documents/08fb6807769849b6bffb778344e61be6?download=a4fc3e46d4b34911bd554c3e3420e9d4", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "qualificationDocuments": [ { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=7cd719b4e43044d99c422791d2008a68", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=a20f969f50684bc6ae8dcb13a0c41885", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=c5f78a532c71475fb5000733bc9a911a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } - } - ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" } } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-after-changing-tender.http b/docs/source/tendering/cfaua/tutorial/bidder-after-changing-tender.http index e579353573..2695c37c08 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-after-changing-tender.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "status": "invalid" } } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-documents.http b/docs/source/tendering/cfaua/tutorial/bidder-documents.http index 25edb7ae0f..2426f8da9c 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-documents.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,29 +8,27 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8aac6a1034244423a16f6b72aa830d9d?download=34be9b5887d544b489e5950ad70c1f52", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e5d2ba0b59284460a205a7c7f9e09add", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ] } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-financial-documents.http b/docs/source/tendering/cfaua/tutorial/bidder-financial-documents.http index 7afd133adb..803ec88ac5 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-financial-documents.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,28 +8,26 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "47d9ee757a374838bf177c41cdfd9e9a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a?download=17a3ed53d97c4f95a5c3b318bfa16c51", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1d6de0bad71f4f41927965001d34373c?Signature=IxMhGxVkp53NYCibHDauvqD95DSKyqx4aP3afqxLCEWGZrFI%2Fl1I7ZTMcffq8ScTc2y9IdsdOtKOCuQnGP5jCg%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "31e362b1e4e84669be8fb843c90ed601", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "c759531b07fa4e90ad820cbb39afc07a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/c759531b07fa4e90ad820cbb39afc07a?download=2b98f86302714a93bcada4a025c55c71", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/566a898dcb5e4d6cbac7c19df3f2255d?Signature=uRLkxT9CU4hrZUvYjGFb1R3jqEVUUstlAOBI3Qcw0AYoq21jRnXFMBrr%2B2%2B%2B5Kr1qdf%2B9WSx003edlY64PwqAw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "5c0c8fe670df41848d71771bf7710cb7", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-participation-url.http b/docs/source/tendering/cfaua/tutorial/bidder-participation-url.http index 73510e87f0..31d9ffb94d 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-participation-url.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,11 +30,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -146,11 +145,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/34be9b5887d544b489e5950ad70c1f52?Signature=Wvh6AAIHRm3RHkU1FM5qxyJNOzVY%2FZ673gj%2FUIjWT5k2Mk4AhLmRzKNLwkqqsr9OB3onZ0xBL8OPpXTGiV4VDA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -158,11 +157,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -171,39 +170,13 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "financialDocuments": [ - { - "id": "47d9ee757a374838bf177c41cdfd9e9a", - "hash": "md5:00000000000000000000000000000000", - "title": "financial_doc.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a?download=17a3ed53d97c4f95a5c3b318bfa16c51", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - }, - { - "id": "c759531b07fa4e90ad820cbb39afc07a", - "hash": "md5:00000000000000000000000000000000", - "title": "financial_doc2.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/c759531b07fa4e90ad820cbb39afc07a?download=2b98f86302714a93bcada4a025c55c71", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - } - ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/43a81def8136461dbb13abf39024ca33?Signature=f8zfNWGAsfBdBJcpzXQJPJiGVZQSnNllMGZspKjF%2By%2Ba9SVG%2FyluZ8u6m8XbRYXhsttTthoYoiQiWfUHuVofBQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=26yB6ZiVTBL5q9Fb%2BLECZB5PoAYfiO3sZAE13zw0WZakcBgwrhRjoIt6Qf7c9DUYBFH%2BRi0LcGMSeMbqEmZfCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -211,47 +184,6 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "qualificationDocuments": [ - { - "id": "13a99a17b16648f5940131d68841cfc1", - "hash": "md5:00000000000000000000000000000000", - "title": "qualification_document.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=7cd719b4e43044d99c422791d2008a68", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - }, - { - "id": "13a99a17b16648f5940131d68841cfc1", - "hash": "md5:00000000000000000000000000000000", - "title": "qualification_document2.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=c5f78a532c71475fb5000733bc9a911a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - } - ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=fa412b9bcd92484d9f8871b0ee0df130", - "date": "2021-03-16T00:00:00+02:00", - "status": "active", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } - } - ], - "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "active" } } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http index 38f2d711c3..2aaede4db2 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -12,9 +12,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -24,18 +24,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -45,7 +45,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -55,7 +55,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -65,7 +65,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -75,7 +75,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -85,7 +85,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -95,7 +95,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -105,7 +105,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -115,7 +115,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -125,7 +125,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -135,7 +135,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -145,113 +145,106 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [ + { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" + } + ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8aac6a1034244423a16f6b72aa830d9d?download=34be9b5887d544b489e5950ad70c1f52", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add?download=576584a3773a4d2799e4af16de7afaef", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e5d2ba0b59284460a205a7c7f9e09add", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ], "financialDocuments": [ { - "id": "47d9ee757a374838bf177c41cdfd9e9a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a?download=17a3ed53d97c4f95a5c3b318bfa16c51", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/31e362b1e4e84669be8fb843c90ed601?download=1d6de0bad71f4f41927965001d34373c", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "31e362b1e4e84669be8fb843c90ed601", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "c759531b07fa4e90ad820cbb39afc07a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/c759531b07fa4e90ad820cbb39afc07a?download=2b98f86302714a93bcada4a025c55c71", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/5c0c8fe670df41848d71771bf7710cb7?download=566a898dcb5e4d6cbac7c19df3f2255d", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "5c0c8fe670df41848d71771bf7710cb7", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/eligibility_documents/1e06b720ac574c24bf7f35ec1bf04e72?download=43a81def8136461dbb13abf39024ca33", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/eligibility_documents/08fb6807769849b6bffb778344e61be6?download=a4fc3e46d4b34911bd554c3e3420e9d4", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "08fb6807769849b6bffb778344e61be6", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "13a99a17b16648f5940131d68841cfc1", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=7cd719b4e43044d99c422791d2008a68", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=a20f969f50684bc6ae8dcb13a0c41885", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=c5f78a532c71475fb5000733bc9a911a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - } - ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" } } diff --git a/docs/source/tendering/cfaua/tutorial/bidder2-participation-url.http b/docs/source/tendering/cfaua/tutorial/bidder2-participation-url.http index 548b394e6d..d613e9e4ce 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder2-participation-url.http +++ b/docs/source/tendering/cfaua/tutorial/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/dfe1f11c2ec14520b8aac4060a0fd10f?acc_token=acee2456fb93474caa983e9dbf3b94dc HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/5502be861ff24fa281a68247002d018c?acc_token=94c82a3cbe3d4660a173be02bec76dea HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,11 +30,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "id": "5502be861ff24fa281a68247002d018c", "requirementResponses": [ { - "id": "6e896d3b30c1426db34bc9c4b78ce0af", + "id": "399c4a5c7ff6415888f8d0e28de48419", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "515ae4c24f48480fbd8e04ad79f4cb6f", + "id": "352fcfe76ab14fbb8a3c286cc4acd32d", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a76d449e6f874e5599d99a4b1265cbcc", + "id": "de584c88d32a49b597d9de7b3a2fccdc", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "438632b60d584fb3a19c2386adbe6756", + "id": "4d6578d04a314b7ea38fb8fbfcfcbeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "39ac845f3608495db667cd34d5f2018f", + "id": "27a71a52863e4091af86a470a6f20062", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "476ff146e0fe4387baf06be753bb7459", + "id": "5acc30e59a9746b49fbee8c1be589e01", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56714f39a214490ea8e49c4ce399ad52", + "id": "b89741b1767d4d7c89266858fd52483c", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5f9bcc7eae504788b7a3b3475e2373b6", + "id": "59d12e84cb4a4620b8f4bf79240cfb22", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3727ff03d2c6447a8f6d118c0a028fe5", + "id": "b32ff2f271894905b7ca75ea80d9d153", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc84fde82d9c451abe7af459f7f5c065", + "id": "d4d8a9e342ec425bafb1f363ee843a3f", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c44bae101c54368aee27d549f31ae99", + "id": "f187d02918034a7ca78ad6d8efc8ade1", "title": "Requirement response", "description": "some description", "requirement": { @@ -144,20 +143,6 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=dfe1f11c2ec14520b8aac4060a0fd10f", - "date": "2021-03-16T00:00:00+02:00", - "status": "active", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 499 - } - } - ], - "selfQualified": true, "status": "active" } } diff --git a/docs/source/tendering/cfaua/tutorial/bidder4-participation-url.http b/docs/source/tendering/cfaua/tutorial/bidder4-participation-url.http index 8518f92b99..081c57ea3b 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder4-participation-url.http +++ b/docs/source/tendering/cfaua/tutorial/bidder4-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6?acc_token=d6fcfebf8af748318bf624da389cbea3 HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b?acc_token=b46e85054c024e7c8e0ec23d850cedc5 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,11 +30,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", "requirementResponses": [ { - "id": "55510c89203c4b6c9a0317dfa6525984", + "id": "f370c0c92fe8404387c9e65d10790c9a", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3614237effdf41f994f00b3ef8355935", + "id": "86ca9b3433bb4c4b811b83d4bf519329", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "df4e4d4b804e4ada8717b7e0768c4d00", + "id": "bf284e08c80744b1a906e2e52cbd3e57", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "22efa8be3b284758b2caffd5520a458d", + "id": "1c5ab47a897b4a61bde48b1edd9beb91", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d57861ec428444e39ea3336e9893577f", + "id": "b0caf075d0ce466fa9e78d172fd2b00c", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f4199c3e117841a4bfb655e3c87bdbda", + "id": "2c9c35cc1f8a43839fe0d27914b3605c", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3b8d856940ce418aa68459cfd9b3e5f9", + "id": "6cd5b68721214d6bae02d6bd9379eeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e97bba0627427982eb7d5360cef312", + "id": "6f698a0169a542c6afb62058193589cf", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f31162937bc243aab21df8393193b257", + "id": "3dd19580026f4d75913fd70aa5b2c75e", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9b7923fc5a3a43f482ef1d9218157742", + "id": "7bd3e64657724920b7669effd14eb15b", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "32fafcad394142e9b6d5fa35af3ccca8", + "id": "3669eba0622a4302b27f1394850e6f7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -146,7 +145,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", + "id": "b85ae26451e547cda0810ef04c777cf9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -158,11 +157,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "f0fd216397c24b3491388919024cac37", + "id": "a18e17da85ee43b5bb4a3dc4117715de", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/documents/f0fd216397c24b3491388919024cac37?download=256123ec589044029ec3f8823d26d1a4", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/a18e17da85ee43b5bb4a3dc4117715de?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -171,23 +170,9 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "financialDocuments": [ - { - "id": "f78e59700f6c478b808b9c95e38726cf", - "hash": "md5:00000000000000000000000000000000", - "title": "financial_doc.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/financial_documents/f78e59700f6c478b808b9c95e38726cf?download=c70126ac67864f0eb83440e79dc1dc23", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - } - ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", + "id": "7be151f4800e4be0a81acb90d6ba667a", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -199,34 +184,6 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "qualificationDocuments": [ - { - "id": "b9cc5d86f1e14daba71e3ee99e1312ff", - "hash": "md5:00000000000000000000000000000000", - "title": "qualification_document.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/qualification_documents/b9cc5d86f1e14daba71e3ee99e1312ff?download=a0af3b8478774cd09f9005ac47f372cb", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender", - "confidentiality": "public", - "language": "uk" - } - ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=bd56332dbb8140a4b4aab9c447c7e9b6", - "date": "2021-03-16T00:00:00+02:00", - "status": "active", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 485 - } - } - ], - "selfQualified": true, "status": "active" } } diff --git a/docs/source/tendering/cfaua/tutorial/confirm-qualification.http b/docs/source/tendering/cfaua/tutorial/confirm-qualification.http index 94f003d324..77dfba8a27 100644 --- a/docs/source/tendering/cfaua/tutorial/confirm-qualification.http +++ b/docs/source/tendering/cfaua/tutorial/confirm-qualification.http @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, diff --git a/docs/source/tendering/cfaua/tutorial/confirm-qualification2.http b/docs/source/tendering/cfaua/tutorial/confirm-qualification2.http index 2005d859eb..573add5118 100644 --- a/docs/source/tendering/cfaua/tutorial/confirm-qualification2.http +++ b/docs/source/tendering/cfaua/tutorial/confirm-qualification2.http @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, diff --git a/docs/source/tendering/cfaua/tutorial/mark-bid-doc-private.http b/docs/source/tendering/cfaua/tutorial/mark-bid-doc-private.http index df933d7fa3..a5c9486f94 100644 --- a/docs/source/tendering/cfaua/tutorial/mark-bid-doc-private.http +++ b/docs/source/tendering/cfaua/tutorial/mark-bid-doc-private.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +PATCH /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker Content-Length: 120 Content-Type: application/json @@ -16,17 +16,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } } diff --git a/docs/source/tendering/cfaua/tutorial/patch-award-cancelled.http b/docs/source/tendering/cfaua/tutorial/patch-award-cancelled.http index 69b21a16bc..bc8525e87b 100644 --- a/docs/source/tendering/cfaua/tutorial/patch-award-cancelled.http +++ b/docs/source/tendering/cfaua/tutorial/patch-award-cancelled.http @@ -41,7 +41,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, diff --git a/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful-cancelled.http b/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful-cancelled.http index 154756fdfd..4e8a8b2abe 100644 --- a/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful-cancelled.http +++ b/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful-cancelled.http @@ -41,7 +41,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful.http b/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful.http index 77727ad908..a1e2bb86cc 100644 --- a/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful.http +++ b/docs/source/tendering/cfaua/tutorial/patch-award-unsuccessful.http @@ -41,7 +41,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/cfaua/tutorial/pre-qualification-confirmation.http b/docs/source/tendering/cfaua/tutorial/pre-qualification-confirmation.http index 05bad64687..e35900e9fd 100644 --- a/docs/source/tendering/cfaua/tutorial/pre-qualification-confirmation.http +++ b/docs/source/tendering/cfaua/tutorial/pre-qualification-confirmation.http @@ -626,10 +626,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -639,7 +639,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -649,7 +649,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -659,7 +659,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -669,7 +669,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -679,7 +679,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -689,7 +689,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -699,7 +699,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -709,7 +709,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -719,7 +719,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -729,7 +729,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -741,11 +741,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/34be9b5887d544b489e5950ad70c1f52?Signature=Wvh6AAIHRm3RHkU1FM5qxyJNOzVY%2FZ673gj%2FUIjWT5k2Mk4AhLmRzKNLwkqqsr9OB3onZ0xBL8OPpXTGiV4VDA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -753,11 +753,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -768,11 +768,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/43a81def8136461dbb13abf39024ca33?Signature=f8zfNWGAsfBdBJcpzXQJPJiGVZQSnNllMGZspKjF%2By%2Ba9SVG%2FyluZ8u6m8XbRYXhsttTthoYoiQiWfUHuVofBQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=26yB6ZiVTBL5q9Fb%2BLECZB5PoAYfiO3sZAE13zw0WZakcBgwrhRjoIt6Qf7c9DUYBFH%2BRi0LcGMSeMbqEmZfCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -806,10 +806,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "id": "5502be861ff24fa281a68247002d018c", "requirementResponses": [ { - "id": "6e896d3b30c1426db34bc9c4b78ce0af", + "id": "399c4a5c7ff6415888f8d0e28de48419", "title": "Requirement response", "description": "some description", "requirement": { @@ -819,7 +819,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "515ae4c24f48480fbd8e04ad79f4cb6f", + "id": "352fcfe76ab14fbb8a3c286cc4acd32d", "title": "Requirement response", "description": "some description", "requirement": { @@ -829,7 +829,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a76d449e6f874e5599d99a4b1265cbcc", + "id": "de584c88d32a49b597d9de7b3a2fccdc", "title": "Requirement response", "description": "some description", "requirement": { @@ -839,7 +839,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "438632b60d584fb3a19c2386adbe6756", + "id": "4d6578d04a314b7ea38fb8fbfcfcbeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -849,7 +849,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "39ac845f3608495db667cd34d5f2018f", + "id": "27a71a52863e4091af86a470a6f20062", "title": "Requirement response", "description": "some description", "requirement": { @@ -859,7 +859,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "476ff146e0fe4387baf06be753bb7459", + "id": "5acc30e59a9746b49fbee8c1be589e01", "title": "Requirement response", "description": "some description", "requirement": { @@ -869,7 +869,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56714f39a214490ea8e49c4ce399ad52", + "id": "b89741b1767d4d7c89266858fd52483c", "title": "Requirement response", "description": "some description", "requirement": { @@ -879,7 +879,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5f9bcc7eae504788b7a3b3475e2373b6", + "id": "59d12e84cb4a4620b8f4bf79240cfb22", "title": "Requirement response", "description": "some description", "requirement": { @@ -889,7 +889,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3727ff03d2c6447a8f6d118c0a028fe5", + "id": "b32ff2f271894905b7ca75ea80d9d153", "title": "Requirement response", "description": "some description", "requirement": { @@ -899,7 +899,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc84fde82d9c451abe7af459f7f5c065", + "id": "d4d8a9e342ec425bafb1f363ee843a3f", "title": "Requirement response", "description": "some description", "requirement": { @@ -909,7 +909,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c44bae101c54368aee27d549f31ae99", + "id": "f187d02918034a7ca78ad6d8efc8ade1", "title": "Requirement response", "description": "some description", "requirement": { @@ -945,10 +945,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "eac6e323ccd84f588542f76867850060", + "id": "7b1decebe35a4408b2fa079344de8313", "requirementResponses": [ { - "id": "8c57eb166e04443cad4aac981bd5b9d7", + "id": "0ef28e17f81b4e138e0546c3f697a29e", "title": "Requirement response", "description": "some description", "requirement": { @@ -958,7 +958,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "664434fa7e554b37b40d4222de69a4ae", + "id": "adcd53d47a854c359b3df89f512ea6c2", "title": "Requirement response", "description": "some description", "requirement": { @@ -968,7 +968,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "031e3b514c47431fafb02e05139d81f3", + "id": "0191cb8c4dcd43569ccf39a00a51292c", "title": "Requirement response", "description": "some description", "requirement": { @@ -978,7 +978,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "82c8466df30449d6893f11bee2a222f9", + "id": "e0b59b74b8e945be805fe0b50bea2f2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -988,7 +988,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4719898b6a8f419fa8781a57d1f364ad", + "id": "21476cbbf0ef4e74baffabad940f6aa4", "title": "Requirement response", "description": "some description", "requirement": { @@ -998,7 +998,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "049b4f7c671a479796620517cd5dd6de", + "id": "a5b22812253c4fdbb9b02dd5b4394557", "title": "Requirement response", "description": "some description", "requirement": { @@ -1008,7 +1008,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3c5ce4fcc54644aeaae393f7a84789e7", + "id": "c11c3429709e4e11ab68e916861d5eff", "title": "Requirement response", "description": "some description", "requirement": { @@ -1018,7 +1018,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c93733231988472cb8e471dd2b97cabf", + "id": "b49ca3954cf74a96be2acdd9c929a3dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -1028,7 +1028,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2978cde5e3d940b5b1f32dc32d9637f6", + "id": "1c596bd32d484eefa12335a0263d9b85", "title": "Requirement response", "description": "some description", "requirement": { @@ -1038,7 +1038,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "92d40082b82d4a9b9bdba99840874913", + "id": "ec6e243b29e145b187bbfb0e69640be5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1048,7 +1048,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d5e187d3ea744450866cb1683e5884ac", + "id": "0c54cbd308cd4bb98ced698cfae54587", "title": "Requirement response", "description": "some description", "requirement": { @@ -1060,7 +1060,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1072,11 +1072,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", + "id": "4474922426e24118a49f17150ce09eb9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/documents/fadca469c6e44f0ca8086ab778e301e6?download=256123ec589044029ec3f8823d26d1a4", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/4474922426e24118a49f17150ce09eb9?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1087,7 +1087,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", + "id": "e60c97b6416945de8eafcde527d04901", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1126,10 +1126,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", "requirementResponses": [ { - "id": "55510c89203c4b6c9a0317dfa6525984", + "id": "f370c0c92fe8404387c9e65d10790c9a", "title": "Requirement response", "description": "some description", "requirement": { @@ -1139,7 +1139,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3614237effdf41f994f00b3ef8355935", + "id": "86ca9b3433bb4c4b811b83d4bf519329", "title": "Requirement response", "description": "some description", "requirement": { @@ -1149,7 +1149,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "df4e4d4b804e4ada8717b7e0768c4d00", + "id": "bf284e08c80744b1a906e2e52cbd3e57", "title": "Requirement response", "description": "some description", "requirement": { @@ -1159,7 +1159,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "22efa8be3b284758b2caffd5520a458d", + "id": "1c5ab47a897b4a61bde48b1edd9beb91", "title": "Requirement response", "description": "some description", "requirement": { @@ -1169,7 +1169,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d57861ec428444e39ea3336e9893577f", + "id": "b0caf075d0ce466fa9e78d172fd2b00c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1179,7 +1179,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f4199c3e117841a4bfb655e3c87bdbda", + "id": "2c9c35cc1f8a43839fe0d27914b3605c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1189,7 +1189,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3b8d856940ce418aa68459cfd9b3e5f9", + "id": "6cd5b68721214d6bae02d6bd9379eeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -1199,7 +1199,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e97bba0627427982eb7d5360cef312", + "id": "6f698a0169a542c6afb62058193589cf", "title": "Requirement response", "description": "some description", "requirement": { @@ -1209,7 +1209,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f31162937bc243aab21df8393193b257", + "id": "3dd19580026f4d75913fd70aa5b2c75e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1219,7 +1219,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9b7923fc5a3a43f482ef1d9218157742", + "id": "7bd3e64657724920b7669effd14eb15b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1229,7 +1229,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "32fafcad394142e9b6d5fa35af3ccca8", + "id": "3669eba0622a4302b27f1394850e6f7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1241,7 +1241,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", + "id": "b85ae26451e547cda0810ef04c777cf9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1253,11 +1253,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "f0fd216397c24b3491388919024cac37", + "id": "a18e17da85ee43b5bb4a3dc4117715de", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/documents/f0fd216397c24b3491388919024cac37?download=256123ec589044029ec3f8823d26d1a4", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/a18e17da85ee43b5bb4a3dc4117715de?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1268,7 +1268,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", + "id": "7be151f4800e4be0a81acb90d6ba667a", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1465,7 +1465,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1474,7 +1474,7 @@ X-Content-Type-Options: nosniff }, { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1483,7 +1483,7 @@ X-Content-Type-Options: nosniff }, { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", @@ -1492,7 +1492,7 @@ X-Content-Type-Options: nosniff }, { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/qualificated-bids-view.http b/docs/source/tendering/cfaua/tutorial/qualificated-bids-view.http index b9668f8066..c8e8c862c2 100644 --- a/docs/source/tendering/cfaua/tutorial/qualificated-bids-view.http +++ b/docs/source/tendering/cfaua/tutorial/qualificated-bids-view.http @@ -31,10 +31,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +134,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -146,11 +146,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/34be9b5887d544b489e5950ad70c1f52?Signature=Wvh6AAIHRm3RHkU1FM5qxyJNOzVY%2FZ673gj%2FUIjWT5k2Mk4AhLmRzKNLwkqqsr9OB3onZ0xBL8OPpXTGiV4VDA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -158,11 +158,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", + "url": "/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -173,11 +173,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/43a81def8136461dbb13abf39024ca33?Signature=f8zfNWGAsfBdBJcpzXQJPJiGVZQSnNllMGZspKjF%2By%2Ba9SVG%2FyluZ8u6m8XbRYXhsttTthoYoiQiWfUHuVofBQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=26yB6ZiVTBL5q9Fb%2BLECZB5PoAYfiO3sZAE13zw0WZakcBgwrhRjoIt6Qf7c9DUYBFH%2BRi0LcGMSeMbqEmZfCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -211,10 +211,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "id": "5502be861ff24fa281a68247002d018c", "requirementResponses": [ { - "id": "6e896d3b30c1426db34bc9c4b78ce0af", + "id": "399c4a5c7ff6415888f8d0e28de48419", "title": "Requirement response", "description": "some description", "requirement": { @@ -224,7 +224,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "515ae4c24f48480fbd8e04ad79f4cb6f", + "id": "352fcfe76ab14fbb8a3c286cc4acd32d", "title": "Requirement response", "description": "some description", "requirement": { @@ -234,7 +234,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a76d449e6f874e5599d99a4b1265cbcc", + "id": "de584c88d32a49b597d9de7b3a2fccdc", "title": "Requirement response", "description": "some description", "requirement": { @@ -244,7 +244,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "438632b60d584fb3a19c2386adbe6756", + "id": "4d6578d04a314b7ea38fb8fbfcfcbeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -254,7 +254,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "39ac845f3608495db667cd34d5f2018f", + "id": "27a71a52863e4091af86a470a6f20062", "title": "Requirement response", "description": "some description", "requirement": { @@ -264,7 +264,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "476ff146e0fe4387baf06be753bb7459", + "id": "5acc30e59a9746b49fbee8c1be589e01", "title": "Requirement response", "description": "some description", "requirement": { @@ -274,7 +274,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56714f39a214490ea8e49c4ce399ad52", + "id": "b89741b1767d4d7c89266858fd52483c", "title": "Requirement response", "description": "some description", "requirement": { @@ -284,7 +284,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5f9bcc7eae504788b7a3b3475e2373b6", + "id": "59d12e84cb4a4620b8f4bf79240cfb22", "title": "Requirement response", "description": "some description", "requirement": { @@ -294,7 +294,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3727ff03d2c6447a8f6d118c0a028fe5", + "id": "b32ff2f271894905b7ca75ea80d9d153", "title": "Requirement response", "description": "some description", "requirement": { @@ -304,7 +304,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc84fde82d9c451abe7af459f7f5c065", + "id": "d4d8a9e342ec425bafb1f363ee843a3f", "title": "Requirement response", "description": "some description", "requirement": { @@ -314,7 +314,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c44bae101c54368aee27d549f31ae99", + "id": "f187d02918034a7ca78ad6d8efc8ade1", "title": "Requirement response", "description": "some description", "requirement": { @@ -350,10 +350,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "eac6e323ccd84f588542f76867850060", + "id": "7b1decebe35a4408b2fa079344de8313", "requirementResponses": [ { - "id": "8c57eb166e04443cad4aac981bd5b9d7", + "id": "0ef28e17f81b4e138e0546c3f697a29e", "title": "Requirement response", "description": "some description", "requirement": { @@ -363,7 +363,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "664434fa7e554b37b40d4222de69a4ae", + "id": "adcd53d47a854c359b3df89f512ea6c2", "title": "Requirement response", "description": "some description", "requirement": { @@ -373,7 +373,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "031e3b514c47431fafb02e05139d81f3", + "id": "0191cb8c4dcd43569ccf39a00a51292c", "title": "Requirement response", "description": "some description", "requirement": { @@ -383,7 +383,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "82c8466df30449d6893f11bee2a222f9", + "id": "e0b59b74b8e945be805fe0b50bea2f2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -393,7 +393,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4719898b6a8f419fa8781a57d1f364ad", + "id": "21476cbbf0ef4e74baffabad940f6aa4", "title": "Requirement response", "description": "some description", "requirement": { @@ -403,7 +403,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "049b4f7c671a479796620517cd5dd6de", + "id": "a5b22812253c4fdbb9b02dd5b4394557", "title": "Requirement response", "description": "some description", "requirement": { @@ -413,7 +413,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3c5ce4fcc54644aeaae393f7a84789e7", + "id": "c11c3429709e4e11ab68e916861d5eff", "title": "Requirement response", "description": "some description", "requirement": { @@ -423,7 +423,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c93733231988472cb8e471dd2b97cabf", + "id": "b49ca3954cf74a96be2acdd9c929a3dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -433,7 +433,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2978cde5e3d940b5b1f32dc32d9637f6", + "id": "1c596bd32d484eefa12335a0263d9b85", "title": "Requirement response", "description": "some description", "requirement": { @@ -443,7 +443,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "92d40082b82d4a9b9bdba99840874913", + "id": "ec6e243b29e145b187bbfb0e69640be5", "title": "Requirement response", "description": "some description", "requirement": { @@ -453,7 +453,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d5e187d3ea744450866cb1683e5884ac", + "id": "0c54cbd308cd4bb98ced698cfae54587", "title": "Requirement response", "description": "some description", "requirement": { @@ -465,7 +465,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -477,11 +477,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", + "id": "4474922426e24118a49f17150ce09eb9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/documents/fadca469c6e44f0ca8086ab778e301e6?download=256123ec589044029ec3f8823d26d1a4", + "url": "/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/4474922426e24118a49f17150ce09eb9?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -492,7 +492,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", + "id": "e60c97b6416945de8eafcde527d04901", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -504,7 +504,6 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "selfQualified": true, "status": "unsuccessful" }, { @@ -531,10 +530,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", "requirementResponses": [ { - "id": "55510c89203c4b6c9a0317dfa6525984", + "id": "f370c0c92fe8404387c9e65d10790c9a", "title": "Requirement response", "description": "some description", "requirement": { @@ -544,7 +543,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3614237effdf41f994f00b3ef8355935", + "id": "86ca9b3433bb4c4b811b83d4bf519329", "title": "Requirement response", "description": "some description", "requirement": { @@ -554,7 +553,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "df4e4d4b804e4ada8717b7e0768c4d00", + "id": "bf284e08c80744b1a906e2e52cbd3e57", "title": "Requirement response", "description": "some description", "requirement": { @@ -564,7 +563,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "22efa8be3b284758b2caffd5520a458d", + "id": "1c5ab47a897b4a61bde48b1edd9beb91", "title": "Requirement response", "description": "some description", "requirement": { @@ -574,7 +573,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d57861ec428444e39ea3336e9893577f", + "id": "b0caf075d0ce466fa9e78d172fd2b00c", "title": "Requirement response", "description": "some description", "requirement": { @@ -584,7 +583,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f4199c3e117841a4bfb655e3c87bdbda", + "id": "2c9c35cc1f8a43839fe0d27914b3605c", "title": "Requirement response", "description": "some description", "requirement": { @@ -594,7 +593,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3b8d856940ce418aa68459cfd9b3e5f9", + "id": "6cd5b68721214d6bae02d6bd9379eeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -604,7 +603,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e97bba0627427982eb7d5360cef312", + "id": "6f698a0169a542c6afb62058193589cf", "title": "Requirement response", "description": "some description", "requirement": { @@ -614,7 +613,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f31162937bc243aab21df8393193b257", + "id": "3dd19580026f4d75913fd70aa5b2c75e", "title": "Requirement response", "description": "some description", "requirement": { @@ -624,7 +623,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9b7923fc5a3a43f482ef1d9218157742", + "id": "7bd3e64657724920b7669effd14eb15b", "title": "Requirement response", "description": "some description", "requirement": { @@ -634,7 +633,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "32fafcad394142e9b6d5fa35af3ccca8", + "id": "3669eba0622a4302b27f1394850e6f7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -646,7 +645,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", + "id": "b85ae26451e547cda0810ef04c777cf9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -658,11 +657,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "f0fd216397c24b3491388919024cac37", + "id": "a18e17da85ee43b5bb4a3dc4117715de", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/documents/f0fd216397c24b3491388919024cac37?download=256123ec589044029ec3f8823d26d1a4", + "url": "/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/a18e17da85ee43b5bb4a3dc4117715de?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -673,7 +672,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", + "id": "7be151f4800e4be0a81acb90d6ba667a", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/cfaua/tutorial/qualifications-list.http b/docs/source/tendering/cfaua/tutorial/qualifications-list.http index b0f588d219..0df4e526a4 100644 --- a/docs/source/tendering/cfaua/tutorial/qualifications-list.http +++ b/docs/source/tendering/cfaua/tutorial/qualifications-list.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", @@ -69,7 +69,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", @@ -104,7 +104,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", diff --git a/docs/source/tendering/cfaua/tutorial/qualifications-list2.http b/docs/source/tendering/cfaua/tutorial/qualifications-list2.http index 65f8c4d5ef..ac2c01b397 100644 --- a/docs/source/tendering/cfaua/tutorial/qualifications-list2.http +++ b/docs/source/tendering/cfaua/tutorial/qualifications-list2.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -71,7 +71,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -108,7 +108,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -145,7 +145,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", diff --git a/docs/source/tendering/cfaua/tutorial/qualifications-list3.http b/docs/source/tendering/cfaua/tutorial/qualifications-list3.http index 755f413e0e..3cc20b8ab5 100644 --- a/docs/source/tendering/cfaua/tutorial/qualifications-list3.http +++ b/docs/source/tendering/cfaua/tutorial/qualifications-list3.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -71,7 +71,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -108,7 +108,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -145,7 +145,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00" @@ -183,7 +183,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", @@ -218,7 +218,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", @@ -253,7 +253,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "value": { "currency": "UAH", diff --git a/docs/source/tendering/cfaua/tutorial/qualifications-listing.http b/docs/source/tendering/cfaua/tutorial/qualifications-listing.http index 55e86c302a..6c5e472e75 100644 --- a/docs/source/tendering/cfaua/tutorial/qualifications-listing.http +++ b/docs/source/tendering/cfaua/tutorial/qualifications-listing.http @@ -9,7 +9,7 @@ X-Content-Type-Options: nosniff "data": [ { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff }, { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -27,7 +27,7 @@ X-Content-Type-Options: nosniff }, { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -36,7 +36,7 @@ X-Content-Type-Options: nosniff }, { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "pending", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http index 041b3085a1..be18fee0c2 100644 --- a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http @@ -44,7 +44,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/dfe1f11c2ec14520b8aac4060a0fd10f +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/5502be861ff24fa281a68247002d018c X-Content-Type-Options: nosniff { "data": { @@ -52,9 +52,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -64,25 +64,24 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "parameters": [], "lotValues": [ { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { + "amount": 499.0, "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 499 - } + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } ], "documents": [], @@ -90,11 +89,13 @@ X-Content-Type-Options: nosniff "eligibilityDocuments": [], "qualificationDocuments": [], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "5502be861ff24fa281a68247002d018c", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "acee2456fb93474caa983e9dbf3b94dc", - "transfer": "69c0318649d54189baafa90c5a26ea4c" + "token": "94c82a3cbe3d4660a173be02bec76dea", + "transfer": "eec3698802be4a60a60a3ea7153c5d00" } } diff --git a/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http index 3afb153008..cbab71aca9 100644 --- a/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http @@ -84,7 +84,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313 X-Content-Type-Options: nosniff { "data": { @@ -92,9 +92,9 @@ X-Content-Type-Options: nosniff { "name": "«Снігур»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137227", - "uri": "http://www.sc.gov.ua/" + "id": "00137227" }, "address": { "streetAddress": "вул. Островського, 35", @@ -104,101 +104,98 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Іваненко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Іваненко" }, "scale": "mid" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "eac6e323ccd84f588542f76867850060", + "parameters": [], + "lotValues": [ + { + "value": { + "amount": 485.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" + } + ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/documents/e69a71de908d4c4a8f9c69e527938b69?download=c1779fafc15841d3a83131dee57a4640", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/fd4a6cfadb32474b8b6d2c8c045f9e1d?download=c1779fafc15841d3a83131dee57a4640", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/4474922426e24118a49f17150ce09eb9?download=256123ec589044029ec3f8823d26d1a4", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair.", + "id": "4474922426e24118a49f17150ce09eb9", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "financialDocuments": [ { - "id": "e17b2ca354f848b4b56653f6709230c2", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/financial_documents/e17b2ca354f848b4b56653f6709230c2?download=c70126ac67864f0eb83440e79dc1dc23", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/financial_documents/a4384c91c3e2423f82aee43f19130ac2?download=c70126ac67864f0eb83440e79dc1dc23", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "a4384c91c3e2423f82aee43f19130ac2", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/eligibility_documents/1973f516b53d40ecbc3f14c979bbb698?download=a628e60a5cf141358caec2553308eed1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/eligibility_documents/e60c97b6416945de8eafcde527d04901?download=a628e60a5cf141358caec2553308eed1", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e60c97b6416945de8eafcde527d04901", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "8653d6aafbdd47bca8f1d0a7006c5387", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/qualification_documents/8653d6aafbdd47bca8f1d0a7006c5387?download=a0af3b8478774cd09f9005ac47f372cb", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/qualification_documents/b2d1c6e539a04e10843e7a65c4a5b13c?download=a0af3b8478774cd09f9005ac47f372cb", "documentOf": "tender", "confidentiality": "public", - "language": "uk" - } - ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 485 - } + "id": "b2d1c6e539a04e10843e7a65c4a5b13c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "7b1decebe35a4408b2fa079344de8313", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "3277835496964da4ad34be8801a8718d", - "transfer": "b52b242c34ef4793bbf222169cb75da1" + "token": "a711708941cb4ece960b6fd0d79b4cb3", + "transfer": "1975c48010284eb6a08cd14a23de01b8" } } diff --git a/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http index a910701bee..2808a730b7 100644 --- a/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http @@ -84,7 +84,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b X-Content-Type-Options: nosniff { "data": { @@ -92,9 +92,9 @@ X-Content-Type-Options: nosniff { "name": "«Снігур»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137227", - "uri": "http://www.sc.gov.ua/" + "id": "00137227" }, "address": { "streetAddress": "вул. Островського, 35", @@ -104,101 +104,98 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Іваненко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Іваненко" }, "scale": "mid" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "parameters": [], + "lotValues": [ + { + "value": { + "amount": 485.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" + } + ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/documents/9c8a1b924ccf4492b7a52727b134d418?download=c1779fafc15841d3a83131dee57a4640", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/b85ae26451e547cda0810ef04c777cf9?download=c1779fafc15841d3a83131dee57a4640", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "b85ae26451e547cda0810ef04c777cf9", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "f0fd216397c24b3491388919024cac37", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/a18e17da85ee43b5bb4a3dc4117715de?download=256123ec589044029ec3f8823d26d1a4", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair.", + "id": "a18e17da85ee43b5bb4a3dc4117715de", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "financialDocuments": [ { - "id": "f78e59700f6c478b808b9c95e38726cf", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/financial_documents/f78e59700f6c478b808b9c95e38726cf?download=c70126ac67864f0eb83440e79dc1dc23", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/financial_documents/f01b93bdd6d94869810295085a657b49?download=c70126ac67864f0eb83440e79dc1dc23", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "f01b93bdd6d94869810295085a657b49", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/eligibility_documents/e13e063a40434fea8be946daf5df01b5?download=a628e60a5cf141358caec2553308eed1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/eligibility_documents/7be151f4800e4be0a81acb90d6ba667a?download=a628e60a5cf141358caec2553308eed1", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "7be151f4800e4be0a81acb90d6ba667a", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "b9cc5d86f1e14daba71e3ee99e1312ff", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/bd56332dbb8140a4b4aab9c447c7e9b6/qualification_documents/b9cc5d86f1e14daba71e3ee99e1312ff?download=a0af3b8478774cd09f9005ac47f372cb", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/qualification_documents/d545ee8b49944aa3afbd52f9d7c4539d?download=a0af3b8478774cd09f9005ac47f372cb", "documentOf": "tender", "confidentiality": "public", - "language": "uk" - } - ], - "lotValues": [ - { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 485 - } + "id": "d545ee8b49944aa3afbd52f9d7c4539d", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "d6fcfebf8af748318bf624da389cbea3", - "transfer": "d895b503c73b4f2481208b314d731a93" + "token": "b46e85054c024e7c8e0ec23d850cedc5", + "transfer": "aa3864c3d8c1450a92bdf8a51ebc5030" } } diff --git a/docs/source/tendering/cfaua/tutorial/register-bidder.http b/docs/source/tendering/cfaua/tutorial/register-bidder.http index 1af83379ff..84b2c34c66 100644 --- a/docs/source/tendering/cfaua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-bidder.http @@ -45,7 +45,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513 X-Content-Type-Options: nosniff { "data": { @@ -53,9 +53,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -65,25 +65,25 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "parameters": [], + "subcontractingDetails": "ДКП «Орфей», Україна", "lotValues": [ { - "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { + "amount": 500.0, "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 500.0 - } + "valueAddedTaxIncluded": true + }, + "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } ], "documents": [], @@ -91,12 +91,13 @@ X-Content-Type-Options: nosniff "eligibilityDocuments": [], "qualificationDocuments": [], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "draft" + "status": "draft", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "c0c98c22f5594c6e99ba094d5d9a9b63", - "transfer": "ed942033e52245b78cf59661f2525d99" + "token": "4e94ef2d4d854792b5f438b3a1f289b5", + "transfer": "b97a2619ab214b80aab5fa96c23c9799" } } diff --git a/docs/source/tendering/cfaua/tutorial/reject-qualification3.http b/docs/source/tendering/cfaua/tutorial/reject-qualification3.http index 509839b4fb..67a6f833df 100644 --- a/docs/source/tendering/cfaua/tutorial/reject-qualification3.http +++ b/docs/source/tendering/cfaua/tutorial/reject-qualification3.http @@ -16,7 +16,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/rejected-bid-view.http b/docs/source/tendering/cfaua/tutorial/rejected-bid-view.http index bcda116d10..38a7b9a863 100644 --- a/docs/source/tendering/cfaua/tutorial/rejected-bid-view.http +++ b/docs/source/tendering/cfaua/tutorial/rejected-bid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 +GET /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313?acc_token=fbb49b806b484733bc09390b0e01078d HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,10 +30,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "eac6e323ccd84f588542f76867850060", + "id": "7b1decebe35a4408b2fa079344de8313", "requirementResponses": [ { - "id": "8c57eb166e04443cad4aac981bd5b9d7", + "id": "0ef28e17f81b4e138e0546c3f697a29e", "title": "Requirement response", "description": "some description", "requirement": { @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "664434fa7e554b37b40d4222de69a4ae", + "id": "adcd53d47a854c359b3df89f512ea6c2", "title": "Requirement response", "description": "some description", "requirement": { @@ -53,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "031e3b514c47431fafb02e05139d81f3", + "id": "0191cb8c4dcd43569ccf39a00a51292c", "title": "Requirement response", "description": "some description", "requirement": { @@ -63,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "82c8466df30449d6893f11bee2a222f9", + "id": "e0b59b74b8e945be805fe0b50bea2f2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -73,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4719898b6a8f419fa8781a57d1f364ad", + "id": "21476cbbf0ef4e74baffabad940f6aa4", "title": "Requirement response", "description": "some description", "requirement": { @@ -83,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "049b4f7c671a479796620517cd5dd6de", + "id": "a5b22812253c4fdbb9b02dd5b4394557", "title": "Requirement response", "description": "some description", "requirement": { @@ -93,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3c5ce4fcc54644aeaae393f7a84789e7", + "id": "c11c3429709e4e11ab68e916861d5eff", "title": "Requirement response", "description": "some description", "requirement": { @@ -103,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c93733231988472cb8e471dd2b97cabf", + "id": "b49ca3954cf74a96be2acdd9c929a3dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -113,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2978cde5e3d940b5b1f32dc32d9637f6", + "id": "1c596bd32d484eefa12335a0263d9b85", "title": "Requirement response", "description": "some description", "requirement": { @@ -123,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "92d40082b82d4a9b9bdba99840874913", + "id": "ec6e243b29e145b187bbfb0e69640be5", "title": "Requirement response", "description": "some description", "requirement": { @@ -133,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d5e187d3ea744450866cb1683e5884ac", + "id": "0c54cbd308cd4bb98ced698cfae54587", "title": "Requirement response", "description": "some description", "requirement": { @@ -145,7 +145,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -157,11 +157,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", + "id": "4474922426e24118a49f17150ce09eb9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/eac6e323ccd84f588542f76867850060/documents/fadca469c6e44f0ca8086ab778e301e6?download=256123ec589044029ec3f8823d26d1a4", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/4474922426e24118a49f17150ce09eb9?download=256123ec589044029ec3f8823d26d1a4", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -172,7 +172,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", + "id": "e60c97b6416945de8eafcde527d04901", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -184,7 +184,6 @@ X-Content-Type-Options: nosniff "language": "uk" } ], - "selfQualified": true, "status": "unsuccessful" } } diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-get.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-get.http index 4b3bf4509f..b0ad2a87b7 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-get.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-get.http @@ -12,23 +12,23 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -152,7 +152,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -200,7 +200,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -248,7 +248,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-sign-date.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-sign-date.http index 0bd9385499..4c20d8787e 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-sign-date.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-sign-date.http @@ -21,23 +21,23 @@ X-Content-Type-Options: nosniff "dateSigned": "2021-03-16T00:00:01+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -161,7 +161,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -209,7 +209,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -257,7 +257,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/tender-agreement-sign.http b/docs/source/tendering/cfaua/tutorial/tender-agreement-sign.http index f3642ec210..fba47425b1 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-agreement-sign.http +++ b/docs/source/tendering/cfaua/tutorial/tender-agreement-sign.http @@ -25,23 +25,23 @@ X-Content-Type-Options: nosniff "dateSigned": "2021-03-16T00:00:01+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -169,7 +169,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -217,7 +217,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -265,7 +265,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] diff --git a/docs/source/tendering/cfaua/tutorial/tender-completed.http b/docs/source/tendering/cfaua/tutorial/tender-completed.http index 9229615851..3c812d4e1b 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-completed.http +++ b/docs/source/tendering/cfaua/tutorial/tender-completed.http @@ -625,7 +625,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -662,7 +662,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -699,7 +699,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -736,7 +736,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00" @@ -774,7 +774,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -815,7 +815,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -856,7 +856,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -901,10 +901,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "fa412b9bcd92484d9f8871b0ee0df130", + "id": "b142414a5dc84ec0a828ba7e3d5f3513", "requirementResponses": [ { - "id": "023d5d567b2f4e16a7d938704a2fdb4b", + "id": "20b6bf5b1a2641f8b633bdd4a43a4f09", "title": "Requirement response", "description": "some description", "requirement": { @@ -914,7 +914,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c211ac56f36848b69ea227b5d046904e", + "id": "fb022176649f45dfa75682471761bcb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -924,7 +924,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d212099ba40046a8bbf47003212eea49", + "id": "8d59bfb3c90e4c7da01b3b15d3575556", "title": "Requirement response", "description": "some description", "requirement": { @@ -934,7 +934,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "054f908f5a78418fa235e7a8a828de15", + "id": "91d7810e125448fc92cc5baab23d39cb", "title": "Requirement response", "description": "some description", "requirement": { @@ -944,7 +944,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "33caac620abd42d78c38e7d112cea30d", + "id": "8a1e2ddb2bd8459aaaadc42150a7f482", "title": "Requirement response", "description": "some description", "requirement": { @@ -954,7 +954,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42c76f56599549e0bf2a167fc3f4d9e5", + "id": "65713ebb68c648b49ed9c39eb9e0eef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -964,7 +964,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "010b7482317f4f32b63f830d8364fc46", + "id": "31dd651053204e509851256cf663122d", "title": "Requirement response", "description": "some description", "requirement": { @@ -974,7 +974,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1febd4844fd74cd38c3f47b9b0b77294", + "id": "e9d88003360d43a88a7ef5d3f7efb02d", "title": "Requirement response", "description": "some description", "requirement": { @@ -984,7 +984,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6bd805512dc24cd29d095f2f1e99b3ee", + "id": "8a7cce89ff2647f686627ce853cb3b16", "title": "Requirement response", "description": "some description", "requirement": { @@ -994,7 +994,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "280dcc7bfe93477e8e7ebb8c96111075", + "id": "b7f60b5409154b1ba210146f5ab57230", "title": "Requirement response", "description": "some description", "requirement": { @@ -1004,7 +1004,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3797da4a11f348bb8ba70fdd3c17f184", + "id": "13006afc9e61473b828f6e19ab2e0e62", "title": "Requirement response", "description": "some description", "requirement": { @@ -1016,11 +1016,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "8aac6a1034244423a16f6b72aa830d9d", + "id": "e5d2ba0b59284460a205a7c7f9e09add", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/34be9b5887d544b489e5950ad70c1f52?Signature=Wvh6AAIHRm3RHkU1FM5qxyJNOzVY%2FZ673gj%2FUIjWT5k2Mk4AhLmRzKNLwkqqsr9OB3onZ0xBL8OPpXTGiV4VDA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1028,7 +1028,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "8e2253d474d347369064f8d7f063ba5e", + "id": "1dec1ea8c0da484a996dabdc76a5173c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -1042,11 +1042,11 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "47d9ee757a374838bf177c41cdfd9e9a", + "id": "31e362b1e4e84669be8fb843c90ed601", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/17a3ed53d97c4f95a5c3b318bfa16c51?Signature=jym84FUWeNV637lOGYucmYpaomFQBKwXE1FKPN1cj1gGEen7lPHK2lrn6OaLIxt6xZ3YD8CDLIRjMLOVhtkIAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1d6de0bad71f4f41927965001d34373c?Signature=IxMhGxVkp53NYCibHDauvqD95DSKyqx4aP3afqxLCEWGZrFI%2Fl1I7ZTMcffq8ScTc2y9IdsdOtKOCuQnGP5jCg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1054,11 +1054,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c759531b07fa4e90ad820cbb39afc07a", + "id": "5c0c8fe670df41848d71771bf7710cb7", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/2b98f86302714a93bcada4a025c55c71?Signature=GUTOrT5buFK%2BhZqEddVU8n6VxJU1Qj3udQMOb5cBmZw7FULo85jlSDNw%2BW%2FzNWXqRAjmRPvEfunM7RCxhYhCDg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/566a898dcb5e4d6cbac7c19df3f2255d?Signature=uRLkxT9CU4hrZUvYjGFb1R3jqEVUUstlAOBI3Qcw0AYoq21jRnXFMBrr%2B2%2B%2B5Kr1qdf%2B9WSx003edlY64PwqAw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1066,11 +1066,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "eee02e6c3acd49ecabdc3b0a07cfe1f9", + "id": "f70ee714fd4947ada7cf33eecfc598f5", "hash": "md5:00000000000000000000000000000000", "title": "prices.xls", - "format": "application/vnd.ms-excel", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/2caba79533ba45dd9a504a552daa0bb1?Signature=W4QPL618Rk4J6bFv6Wlgx5Bg3NX8tn7z76wCaPKJh8n451KK3K5q3KEKGY%2BN%2FjXg6DP%2B7cA3QstN97YDgklRBg%3D%3D&KeyID=a8968c46", + "format": "application/exl", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e0d4f99d68104577927f59cb6d8f7fab?Signature=FhQf0km46Nd8Y7NN95lG1TMVRYB3L%2F6jus6cieljEfKNNzIwPgOWUFNqNzkxsaPHcIc6880dtkOfGNlgG2x0DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1080,11 +1080,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", + "id": "08fb6807769849b6bffb778344e61be6", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/43a81def8136461dbb13abf39024ca33?Signature=f8zfNWGAsfBdBJcpzXQJPJiGVZQSnNllMGZspKjF%2By%2Ba9SVG%2FyluZ8u6m8XbRYXhsttTthoYoiQiWfUHuVofBQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=26yB6ZiVTBL5q9Fb%2BLECZB5PoAYfiO3sZAE13zw0WZakcBgwrhRjoIt6Qf7c9DUYBFH%2BRi0LcGMSeMbqEmZfCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1094,11 +1094,11 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/7cd719b4e43044d99c422791d2008a68?Signature=t%2BeNmxfY8d8Bu9sn78%2FzhCe9QYRbDdlREurOf%2F3d46Iv0fU49fDeKPGL393pk8ug8%2BprmmIahDh%2Ba66PITJKBA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a20f969f50684bc6ae8dcb13a0c41885?Signature=sm%2B%2BmHzes45vCc8jksFVVhAUafv0RfwlLL9gZTsLYaddAANqZ7j00wfWxPmw6my3UipUAB0nEdlYMYZUc%2B8mCg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1106,11 +1106,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c5f78a532c71475fb5000733bc9a911a?Signature=u7ZjBe7L%2FtcIjz55npeMnDwwiNFHbQXqkcZczarCNhmTwczaEGWdV3gfCo78RzZGBZGNP2V4BSgUVLn%2BbLFwDQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/9595b5d341ff4269b8f0df2aa37ce8de?Signature=1J6B1dKlPLt93DAPrgOIwsaVQBY%2BUXr7KnQouqQKxSEtYtL8kI9xhS6Ezd9wwi2%2BVHpN9ehbjru8ncauvpzmBA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1121,7 +1121,7 @@ X-Content-Type-Options: nosniff "lotValues": [ { "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=fa412b9bcd92484d9f8871b0ee0df130", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00", "status": "active", "value": { @@ -1160,10 +1160,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "id": "5502be861ff24fa281a68247002d018c", "requirementResponses": [ { - "id": "6e896d3b30c1426db34bc9c4b78ce0af", + "id": "399c4a5c7ff6415888f8d0e28de48419", "title": "Requirement response", "description": "some description", "requirement": { @@ -1173,7 +1173,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "515ae4c24f48480fbd8e04ad79f4cb6f", + "id": "352fcfe76ab14fbb8a3c286cc4acd32d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1183,7 +1183,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a76d449e6f874e5599d99a4b1265cbcc", + "id": "de584c88d32a49b597d9de7b3a2fccdc", "title": "Requirement response", "description": "some description", "requirement": { @@ -1193,7 +1193,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "438632b60d584fb3a19c2386adbe6756", + "id": "4d6578d04a314b7ea38fb8fbfcfcbeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -1203,7 +1203,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "39ac845f3608495db667cd34d5f2018f", + "id": "27a71a52863e4091af86a470a6f20062", "title": "Requirement response", "description": "some description", "requirement": { @@ -1213,7 +1213,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "476ff146e0fe4387baf06be753bb7459", + "id": "5acc30e59a9746b49fbee8c1be589e01", "title": "Requirement response", "description": "some description", "requirement": { @@ -1223,7 +1223,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56714f39a214490ea8e49c4ce399ad52", + "id": "b89741b1767d4d7c89266858fd52483c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1233,7 +1233,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5f9bcc7eae504788b7a3b3475e2373b6", + "id": "59d12e84cb4a4620b8f4bf79240cfb22", "title": "Requirement response", "description": "some description", "requirement": { @@ -1243,7 +1243,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3727ff03d2c6447a8f6d118c0a028fe5", + "id": "b32ff2f271894905b7ca75ea80d9d153", "title": "Requirement response", "description": "some description", "requirement": { @@ -1253,7 +1253,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc84fde82d9c451abe7af459f7f5c065", + "id": "d4d8a9e342ec425bafb1f363ee843a3f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1263,7 +1263,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c44bae101c54368aee27d549f31ae99", + "id": "f187d02918034a7ca78ad6d8efc8ade1", "title": "Requirement response", "description": "some description", "requirement": { @@ -1276,7 +1276,7 @@ X-Content-Type-Options: nosniff "lotValues": [ { "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=dfe1f11c2ec14520b8aac4060a0fd10f", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00", "status": "active", "value": { @@ -1313,10 +1313,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "eac6e323ccd84f588542f76867850060", + "id": "7b1decebe35a4408b2fa079344de8313", "requirementResponses": [ { - "id": "8c57eb166e04443cad4aac981bd5b9d7", + "id": "0ef28e17f81b4e138e0546c3f697a29e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1326,7 +1326,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "664434fa7e554b37b40d4222de69a4ae", + "id": "adcd53d47a854c359b3df89f512ea6c2", "title": "Requirement response", "description": "some description", "requirement": { @@ -1336,7 +1336,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "031e3b514c47431fafb02e05139d81f3", + "id": "0191cb8c4dcd43569ccf39a00a51292c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1346,7 +1346,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "82c8466df30449d6893f11bee2a222f9", + "id": "e0b59b74b8e945be805fe0b50bea2f2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1356,7 +1356,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4719898b6a8f419fa8781a57d1f364ad", + "id": "21476cbbf0ef4e74baffabad940f6aa4", "title": "Requirement response", "description": "some description", "requirement": { @@ -1366,7 +1366,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "049b4f7c671a479796620517cd5dd6de", + "id": "a5b22812253c4fdbb9b02dd5b4394557", "title": "Requirement response", "description": "some description", "requirement": { @@ -1376,7 +1376,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3c5ce4fcc54644aeaae393f7a84789e7", + "id": "c11c3429709e4e11ab68e916861d5eff", "title": "Requirement response", "description": "some description", "requirement": { @@ -1386,7 +1386,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c93733231988472cb8e471dd2b97cabf", + "id": "b49ca3954cf74a96be2acdd9c929a3dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -1396,7 +1396,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2978cde5e3d940b5b1f32dc32d9637f6", + "id": "1c596bd32d484eefa12335a0263d9b85", "title": "Requirement response", "description": "some description", "requirement": { @@ -1406,7 +1406,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "92d40082b82d4a9b9bdba99840874913", + "id": "ec6e243b29e145b187bbfb0e69640be5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1416,7 +1416,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d5e187d3ea744450866cb1683e5884ac", + "id": "0c54cbd308cd4bb98ced698cfae54587", "title": "Requirement response", "description": "some description", "requirement": { @@ -1428,7 +1428,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "e69a71de908d4c4a8f9c69e527938b69", + "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1440,7 +1440,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "fadca469c6e44f0ca8086ab778e301e6", + "id": "4474922426e24118a49f17150ce09eb9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -1454,7 +1454,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "1973f516b53d40ecbc3f14c979bbb698", + "id": "e60c97b6416945de8eafcde527d04901", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1494,10 +1494,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "id": "f2396c5eb7dc40e986705a3de1cdc13b", "requirementResponses": [ { - "id": "55510c89203c4b6c9a0317dfa6525984", + "id": "f370c0c92fe8404387c9e65d10790c9a", "title": "Requirement response", "description": "some description", "requirement": { @@ -1507,7 +1507,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3614237effdf41f994f00b3ef8355935", + "id": "86ca9b3433bb4c4b811b83d4bf519329", "title": "Requirement response", "description": "some description", "requirement": { @@ -1517,7 +1517,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "df4e4d4b804e4ada8717b7e0768c4d00", + "id": "bf284e08c80744b1a906e2e52cbd3e57", "title": "Requirement response", "description": "some description", "requirement": { @@ -1527,7 +1527,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "22efa8be3b284758b2caffd5520a458d", + "id": "1c5ab47a897b4a61bde48b1edd9beb91", "title": "Requirement response", "description": "some description", "requirement": { @@ -1537,7 +1537,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d57861ec428444e39ea3336e9893577f", + "id": "b0caf075d0ce466fa9e78d172fd2b00c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1547,7 +1547,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f4199c3e117841a4bfb655e3c87bdbda", + "id": "2c9c35cc1f8a43839fe0d27914b3605c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1557,7 +1557,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3b8d856940ce418aa68459cfd9b3e5f9", + "id": "6cd5b68721214d6bae02d6bd9379eeef", "title": "Requirement response", "description": "some description", "requirement": { @@ -1567,7 +1567,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e97bba0627427982eb7d5360cef312", + "id": "6f698a0169a542c6afb62058193589cf", "title": "Requirement response", "description": "some description", "requirement": { @@ -1577,7 +1577,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f31162937bc243aab21df8393193b257", + "id": "3dd19580026f4d75913fd70aa5b2c75e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1587,7 +1587,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9b7923fc5a3a43f482ef1d9218157742", + "id": "7bd3e64657724920b7669effd14eb15b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1597,7 +1597,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "32fafcad394142e9b6d5fa35af3ccca8", + "id": "3669eba0622a4302b27f1394850e6f7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1609,7 +1609,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "9c8a1b924ccf4492b7a52727b134d418", + "id": "b85ae26451e547cda0810ef04c777cf9", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1621,7 +1621,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "f0fd216397c24b3491388919024cac37", + "id": "a18e17da85ee43b5bb4a3dc4117715de", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -1635,7 +1635,7 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "f78e59700f6c478b808b9c95e38726cf", + "id": "f01b93bdd6d94869810295085a657b49", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", @@ -1649,7 +1649,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e13e063a40434fea8be946daf5df01b5", + "id": "7be151f4800e4be0a81acb90d6ba667a", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1663,7 +1663,7 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "b9cc5d86f1e14daba71e3ee99e1312ff", + "id": "d545ee8b49944aa3afbd52f9d7c4539d", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", @@ -1678,7 +1678,7 @@ X-Content-Type-Options: nosniff "lotValues": [ { "relatedLot": "52815e9d01914c7a9bf4ba18ebb5e783", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=bd56332dbb8140a4b4aab9c447c7e9b6", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/37cb590308a242a9836f51a9994c7492_52815e9d01914c7a9bf4ba18ebb5e783?key_for_bid=f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00", "status": "active", "value": { @@ -1705,23 +1705,23 @@ X-Content-Type-Options: nosniff "dateSigned": "2021-03-16T00:00:01+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -1849,7 +1849,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -1897,7 +1897,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -1945,7 +1945,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] @@ -2135,7 +2135,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -2144,7 +2144,7 @@ X-Content-Type-Options: nosniff }, { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -2153,7 +2153,7 @@ X-Content-Type-Options: nosniff }, { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", @@ -2162,7 +2162,7 @@ X-Content-Type-Options: nosniff }, { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/tender-unsuccessful.http b/docs/source/tendering/cfaua/tutorial/tender-unsuccessful.http index d71d103589..dbd70840f5 100644 --- a/docs/source/tendering/cfaua/tutorial/tender-unsuccessful.http +++ b/docs/source/tendering/cfaua/tutorial/tender-unsuccessful.http @@ -625,7 +625,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -662,7 +662,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -699,7 +699,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "qualified": true, "eligible": true, @@ -736,7 +736,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00" @@ -774,7 +774,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "bid_id": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bid_id": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -815,7 +815,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bid_id": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -856,7 +856,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "fa412b9bcd92484d9f8871b0ee0df130", + "bid_id": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "complaintPeriod": { "startDate": "2021-03-06T00:00:00+02:00", @@ -888,23 +888,23 @@ X-Content-Type-Options: nosniff "dateSigned": "2021-03-16T00:00:01+02:00", "documents": [ { - "id": "2d45d008024549f885f6c42b6fe570f2", + "id": "6b3def02d8e044b2a003ce65d16b212a", "hash": "md5:00000000000000000000000000000000", "title": "agreement_first_document.doc", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/257b51818ec24ff7ba9bd1536cabbe1a?Signature=iDFXj6P4QP4EFu7aFSqGrJNK2CPGgPIy8kNLT4lexv1ScfBy%2BvGvd1JURyrmiQ2pFlxy2ocEuEI8%2BrTMDBRQDw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e73683eb573b462197fba52699c470e6?Signature=t5gVoF4QbfJd4GE1RR7XX058cfTiAcAm2fsY4%2BdL%2BtUCH3%2FBEMg5HIXT202dnnG%2Fw%2B62aFOEigVThfvB1%2FEVDg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" }, { - "id": "ca51f1ed6bbf48f9a3d6ec04bd5d7b1f", + "id": "d364676c691744899b1a80f035be06f4", "hash": "md5:00000000000000000000000000000000", "title": "agreement_second_document.doc", "title_en": "Title of Document", "description_en": "Description of Document", - "format": "application/msword", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a56b952a99f44f05973bcbeb97dfa9a6?Signature=pnTEHvfi%2FJOCEyEHt%2FpLlfDhg4czz03WDlp6nd39IMpkwwC8x3F9W%2FOAd1xMhXagLWfx0JaIWbnvAsYf1S%2BHBw%3D%3D&KeyID=a8968c46", + "format": "application/msdoc", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3027eefe15874090b7f07268478684a8?Signature=K3fBx1%2Fyk8KIqqGTnsCQXb0V%2BSOaMzke3czX5kY%2FJ25gl2FeG8R1ZE1WOsxtX94kamY03G30%2B9vf7B7O9xU7DQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "language": "en", @@ -1032,7 +1032,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "05a621257252432fa202ba058a22a2cd", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "date": "2021-03-16T00:00:00+02:00" }, { @@ -1080,7 +1080,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "3697fd1be39e487da32bc85c8f8af500", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "date": "2021-03-16T00:00:00+02:00" }, { @@ -1128,7 +1128,7 @@ X-Content-Type-Options: nosniff } ], "awardID": "26ffb17c93b84851b599dafde1c1d897", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "date": "2021-03-16T00:00:00+02:00" } ] @@ -1318,7 +1318,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "ef09cd8e035b42b0a1699961b9f7dd62", - "bidID": "fa412b9bcd92484d9f8871b0ee0df130", + "bidID": "b142414a5dc84ec0a828ba7e3d5f3513", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1327,7 +1327,7 @@ X-Content-Type-Options: nosniff }, { "id": "223559f5ba3246c1b155a3ef32cbe44c", - "bidID": "dfe1f11c2ec14520b8aac4060a0fd10f", + "bidID": "5502be861ff24fa281a68247002d018c", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1336,7 +1336,7 @@ X-Content-Type-Options: nosniff }, { "id": "2d10211cb2184b6faa2cb9dffe9d674e", - "bidID": "eac6e323ccd84f588542f76867850060", + "bidID": "7b1decebe35a4408b2fa079344de8313", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", @@ -1345,7 +1345,7 @@ X-Content-Type-Options: nosniff }, { "id": "06288b758a524a9bbe729309e4c63db1", - "bidID": "bd56332dbb8140a4b4aab9c447c7e9b6", + "bidID": "f2396c5eb7dc40e986705a3de1cdc13b", "lotID": "52815e9d01914c7a9bf4ba18ebb5e783", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-eligibility-document-proposal.http b/docs/source/tendering/cfaua/tutorial/upload-bid-eligibility-document-proposal.http index f96829a69a..680097dc4a 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-eligibility-document-proposal.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-eligibility-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/eligibility_documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/eligibility_documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 151 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 335 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="eligibility_doc.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "eligibility_doc.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a4fc3e46d4b34911bd554c3e3420e9d4?Signature=vR%2BGRBB%2F17c2GroMWcY0Pemjl9rTvoFNZDhQ8tQKwOhsP0jk%2F2x5ccxdlQH7Y5W7JmeIN%2BbT5HOtyMoMyBU0Bg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/eligibility_documents/1e06b720ac574c24bf7f35ec1bf04e72 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/eligibility_documents/08fb6807769849b6bffb778344e61be6 X-Content-Type-Options: nosniff { "data": { - "id": "1e06b720ac574c24bf7f35ec1bf04e72", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/eligibility_documents/1e06b720ac574c24bf7f35ec1bf04e72?download=43a81def8136461dbb13abf39024ca33", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/eligibility_documents/08fb6807769849b6bffb778344e61be6?download=a4fc3e46d4b34911bd554c3e3420e9d4", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "08fb6807769849b6bffb778344e61be6", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-financial-document-proposal.http b/docs/source/tendering/cfaua/tutorial/upload-bid-financial-document-proposal.http index b02a397a0a..96a7851530 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-financial-document-proposal.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-financial-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 147 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 335 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="financial_doc.pdf" -Content-Type: application/pdf - -1000$ ------BOUNDARY-- - +{ + "data": { + "title": "financial_doc.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1d6de0bad71f4f41927965001d34373c?Signature=JtNVwddHvKr%2FQvM%2F%2F5QWOBuzVhv3%2FxFRxh09SKm1zoi5eyHaxGjGtxl0mn3qRCVohHoaIxf8luyMM6%2FY9CXPBw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/31e362b1e4e84669be8fb843c90ed601 X-Content-Type-Options: nosniff { "data": { - "id": "47d9ee757a374838bf177c41cdfd9e9a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/47d9ee757a374838bf177c41cdfd9e9a?download=17a3ed53d97c4f95a5c3b318bfa16c51", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/31e362b1e4e84669be8fb843c90ed601?download=1d6de0bad71f4f41927965001d34373c", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "31e362b1e4e84669be8fb843c90ed601", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-private-proposal.http b/docs/source/tendering/cfaua/tutorial/upload-bid-private-proposal.http index 4c536be79a..70d6b51384 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-private-proposal.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-private-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 156 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 332 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal_top_secrets.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal_top_secrets.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/65f052828dd54fb59acfc5e598d928a2?Signature=E0CqtGPFdMjO9g5p4vwG7jhvZg22b7qaDqk3SyAmKd7mEvZTIMcsvlC8DDNxeMOGT5GcN9gsWjr686HWb5qUBw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c X-Content-Type-Options: nosniff { "data": { - "id": "8e2253d474d347369064f8d7f063ba5e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8e2253d474d347369064f8d7f063ba5e?download=9cdf7899f62f40fdaf9838e4676ab373", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/1dec1ea8c0da484a996dabdc76a5173c?download=65f052828dd54fb59acfc5e598d928a2", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "1dec1ea8c0da484a996dabdc76a5173c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-proposal.http b/docs/source/tendering/cfaua/tutorial/upload-bid-proposal.http index 74efadcc26..bf5f939404 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-proposal.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 330 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=NEdKlFv8dIYkh5x4jHpnFCyJwxPHJj95zsOVB8muMv%2FNpvG8xkR%2F4Yv1Xq%2FTYvA%2F1Qmc8lVI7%2FtHathCrgeJCg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8aac6a1034244423a16f6b72aa830d9d +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add X-Content-Type-Options: nosniff { "data": { - "id": "8aac6a1034244423a16f6b72aa830d9d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/documents/8aac6a1034244423a16f6b72aa830d9d?download=34be9b5887d544b489e5950ad70c1f52", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add?download=576584a3773a4d2799e4af16de7afaef", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e5d2ba0b59284460a205a7c7f9e09add", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http index f8919d84c7..131f143719 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http @@ -1,32 +1,32 @@ -PUT /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +PUT /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 159 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 335 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="qualification_document2.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "qualification_document2.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/9595b5d341ff4269b8f0df2aa37ce8de?Signature=3Ga1RfvHAxMRaLOEdy5vpgHdOFqICFqqJ1uAKMs41HPEr6tDbURYwwEPqBwyCuvpAqGnfxehqrrEWVNfltx7Bw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 200 OK Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "13a99a17b16648f5940131d68841cfc1", + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=c5f78a532c71475fb5000733bc9a911a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", - "confidentiality": "public", - "language": "uk" + "dateModified": "2021-03-16T00:00:00+02:00", + "confidentiality": "public" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal.http b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal.http index 57fcae5a42..9f0f3a5f4e 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 158 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 340 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="qualification_document.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "qualification_document.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a20f969f50684bc6ae8dcb13a0c41885?Signature=SBTFaMpeaxUmzOPFNdwq7GuoByuqW74OOGh%2F6hUUWF9GVo8BGrQNOBGSXXiHdHwUGIRrTAAv%2B80F1%2BcpvlsvCg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2 X-Content-Type-Options: nosniff { "data": { - "id": "13a99a17b16648f5940131d68841cfc1", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/qualification_documents/13a99a17b16648f5940131d68841cfc1?download=7cd719b4e43044d99c422791d2008a68", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=a20f969f50684bc6ae8dcb13a0c41885", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3eb8844179a441aea334906f1bf1d3c2", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/cfaua/tutorial/upload-prices-document.http b/docs/source/tendering/cfaua/tutorial/upload-prices-document.http index 7b82b3293f..28994b5f9d 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-prices-document.http +++ b/docs/source/tendering/cfaua/tutorial/upload-prices-document.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents?acc_token=c0c98c22f5594c6e99ba094d5d9a9b63 HTTP/1.0 +POST /api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents?acc_token=4e94ef2d4d854792b5f438b3a1f289b5 HTTP/1.0 Authorization: Bearer broker -Content-Length: 159 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 322 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="prices.xls" -Content-Type: application/vnd.ms-excel - - ------BOUNDARY-- - +{ + "data": { + "title": "prices.xls", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e0d4f99d68104577927f59cb6d8f7fab?Signature=H%2FH6MXAHCSMkSLuD61WFlSSwIapcP2OhNsLDKKtBrrMO0v2FZesuRpWRzulV5EKjGFv79FqBLJT%2F28s0BEnlBQ%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/exl" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/fa412b9bcd92484d9f8871b0ee0df130/financial_documents/eee02e6c3acd49ecabdc3b0a07cfe1f9 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/f70ee714fd4947ada7cf33eecfc598f5 X-Content-Type-Options: nosniff { "data": { - "id": "eee02e6c3acd49ecabdc3b0a07cfe1f9", "hash": "md5:00000000000000000000000000000000", "title": "prices.xls", - "format": "application/vnd.ms-excel", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/2caba79533ba45dd9a504a552daa0bb1?Signature=W4QPL618Rk4J6bFv6Wlgx5Bg3NX8tn7z76wCaPKJh8n451KK3K5q3KEKGY%2BN%2FjXg6DP%2B7cA3QstN97YDgklRBg%3D%3D&KeyID=a8968c46", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "format": "application/exl", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/financial_documents/f70ee714fd4947ada7cf33eecfc598f5?download=e0d4f99d68104577927f59cb6d8f7fab", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "f70ee714fd4947ada7cf33eecfc598f5", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-invalid-view.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-invalid-view.http index c8fe349b3b..b1018997c0 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-invalid-view.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-invalid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/9af11f4c77fd4f628c26842ce608d9c3?acc_token=b5604f3b514541e2b6a672c16b386e73 HTTP/1.0 +GET /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/1364aaf7ec90441692c76ccb24a623f8?acc_token=4b019a2cc7984b79b9f32ffd6b7af577 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "status": "invalid" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-update-view.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-update-view.http index 8114ae37fc..825dbcb7f2 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-update-view.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1-update-view.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/9af11f4c77fd4f628c26842ce608d9c3?acc_token=b5604f3b514541e2b6a672c16b386e73 HTTP/1.0 +PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/1364aaf7ec90441692c76ccb24a623f8?acc_token=4b019a2cc7984b79b9f32ffd6b7af577 HTTP/1.0 Authorization: Bearer broker Content-Length: 188 Content-Type: application/json @@ -21,34 +21,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "ДКП «Школяр»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 33", - "locality": "м. Вінниця", - "region": "Вінницька область", - "postalCode": "21100", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Сергій Олексюк", - "email": "soleksuk@gmail.com", - "telephone": "+380432216930" - }, - "scale": "micro" - } - ], + "id": "1364aaf7ec90441692c76ccb24a623f8", "date": "2021-03-16T00:00:00+02:00", - "id": "9af11f4c77fd4f628c26842ce608d9c3", "requirementResponses": [ { - "id": "92ee8e2dbc314bdeafc5bff56eb2883f", + "id": "d8cde36c35bc4fcf90d2fccbefb786ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -58,7 +35,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c3a00326f084ef3b3b9cfe537474725", + "id": "5497c186db744721a21d71491d44a4fe", "title": "Requirement response", "description": "some description", "requirement": { @@ -68,7 +45,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bfd16fcbad754933b129f85174476e34", + "id": "882567fe2c104bb08728228685aa2e7d", "title": "Requirement response", "description": "some description", "requirement": { @@ -78,7 +55,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "58b10e0fda5e4714a60bb49a2056b1e8", + "id": "a2257fac187e46a9ac08250b054e5fc4", "title": "Requirement response", "description": "some description", "requirement": { @@ -88,7 +65,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "62337bbb2df44102bd30958fcea5c740", + "id": "0a4df3bcbbb3496cae98239f9f167f51", "title": "Requirement response", "description": "some description", "requirement": { @@ -98,7 +75,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6ecf53b0694b46b9fca01e683fb7d9", + "id": "2e27d38a4dba46fbb153d89adb460bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -108,7 +85,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c60ac8c812f24f82ab5c4f550a8f244c", + "id": "616169fa165b40d381c39c1cb958fee2", "title": "Requirement response", "description": "some description", "requirement": { @@ -118,7 +95,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0242f3eac5f742a58e41375ba8ddd5db", + "id": "47d5abdd997347c9a3787cedb0bde089", "title": "Requirement response", "description": "some description", "requirement": { @@ -128,7 +105,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "319f5abede264fa0a677ace39d990b85", + "id": "73b6ae2da4f845ccb917026d9f3446e2", "title": "Requirement response", "description": "some description", "requirement": { @@ -138,7 +115,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "af459de8b3384dae9f9e3d198bf41900", + "id": "6d62efe405f945ca90a9bea992e1e674", "title": "Requirement response", "description": "some description", "requirement": { @@ -148,7 +125,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "afb0195d8c07495e99914365a331507f", + "id": "8f649009550f4cb7b93a93df769ff8d4", "title": "Requirement response", "description": "some description", "requirement": { @@ -158,16 +135,39 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, - "status": "pending", + "tenderers": [ + { + "name": "ДКП «Школяр»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137256" + }, + "address": { + "streetAddress": "вул. Островського, 33", + "locality": "м. Вінниця", + "region": "Вінницька область", + "postalCode": "21100", + "countryName": "Україна" + }, + "contactPoint": { + "email": "soleksuk@gmail.com", + "telephone": "+380432216930", + "name": "Сергій Олексюк" + }, + "scale": "micro" + } + ], "lotValues": [ { "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей»", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "selfQualified": true, + "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http index 3c5064cb3c..bcea538125 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http @@ -42,7 +42,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/9af11f4c77fd4f628c26842ce608d9c3 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/1364aaf7ec90441692c76ccb24a623f8 X-Content-Type-Options: nosniff { "data": { @@ -50,9 +50,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -62,29 +62,33 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "9af11f4c77fd4f628c26842ce608d9c3", - "selfQualified": true, - "status": "draft", "lotValues": [ { "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, + "status": "draft", + "id": "1364aaf7ec90441692c76ccb24a623f8", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "b5604f3b514541e2b6a672c16b386e73", - "transfer": "c8415282d7994eaba8560801e197aea0" + "token": "4b019a2cc7984b79b9f32ffd6b7af577", + "transfer": "0e82a5225b374e7f9e97f92f44c9fa56" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2-update-view.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2-update-view.http index 2619e44127..65a165d28c 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2-update-view.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2-update-view.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/1a988edb87ac4900ab4f425b3e5ae9de?acc_token=9409f298442c431ab71ee7969e91f5a3 HTTP/1.0 +PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/5d17e351e54f4949ac1c1cee9cece058?acc_token=3f0194663d8846f4932da591af9fd4b8 HTTP/1.0 Authorization: Bearer broker Content-Length: 98 Content-Type: application/json @@ -20,34 +20,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "ДКП «Книга»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 34", - "locality": "м. Львів", - "region": "Львівська область", - "postalCode": "79013", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Андрій Олексюк", - "email": "aagt@gmail.com", - "telephone": "+380322916930" - }, - "scale": "sme" - } - ], + "id": "5d17e351e54f4949ac1c1cee9cece058", "date": "2021-03-16T00:00:00+02:00", - "id": "1a988edb87ac4900ab4f425b3e5ae9de", "requirementResponses": [ { - "id": "acb76db7015c439b9d4d4300a87d47ac", + "id": "fb162f1dae3d4153afca08e73a016978", "title": "Requirement response", "description": "some description", "requirement": { @@ -57,7 +34,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ada88bab3a34d15907dab12ef0aac20", + "id": "07879c1b34ab4cc1bb1cf05ff100cb1e", "title": "Requirement response", "description": "some description", "requirement": { @@ -67,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5ae8cbdf328840e1b1f077e1d17ad94c", + "id": "e65264af57424a2ba73509fefb5ce0da", "title": "Requirement response", "description": "some description", "requirement": { @@ -77,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73027024991c4a5d8a1f435843a712c7", + "id": "f76e8ea4702140208d9fb9b8f7c3f590", "title": "Requirement response", "description": "some description", "requirement": { @@ -87,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f9f11adfc5ab4d46b2312989efca9072", + "id": "a78834dd249c482497d955eccb9713ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -97,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "950167c71aa74d149a2ca93b2ea2bb6a", + "id": "d74e366eb5e04e2e8f74aee44355c69e", "title": "Requirement response", "description": "some description", "requirement": { @@ -107,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "858cd4e334e448f998581a8cd7aae7df", + "id": "a12ab0fafdfd479bbf68dbd6d2bf4da8", "title": "Requirement response", "description": "some description", "requirement": { @@ -117,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3a541f302cb45d4b4c29f4ca52df21c", + "id": "e4353db5afd844968a9be070550abc2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -127,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "466caa67bb484c4e975c20706074d590", + "id": "3fb4cf6b90644ba0b4d6e69728a953b8", "title": "Requirement response", "description": "some description", "requirement": { @@ -137,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ec62b76f41b450c84302ef3793646b6", + "id": "2e63c0c59df04b3fbd3b28253d312920", "title": "Requirement response", "description": "some description", "requirement": { @@ -147,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fb2372f1f454b7ba84c3ca6417b72d6", + "id": "fd2a4c18a3734ac499712d2cee92fd5e", "title": "Requirement response", "description": "some description", "requirement": { @@ -157,15 +134,38 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, - "status": "pending", + "tenderers": [ + { + "name": "ДКП «Книга»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137226" + }, + "address": { + "streetAddress": "вул. Островського, 34", + "locality": "м. Львів", + "region": "Львівська область", + "postalCode": "79013", + "countryName": "Україна" + }, + "contactPoint": { + "email": "aagt@gmail.com", + "telephone": "+380322916930", + "name": "Андрій Олексюк" + }, + "scale": "sme" + } + ], "lotValues": [ { "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "selfQualified": true, + "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http index 63e6049127..a79cffcf0d 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http @@ -45,7 +45,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/e2df02eb6d714e1a83b790a96d51f777 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/efd32c624d1c490a9d4e31ec0301cfa8 X-Content-Type-Options: nosniff { "data": { @@ -53,9 +53,9 @@ X-Content-Type-Options: nosniff { "name": "«Снігур»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137227", - "uri": "http://www.sc.gov.ua/" + "id": "00137227" }, "address": { "streetAddress": "вул. Островського, 35", @@ -65,34 +65,38 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Іваненко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Іваненко" }, "scale": "mid" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "e2df02eb6d714e1a83b790a96d51f777", - "selfQualified": true, - "status": "draft", "lotValues": [ { "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" }, { "relatedLot": "a18842d9d4a349c799437d0102e40965", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Укр Прінт», Україна", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, + "status": "draft", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "8805e18d9fc448c29d6afafdbabe6561", - "transfer": "cbf20484eeff4ce19cc03e72ce7a776b" + "token": "cbe60cbe3ca24030a69d9887ffc03fa1", + "transfer": "3f1a6d04abad4b47af019ed7d852d4f7" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot3-update-view.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot3-update-view.http index 593a16298d..1f27f6f822 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot3-update-view.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot3-update-view.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/e2df02eb6d714e1a83b790a96d51f777?acc_token=8805e18d9fc448c29d6afafdbabe6561 HTTP/1.0 +PATCH /api/2.5/tenders/d59e1783dc5149518a3c20a016d652c6/bids/efd32c624d1c490a9d4e31ec0301cfa8?acc_token=cbe60cbe3ca24030a69d9887ffc03fa1 HTTP/1.0 Authorization: Bearer broker Content-Length: 98 Content-Type: application/json @@ -20,34 +20,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "«Снігур»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137227", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 35", - "locality": "м. Львів", - "region": "Львівська область", - "postalCode": "79013", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Іван Іваненко", - "email": "fake@mail.com", - "telephone": "+380322123456" - }, - "scale": "mid" - } - ], + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "date": "2021-03-16T00:00:00+02:00", - "id": "e2df02eb6d714e1a83b790a96d51f777", "requirementResponses": [ { - "id": "ccdd83479ad142158f3d7c5f998b7626", + "id": "26b90b9029a449cb9ec5af9e20d10b86", "title": "Requirement response", "description": "some description", "requirement": { @@ -57,7 +34,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "78853e9a42c5411ba5088a1458e07d7a", + "id": "da81b9752da64bd9be435815262f4016", "title": "Requirement response", "description": "some description", "requirement": { @@ -67,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "283c7e503f2e4485966ae7216f1337a6", + "id": "63beebe83cac4c87b6b739943d71d022", "title": "Requirement response", "description": "some description", "requirement": { @@ -77,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3a8742cf775c41b387996752ae306ad4", + "id": "b30f7e45d9904b3787a3a99063406f46", "title": "Requirement response", "description": "some description", "requirement": { @@ -87,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c57eccd488e406d80140fd960b16f48", + "id": "49ed38ed30334d5cb0db742bba6e451d", "title": "Requirement response", "description": "some description", "requirement": { @@ -97,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f781f17f203453b9b4c3465f9538c28", + "id": "ea9711fdc285477caa3b752f84fbbd26", "title": "Requirement response", "description": "some description", "requirement": { @@ -107,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e3c39f0534854615bcea0d2cb5d89de9", + "id": "b220b04beb1b4bacbedf615b8f88470c", "title": "Requirement response", "description": "some description", "requirement": { @@ -117,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3b1ea0b0f004ebbbaa3fac8d8f946cc", + "id": "5e8c4cf8393e4c85aa43019b00f8ef39", "title": "Requirement response", "description": "some description", "requirement": { @@ -127,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c155405ffcbf4b28acff1a5a24400036", + "id": "1e27aede623f4f4798b6fc669032053c", "title": "Requirement response", "description": "some description", "requirement": { @@ -137,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6acbf47a8d754c9a9b5129120e63b1aa", + "id": "fe21b78d98b1431695823b988f670ce7", "title": "Requirement response", "description": "some description", "requirement": { @@ -147,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6b6c9b2eda4d5fac113507e7ed42e4", + "id": "c9d63c0f615b4a61a98dd8c6597150d0", "title": "Requirement response", "description": "some description", "requirement": { @@ -157,15 +134,38 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, - "status": "pending", + "tenderers": [ + { + "name": "«Снігур»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137227" + }, + "address": { + "streetAddress": "вул. Островського, 35", + "locality": "м. Львів", + "region": "Львівська область", + "postalCode": "79013", + "countryName": "Україна" + }, + "contactPoint": { + "email": "fake@mail.com", + "telephone": "+380322123456", + "name": "Іван Іваненко" + }, + "scale": "mid" + } + ], "lotValues": [ { "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } - ] + ], + "selfQualified": true, + "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/qualifications-view.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/qualifications-view.http index 00165e9147..f40e6fa7c6 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/qualifications-view.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/qualifications-view.http @@ -9,7 +9,7 @@ X-Content-Type-Options: nosniff "data": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -27,7 +27,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http index a5b7d1f3fc..0c6017b064 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http @@ -45,7 +45,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3353c0f1c0a0447f8f8f07367844b22f/bids/8cb0fbb8d4064e8fbe50a895e375ed38 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3353c0f1c0a0447f8f8f07367844b22f/bids/86fe022865a240c1bd311525ec54152c X-Content-Type-Options: nosniff { "data": { @@ -53,9 +53,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -65,15 +65,14 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "8cb0fbb8d4064e8fbe50a895e375ed38", + "parameters": [], "lotValues": [ { "value": { @@ -82,17 +81,23 @@ X-Content-Type-Options: nosniff "valueAddedTaxIncluded": true }, "relatedLot": "150e2750fa2942ce9315e80ddf78a62a", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "pending" + "status": "pending", + "date": "2021-03-16T00:00:00+02:00" } ], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "86fe022865a240c1bd311525ec54152c", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "ce40d654958047cb9c97c7ebd1ca7566", - "transfer": "5a7b363f99aa4e7aa5cb71cbbdab92a3" + "token": "e83a503ee76046a69588df8d588f49af", + "transfer": "5e8aba9c445740618b71795b81ffda10" } } diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-pending.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-pending.http index c3a9796c7e..c9d8831baa 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-pending.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-pending.http @@ -653,7 +653,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -662,7 +662,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -671,7 +671,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -711,7 +711,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "status": "active" }, { @@ -738,7 +738,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1a988edb87ac4900ab4f425b3e5ae9de", + "id": "5d17e351e54f4949ac1c1cee9cece058", "status": "active" }, { @@ -765,7 +765,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "e2df02eb6d714e1a83b790a96d51f777", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "status": "active" } ], diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-waiting.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-waiting.http index 9e2a5f3903..0879e84a58 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-waiting.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/stage2-waiting.http @@ -661,7 +661,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -670,7 +670,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -679,7 +679,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -719,7 +719,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "status": "active" }, { @@ -746,7 +746,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1a988edb87ac4900ab4f425b3e5ae9de", + "id": "5d17e351e54f4949ac1c1cee9cece058", "status": "active" }, { @@ -773,7 +773,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "e2df02eb6d714e1a83b790a96d51f777", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "status": "active" } ], diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-activate-qualifications.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-activate-qualifications.http index c474723593..1b926782bb 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-activate-qualifications.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-activate-qualifications.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http index ab3d8d659b..dbb50e3edc 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http @@ -661,7 +661,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -670,7 +670,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -679,7 +679,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -719,10 +719,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "requirementResponses": [ { - "id": "92ee8e2dbc314bdeafc5bff56eb2883f", + "id": "d8cde36c35bc4fcf90d2fccbefb786ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -732,7 +732,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c3a00326f084ef3b3b9cfe537474725", + "id": "5497c186db744721a21d71491d44a4fe", "title": "Requirement response", "description": "some description", "requirement": { @@ -742,7 +742,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bfd16fcbad754933b129f85174476e34", + "id": "882567fe2c104bb08728228685aa2e7d", "title": "Requirement response", "description": "some description", "requirement": { @@ -752,7 +752,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "58b10e0fda5e4714a60bb49a2056b1e8", + "id": "a2257fac187e46a9ac08250b054e5fc4", "title": "Requirement response", "description": "some description", "requirement": { @@ -762,7 +762,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "62337bbb2df44102bd30958fcea5c740", + "id": "0a4df3bcbbb3496cae98239f9f167f51", "title": "Requirement response", "description": "some description", "requirement": { @@ -772,7 +772,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6ecf53b0694b46b9fca01e683fb7d9", + "id": "2e27d38a4dba46fbb153d89adb460bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -782,7 +782,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c60ac8c812f24f82ab5c4f550a8f244c", + "id": "616169fa165b40d381c39c1cb958fee2", "title": "Requirement response", "description": "some description", "requirement": { @@ -792,7 +792,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0242f3eac5f742a58e41375ba8ddd5db", + "id": "47d5abdd997347c9a3787cedb0bde089", "title": "Requirement response", "description": "some description", "requirement": { @@ -802,7 +802,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "319f5abede264fa0a677ace39d990b85", + "id": "73b6ae2da4f845ccb917026d9f3446e2", "title": "Requirement response", "description": "some description", "requirement": { @@ -812,7 +812,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "af459de8b3384dae9f9e3d198bf41900", + "id": "6d62efe405f945ca90a9bea992e1e674", "title": "Requirement response", "description": "some description", "requirement": { @@ -822,7 +822,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "afb0195d8c07495e99914365a331507f", + "id": "8f649009550f4cb7b93a93df769ff8d4", "title": "Requirement response", "description": "some description", "requirement": { @@ -858,10 +858,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1a988edb87ac4900ab4f425b3e5ae9de", + "id": "5d17e351e54f4949ac1c1cee9cece058", "requirementResponses": [ { - "id": "acb76db7015c439b9d4d4300a87d47ac", + "id": "fb162f1dae3d4153afca08e73a016978", "title": "Requirement response", "description": "some description", "requirement": { @@ -871,7 +871,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ada88bab3a34d15907dab12ef0aac20", + "id": "07879c1b34ab4cc1bb1cf05ff100cb1e", "title": "Requirement response", "description": "some description", "requirement": { @@ -881,7 +881,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5ae8cbdf328840e1b1f077e1d17ad94c", + "id": "e65264af57424a2ba73509fefb5ce0da", "title": "Requirement response", "description": "some description", "requirement": { @@ -891,7 +891,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73027024991c4a5d8a1f435843a712c7", + "id": "f76e8ea4702140208d9fb9b8f7c3f590", "title": "Requirement response", "description": "some description", "requirement": { @@ -901,7 +901,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f9f11adfc5ab4d46b2312989efca9072", + "id": "a78834dd249c482497d955eccb9713ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -911,7 +911,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "950167c71aa74d149a2ca93b2ea2bb6a", + "id": "d74e366eb5e04e2e8f74aee44355c69e", "title": "Requirement response", "description": "some description", "requirement": { @@ -921,7 +921,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "858cd4e334e448f998581a8cd7aae7df", + "id": "a12ab0fafdfd479bbf68dbd6d2bf4da8", "title": "Requirement response", "description": "some description", "requirement": { @@ -931,7 +931,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3a541f302cb45d4b4c29f4ca52df21c", + "id": "e4353db5afd844968a9be070550abc2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -941,7 +941,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "466caa67bb484c4e975c20706074d590", + "id": "3fb4cf6b90644ba0b4d6e69728a953b8", "title": "Requirement response", "description": "some description", "requirement": { @@ -951,7 +951,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ec62b76f41b450c84302ef3793646b6", + "id": "2e63c0c59df04b3fbd3b28253d312920", "title": "Requirement response", "description": "some description", "requirement": { @@ -961,7 +961,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fb2372f1f454b7ba84c3ca6417b72d6", + "id": "fd2a4c18a3734ac499712d2cee92fd5e", "title": "Requirement response", "description": "some description", "requirement": { @@ -997,10 +997,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "e2df02eb6d714e1a83b790a96d51f777", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "requirementResponses": [ { - "id": "ccdd83479ad142158f3d7c5f998b7626", + "id": "26b90b9029a449cb9ec5af9e20d10b86", "title": "Requirement response", "description": "some description", "requirement": { @@ -1010,7 +1010,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "78853e9a42c5411ba5088a1458e07d7a", + "id": "da81b9752da64bd9be435815262f4016", "title": "Requirement response", "description": "some description", "requirement": { @@ -1020,7 +1020,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "283c7e503f2e4485966ae7216f1337a6", + "id": "63beebe83cac4c87b6b739943d71d022", "title": "Requirement response", "description": "some description", "requirement": { @@ -1030,7 +1030,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3a8742cf775c41b387996752ae306ad4", + "id": "b30f7e45d9904b3787a3a99063406f46", "title": "Requirement response", "description": "some description", "requirement": { @@ -1040,7 +1040,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c57eccd488e406d80140fd960b16f48", + "id": "49ed38ed30334d5cb0db742bba6e451d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1050,7 +1050,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f781f17f203453b9b4c3465f9538c28", + "id": "ea9711fdc285477caa3b752f84fbbd26", "title": "Requirement response", "description": "some description", "requirement": { @@ -1060,7 +1060,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e3c39f0534854615bcea0d2cb5d89de9", + "id": "b220b04beb1b4bacbedf615b8f88470c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1070,7 +1070,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3b1ea0b0f004ebbbaa3fac8d8f946cc", + "id": "5e8c4cf8393e4c85aa43019b00f8ef39", "title": "Requirement response", "description": "some description", "requirement": { @@ -1080,7 +1080,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c155405ffcbf4b28acff1a5a24400036", + "id": "1e27aede623f4f4798b6fc669032053c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1090,7 +1090,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6acbf47a8d754c9a9b5129120e63b1aa", + "id": "fe21b78d98b1431695823b988f670ce7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1100,7 +1100,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6b6c9b2eda4d5fac113507e7ed42e4", + "id": "c9d63c0f615b4a61a98dd8c6597150d0", "title": "Requirement response", "description": "some description", "requirement": { diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification.http index 7eab01ec1c..ecc45cba19 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender-view-pre-qualification.http @@ -653,7 +653,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -662,7 +662,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -671,7 +671,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -710,10 +710,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "requirementResponses": [ { - "id": "92ee8e2dbc314bdeafc5bff56eb2883f", + "id": "d8cde36c35bc4fcf90d2fccbefb786ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -723,7 +723,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c3a00326f084ef3b3b9cfe537474725", + "id": "5497c186db744721a21d71491d44a4fe", "title": "Requirement response", "description": "some description", "requirement": { @@ -733,7 +733,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bfd16fcbad754933b129f85174476e34", + "id": "882567fe2c104bb08728228685aa2e7d", "title": "Requirement response", "description": "some description", "requirement": { @@ -743,7 +743,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "58b10e0fda5e4714a60bb49a2056b1e8", + "id": "a2257fac187e46a9ac08250b054e5fc4", "title": "Requirement response", "description": "some description", "requirement": { @@ -753,7 +753,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "62337bbb2df44102bd30958fcea5c740", + "id": "0a4df3bcbbb3496cae98239f9f167f51", "title": "Requirement response", "description": "some description", "requirement": { @@ -763,7 +763,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6ecf53b0694b46b9fca01e683fb7d9", + "id": "2e27d38a4dba46fbb153d89adb460bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -773,7 +773,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c60ac8c812f24f82ab5c4f550a8f244c", + "id": "616169fa165b40d381c39c1cb958fee2", "title": "Requirement response", "description": "some description", "requirement": { @@ -783,7 +783,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0242f3eac5f742a58e41375ba8ddd5db", + "id": "47d5abdd997347c9a3787cedb0bde089", "title": "Requirement response", "description": "some description", "requirement": { @@ -793,7 +793,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "319f5abede264fa0a677ace39d990b85", + "id": "73b6ae2da4f845ccb917026d9f3446e2", "title": "Requirement response", "description": "some description", "requirement": { @@ -803,7 +803,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "af459de8b3384dae9f9e3d198bf41900", + "id": "6d62efe405f945ca90a9bea992e1e674", "title": "Requirement response", "description": "some description", "requirement": { @@ -813,7 +813,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "afb0195d8c07495e99914365a331507f", + "id": "8f649009550f4cb7b93a93df769ff8d4", "title": "Requirement response", "description": "some description", "requirement": { @@ -849,10 +849,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1a988edb87ac4900ab4f425b3e5ae9de", + "id": "5d17e351e54f4949ac1c1cee9cece058", "requirementResponses": [ { - "id": "acb76db7015c439b9d4d4300a87d47ac", + "id": "fb162f1dae3d4153afca08e73a016978", "title": "Requirement response", "description": "some description", "requirement": { @@ -862,7 +862,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ada88bab3a34d15907dab12ef0aac20", + "id": "07879c1b34ab4cc1bb1cf05ff100cb1e", "title": "Requirement response", "description": "some description", "requirement": { @@ -872,7 +872,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5ae8cbdf328840e1b1f077e1d17ad94c", + "id": "e65264af57424a2ba73509fefb5ce0da", "title": "Requirement response", "description": "some description", "requirement": { @@ -882,7 +882,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73027024991c4a5d8a1f435843a712c7", + "id": "f76e8ea4702140208d9fb9b8f7c3f590", "title": "Requirement response", "description": "some description", "requirement": { @@ -892,7 +892,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f9f11adfc5ab4d46b2312989efca9072", + "id": "a78834dd249c482497d955eccb9713ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -902,7 +902,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "950167c71aa74d149a2ca93b2ea2bb6a", + "id": "d74e366eb5e04e2e8f74aee44355c69e", "title": "Requirement response", "description": "some description", "requirement": { @@ -912,7 +912,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "858cd4e334e448f998581a8cd7aae7df", + "id": "a12ab0fafdfd479bbf68dbd6d2bf4da8", "title": "Requirement response", "description": "some description", "requirement": { @@ -922,7 +922,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3a541f302cb45d4b4c29f4ca52df21c", + "id": "e4353db5afd844968a9be070550abc2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -932,7 +932,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "466caa67bb484c4e975c20706074d590", + "id": "3fb4cf6b90644ba0b4d6e69728a953b8", "title": "Requirement response", "description": "some description", "requirement": { @@ -942,7 +942,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ec62b76f41b450c84302ef3793646b6", + "id": "2e63c0c59df04b3fbd3b28253d312920", "title": "Requirement response", "description": "some description", "requirement": { @@ -952,7 +952,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fb2372f1f454b7ba84c3ca6417b72d6", + "id": "fd2a4c18a3734ac499712d2cee92fd5e", "title": "Requirement response", "description": "some description", "requirement": { @@ -988,10 +988,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "e2df02eb6d714e1a83b790a96d51f777", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "requirementResponses": [ { - "id": "ccdd83479ad142158f3d7c5f998b7626", + "id": "26b90b9029a449cb9ec5af9e20d10b86", "title": "Requirement response", "description": "some description", "requirement": { @@ -1001,7 +1001,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "78853e9a42c5411ba5088a1458e07d7a", + "id": "da81b9752da64bd9be435815262f4016", "title": "Requirement response", "description": "some description", "requirement": { @@ -1011,7 +1011,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "283c7e503f2e4485966ae7216f1337a6", + "id": "63beebe83cac4c87b6b739943d71d022", "title": "Requirement response", "description": "some description", "requirement": { @@ -1021,7 +1021,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3a8742cf775c41b387996752ae306ad4", + "id": "b30f7e45d9904b3787a3a99063406f46", "title": "Requirement response", "description": "some description", "requirement": { @@ -1031,7 +1031,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c57eccd488e406d80140fd960b16f48", + "id": "49ed38ed30334d5cb0db742bba6e451d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1041,7 +1041,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f781f17f203453b9b4c3465f9538c28", + "id": "ea9711fdc285477caa3b752f84fbbd26", "title": "Requirement response", "description": "some description", "requirement": { @@ -1051,7 +1051,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e3c39f0534854615bcea0d2cb5d89de9", + "id": "b220b04beb1b4bacbedf615b8f88470c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1061,7 +1061,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3b1ea0b0f004ebbbaa3fac8d8f946cc", + "id": "5e8c4cf8393e4c85aa43019b00f8ef39", "title": "Requirement response", "description": "some description", "requirement": { @@ -1071,7 +1071,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c155405ffcbf4b28acff1a5a24400036", + "id": "1e27aede623f4f4798b6fc669032053c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1081,7 +1081,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6acbf47a8d754c9a9b5129120e63b1aa", + "id": "fe21b78d98b1431695823b988f670ce7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1091,7 +1091,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6b6c9b2eda4d5fac113507e7ed42e4", + "id": "c9d63c0f615b4a61a98dd8c6597150d0", "title": "Requirement response", "description": "some description", "requirement": { diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender_stage1_complete.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender_stage1_complete.http index ee43a57218..ee5a68728f 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender_stage1_complete.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/tender_stage1_complete.http @@ -653,7 +653,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "91fea63461584bbfb51af91ff7d999ed", - "bidID": "9af11f4c77fd4f628c26842ce608d9c3", + "bidID": "1364aaf7ec90441692c76ccb24a623f8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -662,7 +662,7 @@ X-Content-Type-Options: nosniff }, { "id": "073ef715e82d48c79e266d118dfab12b", - "bidID": "1a988edb87ac4900ab4f425b3e5ae9de", + "bidID": "5d17e351e54f4949ac1c1cee9cece058", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -671,7 +671,7 @@ X-Content-Type-Options: nosniff }, { "id": "23909464124544bf8cc3423271906500", - "bidID": "e2df02eb6d714e1a83b790a96d51f777", + "bidID": "efd32c624d1c490a9d4e31ec0301cfa8", "lotID": "150e2750fa2942ce9315e80ddf78a62a", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -712,10 +712,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "9af11f4c77fd4f628c26842ce608d9c3", + "id": "1364aaf7ec90441692c76ccb24a623f8", "requirementResponses": [ { - "id": "92ee8e2dbc314bdeafc5bff56eb2883f", + "id": "d8cde36c35bc4fcf90d2fccbefb786ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -725,7 +725,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5c3a00326f084ef3b3b9cfe537474725", + "id": "5497c186db744721a21d71491d44a4fe", "title": "Requirement response", "description": "some description", "requirement": { @@ -735,7 +735,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bfd16fcbad754933b129f85174476e34", + "id": "882567fe2c104bb08728228685aa2e7d", "title": "Requirement response", "description": "some description", "requirement": { @@ -745,7 +745,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "58b10e0fda5e4714a60bb49a2056b1e8", + "id": "a2257fac187e46a9ac08250b054e5fc4", "title": "Requirement response", "description": "some description", "requirement": { @@ -755,7 +755,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "62337bbb2df44102bd30958fcea5c740", + "id": "0a4df3bcbbb3496cae98239f9f167f51", "title": "Requirement response", "description": "some description", "requirement": { @@ -765,7 +765,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6ecf53b0694b46b9fca01e683fb7d9", + "id": "2e27d38a4dba46fbb153d89adb460bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -775,7 +775,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c60ac8c812f24f82ab5c4f550a8f244c", + "id": "616169fa165b40d381c39c1cb958fee2", "title": "Requirement response", "description": "some description", "requirement": { @@ -785,7 +785,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0242f3eac5f742a58e41375ba8ddd5db", + "id": "47d5abdd997347c9a3787cedb0bde089", "title": "Requirement response", "description": "some description", "requirement": { @@ -795,7 +795,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "319f5abede264fa0a677ace39d990b85", + "id": "73b6ae2da4f845ccb917026d9f3446e2", "title": "Requirement response", "description": "some description", "requirement": { @@ -805,7 +805,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "af459de8b3384dae9f9e3d198bf41900", + "id": "6d62efe405f945ca90a9bea992e1e674", "title": "Requirement response", "description": "some description", "requirement": { @@ -815,7 +815,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "afb0195d8c07495e99914365a331507f", + "id": "8f649009550f4cb7b93a93df769ff8d4", "title": "Requirement response", "description": "some description", "requirement": { @@ -861,10 +861,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "1a988edb87ac4900ab4f425b3e5ae9de", + "id": "5d17e351e54f4949ac1c1cee9cece058", "requirementResponses": [ { - "id": "acb76db7015c439b9d4d4300a87d47ac", + "id": "fb162f1dae3d4153afca08e73a016978", "title": "Requirement response", "description": "some description", "requirement": { @@ -874,7 +874,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ada88bab3a34d15907dab12ef0aac20", + "id": "07879c1b34ab4cc1bb1cf05ff100cb1e", "title": "Requirement response", "description": "some description", "requirement": { @@ -884,7 +884,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5ae8cbdf328840e1b1f077e1d17ad94c", + "id": "e65264af57424a2ba73509fefb5ce0da", "title": "Requirement response", "description": "some description", "requirement": { @@ -894,7 +894,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73027024991c4a5d8a1f435843a712c7", + "id": "f76e8ea4702140208d9fb9b8f7c3f590", "title": "Requirement response", "description": "some description", "requirement": { @@ -904,7 +904,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f9f11adfc5ab4d46b2312989efca9072", + "id": "a78834dd249c482497d955eccb9713ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -914,7 +914,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "950167c71aa74d149a2ca93b2ea2bb6a", + "id": "d74e366eb5e04e2e8f74aee44355c69e", "title": "Requirement response", "description": "some description", "requirement": { @@ -924,7 +924,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "858cd4e334e448f998581a8cd7aae7df", + "id": "a12ab0fafdfd479bbf68dbd6d2bf4da8", "title": "Requirement response", "description": "some description", "requirement": { @@ -934,7 +934,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3a541f302cb45d4b4c29f4ca52df21c", + "id": "e4353db5afd844968a9be070550abc2e", "title": "Requirement response", "description": "some description", "requirement": { @@ -944,7 +944,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "466caa67bb484c4e975c20706074d590", + "id": "3fb4cf6b90644ba0b4d6e69728a953b8", "title": "Requirement response", "description": "some description", "requirement": { @@ -954,7 +954,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6ec62b76f41b450c84302ef3793646b6", + "id": "2e63c0c59df04b3fbd3b28253d312920", "title": "Requirement response", "description": "some description", "requirement": { @@ -964,7 +964,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fb2372f1f454b7ba84c3ca6417b72d6", + "id": "fd2a4c18a3734ac499712d2cee92fd5e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1009,10 +1009,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "e2df02eb6d714e1a83b790a96d51f777", + "id": "efd32c624d1c490a9d4e31ec0301cfa8", "requirementResponses": [ { - "id": "ccdd83479ad142158f3d7c5f998b7626", + "id": "26b90b9029a449cb9ec5af9e20d10b86", "title": "Requirement response", "description": "some description", "requirement": { @@ -1022,7 +1022,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "78853e9a42c5411ba5088a1458e07d7a", + "id": "da81b9752da64bd9be435815262f4016", "title": "Requirement response", "description": "some description", "requirement": { @@ -1032,7 +1032,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "283c7e503f2e4485966ae7216f1337a6", + "id": "63beebe83cac4c87b6b739943d71d022", "title": "Requirement response", "description": "some description", "requirement": { @@ -1042,7 +1042,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3a8742cf775c41b387996752ae306ad4", + "id": "b30f7e45d9904b3787a3a99063406f46", "title": "Requirement response", "description": "some description", "requirement": { @@ -1052,7 +1052,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c57eccd488e406d80140fd960b16f48", + "id": "49ed38ed30334d5cb0db742bba6e451d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1062,7 +1062,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f781f17f203453b9b4c3465f9538c28", + "id": "ea9711fdc285477caa3b752f84fbbd26", "title": "Requirement response", "description": "some description", "requirement": { @@ -1072,7 +1072,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e3c39f0534854615bcea0d2cb5d89de9", + "id": "b220b04beb1b4bacbedf615b8f88470c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1082,7 +1082,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b3b1ea0b0f004ebbbaa3fac8d8f946cc", + "id": "5e8c4cf8393e4c85aa43019b00f8ef39", "title": "Requirement response", "description": "some description", "requirement": { @@ -1092,7 +1092,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c155405ffcbf4b28acff1a5a24400036", + "id": "1e27aede623f4f4798b6fc669032053c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1102,7 +1102,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6acbf47a8d754c9a9b5129120e63b1aa", + "id": "fe21b78d98b1431695823b988f670ce7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1112,7 +1112,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0c6b6c9b2eda4d5fac113507e7ed42e4", + "id": "c9d63c0f615b4a61a98dd8c6597150d0", "title": "Requirement response", "description": "some description", "requirement": { diff --git a/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http index df5226b8aa..be72d44a58 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -15,34 +15,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "ДКП «Школяр»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 33", - "locality": "м. Вінниця", - "region": "Вінницька область", - "postalCode": "21100", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Сергій Олексюк", - "email": "soleksuk@gmail.com", - "telephone": "+380432216930" - }, - "scale": "micro" - } - ], + "id": "fd70953552a346ecbb2d7f86de89b253", "date": "2021-03-16T00:00:00+02:00", - "id": "d46e2205e6014884beff5e4df83a4e19", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -52,7 +29,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -62,7 +39,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -72,7 +49,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -82,7 +59,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -92,7 +69,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -102,7 +79,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -112,7 +89,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -122,7 +99,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -132,7 +109,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -142,7 +119,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,8 +129,36 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, + "tenderers": [ + { + "name": "ДКП «Школяр»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137256" + }, + "address": { + "streetAddress": "вул. Островського, 33", + "locality": "м. Вінниця", + "region": "Вінницька область", + "postalCode": "21100", + "countryName": "Україна" + }, + "contactPoint": { + "email": "soleksuk@gmail.com", + "telephone": "+380432216930", + "name": "Сергій Олексюк" + }, + "scale": "micro" + } + ], + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "subcontractingDetails": "ДКП «Орфей», Україна", + "selfQualified": true, "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http index 78d5dc9641..06e334a265 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 14504 Content-Type: application/json @@ -115,34 +115,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "ДКП «Школяр»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 33", - "locality": "м. Вінниця", - "region": "Вінницька область", - "postalCode": "21100", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Сергій Олексюк", - "email": "soleksuk@gmail.com", - "telephone": "+380432216930" - }, - "scale": "micro" - } - ], + "id": "fd70953552a346ecbb2d7f86de89b253", "date": "2021-03-16T00:00:00+02:00", - "id": "d46e2205e6014884beff5e4df83a4e19", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,7 +129,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -162,7 +139,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -172,7 +149,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -182,7 +159,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -192,7 +169,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -202,7 +179,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -212,7 +189,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -222,7 +199,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -232,7 +209,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -242,7 +219,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -252,8 +229,36 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, + "tenderers": [ + { + "name": "ДКП «Школяр»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137256" + }, + "address": { + "streetAddress": "вул. Островського, 33", + "locality": "м. Вінниця", + "region": "Вінницька область", + "postalCode": "21100", + "countryName": "Україна" + }, + "contactPoint": { + "email": "soleksuk@gmail.com", + "telephone": "+380432216930", + "name": "Сергій Олексюк" + }, + "scale": "micro" + } + ], + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "subcontractingDetails": "ДКП «Орфей», Україна", + "selfQualified": true, "status": "draft" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification1.http b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification1.http index e7e134a359..ca77115283 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification1.http +++ b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification1.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification2.http b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification2.http index acf460afcd..2724e1a3b6 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification2.http +++ b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification2.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification4.http b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification4.http index d706ac21e3..b0449394a0 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/approve-qualification4.http +++ b/docs/source/tendering/competitivedialogue/tutorial/approve-qualification4.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http index 8a387dc38c..545d6046a9 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -15,34 +15,11 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "tenderers": [ - { - "name": "ДКП «Школяр»", - "identifier": { - "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" - }, - "address": { - "streetAddress": "вул. Островського, 33", - "locality": "м. Вінниця", - "region": "Вінницька область", - "postalCode": "21100", - "countryName": "Україна" - }, - "contactPoint": { - "name": "Сергій Олексюк", - "email": "soleksuk@gmail.com", - "telephone": "+380432216930" - }, - "scale": "micro" - } - ], + "id": "fd70953552a346ecbb2d7f86de89b253", "date": "2021-03-16T00:00:00+02:00", - "id": "d46e2205e6014884beff5e4df83a4e19", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -52,7 +29,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -62,7 +39,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -72,7 +49,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -82,7 +59,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -92,7 +69,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -102,7 +79,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -112,7 +89,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -122,7 +99,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -132,7 +109,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -142,7 +119,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,51 +129,74 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "pending", + "tenderers": [ + { + "name": "ДКП «Школяр»", + "identifier": { + "uri": "http://www.sc.gov.ua/", + "scheme": "UA-EDR", + "id": "00137256" + }, + "address": { + "streetAddress": "вул. Островського, 33", + "locality": "м. Вінниця", + "region": "Вінницька область", + "postalCode": "21100", + "countryName": "Україна" + }, + "contactPoint": { + "email": "soleksuk@gmail.com", + "telephone": "+380432216930", + "name": "Сергій Олексюк" + }, + "scale": "micro" + } + ], "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/152b6f75a906449c8301d586f336df98?download=650a2e2f970f47d3bb08d89316c71c50", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/58c3e809e0bb499f87fda30df5d0576b?download=076b981bb04b40b88ebb84ad089a3247", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk", "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", "language": "uk", "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "language": "uk", "isDescriptionDecision": false } - ] + ], + "subcontractingDetails": "ДКП «Орфей», Україна", + "selfQualified": true, + "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/bidder-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/bidder-after-changing-tender.http index 3cc64f01ba..9334c97e4d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/bidder-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "status": "invalid" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/bidder-documents.http b/docs/source/tendering/competitivedialogue/tutorial/bidder-documents.http index c6f9d454f5..1fb9b6726d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/bidder-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,43 +8,40 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "152b6f75a906449c8301d586f336df98", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/152b6f75a906449c8301d586f336df98?download=650a2e2f970f47d3bb08d89316c71c50", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk", - "isDescriptionDecision": false + "isDescriptionDecision": false, + "id": "58c3e809e0bb499f87fda30df5d0576b", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk", "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "isDescriptionDecision": false } ] diff --git a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-private.http b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-private.http index ce6fe9e8f2..36d81ef2b1 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-private.http +++ b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-private.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 42 Content-Type: application/json @@ -15,16 +15,15 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk", "isDescriptionDecision": true } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-proposal.http index 03668a46c8..1cb643fbd4 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-decision-proposal.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 41 Content-Type: application/json @@ -15,16 +15,15 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/5620292407bb4c8dab640c22d09475b0?Signature=MHIb%2B50YHwSXW4U5yJ%2Bf3JQwBjDzHaOSym60tDaSUPHGW0tB9%2BzfpVEkbNmhC6%2BJ2FzWqUFZkasHD6BUhuqQDw%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", - "language": "uk", "isDescriptionDecision": true } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-private.http b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-private.http index 491c028ef7..9cc8e97403 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-private.http +++ b/docs/source/tendering/competitivedialogue/tutorial/mark-bid-doc-private.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +PATCH /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker Content-Length: 120 Content-Type: application/json @@ -16,17 +16,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "isDescriptionDecision": false } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/pre-qualification-confirmation.http b/docs/source/tendering/competitivedialogue/tutorial/pre-qualification-confirmation.http index 4863846051..c1db8c428f 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/pre-qualification-confirmation.http +++ b/docs/source/tendering/competitivedialogue/tutorial/pre-qualification-confirmation.http @@ -714,7 +714,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -722,7 +722,7 @@ X-Content-Type-Options: nosniff }, { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -730,7 +730,7 @@ X-Content-Type-Options: nosniff }, { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -738,7 +738,7 @@ X-Content-Type-Options: nosniff }, { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -777,10 +777,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -790,7 +790,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -800,7 +800,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -810,7 +810,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -820,7 +820,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -830,7 +830,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -840,7 +840,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -850,7 +850,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -860,7 +860,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -870,7 +870,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -880,7 +880,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -893,11 +893,11 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/650a2e2f970f47d3bb08d89316c71c50?Signature=feUn1vIGH58gkWYNyofuGRXRgBftI97LhfGAmjSYtLX87TIFpYuuAHGFBbaZM2DHCBUlsuUAE%2FFB1EqWw0ssAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -906,11 +906,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -919,11 +919,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -958,10 +958,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "id": "5534cee2594649ccaa91a9f87caa96e2", "requirementResponses": [ { - "id": "5dd091f3c76b4bb3a7b29630bd7df751", + "id": "f4d39fa6c2704f4d869054d34edac10a", "title": "Requirement response", "description": "some description", "requirement": { @@ -971,7 +971,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6e3a76bcbfe642038c14ee67c70fedc4", + "id": "3d43db7d53614a0e9942610218077b48", "title": "Requirement response", "description": "some description", "requirement": { @@ -981,7 +981,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1e426784a7b643b8915ebd6a9485d7bb", + "id": "f3ac447cd11442afabf9bdb5b9b44632", "title": "Requirement response", "description": "some description", "requirement": { @@ -991,7 +991,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4eceb072e77b4d14886a7b02cc2e6add", + "id": "26f1912edf194ff781ec7de1a346253f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1001,7 +1001,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9e0569e031ce43a5a109b7059dd73b7c", + "id": "ce1601171f514a82a09d4820ae25add1", "title": "Requirement response", "description": "some description", "requirement": { @@ -1011,7 +1011,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7f2109bc822b4d26adc64555b7e9e871", + "id": "779f82f1183f4007985c38c6db72ee79", "title": "Requirement response", "description": "some description", "requirement": { @@ -1021,7 +1021,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "202691d2949b4c35b83f00cad4e0c549", + "id": "be7450bf1ca84e22b7e18435a311511c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1031,7 +1031,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c80a5b9303ea45069bf3449822761c2c", + "id": "ff7fc1212e974aba968a57a517652113", "title": "Requirement response", "description": "some description", "requirement": { @@ -1041,7 +1041,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "173ac5f8ece5478ebb50bac7571489e1", + "id": "51f3670484254155a197d9b205961065", "title": "Requirement response", "description": "some description", "requirement": { @@ -1051,7 +1051,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4da34e4af3e04bf7a73175733bccae11", + "id": "ed87c180230b4c2eb95bf1b8d5a09bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -1061,7 +1061,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cd53366ce0174bb2aa5e4c37cabde9de", + "id": "2fe26a175b21458aa5d5ab99ff60173b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1097,10 +1097,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "requirementResponses": [ { - "id": "b898fd0ab07145dd9bc8581d43e56601", + "id": "41f518cbd471453a913a32fe8dcfe53e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1110,7 +1110,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "99cf06b6970e4dd28353207c433a1fe4", + "id": "0b94547f9bbf4955998c5661409f5213", "title": "Requirement response", "description": "some description", "requirement": { @@ -1120,7 +1120,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0aecab357f29449f85f49943c01837dc", + "id": "ec374e01f4a446479d009e418f72dac5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1130,7 +1130,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "83861b4e7a6642c289b0fd96ee51f6eb", + "id": "b5075bcd1e434360bf788fc0d05e3b51", "title": "Requirement response", "description": "some description", "requirement": { @@ -1140,7 +1140,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f8024dbabdc4b65ae28f989c9c2db04", + "id": "d867925de878440e9061ad4b5baae44f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1150,7 +1150,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fefc919650d4b0faecdaffa3ef5d06d", + "id": "58430774a2c64b5596b92818235803fa", "title": "Requirement response", "description": "some description", "requirement": { @@ -1160,7 +1160,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c33c31022f074f6c8ba4c028419d0b9b", + "id": "7384ef27820f45699944b6194f69aef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -1170,7 +1170,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6a7799a40d994f91a4cd231ef0fae3ea", + "id": "bca1943114f345e1b6e38fceef1be9a5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1180,7 +1180,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf63f96b6f07477392a7ed8f1cfc935c", + "id": "712c68545cea4c63bf15653934042940", "title": "Requirement response", "description": "some description", "requirement": { @@ -1190,7 +1190,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f7649d1f93ca4e69bc89e50cd9f3e320", + "id": "3c0a316602f84ca586535d5c1bceeb15", "title": "Requirement response", "description": "some description", "requirement": { @@ -1200,7 +1200,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1c0511fb67ea413788606e7a8924f6d0", + "id": "b3e5e325bb41459287cd0cde249e40a7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1236,10 +1236,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "bf385297ea2240069057a49814810cc7", + "id": "858275d219d14850b85c83ea77b91281", "requirementResponses": [ { - "id": "de0ff4950d0a40feb55cf93d9c196f67", + "id": "a396c0fb1176436b9ae4fbb99a9eefff", "title": "Requirement response", "description": "some description", "requirement": { @@ -1249,7 +1249,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "588ec57d869c4615b88d6ff4b9591d81", + "id": "7dcaf38054694fd59d1cc0bcd537f424", "title": "Requirement response", "description": "some description", "requirement": { @@ -1259,7 +1259,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393400588cef4c80b07618fd1c766e69", + "id": "5d00635168024d98aaaf754fb7cbde69", "title": "Requirement response", "description": "some description", "requirement": { @@ -1269,7 +1269,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf2eabe27bd74f218014b74cea90a121", + "id": "f7b3ee8cd3c04102bd5ee8502767739f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1279,7 +1279,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b17d435eb2664f998fd316c1f6fb464a", + "id": "5099f56736b04717873f48ebcb57e279", "title": "Requirement response", "description": "some description", "requirement": { @@ -1289,7 +1289,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7c4f3213ea5c4e1eb59ffa327fedfc24", + "id": "8d939508612844debcda88a963babcf9", "title": "Requirement response", "description": "some description", "requirement": { @@ -1299,7 +1299,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1ad36ff775634c2db9e56e611afcfc73", + "id": "f05323454d2c450f8bfe1e21c39df79b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1309,7 +1309,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16f3e66562424517855d5b346e9962f2", + "id": "5725cb0697e24b09a3f725d566873609", "title": "Requirement response", "description": "some description", "requirement": { @@ -1319,7 +1319,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c99d090cc6284a54999e674d40804417", + "id": "ddb520f4d694495eacbf68689f822a72", "title": "Requirement response", "description": "some description", "requirement": { @@ -1329,7 +1329,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "87f766ba75544f1183c29d1c7fcfa895", + "id": "23e37a057dfb42aeb17702326a089b7f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1339,7 +1339,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d2931761b5804ff99d74345624935fed", + "id": "9d5ec699af5e4f648879310c66be045e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1352,7 +1352,7 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", + "id": "bf2b73185c7644999f4c772fd7dbc4b7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1365,11 +1365,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", + "id": "19fcd74e8e884158873085b65694b1dc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/2379751ab69d4630b7c3ad6828a59f82?download=aec550f71c1e47f4bb789564fdfa149c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/qualificated-bids-view.http b/docs/source/tendering/competitivedialogue/tutorial/qualificated-bids-view.http index 0c09e96fda..e5274f87df 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/qualificated-bids-view.http +++ b/docs/source/tendering/competitivedialogue/tutorial/qualificated-bids-view.http @@ -31,10 +31,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +134,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -147,11 +147,11 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/650a2e2f970f47d3bb08d89316c71c50?Signature=feUn1vIGH58gkWYNyofuGRXRgBftI97LhfGAmjSYtLX87TIFpYuuAHGFBbaZM2DHCBUlsuUAE%2FFB1EqWw0ssAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -160,11 +160,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", + "url": "/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -173,11 +173,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", + "url": "/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -212,10 +212,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "id": "5534cee2594649ccaa91a9f87caa96e2", "requirementResponses": [ { - "id": "5dd091f3c76b4bb3a7b29630bd7df751", + "id": "f4d39fa6c2704f4d869054d34edac10a", "title": "Requirement response", "description": "some description", "requirement": { @@ -225,7 +225,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6e3a76bcbfe642038c14ee67c70fedc4", + "id": "3d43db7d53614a0e9942610218077b48", "title": "Requirement response", "description": "some description", "requirement": { @@ -235,7 +235,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1e426784a7b643b8915ebd6a9485d7bb", + "id": "f3ac447cd11442afabf9bdb5b9b44632", "title": "Requirement response", "description": "some description", "requirement": { @@ -245,7 +245,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4eceb072e77b4d14886a7b02cc2e6add", + "id": "26f1912edf194ff781ec7de1a346253f", "title": "Requirement response", "description": "some description", "requirement": { @@ -255,7 +255,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9e0569e031ce43a5a109b7059dd73b7c", + "id": "ce1601171f514a82a09d4820ae25add1", "title": "Requirement response", "description": "some description", "requirement": { @@ -265,7 +265,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7f2109bc822b4d26adc64555b7e9e871", + "id": "779f82f1183f4007985c38c6db72ee79", "title": "Requirement response", "description": "some description", "requirement": { @@ -275,7 +275,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "202691d2949b4c35b83f00cad4e0c549", + "id": "be7450bf1ca84e22b7e18435a311511c", "title": "Requirement response", "description": "some description", "requirement": { @@ -285,7 +285,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c80a5b9303ea45069bf3449822761c2c", + "id": "ff7fc1212e974aba968a57a517652113", "title": "Requirement response", "description": "some description", "requirement": { @@ -295,7 +295,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "173ac5f8ece5478ebb50bac7571489e1", + "id": "51f3670484254155a197d9b205961065", "title": "Requirement response", "description": "some description", "requirement": { @@ -305,7 +305,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4da34e4af3e04bf7a73175733bccae11", + "id": "ed87c180230b4c2eb95bf1b8d5a09bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -315,7 +315,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cd53366ce0174bb2aa5e4c37cabde9de", + "id": "2fe26a175b21458aa5d5ab99ff60173b", "title": "Requirement response", "description": "some description", "requirement": { @@ -351,10 +351,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "requirementResponses": [ { - "id": "b898fd0ab07145dd9bc8581d43e56601", + "id": "41f518cbd471453a913a32fe8dcfe53e", "title": "Requirement response", "description": "some description", "requirement": { @@ -364,7 +364,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "99cf06b6970e4dd28353207c433a1fe4", + "id": "0b94547f9bbf4955998c5661409f5213", "title": "Requirement response", "description": "some description", "requirement": { @@ -374,7 +374,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0aecab357f29449f85f49943c01837dc", + "id": "ec374e01f4a446479d009e418f72dac5", "title": "Requirement response", "description": "some description", "requirement": { @@ -384,7 +384,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "83861b4e7a6642c289b0fd96ee51f6eb", + "id": "b5075bcd1e434360bf788fc0d05e3b51", "title": "Requirement response", "description": "some description", "requirement": { @@ -394,7 +394,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f8024dbabdc4b65ae28f989c9c2db04", + "id": "d867925de878440e9061ad4b5baae44f", "title": "Requirement response", "description": "some description", "requirement": { @@ -404,7 +404,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fefc919650d4b0faecdaffa3ef5d06d", + "id": "58430774a2c64b5596b92818235803fa", "title": "Requirement response", "description": "some description", "requirement": { @@ -414,7 +414,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c33c31022f074f6c8ba4c028419d0b9b", + "id": "7384ef27820f45699944b6194f69aef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -424,7 +424,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6a7799a40d994f91a4cd231ef0fae3ea", + "id": "bca1943114f345e1b6e38fceef1be9a5", "title": "Requirement response", "description": "some description", "requirement": { @@ -434,7 +434,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf63f96b6f07477392a7ed8f1cfc935c", + "id": "712c68545cea4c63bf15653934042940", "title": "Requirement response", "description": "some description", "requirement": { @@ -444,7 +444,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f7649d1f93ca4e69bc89e50cd9f3e320", + "id": "3c0a316602f84ca586535d5c1bceeb15", "title": "Requirement response", "description": "some description", "requirement": { @@ -454,7 +454,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1c0511fb67ea413788606e7a8924f6d0", + "id": "b3e5e325bb41459287cd0cde249e40a7", "title": "Requirement response", "description": "some description", "requirement": { @@ -464,7 +464,6 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, "status": "unsuccessful" }, { @@ -491,10 +490,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "bf385297ea2240069057a49814810cc7", + "id": "858275d219d14850b85c83ea77b91281", "requirementResponses": [ { - "id": "de0ff4950d0a40feb55cf93d9c196f67", + "id": "a396c0fb1176436b9ae4fbb99a9eefff", "title": "Requirement response", "description": "some description", "requirement": { @@ -504,7 +503,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "588ec57d869c4615b88d6ff4b9591d81", + "id": "7dcaf38054694fd59d1cc0bcd537f424", "title": "Requirement response", "description": "some description", "requirement": { @@ -514,7 +513,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393400588cef4c80b07618fd1c766e69", + "id": "5d00635168024d98aaaf754fb7cbde69", "title": "Requirement response", "description": "some description", "requirement": { @@ -524,7 +523,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf2eabe27bd74f218014b74cea90a121", + "id": "f7b3ee8cd3c04102bd5ee8502767739f", "title": "Requirement response", "description": "some description", "requirement": { @@ -534,7 +533,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b17d435eb2664f998fd316c1f6fb464a", + "id": "5099f56736b04717873f48ebcb57e279", "title": "Requirement response", "description": "some description", "requirement": { @@ -544,7 +543,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7c4f3213ea5c4e1eb59ffa327fedfc24", + "id": "8d939508612844debcda88a963babcf9", "title": "Requirement response", "description": "some description", "requirement": { @@ -554,7 +553,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1ad36ff775634c2db9e56e611afcfc73", + "id": "f05323454d2c450f8bfe1e21c39df79b", "title": "Requirement response", "description": "some description", "requirement": { @@ -564,7 +563,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16f3e66562424517855d5b346e9962f2", + "id": "5725cb0697e24b09a3f725d566873609", "title": "Requirement response", "description": "some description", "requirement": { @@ -574,7 +573,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c99d090cc6284a54999e674d40804417", + "id": "ddb520f4d694495eacbf68689f822a72", "title": "Requirement response", "description": "some description", "requirement": { @@ -584,7 +583,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "87f766ba75544f1183c29d1c7fcfa895", + "id": "23e37a057dfb42aeb17702326a089b7f", "title": "Requirement response", "description": "some description", "requirement": { @@ -594,7 +593,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d2931761b5804ff99d74345624935fed", + "id": "9d5ec699af5e4f648879310c66be045e", "title": "Requirement response", "description": "some description", "requirement": { @@ -607,7 +606,7 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", + "id": "bf2b73185c7644999f4c772fd7dbc4b7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -620,11 +619,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", + "id": "19fcd74e8e884158873085b65694b1dc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/2379751ab69d4630b7c3ad6828a59f82?download=aec550f71c1e47f4bb789564fdfa149c", + "url": "/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/qualifications-listing.http b/docs/source/tendering/competitivedialogue/tutorial/qualifications-listing.http index 69beb1c436..2771e23f3c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/qualifications-listing.http +++ b/docs/source/tendering/competitivedialogue/tutorial/qualifications-listing.http @@ -9,7 +9,7 @@ X-Content-Type-Options: nosniff "data": [ { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -17,7 +17,7 @@ X-Content-Type-Options: nosniff }, { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -25,7 +25,7 @@ X-Content-Type-Options: nosniff }, { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -33,7 +33,7 @@ X-Content-Type-Options: nosniff }, { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http index d8a96da446..78b494dc6a 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http @@ -1,6 +1,6 @@ POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids HTTP/1.0 Authorization: Bearer broker -Content-Length: 815 +Content-Length: 789 Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: @@ -29,9 +29,6 @@ DATA: "scale": "sme" } ], - "value": { - "amount": 499 - }, "selfQualified": true, "status": "draft" } @@ -39,7 +36,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/8c8ab41ca89e47269a0e8c1770185d7a +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/5534cee2594649ccaa91a9f87caa96e2 X-Content-Type-Options: nosniff { "data": { @@ -47,9 +44,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -59,21 +56,26 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "5534cee2594649ccaa91a9f87caa96e2", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "c07273fc0d3c4c0eb479912a66650590", - "transfer": "8f58653d411940179acb8cd91ef67279" + "token": "02be6217e567455198416ee937db1c04", + "transfer": "a13d4aa7c99549879841ecc895b1bacf" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http index bd5d2b2ffd..19fd0841a2 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http @@ -1,6 +1,6 @@ POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids HTTP/1.0 Authorization: Bearer broker -Content-Length: 793 +Content-Length: 769 Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: @@ -29,9 +29,6 @@ DATA: "scale": "mid" } ], - "value": { - "amount": 5 - }, "selfQualified": true, "status": "draft" } @@ -39,7 +36,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/2e01f99899594fa6939391b658c3a921 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/c8cf921842b343ae90f0b4666658776e X-Content-Type-Options: nosniff { "data": { @@ -47,9 +44,9 @@ X-Content-Type-Options: nosniff { "name": "«Снігур»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137227", - "uri": "http://www.sc.gov.ua/" + "id": "00137227" }, "address": { "streetAddress": "вул. Островського, 35", @@ -59,21 +56,26 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Іваненко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Іваненко" }, "scale": "mid" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "2e01f99899594fa6939391b658c3a921", + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "c8cf921842b343ae90f0b4666658776e", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "b31c31fe1e804438b3dcae81cd3baf40", - "transfer": "f8a63b300c174ae0b6a2a3dcf041907a" + "token": "6b6506e937f04df097c1bac68d51bb4f", + "transfer": "71415a6ae48e48748c063cc42b00a599" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http index 6b3c67b734..e7be2a5e3d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http @@ -1,6 +1,6 @@ POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids HTTP/1.0 Authorization: Bearer broker -Content-Length: 1608 +Content-Length: 1584 Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: @@ -29,9 +29,6 @@ DATA: "scale": "large" } ], - "value": { - "amount": 5 - }, "selfQualified": true, "documents": [ { @@ -55,7 +52,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281 X-Content-Type-Options: nosniff { "data": { @@ -63,9 +60,9 @@ X-Content-Type-Options: nosniff { "name": "«Кенгуру»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137228", - "uri": "http://www.sc.gov.ua/" + "id": "00137228" }, "address": { "streetAddress": "вул. Коцюбинського, 15", @@ -75,49 +72,52 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Карпенко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Карпенко" }, "scale": "large" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "bf385297ea2240069057a49814810cc7", - "selfQualified": true, - "status": "draft", + "lotValues": [], "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/75590b4f943f4d1ca5bf6957f1aa3acf?download=18236fa45edb456ca74c8320b4b0d2b8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/bf2b73185c7644999f4c772fd7dbc4b7?download=18236fa45edb456ca74c8320b4b0d2b8", "documentOf": "tender", "confidentiality": "public", - "language": "uk", - "isDescriptionDecision": false + "isDescriptionDecision": false, + "id": "bf2b73185c7644999f4c772fd7dbc4b7", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", "confidentiality": "buyerOnly", - "language": "uk", - "isDescriptionDecision": false + "confidentialityRationale": "Only our company sells badgers with pink hair.", + "isDescriptionDecision": false, + "id": "19fcd74e8e884158873085b65694b1dc", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } - ] + ], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, + "status": "draft", + "id": "858275d219d14850b85c83ea77b91281", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "569aa38633e3486b8f6e600c2304050a", - "transfer": "1f3b8ccede9e4530a2cf828e50fd51c2" + "token": "73b440836ebf4fe1b2829b3b2def6480", + "transfer": "7bb65d46411947038d62219cc5989e11" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http index 93426a223c..a0580e996d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http @@ -37,7 +37,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253 X-Content-Type-Options: nosniff { "data": { @@ -45,9 +45,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -57,22 +57,27 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "d46e2205e6014884beff5e4df83a4e19", - "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "draft" + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, + "status": "draft", + "id": "fd70953552a346ecbb2d7f86de89b253", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "a10950a6626346cb8694ecf3e4ba0a7f", - "transfer": "4999cd425a9c4a3b9c3bfc1969fad426" + "token": "3b8122a4f9fa475ca69d57dcfb5380d6", + "transfer": "62f17631601b436aacbd116c29f93cc3" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/reject-qualification3.http b/docs/source/tendering/competitivedialogue/tutorial/reject-qualification3.http index cf85549543..2213defc9d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/reject-qualification3.http +++ b/docs/source/tendering/competitivedialogue/tutorial/reject-qualification3.http @@ -16,7 +16,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/rejected-bid-view.http b/docs/source/tendering/competitivedialogue/tutorial/rejected-bid-view.http index 09e83dd8f8..e3ec4efcbf 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/rejected-bid-view.http +++ b/docs/source/tendering/competitivedialogue/tutorial/rejected-bid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/2e01f99899594fa6939391b658c3a921?acc_token=b02a0a0cbe7842149f3fab16c42f0d94 HTTP/1.0 +GET /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/c8cf921842b343ae90f0b4666658776e?acc_token=b02a0a0cbe7842149f3fab16c42f0d94 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,10 +30,10 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "requirementResponses": [ { - "id": "b898fd0ab07145dd9bc8581d43e56601", + "id": "41f518cbd471453a913a32fe8dcfe53e", "title": "Requirement response", "description": "some description", "requirement": { @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "99cf06b6970e4dd28353207c433a1fe4", + "id": "0b94547f9bbf4955998c5661409f5213", "title": "Requirement response", "description": "some description", "requirement": { @@ -53,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0aecab357f29449f85f49943c01837dc", + "id": "ec374e01f4a446479d009e418f72dac5", "title": "Requirement response", "description": "some description", "requirement": { @@ -63,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "83861b4e7a6642c289b0fd96ee51f6eb", + "id": "b5075bcd1e434360bf788fc0d05e3b51", "title": "Requirement response", "description": "some description", "requirement": { @@ -73,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f8024dbabdc4b65ae28f989c9c2db04", + "id": "d867925de878440e9061ad4b5baae44f", "title": "Requirement response", "description": "some description", "requirement": { @@ -83,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fefc919650d4b0faecdaffa3ef5d06d", + "id": "58430774a2c64b5596b92818235803fa", "title": "Requirement response", "description": "some description", "requirement": { @@ -93,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c33c31022f074f6c8ba4c028419d0b9b", + "id": "7384ef27820f45699944b6194f69aef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -103,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6a7799a40d994f91a4cd231ef0fae3ea", + "id": "bca1943114f345e1b6e38fceef1be9a5", "title": "Requirement response", "description": "some description", "requirement": { @@ -113,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf63f96b6f07477392a7ed8f1cfc935c", + "id": "712c68545cea4c63bf15653934042940", "title": "Requirement response", "description": "some description", "requirement": { @@ -123,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f7649d1f93ca4e69bc89e50cd9f3e320", + "id": "3c0a316602f84ca586535d5c1bceeb15", "title": "Requirement response", "description": "some description", "requirement": { @@ -133,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1c0511fb67ea413788606e7a8924f6d0", + "id": "b3e5e325bb41459287cd0cde249e40a7", "title": "Requirement response", "description": "some description", "requirement": { @@ -143,7 +143,6 @@ X-Content-Type-Options: nosniff "value": "True" } ], - "selfQualified": true, "status": "unsuccessful" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2-pending.http b/docs/source/tendering/competitivedialogue/tutorial/stage2-pending.http index 5692c16fdf..dec26e241e 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2-pending.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2-pending.http @@ -726,7 +726,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -734,7 +734,7 @@ X-Content-Type-Options: nosniff }, { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -742,7 +742,7 @@ X-Content-Type-Options: nosniff }, { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff }, { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -789,15 +789,15 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/650a2e2f970f47d3bb08d89316c71c50?Signature=feUn1vIGH58gkWYNyofuGRXRgBftI97LhfGAmjSYtLX87TIFpYuuAHGFBbaZM2DHCBUlsuUAE%2FFB1EqWw0ssAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -806,11 +806,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -819,11 +819,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -858,7 +858,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "id": "5534cee2594649ccaa91a9f87caa96e2", "status": "active" }, { @@ -885,7 +885,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful" }, { @@ -912,11 +912,11 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "bf385297ea2240069057a49814810cc7", + "id": "858275d219d14850b85c83ea77b91281", "status": "active", "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", + "id": "bf2b73185c7644999f4c772fd7dbc4b7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -929,11 +929,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", + "id": "19fcd74e8e884158873085b65694b1dc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/2379751ab69d4630b7c3ad6828a59f82?download=aec550f71c1e47f4bb789564fdfa149c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2-waiting.http b/docs/source/tendering/competitivedialogue/tutorial/stage2-waiting.http index bf952bc2d3..db51c3065e 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2-waiting.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2-waiting.http @@ -734,7 +734,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -742,7 +742,7 @@ X-Content-Type-Options: nosniff }, { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff }, { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -758,7 +758,7 @@ X-Content-Type-Options: nosniff }, { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -797,15 +797,15 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/650a2e2f970f47d3bb08d89316c71c50?Signature=feUn1vIGH58gkWYNyofuGRXRgBftI97LhfGAmjSYtLX87TIFpYuuAHGFBbaZM2DHCBUlsuUAE%2FFB1EqWw0ssAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -814,11 +814,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -827,11 +827,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -866,7 +866,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "id": "5534cee2594649ccaa91a9f87caa96e2", "status": "active" }, { @@ -893,7 +893,7 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful" }, { @@ -920,11 +920,11 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "bf385297ea2240069057a49814810cc7", + "id": "858275d219d14850b85c83ea77b91281", "status": "active", "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", + "id": "bf2b73185c7644999f4c772fd7dbc4b7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -937,11 +937,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", + "id": "19fcd74e8e884158873085b65694b1dc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/2379751ab69d4630b7c3ad6828a59f82?download=aec550f71c1e47f4bb789564fdfa149c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http index 9aa1fc1143..11042fbd0b 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -15,13 +15,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,22 +36,23 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "58e27c7c070d4d97b09d73d735ad23aa", "date": "2021-03-16T00:00:00+02:00", - "id": "8995cc57868249b8aba0fd17235ed809", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification1.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification1.http index e4cc3bbf50..fd58fc860f 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification1.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification1.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "784dd1ba748a41edaa99a3da0b96fbdb", - "bidID": "8995cc57868249b8aba0fd17235ed809", + "bidID": "58e27c7c070d4d97b09d73d735ad23aa", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification2.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification2.http index 809af92a62..f28991235b 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification2.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/approve-qualification2.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "6c5bffc0c6844c22832a5852e18d1f1b", - "bidID": "1ca01e93d33141beaa64330b2782968d", + "bidID": "77605656b3e8479fbfa66cf3d764520c", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/auction-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/auction-url.http index 580ce218c1..34732b0236 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/auction-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/auction-url.http @@ -134,14 +134,14 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e5320aedb5374fa791ff1f424ba5ba7b?Signature=gH82zbioqGLsEhL9zA%2BzJgtG4v%2FH7Xp9d1A7PHmzCGtLoRmXen6hZdFQuQhsq4%2BwnkazDKEzZH2oJWNICjHACQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -149,7 +149,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -187,7 +187,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1ca01e93d33141beaa64330b2782968d", + "id": "77605656b3e8479fbfa66cf3d764520c", "status": "active" }, { @@ -214,10 +214,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "id": "9ee879e314fd487584383884598ae7c7", "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", + "id": "866c3ddfea9249e9a4953a1943facdf4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -229,7 +229,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", + "id": "6be95b29d2d749a2ad53f32098040908", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -243,7 +243,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", + "id": "84ff8dfd2a4a46d489c225ca4658fa42", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -262,7 +262,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "784dd1ba748a41edaa99a3da0b96fbdb", - "bidID": "8995cc57868249b8aba0fd17235ed809", + "bidID": "58e27c7c070d4d97b09d73d735ad23aa", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -270,7 +270,7 @@ X-Content-Type-Options: nosniff }, { "id": "6c5bffc0c6844c22832a5852e18d1f1b", - "bidID": "1ca01e93d33141beaa64330b2782968d", + "bidID": "77605656b3e8479fbfa66cf3d764520c", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -278,7 +278,7 @@ X-Content-Type-Options: nosniff }, { "id": "2424671f78c54835a110b7dc443c6ca6", - "bidID": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "bidID": "9ee879e314fd487584383884598ae7c7", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http index fb69cc6e1b..a4f28fc5ad 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -15,13 +15,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,89 +36,84 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "58e27c7c070d4d97b09d73d735ad23aa", "date": "2021-03-16T00:00:00+02:00", - "id": "8995cc57868249b8aba0fd17235ed809", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "subcontractingDetails": "ДКП «Орфей», Україна", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/268f8dd0be3e46c185d767ab3caf1e59?download=e5320aedb5374fa791ff1f424ba5ba7b", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e?download=0ebab89f70e14ee79ac687594e90aa45", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "language": "uk" } ], "financialDocuments": [ { - "id": "7689f887d6574f4ea91319509439f24c", + "id": "00ef54a29b6f4c9fb5303be6ac985f7c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c?download=9fbdcf396d7b4a9a9c2b3a48b1e9b57e", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/00ef54a29b6f4c9fb5303be6ac985f7c?download=5473b7fdbe7d4b1f8a060c46741239e3", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "bcb9b900f2314664ab8bc404ff55cdad", + "id": "7aa80c6d0d76482b972b3ccd9091a76f", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/bcb9b900f2314664ab8bc404ff55cdad?download=d4d2a05cdfc54d029cf4fbfbe2e43688", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/7aa80c6d0d76482b972b3ccd9091a76f?download=bb090978dbf84b9a974d39d03059affd", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "qualificationDocuments": [ { - "id": "a03b94c91a7142c6b8822dbd6fe70008", + "id": "5abcbcc198444c579f71348e8515d9b0", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents/a03b94c91a7142c6b8822dbd6fe70008?download=9e7585d543e6452eb50a6a976965c04c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents/5abcbcc198444c579f71348e8515d9b0?download=882ade01f3164c61bf0da13c86c5875b", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-after-changing-tender.http index 571048a8fb..b80099f1aa 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "status": "invalid" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-documents.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-documents.http index 58d6b5c3ff..6707e54482 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,29 +8,27 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/268f8dd0be3e46c185d767ab3caf1e59?download=e5320aedb5374fa791ff1f424ba5ba7b", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "495d6da3c2b040ffa35339eb84d63c2e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ] } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-financial-documents.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-financial-documents.http index 8e53d32874..eee7f8d29d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-financial-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,28 +8,26 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "7689f887d6574f4ea91319509439f24c", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c?download=9fbdcf396d7b4a9a9c2b3a48b1e9b57e", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/5473b7fdbe7d4b1f8a060c46741239e3?Signature=mdzbJis%2BvVUrG8DwMH%2Bw%2B9PU858eiWVbtO4rbe0q1YK4nO4tUv7VsKVZ8tIT7kdvNcACnbMJdfUdcDZ15A4fAw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "00ef54a29b6f4c9fb5303be6ac985f7c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "bcb9b900f2314664ab8bc404ff55cdad", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/bcb9b900f2314664ab8bc404ff55cdad?download=d4d2a05cdfc54d029cf4fbfbe2e43688", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bb090978dbf84b9a974d39d03059affd?Signature=kFCxltNyFmL%2F2TfeGuU0Cb6PifLij10Y3jWc3jbRaAthYaNR%2Bc%2BAru%2F%2BBkZhK3UJpSuey91YkkUlAaRTLsr5Cg%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "7aa80c6d0d76482b972b3ccd9091a76f", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-participation-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-participation-url.http index 6af8f7f6fc..4cb826a5aa 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-participation-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,20 +31,20 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "value": { "amount": 500.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db1ddb06a5a44954bc0b9f555776112d?key_for_bid=8995cc57868249b8aba0fd17235ed809", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db1ddb06a5a44954bc0b9f555776112d?key_for_bid=58e27c7c070d4d97b09d73d735ad23aa", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e5320aedb5374fa791ff1f424ba5ba7b?Signature=gH82zbioqGLsEhL9zA%2BzJgtG4v%2FH7Xp9d1A7PHmzCGtLoRmXen6hZdFQuQhsq4%2BwnkazDKEzZH2oJWNICjHACQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -52,11 +52,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -67,11 +67,11 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "7689f887d6574f4ea91319509439f24c", + "id": "00ef54a29b6f4c9fb5303be6ac985f7c", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c?download=9fbdcf396d7b4a9a9c2b3a48b1e9b57e", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/00ef54a29b6f4c9fb5303be6ac985f7c?download=5473b7fdbe7d4b1f8a060c46741239e3", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -79,11 +79,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "bcb9b900f2314664ab8bc404ff55cdad", + "id": "7aa80c6d0d76482b972b3ccd9091a76f", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/bcb9b900f2314664ab8bc404ff55cdad?download=d4d2a05cdfc54d029cf4fbfbe2e43688", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/7aa80c6d0d76482b972b3ccd9091a76f?download=bb090978dbf84b9a974d39d03059affd", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -93,11 +93,11 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "a03b94c91a7142c6b8822dbd6fe70008", + "id": "5abcbcc198444c579f71348e8515d9b0", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents/a03b94c91a7142c6b8822dbd6fe70008?download=9e7585d543e6452eb50a6a976965c04c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents/5abcbcc198444c579f71348e8515d9b0?download=882ade01f3164c61bf0da13c86c5875b", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http index 40eef149f7..207fadd76b 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,13 +7,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -23,89 +28,82 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "58e27c7c070d4d97b09d73d735ad23aa", "date": "2021-03-16T00:00:00+02:00", - "id": "8995cc57868249b8aba0fd17235ed809", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], + "lotValues": [], "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/268f8dd0be3e46c185d767ab3caf1e59?download=e5320aedb5374fa791ff1f424ba5ba7b", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e?download=0ebab89f70e14ee79ac687594e90aa45", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "495d6da3c2b040ffa35339eb84d63c2e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ], "financialDocuments": [ { - "id": "7689f887d6574f4ea91319509439f24c", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c?download=9fbdcf396d7b4a9a9c2b3a48b1e9b57e", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/00ef54a29b6f4c9fb5303be6ac985f7c?download=5473b7fdbe7d4b1f8a060c46741239e3", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "00ef54a29b6f4c9fb5303be6ac985f7c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "bcb9b900f2314664ab8bc404ff55cdad", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/bcb9b900f2314664ab8bc404ff55cdad?download=d4d2a05cdfc54d029cf4fbfbe2e43688", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/7aa80c6d0d76482b972b3ccd9091a76f?download=bb090978dbf84b9a974d39d03059affd", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "7aa80c6d0d76482b972b3ccd9091a76f", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], + "eligibilityDocuments": [], "qualificationDocuments": [ { - "id": "a03b94c91a7142c6b8822dbd6fe70008", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents/a03b94c91a7142c6b8822dbd6fe70008?download=9e7585d543e6452eb50a6a976965c04c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents/5abcbcc198444c579f71348e8515d9b0?download=882ade01f3164c61bf0da13c86c5875b", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "5abcbcc198444c579f71348e8515d9b0", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder2-participation-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder2-participation-url.http index 4d98432d94..4f1b36561c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder2-participation-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/1ca01e93d33141beaa64330b2782968d?acc_token=7e8ca46347264ab19ef25115a1137497 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/77605656b3e8479fbfa66cf3d764520c?acc_token=b3e78d99213042d49c42838707ff72d0 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,13 +31,13 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "1ca01e93d33141beaa64330b2782968d", + "id": "77605656b3e8479fbfa66cf3d764520c", "value": { "amount": 499.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db1ddb06a5a44954bc0b9f555776112d?key_for_bid=1ca01e93d33141beaa64330b2782968d", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db1ddb06a5a44954bc0b9f555776112d?key_for_bid=77605656b3e8479fbfa66cf3d764520c", "selfQualified": true, "status": "active" } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/confirm-qualification.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/confirm-qualification.http index 1ad9bfc350..87cbaa167c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/confirm-qualification.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/confirm-qualification.http @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "bid_id": "1ca01e93d33141beaa64330b2782968d", + "bid_id": "77605656b3e8479fbfa66cf3d764520c", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-26T00:00:00+02:00" diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/mark-bid-doc-private.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/mark-bid-doc-private.http index 01e7e2dcfe..4455c9849e 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/mark-bid-doc-private.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/mark-bid-doc-private.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +PATCH /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker Content-Length: 120 Content-Type: application/json @@ -16,17 +16,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/pre-qualification-confirmation.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/pre-qualification-confirmation.http index 284cec3e69..b1fafe472c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/pre-qualification-confirmation.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/pre-qualification-confirmation.http @@ -140,14 +140,14 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e5320aedb5374fa791ff1f424ba5ba7b?Signature=gH82zbioqGLsEhL9zA%2BzJgtG4v%2FH7Xp9d1A7PHmzCGtLoRmXen6hZdFQuQhsq4%2BwnkazDKEzZH2oJWNICjHACQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -155,11 +155,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -194,7 +194,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1ca01e93d33141beaa64330b2782968d", + "id": "77605656b3e8479fbfa66cf3d764520c", "status": "active" }, { @@ -221,10 +221,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "id": "9ee879e314fd487584383884598ae7c7", "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", + "id": "866c3ddfea9249e9a4953a1943facdf4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -236,11 +236,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", + "id": "6be95b29d2d749a2ad53f32098040908", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/documents/b6b2519c936a455cb87fa1c23a13cb0e?download=f2990cef9058446d95845fcdd7c796d2", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/6be95b29d2d749a2ad53f32098040908?download=f2990cef9058446d95845fcdd7c796d2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -251,7 +251,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", + "id": "84ff8dfd2a4a46d489c225ca4658fa42", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -270,7 +270,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "784dd1ba748a41edaa99a3da0b96fbdb", - "bidID": "8995cc57868249b8aba0fd17235ed809", + "bidID": "58e27c7c070d4d97b09d73d735ad23aa", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -278,7 +278,7 @@ X-Content-Type-Options: nosniff }, { "id": "6c5bffc0c6844c22832a5852e18d1f1b", - "bidID": "1ca01e93d33141beaa64330b2782968d", + "bidID": "77605656b3e8479fbfa66cf3d764520c", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -286,7 +286,7 @@ X-Content-Type-Options: nosniff }, { "id": "2424671f78c54835a110b7dc443c6ca6", - "bidID": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "bidID": "9ee879e314fd487584383884598ae7c7", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualificated-bids-view.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualificated-bids-view.http index 6f992c348a..1c6a4cb36c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualificated-bids-view.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualificated-bids-view.http @@ -31,14 +31,14 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e5320aedb5374fa791ff1f424ba5ba7b?Signature=gH82zbioqGLsEhL9zA%2BzJgtG4v%2FH7Xp9d1A7PHmzCGtLoRmXen6hZdFQuQhsq4%2BwnkazDKEzZH2oJWNICjHACQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -46,11 +46,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", + "url": "/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -85,7 +85,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1ca01e93d33141beaa64330b2782968d", + "id": "77605656b3e8479fbfa66cf3d764520c", "status": "active" }, { @@ -112,10 +112,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "id": "9ee879e314fd487584383884598ae7c7", "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", + "id": "866c3ddfea9249e9a4953a1943facdf4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -127,11 +127,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", + "id": "6be95b29d2d749a2ad53f32098040908", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/documents/b6b2519c936a455cb87fa1c23a13cb0e?download=f2990cef9058446d95845fcdd7c796d2", + "url": "/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/6be95b29d2d749a2ad53f32098040908?download=f2990cef9058446d95845fcdd7c796d2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -142,7 +142,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", + "id": "84ff8dfd2a4a46d489c225ca4658fa42", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualifications-listing.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualifications-listing.http index 42b9cff37a..4e26a77442 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualifications-listing.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/qualifications-listing.http @@ -129,14 +129,14 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "8995cc57868249b8aba0fd17235ed809", + "id": "58e27c7c070d4d97b09d73d735ad23aa", "documents": [ { - "id": "268f8dd0be3e46c185d767ab3caf1e59", + "id": "495d6da3c2b040ffa35339eb84d63c2e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e5320aedb5374fa791ff1f424ba5ba7b?Signature=gH82zbioqGLsEhL9zA%2BzJgtG4v%2FH7Xp9d1A7PHmzCGtLoRmXen6hZdFQuQhsq4%2BwnkazDKEzZH2oJWNICjHACQ%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -144,7 +144,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "c9983431a8f942aeb6799621933ab1a6", + "id": "5e01113a41914e4d92cdd02641398220", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -182,7 +182,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "1ca01e93d33141beaa64330b2782968d", + "id": "77605656b3e8479fbfa66cf3d764520c", "status": "pending" }, { @@ -209,10 +209,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "id": "9ee879e314fd487584383884598ae7c7", "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", + "id": "866c3ddfea9249e9a4953a1943facdf4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -224,7 +224,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", + "id": "6be95b29d2d749a2ad53f32098040908", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -238,7 +238,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", + "id": "84ff8dfd2a4a46d489c225ca4658fa42", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -256,7 +256,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "784dd1ba748a41edaa99a3da0b96fbdb", - "bidID": "8995cc57868249b8aba0fd17235ed809", + "bidID": "58e27c7c070d4d97b09d73d735ad23aa", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -264,7 +264,7 @@ X-Content-Type-Options: nosniff }, { "id": "6c5bffc0c6844c22832a5852e18d1f1b", - "bidID": "1ca01e93d33141beaa64330b2782968d", + "bidID": "77605656b3e8479fbfa66cf3d764520c", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -272,7 +272,7 @@ X-Content-Type-Options: nosniff }, { "id": "2424671f78c54835a110b7dc443c6ca6", - "bidID": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "bidID": "9ee879e314fd487584383884598ae7c7", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http index 6fcb279fad..ecb60aea4c 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http @@ -38,17 +38,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/1ca01e93d33141beaa64330b2782968d +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/77605656b3e8479fbfa66cf3d764520c X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 499.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -58,26 +63,27 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "1ca01e93d33141beaa64330b2782968d", - "value": { - "amount": 499.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "parameters": [], + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "77605656b3e8479fbfa66cf3d764520c", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "7e8ca46347264ab19ef25115a1137497", - "transfer": "8607c6b86d3748729db430bebc37342c" + "token": "b3e78d99213042d49c42838707ff72d0", + "transfer": "ab7f1a03a4b347b0b53b122d58edd637" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http index b7f5d83593..40f48f22a8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http @@ -78,17 +78,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7 X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 5.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "«Кенгуру»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137228", - "uri": "http://www.sc.gov.ua/" + "id": "00137228" }, "address": { "streetAddress": "вул. Коцюбинського, 15", @@ -98,94 +103,87 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Іван Карпенко", "email": "fake@mail.com", - "telephone": "+380322123456" + "telephone": "+380322123456", + "name": "Іван Карпенко" }, "scale": "large" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", - "value": { - "amount": 5.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "parameters": [], + "lotValues": [], "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/documents/7a23572266ec4727b8718e25829f915e?download=bd22239ca7e843b5a9b78629492dd7ef", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/866c3ddfea9249e9a4953a1943facdf4?download=bd22239ca7e843b5a9b78629492dd7ef", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "866c3ddfea9249e9a4953a1943facdf4", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/6be95b29d2d749a2ad53f32098040908?download=f2990cef9058446d95845fcdd7c796d2", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair.", + "id": "6be95b29d2d749a2ad53f32098040908", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "financialDocuments": [ { - "id": "b643bb182b834521a137ee5e083d4702", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/financial_documents/b643bb182b834521a137ee5e083d4702?download=9e201cf64846411982f1a0f22875f4f5", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/financial_documents/e0a60dc73bc54257836497eba2b05d56?download=9e201cf64846411982f1a0f22875f4f5", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e0a60dc73bc54257836497eba2b05d56", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/eligibility_documents/e5a52507459e406fbe21aa46b85cac13?download=3c13822a2b25429caa740bfe269ec59b", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/eligibility_documents/84ff8dfd2a4a46d489c225ca4658fa42?download=3c13822a2b25429caa740bfe269ec59b", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "84ff8dfd2a4a46d489c225ca4658fa42", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "b30d1df332ca4160b7f042294e4c0761", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/qualification_documents/b30d1df332ca4160b7f042294e4c0761?download=e3674427e5c149ebb79e2795e8537d36", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/qualification_documents/8ed06959d10d4f0eb580b17a2834dd99?download=e3674427e5c149ebb79e2795e8537d36", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "8ed06959d10d4f0eb580b17a2834dd99", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "selfQualified": true, - "status": "draft" + "status": "draft", + "id": "9ee879e314fd487584383884598ae7c7", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "466af52b536d4077a6ab31444cabf16c", - "transfer": "6894baf334ab46c1b6ec191e9210dacb" + "token": "e0bac5c80f37445583dc5474be0f5ea2", + "transfer": "fbdde3deb5114a22a6bfa0f9c026cd99" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http index e44cfd1806..143623d018 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http @@ -40,17 +40,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -60,27 +65,28 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "8995cc57868249b8aba0fd17235ed809", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "draft" + "parameters": [], + "lotValues": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], + "selfQualified": true, + "status": "draft", + "id": "58e27c7c070d4d97b09d73d735ad23aa", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "4db6be0e33ad4f88b44450c99971d911", - "transfer": "c47cdda575034be3ba15f0a9d3226c31" + "token": "2bbf824e16a045ddb68192ea4ab04754", + "transfer": "55f7d3bb802345c6b55190c15f467834" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/reject-qualification3.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/reject-qualification3.http index 6dbfa17bf4..00d4baf651 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/reject-qualification3.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/reject-qualification3.http @@ -16,7 +16,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "2424671f78c54835a110b7dc443c6ca6", - "bidID": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "bidID": "9ee879e314fd487584383884598ae7c7", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/rejected-bid-view.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/rejected-bid-view.http index 59bc4ae3ea..a4999a4461 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/rejected-bid-view.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/rejected-bid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5?acc_token=3ba9d3fdf58a40ac8a19d43f43de9e28 HTTP/1.0 +GET /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7?acc_token=3ba9d3fdf58a40ac8a19d43f43de9e28 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,10 +30,10 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "id": "cc7ed6e4bd0145a4ae0c43f4ce1ef5a5", + "id": "9ee879e314fd487584383884598ae7c7", "documents": [ { - "id": "7a23572266ec4727b8718e25829f915e", + "id": "866c3ddfea9249e9a4953a1943facdf4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -45,11 +45,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "b6b2519c936a455cb87fa1c23a13cb0e", + "id": "6be95b29d2d749a2ad53f32098040908", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/cc7ed6e4bd0145a4ae0c43f4ce1ef5a5/documents/b6b2519c936a455cb87fa1c23a13cb0e?download=f2990cef9058446d95845fcdd7c796d2", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/6be95b29d2d749a2ad53f32098040908?download=f2990cef9058446d95845fcdd7c796d2", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -60,7 +60,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "e5a52507459e406fbe21aa46b85cac13", + "id": "84ff8dfd2a4a46d489c225ca4658fa42", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-financial-document-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-financial-document-proposal.http index 7a2ce3e784..c17a425bb4 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-financial-document-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-financial-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker -Content-Length: 147 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 331 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="financial_doc.pdf" -Content-Type: application/pdf - -1000$ ------BOUNDARY-- - +{ + "data": { + "title": "financial_doc.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/5473b7fdbe7d4b1f8a060c46741239e3?Signature=EHetSQd2sZhLLeTlfn%2FV2LkPFbacvyl%2BIkjZ1GG7BO0%2BLGIG2K7btXD2Ac6f5nG8SJpUVFLvRWhjVQGbqaz7Bg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/00ef54a29b6f4c9fb5303be6ac985f7c X-Content-Type-Options: nosniff { "data": { - "id": "7689f887d6574f4ea91319509439f24c", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/financial_documents/7689f887d6574f4ea91319509439f24c?download=9fbdcf396d7b4a9a9c2b3a48b1e9b57e", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/financial_documents/00ef54a29b6f4c9fb5303be6ac985f7c?download=5473b7fdbe7d4b1f8a060c46741239e3", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "00ef54a29b6f4c9fb5303be6ac985f7c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-private-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-private-proposal.http index 93983933c2..cf7bc04803 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-private-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-private-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker -Content-Length: 156 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 332 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal_top_secrets.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal_top_secrets.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0798ddc1fc8c46dd8a2d87c9f95d7a30?Signature=HvYcD7fx4MZe4SrgRMmJgHhU9orWZoGEFmLIhGvWG3qyqdhJzwixo1QxMCryYeZOevmBXHJQ4IYtas7brTfxCQ%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220 X-Content-Type-Options: nosniff { "data": { - "id": "c9983431a8f942aeb6799621933ab1a6", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/c9983431a8f942aeb6799621933ab1a6?download=75625e3d666f4f468436a93f99d87fdd", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/5e01113a41914e4d92cdd02641398220?download=0798ddc1fc8c46dd8a2d87c9f95d7a30", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "5e01113a41914e4d92cdd02641398220", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-proposal.http index f27c269cce..250875b5a0 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 320 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=WjSkZU25L1ke61M0fiRnsJW5WmOPH8coC6hzzdCoNYlNkkbDWHvWGJlOZLXuhq1lWrU2E1EDdzghe2R7GeKJCw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/268f8dd0be3e46c185d767ab3caf1e59 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e X-Content-Type-Options: nosniff { "data": { - "id": "268f8dd0be3e46c185d767ab3caf1e59", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/documents/268f8dd0be3e46c185d767ab3caf1e59?download=e5320aedb5374fa791ff1f424ba5ba7b", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e?download=0ebab89f70e14ee79ac687594e90aa45", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "495d6da3c2b040ffa35339eb84d63c2e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-qualification-document-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-qualification-document-proposal.http index 680cae0feb..2db8e5f0f8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-qualification-document-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/upload-bid-qualification-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents?acc_token=4db6be0e33ad4f88b44450c99971d911 HTTP/1.0 +POST /api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents?acc_token=2bbf824e16a045ddb68192ea4ab04754 HTTP/1.0 Authorization: Bearer broker -Content-Length: 158 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 336 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="qualification_document.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "qualification_document.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/882ade01f3164c61bf0da13c86c5875b?Signature=KukIJ24%2FMFvsqAdzHoy0jsg3ZBUBZOyRxYfACQmh3McdznCxSKMAFBYrQL3mFENfk6BffGPT9dQVVg9AGcmKAA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents/a03b94c91a7142c6b8822dbd6fe70008 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents/5abcbcc198444c579f71348e8515d9b0 X-Content-Type-Options: nosniff { "data": { - "id": "a03b94c91a7142c6b8822dbd6fe70008", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/8995cc57868249b8aba0fd17235ed809/qualification_documents/a03b94c91a7142c6b8822dbd6fe70008?download=9e7585d543e6452eb50a6a976965c04c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/qualification_documents/5abcbcc198444c579f71348e8515d9b0?download=882ade01f3164c61bf0da13c86c5875b", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "5abcbcc198444c579f71348e8515d9b0", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http index 152944a921..7f9b1352bd 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +PATCH /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -15,13 +15,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,23 +36,21 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "status": "active", + "id": "1d98255f593f4a09a2fe81564728302f", "date": "2021-03-16T00:00:00+02:00", - "id": "59d1496c7b494028b8f4e0a997a0a4bb", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "active", - "selfQualified": true + "lotValues": [], + "parameters": [], + "documents": [] } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http index 10746869f0..e4e5b7e9ad 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +PATCH /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -15,13 +15,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,33 +36,29 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "59d1496c7b494028b8f4e0a997a0a4bb", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "active", + "id": "1d98255f593f4a09a2fe81564728302f", + "date": "2021-03-16T00:00:00+02:00", "selfQualified": true, + "subcontractingDetails": "ДКП «Орфей», Україна", "documents": [ { - "id": "08799b0910164e70bd1d55ea18bce553", + "id": "c91902ad94c84634af4b0be8fe9e73b6", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents/08799b0910164e70bd1d55ea18bce553?download=4e12f5bca39842fa936d50dd814980eb", - "datePublished": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6?download=47c968737f624b6fb2947bce2efcbbef", + "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "confidentiality": "public" } ] } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-after-changing-tender.http index 33cf259fe5..b486396a8d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "59d1496c7b494028b8f4e0a997a0a4bb", + "id": "1d98255f593f4a09a2fe81564728302f", "status": "invalid" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-documents.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-documents.http index 8a7388c9c3..d1e1a5df03 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,14 +8,15 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "08799b0910164e70bd1d55ea18bce553", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents/08799b0910164e70bd1d55ea18bce553?download=4e12f5bca39842fa936d50dd814980eb", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/47c968737f624b6fb2947bce2efcbbef?Signature=ui2PtOExSOnCaDAB5fD27QR5emb%2B1MNR5sfhorucH0kJEX92qtfZ38VkY9LC7RktFR68yAnqXel4jQwE0VPzBg%3D%3D&KeyID=a8968c46", + "documentOf": "tender", + "confidentiality": "public", + "id": "c91902ad94c84634af4b0be8fe9e73b6", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http index 28bcea8232..5dd02cfc89 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,26 +31,27 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "59d1496c7b494028b8f4e0a997a0a4bb", + "id": "1d98255f593f4a09a2fe81564728302f", "value": { "amount": 500.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db4876add6b747dfafc1b99523c02097?key_for_bid=59d1496c7b494028b8f4e0a997a0a4bb", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db4876add6b747dfafc1b99523c02097?key_for_bid=1d98255f593f4a09a2fe81564728302f", "subcontractingDetails": "ДКП «Орфей», Україна", "status": "active", "selfQualified": true, "documents": [ { - "id": "08799b0910164e70bd1d55ea18bce553", + "id": "c91902ad94c84634af4b0be8fe9e73b6", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents/08799b0910164e70bd1d55ea18bce553?download=4e12f5bca39842fa936d50dd814980eb", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6?download=47c968737f624b6fb2947bce2efcbbef", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "documentOf": "tender", + "confidentiality": "public" } ] } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder2-participation-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder2-participation-url.http index 56d834d1d4..a3e14b5b75 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder2-participation-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/ef3c7ebaccec4c14bae23045b5b4841e?acc_token=a20c70d6abdc4e11a24e172dcd5a2aed HTTP/1.0 +GET /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/d763b870e0344234823a04cad520e0fd?acc_token=1939013889034f16a8d293037ccd4dbb HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,27 +31,15 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "ef3c7ebaccec4c14bae23045b5b4841e", + "id": "d763b870e0344234823a04cad520e0fd", "value": { "amount": 499.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db4876add6b747dfafc1b99523c02097?key_for_bid=ef3c7ebaccec4c14bae23045b5b4841e", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/db4876add6b747dfafc1b99523c02097?key_for_bid=d763b870e0344234823a04cad520e0fd", "status": "draft", - "selfQualified": true, - "documents": [ - { - "id": "8d72465b1c734b34aa3e927a7550907f", - "hash": "md5:00000000000000000000000000000000", - "title": "Proposal_part1.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/ef3c7ebaccec4c14bae23045b5b4841e/documents/8d72465b1c734b34aa3e927a7550907f?download=c004bc1fa7cf4c3c826827be00857d15", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" - } - ] + "selfQualified": true } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/confirm-qualification.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/confirm-qualification.http index f8dc01ebf6..70aa11106a 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/confirm-qualification.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/confirm-qualification.http @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "59d1496c7b494028b8f4e0a997a0a4bb", + "bid_id": "1d98255f593f4a09a2fe81564728302f", "complaintPeriod": { "startDate": "2021-03-16T00:00:01+02:00", "endDate": "2021-03-27T00:00:00+02:00" diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http index 1c5c490dd4..b332a776fc 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http @@ -1,6 +1,6 @@ POST /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids HTTP/1.0 Authorization: Bearer broker -Content-Length: 1141 +Content-Length: 796 Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: @@ -32,31 +32,28 @@ DATA: "value": { "amount": 499 }, - "selfQualified": true, - "documents": [ - { - "title": "Proposal_part1.pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c004bc1fa7cf4c3c826827be00857d15?Signature=uUtdJxYhkaHr9vgDGjR%2F0LJmZ8XGzXa%2FXhqNindYza%2BTh%2F69rmbd%2BjeKES4R5%2Ff3lUCnztSrN1LsI7ZokTKtBQ%3D%3D&KeyID=a8968c46", - "hash": "md5:00000000000000000000000000000000", - "format": "application/pdf" - } - ] + "selfQualified": true } } Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/ef3c7ebaccec4c14bae23045b5b4841e +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/d763b870e0344234823a04cad520e0fd X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 499.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -66,38 +63,24 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "ef3c7ebaccec4c14bae23045b5b4841e", - "value": { - "amount": 499.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, "status": "draft", "selfQualified": true, - "documents": [ - { - "id": "8d72465b1c734b34aa3e927a7550907f", - "hash": "md5:00000000000000000000000000000000", - "title": "Proposal_part1.pdf", - "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/ef3c7ebaccec4c14bae23045b5b4841e/documents/8d72465b1c734b34aa3e927a7550907f?download=c004bc1fa7cf4c3c826827be00857d15", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" - } - ] + "lotValues": [], + "parameters": [], + "documents": [], + "id": "d763b870e0344234823a04cad520e0fd", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "a20c70d6abdc4e11a24e172dcd5a2aed", - "transfer": "f1edf79abcc54c62bc5796a1beb2d132" + "token": "1939013889034f16a8d293037ccd4dbb", + "transfer": "a1fa25dc592f4d9c8e240891c7f3ca5d" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http index dbfd7e5fdb..4a753604a8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http @@ -40,17 +40,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -60,27 +65,25 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "59d1496c7b494028b8f4e0a997a0a4bb", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "draft", - "selfQualified": true + "selfQualified": true, + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [], + "parameters": [], + "documents": [], + "id": "1d98255f593f4a09a2fe81564728302f", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "be9d6e70703b4db0ab958756ca141e67", - "transfer": "8a05f5f9bc8246aabfc2caf15c98629c" + "token": "2386f907ffa446d88f2a5e1543997879", + "transfer": "dd026ad0f5fd44579240ae19f5fa0fd8" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/upload-bid-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/upload-bid-proposal.http index f9280bb3d8..3d32ec875e 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/upload-bid-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/upload-bid-proposal.http @@ -1,31 +1,33 @@ -POST /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents?acc_token=be9d6e70703b4db0ab958756ca141e67 HTTP/1.0 +POST /api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents?acc_token=2386f907ffa446d88f2a5e1543997879 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 326 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/47c968737f624b6fb2947bce2efcbbef?Signature=Fa%2FJa1MqSnjfampxXQexFwxd8NCwV0UZy9QiGOcQPHNhufZBfE1t%2B86FpioX1Bxv%2BrZ329uF9wSqH7R7klkvDA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents/08799b0910164e70bd1d55ea18bce553 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6 X-Content-Type-Options: nosniff { "data": { - "id": "08799b0910164e70bd1d55ea18bce553", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/59d1496c7b494028b8f4e0a997a0a4bb/documents/08799b0910164e70bd1d55ea18bce553?download=4e12f5bca39842fa936d50dd814980eb", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6?download=47c968737f624b6fb2947bce2efcbbef", + "documentOf": "tender", + "confidentiality": "public", + "id": "c91902ad94c84634af4b0be8fe9e73b6", "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/tender_stage1_complete.http b/docs/source/tendering/competitivedialogue/tutorial/tender_stage1_complete.http index 8ac77b3860..b4a34a6510 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/tender_stage1_complete.http +++ b/docs/source/tendering/competitivedialogue/tutorial/tender_stage1_complete.http @@ -726,7 +726,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "aec3b0b4e9754b75a95e53b611bb9bb0", - "bidID": "d46e2205e6014884beff5e4df83a4e19", + "bidID": "fd70953552a346ecbb2d7f86de89b253", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -734,7 +734,7 @@ X-Content-Type-Options: nosniff }, { "id": "013668c1c6554de4b3c5d87fd5e1b8c6", - "bidID": "8c8ab41ca89e47269a0e8c1770185d7a", + "bidID": "5534cee2594649ccaa91a9f87caa96e2", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -742,7 +742,7 @@ X-Content-Type-Options: nosniff }, { "id": "685019c58271466dabb599125f990312", - "bidID": "2e01f99899594fa6939391b658c3a921", + "bidID": "c8cf921842b343ae90f0b4666658776e", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff }, { "id": "3c016fe78a014d44899287fe135be249", - "bidID": "bf385297ea2240069057a49814810cc7", + "bidID": "858275d219d14850b85c83ea77b91281", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -790,10 +790,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "d46e2205e6014884beff5e4df83a4e19", + "id": "fd70953552a346ecbb2d7f86de89b253", "requirementResponses": [ { - "id": "1a4728a64899402aa2b8394b94612dd9", + "id": "ef0f70d907ec4e7b9d5c56b40ce93e68", "title": "Requirement response", "description": "some description", "requirement": { @@ -803,7 +803,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5b02717efbc04bbf88ff592a58e4e5c5", + "id": "c59f9ddfc95e473099d6f4ac75f58e7c", "title": "Requirement response", "description": "some description", "requirement": { @@ -813,7 +813,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "695baf9cd66b424490b943599e62e123", + "id": "37a7adf4849948b6ac35da4990eae88f", "title": "Requirement response", "description": "some description", "requirement": { @@ -823,7 +823,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8bfbcecdadd046e68d4ff6a539bae0d4", + "id": "77c103da1cbe4286b64fd1b7d3fe0d7e", "title": "Requirement response", "description": "some description", "requirement": { @@ -833,7 +833,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f61f804d68964dfbb2ae7db3df05524d", + "id": "331d67e2d65d44e7bea2623125c45228", "title": "Requirement response", "description": "some description", "requirement": { @@ -843,7 +843,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b2cdbb5633f848beb65d54cdb000a94d", + "id": "36055a76e38a4e579893a8f29b942621", "title": "Requirement response", "description": "some description", "requirement": { @@ -853,7 +853,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "42ccee1adff545f392e3cbdbbf273490", + "id": "e6d1f05822fa4675853d86bdc84fa44c", "title": "Requirement response", "description": "some description", "requirement": { @@ -863,7 +863,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7d49d5e34a5443bebb710a3ea1f2a4ca", + "id": "77506421383c4513ae9018ffe507ed86", "title": "Requirement response", "description": "some description", "requirement": { @@ -873,7 +873,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "ba84cf2d46b54d74b0ef46ef5f6aa04e", + "id": "b516909a270d4127b202c829d52bb542", "title": "Requirement response", "description": "some description", "requirement": { @@ -883,7 +883,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "5664d4c9c7e543e5bf19663045ced09e", + "id": "7e23d4d2926e4a888ef7a24fcc9bc2c5", "title": "Requirement response", "description": "some description", "requirement": { @@ -893,7 +893,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b710b973cf634726ba233dd1b6952a89", + "id": "45534f4968854c0bbea6d604dc7b080a", "title": "Requirement response", "description": "some description", "requirement": { @@ -908,11 +908,11 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "152b6f75a906449c8301d586f336df98", + "id": "58c3e809e0bb499f87fda30df5d0576b", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/650a2e2f970f47d3bb08d89316c71c50?Signature=feUn1vIGH58gkWYNyofuGRXRgBftI97LhfGAmjSYtLX87TIFpYuuAHGFBbaZM2DHCBUlsuUAE%2FFB1EqWw0ssAg%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -921,11 +921,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "5f13a95c29334712a623e60b61762df8", + "id": "c7e495cd14fa4afe994ffceb6eb9d647", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -934,11 +934,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": true }, { - "id": "e6af73717567432c9d5ce0513caff6df", + "id": "92215fd5524a419b9adca0acb93f8e3c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -974,10 +974,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "8c8ab41ca89e47269a0e8c1770185d7a", + "id": "5534cee2594649ccaa91a9f87caa96e2", "requirementResponses": [ { - "id": "5dd091f3c76b4bb3a7b29630bd7df751", + "id": "f4d39fa6c2704f4d869054d34edac10a", "title": "Requirement response", "description": "some description", "requirement": { @@ -987,7 +987,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6e3a76bcbfe642038c14ee67c70fedc4", + "id": "3d43db7d53614a0e9942610218077b48", "title": "Requirement response", "description": "some description", "requirement": { @@ -997,7 +997,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1e426784a7b643b8915ebd6a9485d7bb", + "id": "f3ac447cd11442afabf9bdb5b9b44632", "title": "Requirement response", "description": "some description", "requirement": { @@ -1007,7 +1007,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4eceb072e77b4d14886a7b02cc2e6add", + "id": "26f1912edf194ff781ec7de1a346253f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1017,7 +1017,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9e0569e031ce43a5a109b7059dd73b7c", + "id": "ce1601171f514a82a09d4820ae25add1", "title": "Requirement response", "description": "some description", "requirement": { @@ -1027,7 +1027,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7f2109bc822b4d26adc64555b7e9e871", + "id": "779f82f1183f4007985c38c6db72ee79", "title": "Requirement response", "description": "some description", "requirement": { @@ -1037,7 +1037,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "202691d2949b4c35b83f00cad4e0c549", + "id": "be7450bf1ca84e22b7e18435a311511c", "title": "Requirement response", "description": "some description", "requirement": { @@ -1047,7 +1047,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c80a5b9303ea45069bf3449822761c2c", + "id": "ff7fc1212e974aba968a57a517652113", "title": "Requirement response", "description": "some description", "requirement": { @@ -1057,7 +1057,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "173ac5f8ece5478ebb50bac7571489e1", + "id": "51f3670484254155a197d9b205961065", "title": "Requirement response", "description": "some description", "requirement": { @@ -1067,7 +1067,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4da34e4af3e04bf7a73175733bccae11", + "id": "ed87c180230b4c2eb95bf1b8d5a09bfd", "title": "Requirement response", "description": "some description", "requirement": { @@ -1077,7 +1077,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cd53366ce0174bb2aa5e4c37cabde9de", + "id": "2fe26a175b21458aa5d5ab99ff60173b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1115,10 +1115,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "2e01f99899594fa6939391b658c3a921", + "id": "c8cf921842b343ae90f0b4666658776e", "requirementResponses": [ { - "id": "b898fd0ab07145dd9bc8581d43e56601", + "id": "41f518cbd471453a913a32fe8dcfe53e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1128,7 +1128,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "99cf06b6970e4dd28353207c433a1fe4", + "id": "0b94547f9bbf4955998c5661409f5213", "title": "Requirement response", "description": "some description", "requirement": { @@ -1138,7 +1138,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0aecab357f29449f85f49943c01837dc", + "id": "ec374e01f4a446479d009e418f72dac5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1148,7 +1148,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "83861b4e7a6642c289b0fd96ee51f6eb", + "id": "b5075bcd1e434360bf788fc0d05e3b51", "title": "Requirement response", "description": "some description", "requirement": { @@ -1158,7 +1158,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f8024dbabdc4b65ae28f989c9c2db04", + "id": "d867925de878440e9061ad4b5baae44f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1168,7 +1168,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8fefc919650d4b0faecdaffa3ef5d06d", + "id": "58430774a2c64b5596b92818235803fa", "title": "Requirement response", "description": "some description", "requirement": { @@ -1178,7 +1178,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c33c31022f074f6c8ba4c028419d0b9b", + "id": "7384ef27820f45699944b6194f69aef2", "title": "Requirement response", "description": "some description", "requirement": { @@ -1188,7 +1188,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6a7799a40d994f91a4cd231ef0fae3ea", + "id": "bca1943114f345e1b6e38fceef1be9a5", "title": "Requirement response", "description": "some description", "requirement": { @@ -1198,7 +1198,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf63f96b6f07477392a7ed8f1cfc935c", + "id": "712c68545cea4c63bf15653934042940", "title": "Requirement response", "description": "some description", "requirement": { @@ -1208,7 +1208,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f7649d1f93ca4e69bc89e50cd9f3e320", + "id": "3c0a316602f84ca586535d5c1bceeb15", "title": "Requirement response", "description": "some description", "requirement": { @@ -1218,7 +1218,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1c0511fb67ea413788606e7a8924f6d0", + "id": "b3e5e325bb41459287cd0cde249e40a7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1256,10 +1256,10 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "bf385297ea2240069057a49814810cc7", + "id": "858275d219d14850b85c83ea77b91281", "requirementResponses": [ { - "id": "de0ff4950d0a40feb55cf93d9c196f67", + "id": "a396c0fb1176436b9ae4fbb99a9eefff", "title": "Requirement response", "description": "some description", "requirement": { @@ -1269,7 +1269,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "588ec57d869c4615b88d6ff4b9591d81", + "id": "7dcaf38054694fd59d1cc0bcd537f424", "title": "Requirement response", "description": "some description", "requirement": { @@ -1279,7 +1279,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393400588cef4c80b07618fd1c766e69", + "id": "5d00635168024d98aaaf754fb7cbde69", "title": "Requirement response", "description": "some description", "requirement": { @@ -1289,7 +1289,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "cf2eabe27bd74f218014b74cea90a121", + "id": "f7b3ee8cd3c04102bd5ee8502767739f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1299,7 +1299,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b17d435eb2664f998fd316c1f6fb464a", + "id": "5099f56736b04717873f48ebcb57e279", "title": "Requirement response", "description": "some description", "requirement": { @@ -1309,7 +1309,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7c4f3213ea5c4e1eb59ffa327fedfc24", + "id": "8d939508612844debcda88a963babcf9", "title": "Requirement response", "description": "some description", "requirement": { @@ -1319,7 +1319,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "1ad36ff775634c2db9e56e611afcfc73", + "id": "f05323454d2c450f8bfe1e21c39df79b", "title": "Requirement response", "description": "some description", "requirement": { @@ -1329,7 +1329,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16f3e66562424517855d5b346e9962f2", + "id": "5725cb0697e24b09a3f725d566873609", "title": "Requirement response", "description": "some description", "requirement": { @@ -1339,7 +1339,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c99d090cc6284a54999e674d40804417", + "id": "ddb520f4d694495eacbf68689f822a72", "title": "Requirement response", "description": "some description", "requirement": { @@ -1349,7 +1349,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "87f766ba75544f1183c29d1c7fcfa895", + "id": "23e37a057dfb42aeb17702326a089b7f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1359,7 +1359,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "d2931761b5804ff99d74345624935fed", + "id": "9d5ec699af5e4f648879310c66be045e", "title": "Requirement response", "description": "some description", "requirement": { @@ -1373,7 +1373,7 @@ X-Content-Type-Options: nosniff "status": "active", "documents": [ { - "id": "75590b4f943f4d1ca5bf6957f1aa3acf", + "id": "bf2b73185c7644999f4c772fd7dbc4b7", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1386,11 +1386,11 @@ X-Content-Type-Options: nosniff "isDescriptionDecision": false }, { - "id": "2379751ab69d4630b7c3ad6828a59f82", + "id": "19fcd74e8e884158873085b65694b1dc", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/bf385297ea2240069057a49814810cc7/documents/2379751ab69d4630b7c3ad6828a59f82?download=aec550f71c1e47f4bb789564fdfa149c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-descriptive-decision-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-descriptive-decision-proposal.http index 7c01322fa6..d76949341d 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-descriptive-decision-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-descriptive-decision-proposal.http @@ -1,34 +1,34 @@ -POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker -Content-Length: 155 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 335 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="DescriptiveProposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "DescriptiveProposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/5620292407bb4c8dab640c22d09475b0?Signature=AqiL8tz64uACs5J6xTIlGgEwVSD%2BPIPRYuN0WerllNaFGYd4f1FM50qZhHillmSL8y3tKG%2FGbni4BJncdHCACw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647 X-Content-Type-Options: nosniff { "data": { - "id": "5f13a95c29334712a623e60b61762df8", "hash": "md5:00000000000000000000000000000000", "title": "DescriptiveProposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/5f13a95c29334712a623e60b61762df8?download=a360449b0c4a4d61966532403de8287f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/c7e495cd14fa4afe994ffceb6eb9d647?download=5620292407bb4c8dab640c22d09475b0", "documentOf": "tender", "confidentiality": "public", - "language": "uk", - "isDescriptionDecision": false + "isDescriptionDecision": false, + "id": "c7e495cd14fa4afe994ffceb6eb9d647", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-private-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-private-proposal.http index 676979cd62..fb5cd0a1fd 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-private-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-private-proposal.http @@ -1,34 +1,34 @@ -POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker -Content-Length: 156 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 340 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal_top_secrets.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal_top_secrets.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/14275856480047db84f7f1e9779d7771?Signature=%2BOD6xNA0p1UlqIsOOtrsrYaIhrla9U3%2FaTMkQtfdtKzr%2BeMZezxUx2qVsSd1KT8Oan45CUdpBSNza%2FkET2yIBw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c X-Content-Type-Options: nosniff { "data": { - "id": "e6af73717567432c9d5ce0513caff6df", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/e6af73717567432c9d5ce0513caff6df?download=901e3b57b4074d16ab450a026b2a8cea", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/92215fd5524a419b9adca0acb93f8e3c?download=14275856480047db84f7f1e9779d7771", "documentOf": "tender", "confidentiality": "public", - "language": "uk", - "isDescriptionDecision": false + "isDescriptionDecision": false, + "id": "92215fd5524a419b9adca0acb93f8e3c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-proposal.http b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-proposal.http index fbab8fbbaa..7f7aad34c8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/upload-bid-proposal.http +++ b/docs/source/tendering/competitivedialogue/tutorial/upload-bid-proposal.http @@ -1,34 +1,34 @@ -POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents?acc_token=a10950a6626346cb8694ecf3e4ba0a7f HTTP/1.0 +POST /api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents?acc_token=3b8122a4f9fa475ca69d57dcfb5380d6 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 324 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=BIv%2FSFC2l2riSxoVYvtT22VXPim71RUhLeQC7QU%2F3l9srVUjqUX8LTIuYkX3Mgtpsz53g2bgT0qrStnwO6o8DA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/152b6f75a906449c8301d586f336df98 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/58c3e809e0bb499f87fda30df5d0576b X-Content-Type-Options: nosniff { "data": { - "id": "152b6f75a906449c8301d586f336df98", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/d46e2205e6014884beff5e4df83a4e19/documents/152b6f75a906449c8301d586f336df98?download=650a2e2f970f47d3bb08d89316c71c50", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/58c3e809e0bb499f87fda30df5d0576b?download=076b981bb04b40b88ebb84ad089a3247", "documentOf": "tender", "confidentiality": "public", - "language": "uk", - "isDescriptionDecision": false + "isDescriptionDecision": false, + "id": "58c3e809e0bb499f87fda30df5d0576b", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http b/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http index 671c171234..93139fbc64 100644 --- a/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8?acc_token=b6333f0eb61e422e8c473bf9f5ba0127 HTTP/1.0 +PATCH /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778?acc_token=be887f30f06b4c0d8a0f6863e961b084 HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -15,13 +15,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,36 +36,34 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "7a0d18f233564443b9093a96884d5cf8", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "active", + "id": "f8a53de01e5042089db617bd4814b778", + "date": "2021-03-16T00:00:01+02:00", + "selfEligible": true, "selfQualified": true, + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [], + "parameters": [], "documents": [ { - "id": "189fbd0e57174522bb0b44d7be761c1a", + "id": "a38bde5cd16f4abca5753048197ea87d", + "datePublished": "2021-03-16T00:00:01+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a?download=51a245b8c3624982921701ac24fb6451", - "datePublished": "2021-03-16T00:00:01+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "documentOf": "tender", "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "confidentiality": "public" } - ], - "selfEligible": true + ] } } diff --git a/docs/source/tendering/defense/http/bidder-after-changing-tender.http b/docs/source/tendering/defense/http/bidder-after-changing-tender.http index a93d3d2d7f..b60256fead 100644 --- a/docs/source/tendering/defense/http/bidder-after-changing-tender.http +++ b/docs/source/tendering/defense/http/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8?acc_token=b6333f0eb61e422e8c473bf9f5ba0127 HTTP/1.0 +GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778?acc_token=be887f30f06b4c0d8a0f6863e961b084 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,13 +7,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -23,36 +28,34 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "7a0d18f233564443b9093a96884d5cf8", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "draft", + "selfEligible": true, "selfQualified": true, + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [], + "parameters": [], "documents": [ { - "id": "189fbd0e57174522bb0b44d7be761c1a", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a?download=51a245b8c3624982921701ac24fb6451", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "documentOf": "tender", + "confidentiality": "public", + "id": "a38bde5cd16f4abca5753048197ea87d", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } ], - "selfEligible": true + "id": "f8a53de01e5042089db617bd4814b778", + "date": "2021-03-16T00:00:01+02:00" } } diff --git a/docs/source/tendering/defense/http/bidder-documents.http b/docs/source/tendering/defense/http/bidder-documents.http index 95897abf55..4795b995fb 100644 --- a/docs/source/tendering/defense/http/bidder-documents.http +++ b/docs/source/tendering/defense/http/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents?acc_token=b6333f0eb61e422e8c473bf9f5ba0127 HTTP/1.0 +GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents?acc_token=be887f30f06b4c0d8a0f6863e961b084 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,14 +8,15 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "189fbd0e57174522bb0b44d7be761c1a", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a?download=51a245b8c3624982921701ac24fb6451", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cb62bd21fee54c2798310d1f002f5979?Signature=XggChyH1zpkvXMQ1PJskrvV%2B3GPsgu0iHEehLQjizv8seQP1EXkMMFm0qby1qaUXagXu4w5vCtj6Z8yoBqJ7DA%3D%3D&KeyID=a8968c46", + "documentOf": "tender", + "confidentiality": "public", + "id": "a38bde5cd16f4abca5753048197ea87d", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } ] } diff --git a/docs/source/tendering/defense/http/bidder-participation-url.http b/docs/source/tendering/defense/http/bidder-participation-url.http index 6d9a1eec01..2805f7a6bb 100644 --- a/docs/source/tendering/defense/http/bidder-participation-url.http +++ b/docs/source/tendering/defense/http/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8?acc_token=b6333f0eb61e422e8c473bf9f5ba0127 HTTP/1.0 +GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778?acc_token=be887f30f06b4c0d8a0f6863e961b084 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,26 +31,27 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:01+02:00", - "id": "7a0d18f233564443b9093a96884d5cf8", + "id": "f8a53de01e5042089db617bd4814b778", "value": { "amount": 500.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/f8aae737ac8f4d34a52254e2f3416505?key_for_bid=7a0d18f233564443b9093a96884d5cf8", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/f8aae737ac8f4d34a52254e2f3416505?key_for_bid=f8a53de01e5042089db617bd4814b778", "subcontractingDetails": "ДКП «Орфей», Україна", "status": "active", "selfQualified": true, "documents": [ { - "id": "189fbd0e57174522bb0b44d7be761c1a", + "id": "a38bde5cd16f4abca5753048197ea87d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a?download=51a245b8c3624982921701ac24fb6451", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "documentOf": "tender", + "confidentiality": "public" } ], "selfEligible": true diff --git a/docs/source/tendering/defense/http/bidder2-participation-url.http b/docs/source/tendering/defense/http/bidder2-participation-url.http index a07f879ef7..d817825129 100644 --- a/docs/source/tendering/defense/http/bidder2-participation-url.http +++ b/docs/source/tendering/defense/http/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/e1003b274efa4f258b46468747bd5856?acc_token=833c7cf4dfb34873b1acf90aeaacbda4 HTTP/1.0 +GET /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/a01e736f8a744691af391d67e9cbd56c?acc_token=b0b275b1ea48492ca8f96fd77f7aedf7 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,13 +31,13 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:01+02:00", - "id": "e1003b274efa4f258b46468747bd5856", + "id": "a01e736f8a744691af391d67e9cbd56c", "value": { "amount": 499.0, "currency": "UAH", "valueAddedTaxIncluded": true }, - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/f8aae737ac8f4d34a52254e2f3416505?key_for_bid=e1003b274efa4f258b46468747bd5856", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/f8aae737ac8f4d34a52254e2f3416505?key_for_bid=a01e736f8a744691af391d67e9cbd56c", "status": "draft", "selfQualified": true, "selfEligible": true diff --git a/docs/source/tendering/defense/http/confirm-qualification.http b/docs/source/tendering/defense/http/confirm-qualification.http index 7ccbe1e2ce..9f8e11380a 100644 --- a/docs/source/tendering/defense/http/confirm-qualification.http +++ b/docs/source/tendering/defense/http/confirm-qualification.http @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "7a0d18f233564443b9093a96884d5cf8", + "bid_id": "f8a53de01e5042089db617bd4814b778", "complaintPeriod": { "startDate": "2021-03-16T00:00:01+02:00", "endDate": "2021-03-23T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-list-award-2.http b/docs/source/tendering/defense/http/new-complaints-list-award-2.http index 87641d8f4e..d0cd9dd2f4 100644 --- a/docs/source/tendering/defense/http/new-complaints-list-award-2.http +++ b/docs/source/tendering/defense/http/new-complaints-list-award-2.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "2a789548d1ca4ad1b443d94ea168868b", + "bid_id": "db456e258e62433f85f9eb784fdd2bcd", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-20T00:00:00+02:00" @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-20T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-list-award-3.http b/docs/source/tendering/defense/http/new-complaints-list-award-3.http index 7e9a2febf2..d5fbd41bc8 100644 --- a/docs/source/tendering/defense/http/new-complaints-list-award-3.http +++ b/docs/source/tendering/defense/http/new-complaints-list-award-3.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "2a789548d1ca4ad1b443d94ea168868b", + "bid_id": "db456e258e62433f85f9eb784fdd2bcd", "complaintPeriod": { "startDate": "2021-03-17T00:00:00+02:00", "endDate": "2021-03-23T00:00:00+02:00" @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-20T00:00:00+02:00" @@ -114,7 +114,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "complaintPeriod": { "startDate": "2021-03-17T00:00:00+02:00", "endDate": "2021-03-23T00:00:00+02:00" @@ -154,7 +154,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "3efe8fa539014f19a6de7359bf945f07", + "bid_id": "263fea9802d247dbadc581f6029b374b", "complaintPeriod": { "startDate": "2021-03-17T00:00:00+02:00", "endDate": "2021-03-23T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-list-award.http b/docs/source/tendering/defense/http/new-complaints-list-award.http index 8f9e719d23..790a809231 100644 --- a/docs/source/tendering/defense/http/new-complaints-list-award.http +++ b/docs/source/tendering/defense/http/new-complaints-list-award.http @@ -34,7 +34,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "2a789548d1ca4ad1b443d94ea168868b", + "bid_id": "db456e258e62433f85f9eb784fdd2bcd", "qualified": false, "eligible": false } diff --git a/docs/source/tendering/defense/http/new-complaints-patch-award-active-2.http b/docs/source/tendering/defense/http/new-complaints-patch-award-active-2.http index 486210e347..e2d2d3ab2e 100644 --- a/docs/source/tendering/defense/http/new-complaints-patch-award-active-2.http +++ b/docs/source/tendering/defense/http/new-complaints-patch-award-active-2.http @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "3efe8fa539014f19a6de7359bf945f07", + "bid_id": "263fea9802d247dbadc581f6029b374b", "complaintPeriod": { "startDate": "2021-03-17T00:00:00+02:00", "endDate": "2021-03-23T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-patch-award-active.http b/docs/source/tendering/defense/http/new-complaints-patch-award-active.http index bdd407ab56..a991e60314 100644 --- a/docs/source/tendering/defense/http/new-complaints-patch-award-active.http +++ b/docs/source/tendering/defense/http/new-complaints-patch-award-active.http @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-20T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-patch-award-cancelled.http b/docs/source/tendering/defense/http/new-complaints-patch-award-cancelled.http index b8aefd536f..2aaa9bb168 100644 --- a/docs/source/tendering/defense/http/new-complaints-patch-award-cancelled.http +++ b/docs/source/tendering/defense/http/new-complaints-patch-award-cancelled.http @@ -47,7 +47,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-20T00:00:00+02:00" diff --git a/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful-2.http b/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful-2.http index dbafefda38..8c6111d31b 100644 --- a/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful-2.http +++ b/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful-2.http @@ -47,7 +47,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "8705ff09f9b44d08950a98d0c5adae4c", + "bid_id": "d9d386def43949398d0d96b16c8edd34", "qualified": false, "eligible": false } diff --git a/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful.http b/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful.http index 880a0f6aff..58b42183f9 100644 --- a/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful.http +++ b/docs/source/tendering/defense/http/new-complaints-patch-award-unsuccessful.http @@ -42,7 +42,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "2a789548d1ca4ad1b443d94ea168868b", + "bid_id": "db456e258e62433f85f9eb784fdd2bcd", "qualified": false, "eligible": false } diff --git a/docs/source/tendering/defense/http/register-2nd-bidder.http b/docs/source/tendering/defense/http/register-2nd-bidder.http index c8c5525c94..4bdd80ac66 100644 --- a/docs/source/tendering/defense/http/register-2nd-bidder.http +++ b/docs/source/tendering/defense/http/register-2nd-bidder.http @@ -39,17 +39,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/e1003b274efa4f258b46468747bd5856 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/a01e736f8a744691af391d67e9cbd56c X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 499.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -59,27 +64,25 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "e1003b274efa4f258b46468747bd5856", - "value": { - "amount": 499.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, "status": "draft", + "selfEligible": true, "selfQualified": true, - "selfEligible": true + "lotValues": [], + "parameters": [], + "documents": [], + "id": "a01e736f8a744691af391d67e9cbd56c", + "date": "2021-03-16T00:00:01+02:00" }, "access": { - "token": "833c7cf4dfb34873b1acf90aeaacbda4", - "transfer": "1de5eef818f34a52b1b0c7bbdac6b0e9" + "token": "b0b275b1ea48492ca8f96fd77f7aedf7", + "transfer": "5799e4088c37466d8c0c0ddd2584b856" } } diff --git a/docs/source/tendering/defense/http/register-bidder.http b/docs/source/tendering/defense/http/register-bidder.http index d1e4b149ef..85e7024361 100644 --- a/docs/source/tendering/defense/http/register-bidder.http +++ b/docs/source/tendering/defense/http/register-bidder.http @@ -40,17 +40,22 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778 X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -60,28 +65,26 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "7a0d18f233564443b9093a96884d5cf8", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "draft", + "selfEligible": true, "selfQualified": true, - "selfEligible": true + "subcontractingDetails": "ДКП «Орфей», Україна", + "lotValues": [], + "parameters": [], + "documents": [], + "id": "f8a53de01e5042089db617bd4814b778", + "date": "2021-03-16T00:00:01+02:00" }, "access": { - "token": "b6333f0eb61e422e8c473bf9f5ba0127", - "transfer": "be60db29f88e4d2a829d3934ce065b4e" + "token": "be887f30f06b4c0d8a0f6863e961b084", + "transfer": "d7bc906f78fd47e8b8a24800854851f0" } } diff --git a/docs/source/tendering/defense/http/upload-bid-proposal.http b/docs/source/tendering/defense/http/upload-bid-proposal.http index 4ed825ca28..68b973322d 100644 --- a/docs/source/tendering/defense/http/upload-bid-proposal.http +++ b/docs/source/tendering/defense/http/upload-bid-proposal.http @@ -1,31 +1,33 @@ -POST /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents?acc_token=b6333f0eb61e422e8c473bf9f5ba0127 HTTP/1.0 +POST /api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents?acc_token=be887f30f06b4c0d8a0f6863e961b084 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 326 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cb62bd21fee54c2798310d1f002f5979?Signature=rzwtFUhUMIaKv5tXEJf7iLIkXgtPFWqxLqn78hiHyiJ0jn7S%2F5a%2F9VJ7TSBqMYP5eQxleOAaD4ZVsuQ465L%2FBA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d X-Content-Type-Options: nosniff { "data": { - "id": "189fbd0e57174522bb0b44d7be761c1a", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/7a0d18f233564443b9093a96884d5cf8/documents/189fbd0e57174522bb0b44d7be761c1a?download=51a245b8c3624982921701ac24fb6451", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "documentOf": "tender", + "confidentiality": "public", + "id": "a38bde5cd16f4abca5753048197ea87d", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } } diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-invalid-view.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-invalid-view.http index 7e683f9fe8..00cabed2f5 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-invalid-view.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-invalid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/7e24df74bd344cccb8b10df30ea5ad2b?acc_token=e25474c85dbb461bbabe5f65c722b6df HTTP/1.0 +GET /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/499825a459994ef698c1b3fe612196d2?acc_token=9963e91c78e34edbb8d8b7cb08a1bc4e HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "7e24df74bd344cccb8b10df30ea5ad2b", + "id": "499825a459994ef698c1b3fe612196d2", "status": "invalid" } } diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-update-view.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-update-view.http index caf5cc8430..b8cc21d7a6 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-update-view.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1-update-view.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/7e24df74bd344cccb8b10df30ea5ad2b?acc_token=e25474c85dbb461bbabe5f65c722b6df HTTP/1.0 +PATCH /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/499825a459994ef698c1b3fe612196d2?acc_token=9963e91c78e34edbb8d8b7cb08a1bc4e HTTP/1.0 Authorization: Bearer broker Content-Length: 214 Content-Type: application/json @@ -28,9 +28,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -40,18 +40,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "499825a459994ef698c1b3fe612196d2", "date": "2021-03-16T00:00:00+02:00", - "id": "7e24df74bd344cccb8b10df30ea5ad2b", "requirementResponses": [ { - "id": "e4c1973d72094680bfddfed591db840d", + "id": "80b0a9861a5a4eb1a1adbb39cdd22ffb", "title": "Requirement response", "description": "some description", "requirement": { @@ -61,7 +61,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0edefc28de5441449a4e787f6f88fbaa", + "id": "01d886d8124641a9874b303373e4c447", "title": "Requirement response", "description": "some description", "requirement": { @@ -71,7 +71,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc722e7aea594c9f862d548adfc100c8", + "id": "f5e879740c7f45feb0db228045476ff2", "title": "Requirement response", "description": "some description", "requirement": { @@ -81,7 +81,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3ae91355795247998d2bebcaef673ff0", + "id": "ae416d09e4e54b5787e8a4e1d2229c70", "title": "Requirement response", "description": "some description", "requirement": { @@ -91,7 +91,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "832a5b2fd255445ebe39f75e341a4c62", + "id": "748617088cd940c1b03ce093875508c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -101,7 +101,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e1f9b51df9154bbbac849d586820dfcf", + "id": "31867020c135460897c3be55991c5f61", "title": "Requirement response", "description": "some description", "requirement": { @@ -111,7 +111,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "52de314cc36544008ec82cf9ab03148b", + "id": "cc9f509f8a474b888297ef21590fefa6", "title": "Requirement response", "description": "some description", "requirement": { @@ -121,7 +121,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7fcf504b73d54254b2c0f866b2e30656", + "id": "9ab6233e3fae4351aef2ec5cbe46cc3a", "title": "Requirement response", "description": "some description", "requirement": { @@ -131,7 +131,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393df32130a24a558e72e9797f8d36dd", + "id": "41c761042fd247588190197051fe4072", "title": "Requirement response", "description": "some description", "requirement": { @@ -141,7 +141,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "aa570ac262924de3a979f7e75b5f390a", + "id": "cbc9991d3ad1432fa017ab05af3cbafa", "title": "Requirement response", "description": "some description", "requirement": { @@ -151,7 +151,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7918052e491c4b27941ae30a6b84dc01", + "id": "804fbe1fc8cd484d8fdf703610566dda", "title": "Requirement response", "description": "some description", "requirement": { @@ -165,9 +165,7 @@ X-Content-Type-Options: nosniff "lotValues": [ { "relatedLot": "93256198e2e7429ab4d0300cc250244f", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей»", - "status": "pending", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, @@ -201,7 +199,9 @@ X-Content-Type-Options: nosniff "years": 7, "days": 0 } - } + }, + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" } ], "selfQualified": true diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http index 23c8537893..dc080e72a5 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http @@ -71,7 +71,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/7e24df74bd344cccb8b10df30ea5ad2b +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/499825a459994ef698c1b3fe612196d2 X-Content-Type-Options: nosniff { "data": { @@ -79,9 +79,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -91,27 +91,27 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "7e24df74bd344cccb8b10df30ea5ad2b", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "draft", + "selfQualified": true, "lotValues": [ { "relatedLot": "93256198e2e7429ab4d0300cc250244f", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "pending", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 5572.77, - "amountPerformance": 1320.62, "yearlyPaymentsPercentage": 0.87, "annualCostsReduction": [ 200.0, @@ -139,15 +139,19 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 7, "days": 0 - } - } + }, + "amountPerformance": 1320.62, + "amount": 5572.77 + }, + "date": "2021-03-16T00:00:00+02:00" } ], - "selfQualified": true + "id": "499825a459994ef698c1b3fe612196d2", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "e25474c85dbb461bbabe5f65c722b6df", - "transfer": "131d51540e104948a22bf2662dd697f9" + "token": "9963e91c78e34edbb8d8b7cb08a1bc4e", + "transfer": "f28a4f8e0b3e4e69bfced40827a16855" } } diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2-update-view.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2-update-view.http index 24ae2a5899..3dc9fce4bf 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2-update-view.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2-update-view.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/819dd4a294e24e6196df664ff36aed16?acc_token=acac5f3d503545ecb1652cbdf4ccd6d0 HTTP/1.0 +PATCH /api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/2ab7fecbd7c846c9a4c507a13f01efd8?acc_token=afd678aee3e249888d49a05e3616d8b5 HTTP/1.0 Authorization: Bearer broker Content-Length: 124 Content-Type: application/json @@ -27,9 +27,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -39,18 +39,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], + "id": "2ab7fecbd7c846c9a4c507a13f01efd8", "date": "2021-03-16T00:00:00+02:00", - "id": "819dd4a294e24e6196df664ff36aed16", "requirementResponses": [ { - "id": "9b0bc3de986b4d639ad2c465400e4085", + "id": "8213963408444839b2f4f16757796fb7", "title": "Requirement response", "description": "some description", "requirement": { @@ -60,7 +60,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "adb04750c55b4a75aa0a51f97ea56a2b", + "id": "2a85676145774877bd008514504b5e21", "title": "Requirement response", "description": "some description", "requirement": { @@ -70,7 +70,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a55ba338194d44a4883276804d92b1a0", + "id": "7c3f2bbc55f94f37a1e5937b89029962", "title": "Requirement response", "description": "some description", "requirement": { @@ -80,7 +80,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "26b658f8b65c4974b0851813dbac9be2", + "id": "6bcd84a702b541fc8772e3516eafa538", "title": "Requirement response", "description": "some description", "requirement": { @@ -90,7 +90,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bf952297257b4c448e2c0132b02deb06", + "id": "1b510b4793074ecfb51a4845402f60b1", "title": "Requirement response", "description": "some description", "requirement": { @@ -100,7 +100,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "48f384d8bca7490f85a7d71bef3e9a69", + "id": "894e024ea118443a89f70e132ffa21aa", "title": "Requirement response", "description": "some description", "requirement": { @@ -110,7 +110,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e88ca0eaad412e8e0531f754021a5a", + "id": "a1bdefdf823848f09830dd94157ee22d", "title": "Requirement response", "description": "some description", "requirement": { @@ -120,7 +120,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b93e1b58d0334528996ed2577030f84e", + "id": "95d8290779f340bc895e31f02555e2dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -130,7 +130,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b6419048830e47f58bcb4664bb380fc5", + "id": "669f5b9a82924afeb5d599682a218c02", "title": "Requirement response", "description": "some description", "requirement": { @@ -140,7 +140,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f78dcec4b2ee433fbac7d12c9ad16e81", + "id": "39e04f3c2c4a49719f6198a7efcea7ef", "title": "Requirement response", "description": "some description", "requirement": { @@ -150,7 +150,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "982834db85a043cd8e789b37174d8028", + "id": "07ed994922104283b4065bdb6cdb62cd", "title": "Requirement response", "description": "some description", "requirement": { @@ -164,8 +164,6 @@ X-Content-Type-Options: nosniff "lotValues": [ { "relatedLot": "93256198e2e7429ab4d0300cc250244f", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, @@ -199,7 +197,9 @@ X-Content-Type-Options: nosniff "years": 7, "days": 0 } - } + }, + "date": "2021-03-16T00:00:00+02:00", + "status": "pending" } ], "selfQualified": true diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http index 8d1ce08782..25d39c2da6 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http @@ -103,7 +103,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/819dd4a294e24e6196df664ff36aed16 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/3999e118d0d4460a8852c363407a5252/bids/2ab7fecbd7c846c9a4c507a13f01efd8 X-Content-Type-Options: nosniff { "data": { @@ -111,9 +111,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -123,26 +123,26 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "819dd4a294e24e6196df664ff36aed16", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "draft", + "selfQualified": true, "lotValues": [ { "relatedLot": "93256198e2e7429ab4d0300cc250244f", - "date": "2021-03-16T00:00:00+02:00", - "status": "pending", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 9565.89, - "amountPerformance": 2009.5, "yearlyPaymentsPercentage": 0.9, "annualCostsReduction": [ 700.0, @@ -170,19 +170,18 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 7, "days": 0 - } - } + }, + "amountPerformance": 2009.5, + "amount": 9565.89 + }, + "date": "2021-03-16T00:00:00+02:00" }, { "relatedLot": "ae36b7ca7b4a44d8b3c015a3e4043f4f", - "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Укр Прінт», Україна", - "status": "pending", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 10028.71, - "amountPerformance": 892.71, "yearlyPaymentsPercentage": 0.96, "annualCostsReduction": [ 600.0, @@ -210,15 +209,19 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 9, "days": 0 - } - } + }, + "amountPerformance": 892.71, + "amount": 10028.71 + }, + "date": "2021-03-16T00:00:00+02:00" } ], - "selfQualified": true + "id": "2ab7fecbd7c846c9a4c507a13f01efd8", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "acac5f3d503545ecb1652cbdf4ccd6d0", - "transfer": "1fab6efc4f6d4e38b1ad58cc418385ac" + "token": "afd678aee3e249888d49a05e3616d8b5", + "transfer": "71ad2064cd1b4bad9a0cfb6e233e4117" } } diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/qualifications-view.http b/docs/source/tendering/esco/multiple_lots_tutorial/qualifications-view.http index b8e2eb5ea7..2531fbd4d7 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/qualifications-view.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/qualifications-view.http @@ -9,7 +9,7 @@ X-Content-Type-Options: nosniff "data": [ { "id": "b679283404804eca89ada7eee7cf23d5", - "bidID": "7e24df74bd344cccb8b10df30ea5ad2b", + "bidID": "499825a459994ef698c1b3fe612196d2", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff }, { "id": "5b004ef2774746db88d46a7ea4e0e62f", - "bidID": "819dd4a294e24e6196df664ff36aed16", + "bidID": "2ab7fecbd7c846c9a4c507a13f01efd8", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "pending", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/tender-activate-qualifications.http b/docs/source/tendering/esco/multiple_lots_tutorial/tender-activate-qualifications.http index 78aee4f1fd..6bfa4f9930 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/tender-activate-qualifications.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/tender-activate-qualifications.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "b679283404804eca89ada7eee7cf23d5", - "bidID": "7e24df74bd344cccb8b10df30ea5ad2b", + "bidID": "499825a459994ef698c1b3fe612196d2", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http b/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http index ef0e6669f3..e6076973c4 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification-stand-still.http @@ -697,10 +697,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "7e24df74bd344cccb8b10df30ea5ad2b", + "id": "499825a459994ef698c1b3fe612196d2", "requirementResponses": [ { - "id": "e4c1973d72094680bfddfed591db840d", + "id": "80b0a9861a5a4eb1a1adbb39cdd22ffb", "title": "Requirement response", "description": "some description", "requirement": { @@ -710,7 +710,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0edefc28de5441449a4e787f6f88fbaa", + "id": "01d886d8124641a9874b303373e4c447", "title": "Requirement response", "description": "some description", "requirement": { @@ -720,7 +720,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc722e7aea594c9f862d548adfc100c8", + "id": "f5e879740c7f45feb0db228045476ff2", "title": "Requirement response", "description": "some description", "requirement": { @@ -730,7 +730,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3ae91355795247998d2bebcaef673ff0", + "id": "ae416d09e4e54b5787e8a4e1d2229c70", "title": "Requirement response", "description": "some description", "requirement": { @@ -740,7 +740,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "832a5b2fd255445ebe39f75e341a4c62", + "id": "748617088cd940c1b03ce093875508c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e1f9b51df9154bbbac849d586820dfcf", + "id": "31867020c135460897c3be55991c5f61", "title": "Requirement response", "description": "some description", "requirement": { @@ -760,7 +760,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "52de314cc36544008ec82cf9ab03148b", + "id": "cc9f509f8a474b888297ef21590fefa6", "title": "Requirement response", "description": "some description", "requirement": { @@ -770,7 +770,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7fcf504b73d54254b2c0f866b2e30656", + "id": "9ab6233e3fae4351aef2ec5cbe46cc3a", "title": "Requirement response", "description": "some description", "requirement": { @@ -780,7 +780,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393df32130a24a558e72e9797f8d36dd", + "id": "41c761042fd247588190197051fe4072", "title": "Requirement response", "description": "some description", "requirement": { @@ -790,7 +790,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "aa570ac262924de3a979f7e75b5f390a", + "id": "cbc9991d3ad1432fa017ab05af3cbafa", "title": "Requirement response", "description": "some description", "requirement": { @@ -800,7 +800,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7918052e491c4b27941ae30a6b84dc01", + "id": "804fbe1fc8cd484d8fdf703610566dda", "title": "Requirement response", "description": "some description", "requirement": { @@ -836,10 +836,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "819dd4a294e24e6196df664ff36aed16", + "id": "2ab7fecbd7c846c9a4c507a13f01efd8", "requirementResponses": [ { - "id": "9b0bc3de986b4d639ad2c465400e4085", + "id": "8213963408444839b2f4f16757796fb7", "title": "Requirement response", "description": "some description", "requirement": { @@ -849,7 +849,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "adb04750c55b4a75aa0a51f97ea56a2b", + "id": "2a85676145774877bd008514504b5e21", "title": "Requirement response", "description": "some description", "requirement": { @@ -859,7 +859,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a55ba338194d44a4883276804d92b1a0", + "id": "7c3f2bbc55f94f37a1e5937b89029962", "title": "Requirement response", "description": "some description", "requirement": { @@ -869,7 +869,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "26b658f8b65c4974b0851813dbac9be2", + "id": "6bcd84a702b541fc8772e3516eafa538", "title": "Requirement response", "description": "some description", "requirement": { @@ -879,7 +879,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bf952297257b4c448e2c0132b02deb06", + "id": "1b510b4793074ecfb51a4845402f60b1", "title": "Requirement response", "description": "some description", "requirement": { @@ -889,7 +889,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "48f384d8bca7490f85a7d71bef3e9a69", + "id": "894e024ea118443a89f70e132ffa21aa", "title": "Requirement response", "description": "some description", "requirement": { @@ -899,7 +899,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e88ca0eaad412e8e0531f754021a5a", + "id": "a1bdefdf823848f09830dd94157ee22d", "title": "Requirement response", "description": "some description", "requirement": { @@ -909,7 +909,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b93e1b58d0334528996ed2577030f84e", + "id": "95d8290779f340bc895e31f02555e2dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -919,7 +919,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b6419048830e47f58bcb4664bb380fc5", + "id": "669f5b9a82924afeb5d599682a218c02", "title": "Requirement response", "description": "some description", "requirement": { @@ -929,7 +929,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f78dcec4b2ee433fbac7d12c9ad16e81", + "id": "39e04f3c2c4a49719f6198a7efcea7ef", "title": "Requirement response", "description": "some description", "requirement": { @@ -939,7 +939,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "982834db85a043cd8e789b37174d8028", + "id": "07ed994922104283b4065bdb6cdb62cd", "title": "Requirement response", "description": "some description", "requirement": { @@ -1016,7 +1016,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "b679283404804eca89ada7eee7cf23d5", - "bidID": "7e24df74bd344cccb8b10df30ea5ad2b", + "bidID": "499825a459994ef698c1b3fe612196d2", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "active", "date": "2021-03-16T00:00:00+02:00", @@ -1025,7 +1025,7 @@ X-Content-Type-Options: nosniff }, { "id": "5b004ef2774746db88d46a7ea4e0e62f", - "bidID": "819dd4a294e24e6196df664ff36aed16", + "bidID": "2ab7fecbd7c846c9a4c507a13f01efd8", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "active", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification.http b/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification.http index 81d97d4917..983aa92cac 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/tender-view-pre-qualification.http @@ -689,10 +689,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "7e24df74bd344cccb8b10df30ea5ad2b", + "id": "499825a459994ef698c1b3fe612196d2", "requirementResponses": [ { - "id": "e4c1973d72094680bfddfed591db840d", + "id": "80b0a9861a5a4eb1a1adbb39cdd22ffb", "title": "Requirement response", "description": "some description", "requirement": { @@ -702,7 +702,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "0edefc28de5441449a4e787f6f88fbaa", + "id": "01d886d8124641a9874b303373e4c447", "title": "Requirement response", "description": "some description", "requirement": { @@ -712,7 +712,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "fc722e7aea594c9f862d548adfc100c8", + "id": "f5e879740c7f45feb0db228045476ff2", "title": "Requirement response", "description": "some description", "requirement": { @@ -722,7 +722,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3ae91355795247998d2bebcaef673ff0", + "id": "ae416d09e4e54b5787e8a4e1d2229c70", "title": "Requirement response", "description": "some description", "requirement": { @@ -732,7 +732,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "832a5b2fd255445ebe39f75e341a4c62", + "id": "748617088cd940c1b03ce093875508c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -742,7 +742,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e1f9b51df9154bbbac849d586820dfcf", + "id": "31867020c135460897c3be55991c5f61", "title": "Requirement response", "description": "some description", "requirement": { @@ -752,7 +752,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "52de314cc36544008ec82cf9ab03148b", + "id": "cc9f509f8a474b888297ef21590fefa6", "title": "Requirement response", "description": "some description", "requirement": { @@ -762,7 +762,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7fcf504b73d54254b2c0f866b2e30656", + "id": "9ab6233e3fae4351aef2ec5cbe46cc3a", "title": "Requirement response", "description": "some description", "requirement": { @@ -772,7 +772,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "393df32130a24a558e72e9797f8d36dd", + "id": "41c761042fd247588190197051fe4072", "title": "Requirement response", "description": "some description", "requirement": { @@ -782,7 +782,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "aa570ac262924de3a979f7e75b5f390a", + "id": "cbc9991d3ad1432fa017ab05af3cbafa", "title": "Requirement response", "description": "some description", "requirement": { @@ -792,7 +792,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "7918052e491c4b27941ae30a6b84dc01", + "id": "804fbe1fc8cd484d8fdf703610566dda", "title": "Requirement response", "description": "some description", "requirement": { @@ -828,10 +828,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "819dd4a294e24e6196df664ff36aed16", + "id": "2ab7fecbd7c846c9a4c507a13f01efd8", "requirementResponses": [ { - "id": "9b0bc3de986b4d639ad2c465400e4085", + "id": "8213963408444839b2f4f16757796fb7", "title": "Requirement response", "description": "some description", "requirement": { @@ -841,7 +841,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "adb04750c55b4a75aa0a51f97ea56a2b", + "id": "2a85676145774877bd008514504b5e21", "title": "Requirement response", "description": "some description", "requirement": { @@ -851,7 +851,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a55ba338194d44a4883276804d92b1a0", + "id": "7c3f2bbc55f94f37a1e5937b89029962", "title": "Requirement response", "description": "some description", "requirement": { @@ -861,7 +861,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "26b658f8b65c4974b0851813dbac9be2", + "id": "6bcd84a702b541fc8772e3516eafa538", "title": "Requirement response", "description": "some description", "requirement": { @@ -871,7 +871,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "bf952297257b4c448e2c0132b02deb06", + "id": "1b510b4793074ecfb51a4845402f60b1", "title": "Requirement response", "description": "some description", "requirement": { @@ -881,7 +881,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "48f384d8bca7490f85a7d71bef3e9a69", + "id": "894e024ea118443a89f70e132ffa21aa", "title": "Requirement response", "description": "some description", "requirement": { @@ -891,7 +891,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c6e88ca0eaad412e8e0531f754021a5a", + "id": "a1bdefdf823848f09830dd94157ee22d", "title": "Requirement response", "description": "some description", "requirement": { @@ -901,7 +901,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b93e1b58d0334528996ed2577030f84e", + "id": "95d8290779f340bc895e31f02555e2dc", "title": "Requirement response", "description": "some description", "requirement": { @@ -911,7 +911,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b6419048830e47f58bcb4664bb380fc5", + "id": "669f5b9a82924afeb5d599682a218c02", "title": "Requirement response", "description": "some description", "requirement": { @@ -921,7 +921,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f78dcec4b2ee433fbac7d12c9ad16e81", + "id": "39e04f3c2c4a49719f6198a7efcea7ef", "title": "Requirement response", "description": "some description", "requirement": { @@ -931,7 +931,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "982834db85a043cd8e789b37174d8028", + "id": "07ed994922104283b4065bdb6cdb62cd", "title": "Requirement response", "description": "some description", "requirement": { @@ -1005,7 +1005,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "b679283404804eca89ada7eee7cf23d5", - "bidID": "7e24df74bd344cccb8b10df30ea5ad2b", + "bidID": "499825a459994ef698c1b3fe612196d2", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "pending", "date": "2021-03-16T00:00:00+02:00", @@ -1014,7 +1014,7 @@ X-Content-Type-Options: nosniff }, { "id": "5b004ef2774746db88d46a7ea4e0e62f", - "bidID": "819dd4a294e24e6196df664ff36aed16", + "bidID": "2ab7fecbd7c846c9a4c507a13f01efd8", "lotID": "93256198e2e7429ab4d0300cc250244f", "status": "pending", "date": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/esco/tutorial/activate-bidder.http b/docs/source/tendering/esco/tutorial/activate-bidder.http index dfedbcadd1..cd0b96b2e6 100644 --- a/docs/source/tendering/esco/tutorial/activate-bidder.http +++ b/docs/source/tendering/esco/tutorial/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -19,9 +19,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,18 +31,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "931f9a28ea1c44bda087fc6d9349405f", "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -52,7 +52,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -62,7 +62,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -82,7 +82,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -92,7 +92,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -102,7 +102,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -112,7 +112,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -122,7 +122,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -132,7 +132,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -142,7 +142,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { diff --git a/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http index ea60760170..c0be6e4222 100644 --- a/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Content-Length: 14504 Content-Type: application/json @@ -119,9 +119,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -131,18 +131,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "931f9a28ea1c44bda087fc6d9349405f", "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,7 +152,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -162,7 +162,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -172,7 +172,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -182,7 +182,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -192,7 +192,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -202,7 +202,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -212,7 +212,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -222,7 +222,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -232,7 +232,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -242,7 +242,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -253,6 +253,11 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", @@ -288,6 +293,7 @@ X-Content-Type-Options: nosniff "days": 74 } }, + "lotValues": [], "selfQualified": true } } diff --git a/docs/source/tendering/esco/tutorial/approve-qualification1.http b/docs/source/tendering/esco/tutorial/approve-qualification1.http index 2908835325..1e493bd69a 100644 --- a/docs/source/tendering/esco/tutorial/approve-qualification1.http +++ b/docs/source/tendering/esco/tutorial/approve-qualification1.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "034c906ddc6c44cdb6ceca4bedd3e804", - "bidID": "c2273631949e4fbeb8ff3a1be667e937", + "bidID": "931f9a28ea1c44bda087fc6d9349405f", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/esco/tutorial/approve-qualification2.http b/docs/source/tendering/esco/tutorial/approve-qualification2.http index c3ce17a72c..e3b1226cd6 100644 --- a/docs/source/tendering/esco/tutorial/approve-qualification2.http +++ b/docs/source/tendering/esco/tutorial/approve-qualification2.http @@ -18,7 +18,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "4131d03c9cd44592a8c1b75bddb6b07c", - "bidID": "468ac9114f984d6db190c626a8aaf7d2", + "bidID": "ae5a970874fd4292995525fb1c03d678", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, diff --git a/docs/source/tendering/esco/tutorial/auction-url.http b/docs/source/tendering/esco/tutorial/auction-url.http index 8b01cfb06a..47dae42bc8 100644 --- a/docs/source/tendering/esco/tutorial/auction-url.http +++ b/docs/source/tendering/esco/tutorial/auction-url.http @@ -691,14 +691,14 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -706,7 +706,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -720,11 +720,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -758,7 +758,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", "status": "active" }, { @@ -785,10 +785,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -798,7 +798,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -808,7 +808,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -818,7 +818,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -828,7 +828,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -838,7 +838,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -848,7 +848,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -858,7 +858,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -868,7 +868,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -878,7 +878,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -888,7 +888,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -900,7 +900,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -912,7 +912,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -926,7 +926,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1021,7 +1021,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "034c906ddc6c44cdb6ceca4bedd3e804", - "bidID": "c2273631949e4fbeb8ff3a1be667e937", + "bidID": "931f9a28ea1c44bda087fc6d9349405f", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1029,7 +1029,7 @@ X-Content-Type-Options: nosniff }, { "id": "4131d03c9cd44592a8c1b75bddb6b07c", - "bidID": "468ac9114f984d6db190c626a8aaf7d2", + "bidID": "ae5a970874fd4292995525fb1c03d678", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1037,7 +1037,7 @@ X-Content-Type-Options: nosniff }, { "id": "a9f7b7af576f4cc99e3fba206c6b9701", - "bidID": "5310455e694b497a843478d8f7cf8865", + "bidID": "a7cd2c260a0448f5a1bf70345eb8d414", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http index 156dcc6ba0..5034ae2a16 100644 --- a/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Content-Length: 31 Content-Type: application/json @@ -19,9 +19,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -31,18 +31,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "931f9a28ea1c44bda087fc6d9349405f", "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -52,7 +52,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -62,7 +62,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -72,7 +72,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -82,7 +82,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -92,7 +92,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -102,7 +102,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -112,7 +112,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -122,7 +122,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -132,7 +132,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -142,7 +142,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -152,88 +152,88 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/1ecfafb087644ed6ba8d235bed9dbdb3?download=c8eb97234afd4072b4d81ba5c0ed3ed8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c?download=bd899d26e31643489abf7981b0f34549", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", + "confidentialityRationale": "Only our company sells badgers with pink hair.", "language": "uk" } ], "financialDocuments": [ { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", + "id": "e51f3496da644d008f4ebf28bf244426", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1?download=d10c185327ec4bbebe4e3ad70a99817c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/e51f3496da644d008f4ebf28bf244426?download=e205d4bfb1664749a31410c1fcbc0273", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" }, { - "id": "0dd418a59806492e96538c63ea053a6e", + "id": "6478d18120e944b3875dbec011f545be", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e?download=7313decb01c14f3ba03a500fcfa366a3", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/6478d18120e944b3875dbec011f545be?download=e306562479754a0d8a0d64cb0036fcae", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/eligibility_documents/0f9a61626ee949fc93143f984c9c0357?download=d76b0d3e7ad945ebbd9f08a407b5b565", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/eligibility_documents/e72c93051d2246239ad4350c91d01826?download=cf23b9f3719f423d9d9a447631f0e067", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], "qualificationDocuments": [ { - "id": "a8ab2b549b0e48c1a8ca183631fd427c", + "id": "3a6cfa8745244c76826154b4196fa36e", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents/a8ab2b549b0e48c1a8ca183631fd427c?download=1e5b3746a8a1483a828de3f39a63f42d", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents/3a6cfa8745244c76826154b4196fa36e?download=55caeebab78045959bdf295a177ca980", "documentOf": "tender", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", "language": "uk" } ], - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending", "value": { "currency": "UAH", diff --git a/docs/source/tendering/esco/tutorial/bidder-after-changing-tender.http b/docs/source/tendering/esco/tutorial/bidder-after-changing-tender.http index ea7df255c6..67b1712d17 100644 --- a/docs/source/tendering/esco/tutorial/bidder-after-changing-tender.http +++ b/docs/source/tendering/esco/tutorial/bidder-after-changing-tender.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -7,7 +7,7 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", "status": "invalid" } } diff --git a/docs/source/tendering/esco/tutorial/bidder-documents.http b/docs/source/tendering/esco/tutorial/bidder-documents.http index 6074e89ab2..ec76d57471 100644 --- a/docs/source/tendering/esco/tutorial/bidder-documents.http +++ b/docs/source/tendering/esco/tutorial/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,29 +8,27 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/1ecfafb087644ed6ba8d235bed9dbdb3?download=c8eb97234afd4072b4d81ba5c0ed3ed8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "fe0e171a76a9484690da8f1ca3078c5c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ] } diff --git a/docs/source/tendering/esco/tutorial/bidder-financial-documents.http b/docs/source/tendering/esco/tutorial/bidder-financial-documents.http index 982162aef3..4144416b3a 100644 --- a/docs/source/tendering/esco/tutorial/bidder-financial-documents.http +++ b/docs/source/tendering/esco/tutorial/bidder-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,28 +8,26 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1?download=d10c185327ec4bbebe4e3ad70a99817c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e205d4bfb1664749a31410c1fcbc0273?Signature=1%2BC2Nxc%2FPIgFhzgfScLfI%2BkpWthB%2B6jJgVAp184qG31Bk2dwwnhKwwCWNk609la2GO6QVAT6eqz0ZbMFqwp4BA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e51f3496da644d008f4ebf28bf244426", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "0dd418a59806492e96538c63ea053a6e", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e?download=7313decb01c14f3ba03a500fcfa366a3", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e306562479754a0d8a0d64cb0036fcae?Signature=0zTwe9ZZqhfzjGZSKSEGGOBDH0jZmG%2FkoCPoh43ZDw6lXcAeP3hw1l0tGHzoPJ3bcUPWIGevLYGBCdGAXbzECw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "6478d18120e944b3875dbec011f545be", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ] } diff --git a/docs/source/tendering/esco/tutorial/bidder-participation-url.http b/docs/source/tendering/esco/tutorial/bidder-participation-url.http index ab4bf01998..ffacde838d 100644 --- a/docs/source/tendering/esco/tutorial/bidder-participation-url.http +++ b/docs/source/tendering/esco/tutorial/bidder-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,11 +31,11 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=931f9a28ea1c44bda087fc6d9349405f", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -45,7 +45,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -55,7 +55,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -65,7 +65,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -75,7 +75,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -85,7 +85,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -95,7 +95,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -105,7 +105,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -115,7 +115,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -125,7 +125,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -135,7 +135,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -147,11 +147,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -159,11 +159,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -174,11 +174,11 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", + "id": "e51f3496da644d008f4ebf28bf244426", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1?download=d10c185327ec4bbebe4e3ad70a99817c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/e51f3496da644d008f4ebf28bf244426?download=e205d4bfb1664749a31410c1fcbc0273", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -186,11 +186,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "0dd418a59806492e96538c63ea053a6e", + "id": "6478d18120e944b3875dbec011f545be", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e?download=7313decb01c14f3ba03a500fcfa366a3", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/6478d18120e944b3875dbec011f545be?download=e306562479754a0d8a0d64cb0036fcae", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -200,11 +200,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -214,11 +214,11 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "a8ab2b549b0e48c1a8ca183631fd427c", + "id": "3a6cfa8745244c76826154b4196fa36e", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents/a8ab2b549b0e48c1a8ca183631fd427c?download=1e5b3746a8a1483a828de3f39a63f42d", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents/3a6cfa8745244c76826154b4196fa36e?download=55caeebab78045959bdf295a177ca980", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http index f22546bea0..b40bb29686 100644 --- a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -11,9 +11,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -23,18 +23,18 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], + "id": "931f9a28ea1c44bda087fc6d9349405f", "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +134,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -144,88 +144,83 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", + "parameters": [], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/1ecfafb087644ed6ba8d235bed9dbdb3?download=c8eb97234afd4072b4d81ba5c0ed3ed8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c?download=bd899d26e31643489abf7981b0f34549", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "fe0e171a76a9484690da8f1ca3078c5c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ], "financialDocuments": [ { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1?download=d10c185327ec4bbebe4e3ad70a99817c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/e51f3496da644d008f4ebf28bf244426?download=e205d4bfb1664749a31410c1fcbc0273", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e51f3496da644d008f4ebf28bf244426", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "0dd418a59806492e96538c63ea053a6e", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e?download=7313decb01c14f3ba03a500fcfa366a3", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/6478d18120e944b3875dbec011f545be?download=e306562479754a0d8a0d64cb0036fcae", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "6478d18120e944b3875dbec011f545be", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/eligibility_documents/0f9a61626ee949fc93143f984c9c0357?download=d76b0d3e7ad945ebbd9f08a407b5b565", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/eligibility_documents/e72c93051d2246239ad4350c91d01826?download=cf23b9f3719f423d9d9a447631f0e067", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e72c93051d2246239ad4350c91d01826", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "a8ab2b549b0e48c1a8ca183631fd427c", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents/a8ab2b549b0e48c1a8ca183631fd427c?download=1e5b3746a8a1483a828de3f39a63f42d", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents/3a6cfa8745244c76826154b4196fa36e?download=55caeebab78045959bdf295a177ca980", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3a6cfa8745244c76826154b4196fa36e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], - "subcontractingDetails": "ДКП «Орфей», Україна", "status": "pending", "value": { "currency": "UAH", diff --git a/docs/source/tendering/esco/tutorial/bidder2-participation-url.http b/docs/source/tendering/esco/tutorial/bidder2-participation-url.http index 88d5a03f66..36e71db655 100644 --- a/docs/source/tendering/esco/tutorial/bidder2-participation-url.http +++ b/docs/source/tendering/esco/tutorial/bidder2-participation-url.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/468ac9114f984d6db190c626a8aaf7d2?acc_token=f951db70a1164f61a8e890d5f458a6c5 HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/ae5a970874fd4292995525fb1c03d678?acc_token=dabbc7c822784799ad698457d896e750 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -31,11 +31,11 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "468ac9114f984d6db190c626a8aaf7d2", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=ae5a970874fd4292995525fb1c03d678", "requirementResponses": [ { - "id": "b877fc81873d47cfaa0b68738a965bab", + "id": "7ce7b3f20af44b8ea0038eac22b771c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -45,7 +45,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56cc50ae82ef40739e33c54071281378", + "id": "6805aef85dcb44c2b97233b7bc05f762", "title": "Requirement response", "description": "some description", "requirement": { @@ -55,7 +55,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a62c47bdbf6a4fd4935467c8f49ab9e2", + "id": "28cd24546e654c5bb0bd1fb0b34e5cca", "title": "Requirement response", "description": "some description", "requirement": { @@ -65,7 +65,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e40fb445125c43928ac560b776b3bee3", + "id": "4a55f693d28a4429bb972d60e47067b3", "title": "Requirement response", "description": "some description", "requirement": { @@ -75,7 +75,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4d8a18c15df54d86a1a12d27ff03f15d", + "id": "3b0d989cebc44d159152bd94df382dae", "title": "Requirement response", "description": "some description", "requirement": { @@ -85,7 +85,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "eec10e3d2fb74e768819d4d0f9471fa8", + "id": "bdfa0fc40f364577b77cc03a1cde6337", "title": "Requirement response", "description": "some description", "requirement": { @@ -95,7 +95,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "943160f942334de488a5f4277f973468", + "id": "bc64d0acf5d649cf95304c1ad027aeb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -105,7 +105,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2222495d0c56422685cf0cfc8739e57c", + "id": "b1df38da91c14f73aab5373a564512c6", "title": "Requirement response", "description": "some description", "requirement": { @@ -115,7 +115,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9d85c85e65d3473d91cc87241f7478ed", + "id": "8d33ee6707bf4c388c4a7da1b8d7a9e9", "title": "Requirement response", "description": "some description", "requirement": { @@ -125,7 +125,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "138bcfc60c324bc1a5d0f04bf234a60e", + "id": "cf49cb16c7fd427ab37512a04ed3ce88", "title": "Requirement response", "description": "some description", "requirement": { @@ -135,7 +135,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "253107eb122f4fc3b261e7bcb9321ac9", + "id": "85817bee9b3648ec8bf4813b0a78cd65", "title": "Requirement response", "description": "some description", "requirement": { diff --git a/docs/source/tendering/esco/tutorial/confirm-qualification.http b/docs/source/tendering/esco/tutorial/confirm-qualification.http index b1e8d355ee..3a7c2f77fb 100644 --- a/docs/source/tendering/esco/tutorial/confirm-qualification.http +++ b/docs/source/tendering/esco/tutorial/confirm-qualification.http @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "c2273631949e4fbeb8ff3a1be667e937", + "bid_id": "931f9a28ea1c44bda087fc6d9349405f", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-26T00:00:00+02:00" diff --git a/docs/source/tendering/esco/tutorial/mark-bid-doc-private.http b/docs/source/tendering/esco/tutorial/mark-bid-doc-private.http index d70648357b..2ff710a92f 100644 --- a/docs/source/tendering/esco/tutorial/mark-bid-doc-private.http +++ b/docs/source/tendering/esco/tutorial/mark-bid-doc-private.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +PATCH /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker Content-Length: 120 Content-Type: application/json @@ -16,17 +16,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } } diff --git a/docs/source/tendering/esco/tutorial/pre-qualification-confirmation.http b/docs/source/tendering/esco/tutorial/pre-qualification-confirmation.http index 64d3135668..767a6ce371 100644 --- a/docs/source/tendering/esco/tutorial/pre-qualification-confirmation.http +++ b/docs/source/tendering/esco/tutorial/pre-qualification-confirmation.http @@ -698,10 +698,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -711,7 +711,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -721,7 +721,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -731,7 +731,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -741,7 +741,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -751,7 +751,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -761,7 +761,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -771,7 +771,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -781,7 +781,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -791,7 +791,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -801,7 +801,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -813,11 +813,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -825,11 +825,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -840,11 +840,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -878,10 +878,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", "requirementResponses": [ { - "id": "b877fc81873d47cfaa0b68738a965bab", + "id": "7ce7b3f20af44b8ea0038eac22b771c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -891,7 +891,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56cc50ae82ef40739e33c54071281378", + "id": "6805aef85dcb44c2b97233b7bc05f762", "title": "Requirement response", "description": "some description", "requirement": { @@ -901,7 +901,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a62c47bdbf6a4fd4935467c8f49ab9e2", + "id": "28cd24546e654c5bb0bd1fb0b34e5cca", "title": "Requirement response", "description": "some description", "requirement": { @@ -911,7 +911,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e40fb445125c43928ac560b776b3bee3", + "id": "4a55f693d28a4429bb972d60e47067b3", "title": "Requirement response", "description": "some description", "requirement": { @@ -921,7 +921,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4d8a18c15df54d86a1a12d27ff03f15d", + "id": "3b0d989cebc44d159152bd94df382dae", "title": "Requirement response", "description": "some description", "requirement": { @@ -931,7 +931,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "eec10e3d2fb74e768819d4d0f9471fa8", + "id": "bdfa0fc40f364577b77cc03a1cde6337", "title": "Requirement response", "description": "some description", "requirement": { @@ -941,7 +941,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "943160f942334de488a5f4277f973468", + "id": "bc64d0acf5d649cf95304c1ad027aeb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -951,7 +951,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2222495d0c56422685cf0cfc8739e57c", + "id": "b1df38da91c14f73aab5373a564512c6", "title": "Requirement response", "description": "some description", "requirement": { @@ -961,7 +961,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9d85c85e65d3473d91cc87241f7478ed", + "id": "8d33ee6707bf4c388c4a7da1b8d7a9e9", "title": "Requirement response", "description": "some description", "requirement": { @@ -971,7 +971,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "138bcfc60c324bc1a5d0f04bf234a60e", + "id": "cf49cb16c7fd427ab37512a04ed3ce88", "title": "Requirement response", "description": "some description", "requirement": { @@ -981,7 +981,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "253107eb122f4fc3b261e7bcb9321ac9", + "id": "85817bee9b3648ec8bf4813b0a78cd65", "title": "Requirement response", "description": "some description", "requirement": { @@ -1017,10 +1017,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -1030,7 +1030,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1040,7 +1040,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1050,7 +1050,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -1060,7 +1060,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -1070,7 +1070,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -1080,7 +1080,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1090,7 +1090,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -1100,7 +1100,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -1110,7 +1110,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1120,7 +1120,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -1132,7 +1132,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1144,11 +1144,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/documents/131f45bdc2bb41bc82a9eb373b5c5159?download=9428cc919ddc46249fe7f4aedbd3e329", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1159,7 +1159,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1253,7 +1253,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "034c906ddc6c44cdb6ceca4bedd3e804", - "bidID": "c2273631949e4fbeb8ff3a1be667e937", + "bidID": "931f9a28ea1c44bda087fc6d9349405f", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1261,7 +1261,7 @@ X-Content-Type-Options: nosniff }, { "id": "4131d03c9cd44592a8c1b75bddb6b07c", - "bidID": "468ac9114f984d6db190c626a8aaf7d2", + "bidID": "ae5a970874fd4292995525fb1c03d678", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1269,7 +1269,7 @@ X-Content-Type-Options: nosniff }, { "id": "a9f7b7af576f4cc99e3fba206c6b9701", - "bidID": "5310455e694b497a843478d8f7cf8865", + "bidID": "a7cd2c260a0448f5a1bf70345eb8d414", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/esco/tutorial/qualificated-bids-view.http b/docs/source/tendering/esco/tutorial/qualificated-bids-view.http index cbac09f7a1..f0daaf86fd 100644 --- a/docs/source/tendering/esco/tutorial/qualificated-bids-view.http +++ b/docs/source/tendering/esco/tutorial/qualificated-bids-view.http @@ -31,10 +31,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -44,7 +44,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -54,7 +54,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -64,7 +64,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -74,7 +74,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -84,7 +84,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -94,7 +94,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -104,7 +104,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -114,7 +114,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -124,7 +124,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -134,7 +134,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -146,11 +146,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -158,11 +158,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", + "url": "/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -173,11 +173,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -211,10 +211,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", "requirementResponses": [ { - "id": "b877fc81873d47cfaa0b68738a965bab", + "id": "7ce7b3f20af44b8ea0038eac22b771c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -224,7 +224,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56cc50ae82ef40739e33c54071281378", + "id": "6805aef85dcb44c2b97233b7bc05f762", "title": "Requirement response", "description": "some description", "requirement": { @@ -234,7 +234,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a62c47bdbf6a4fd4935467c8f49ab9e2", + "id": "28cd24546e654c5bb0bd1fb0b34e5cca", "title": "Requirement response", "description": "some description", "requirement": { @@ -244,7 +244,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e40fb445125c43928ac560b776b3bee3", + "id": "4a55f693d28a4429bb972d60e47067b3", "title": "Requirement response", "description": "some description", "requirement": { @@ -254,7 +254,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4d8a18c15df54d86a1a12d27ff03f15d", + "id": "3b0d989cebc44d159152bd94df382dae", "title": "Requirement response", "description": "some description", "requirement": { @@ -264,7 +264,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "eec10e3d2fb74e768819d4d0f9471fa8", + "id": "bdfa0fc40f364577b77cc03a1cde6337", "title": "Requirement response", "description": "some description", "requirement": { @@ -274,7 +274,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "943160f942334de488a5f4277f973468", + "id": "bc64d0acf5d649cf95304c1ad027aeb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -284,7 +284,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2222495d0c56422685cf0cfc8739e57c", + "id": "b1df38da91c14f73aab5373a564512c6", "title": "Requirement response", "description": "some description", "requirement": { @@ -294,7 +294,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9d85c85e65d3473d91cc87241f7478ed", + "id": "8d33ee6707bf4c388c4a7da1b8d7a9e9", "title": "Requirement response", "description": "some description", "requirement": { @@ -304,7 +304,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "138bcfc60c324bc1a5d0f04bf234a60e", + "id": "cf49cb16c7fd427ab37512a04ed3ce88", "title": "Requirement response", "description": "some description", "requirement": { @@ -314,7 +314,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "253107eb122f4fc3b261e7bcb9321ac9", + "id": "85817bee9b3648ec8bf4813b0a78cd65", "title": "Requirement response", "description": "some description", "requirement": { @@ -350,10 +350,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -363,7 +363,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -373,7 +373,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -383,7 +383,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -393,7 +393,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -403,7 +403,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -413,7 +413,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -423,7 +423,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -433,7 +433,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -443,7 +443,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -453,7 +453,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -465,7 +465,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -477,11 +477,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/documents/131f45bdc2bb41bc82a9eb373b5c5159?download=9428cc919ddc46249fe7f4aedbd3e329", + "url": "/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -492,7 +492,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/esco/tutorial/qualifications-listing.http b/docs/source/tendering/esco/tutorial/qualifications-listing.http index 31607c773d..f8ea93bf86 100644 --- a/docs/source/tendering/esco/tutorial/qualifications-listing.http +++ b/docs/source/tendering/esco/tutorial/qualifications-listing.http @@ -687,10 +687,10 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "id": "c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -700,7 +700,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -710,7 +710,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -720,7 +720,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -730,7 +730,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -740,7 +740,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -760,7 +760,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -770,7 +770,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -780,7 +780,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -790,7 +790,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -802,11 +802,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -814,7 +814,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", @@ -828,11 +828,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -866,10 +866,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", "requirementResponses": [ { - "id": "b877fc81873d47cfaa0b68738a965bab", + "id": "7ce7b3f20af44b8ea0038eac22b771c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -879,7 +879,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56cc50ae82ef40739e33c54071281378", + "id": "6805aef85dcb44c2b97233b7bc05f762", "title": "Requirement response", "description": "some description", "requirement": { @@ -889,7 +889,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a62c47bdbf6a4fd4935467c8f49ab9e2", + "id": "28cd24546e654c5bb0bd1fb0b34e5cca", "title": "Requirement response", "description": "some description", "requirement": { @@ -899,7 +899,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e40fb445125c43928ac560b776b3bee3", + "id": "4a55f693d28a4429bb972d60e47067b3", "title": "Requirement response", "description": "some description", "requirement": { @@ -909,7 +909,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4d8a18c15df54d86a1a12d27ff03f15d", + "id": "3b0d989cebc44d159152bd94df382dae", "title": "Requirement response", "description": "some description", "requirement": { @@ -919,7 +919,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "eec10e3d2fb74e768819d4d0f9471fa8", + "id": "bdfa0fc40f364577b77cc03a1cde6337", "title": "Requirement response", "description": "some description", "requirement": { @@ -929,7 +929,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "943160f942334de488a5f4277f973468", + "id": "bc64d0acf5d649cf95304c1ad027aeb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -939,7 +939,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2222495d0c56422685cf0cfc8739e57c", + "id": "b1df38da91c14f73aab5373a564512c6", "title": "Requirement response", "description": "some description", "requirement": { @@ -949,7 +949,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9d85c85e65d3473d91cc87241f7478ed", + "id": "8d33ee6707bf4c388c4a7da1b8d7a9e9", "title": "Requirement response", "description": "some description", "requirement": { @@ -959,7 +959,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "138bcfc60c324bc1a5d0f04bf234a60e", + "id": "cf49cb16c7fd427ab37512a04ed3ce88", "title": "Requirement response", "description": "some description", "requirement": { @@ -969,7 +969,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "253107eb122f4fc3b261e7bcb9321ac9", + "id": "85817bee9b3648ec8bf4813b0a78cd65", "title": "Requirement response", "description": "some description", "requirement": { @@ -1005,10 +1005,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -1018,7 +1018,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1028,7 +1028,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1038,7 +1038,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -1048,7 +1048,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -1058,7 +1058,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -1068,7 +1068,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1078,7 +1078,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -1088,7 +1088,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -1098,7 +1098,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1108,7 +1108,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -1120,7 +1120,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1132,7 +1132,7 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", @@ -1146,7 +1146,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1239,7 +1239,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "034c906ddc6c44cdb6ceca4bedd3e804", - "bidID": "c2273631949e4fbeb8ff3a1be667e937", + "bidID": "931f9a28ea1c44bda087fc6d9349405f", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -1247,7 +1247,7 @@ X-Content-Type-Options: nosniff }, { "id": "4131d03c9cd44592a8c1b75bddb6b07c", - "bidID": "468ac9114f984d6db190c626a8aaf7d2", + "bidID": "ae5a970874fd4292995525fb1c03d678", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, @@ -1255,7 +1255,7 @@ X-Content-Type-Options: nosniff }, { "id": "a9f7b7af576f4cc99e3fba206c6b9701", - "bidID": "5310455e694b497a843478d8f7cf8865", + "bidID": "a7cd2c260a0448f5a1bf70345eb8d414", "status": "pending", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/esco/tutorial/register-2nd-bidder.http b/docs/source/tendering/esco/tutorial/register-2nd-bidder.http index 7716bea32a..43007817d7 100644 --- a/docs/source/tendering/esco/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-2nd-bidder.http @@ -66,7 +66,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/468ac9114f984d6db190c626a8aaf7d2 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/ae5a970874fd4292995525fb1c03d678 X-Content-Type-Options: nosniff { "data": { @@ -74,9 +74,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -86,21 +86,22 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "468ac9114f984d6db190c626a8aaf7d2", + "parameters": [], + "documents": [], + "financialDocuments": [], + "eligibilityDocuments": [], + "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 9331.37, - "amountPerformance": 733.65, "yearlyPaymentsPercentage": 0.85, "annualCostsReduction": [ 400.0, @@ -128,13 +129,18 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 12, "days": 200 - } + }, + "amountPerformance": 733.65, + "amount": 9331.37 }, - "selfQualified": true + "selfQualified": true, + "lotValues": [], + "id": "ae5a970874fd4292995525fb1c03d678", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "f951db70a1164f61a8e890d5f458a6c5", - "transfer": "2d3dc8e2439d4493bd7d1453652210df" + "token": "dabbc7c822784799ad698457d896e750", + "transfer": "ddb0883c8de8440294cbd36b756aa803" } } diff --git a/docs/source/tendering/esco/tutorial/register-3rd-bidder.http b/docs/source/tendering/esco/tutorial/register-3rd-bidder.http index 1e714bc262..3a11738970 100644 --- a/docs/source/tendering/esco/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-3rd-bidder.http @@ -106,7 +106,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414 X-Content-Type-Options: nosniff { "data": { @@ -114,9 +114,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Книга»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137226", - "uri": "http://www.sc.gov.ua/" + "id": "00137226" }, "address": { "streetAddress": "вул. Островського, 34", @@ -126,89 +126,82 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Андрій Олексюк", "email": "aagt@gmail.com", - "telephone": "+380322916930" + "telephone": "+380322916930", + "name": "Андрій Олексюк" }, "scale": "sme" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "5310455e694b497a843478d8f7cf8865", + "parameters": [], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/documents/52c71f573d024dee83d8a6e14a88b327?download=990290f4487844639797e1f0adf02bc3", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/660d0c01949547d6b6247fe90cacd4f2?download=990290f4487844639797e1f0adf02bc3", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "660d0c01949547d6b6247fe90cacd4f2", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair.", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "financialDocuments": [ { - "id": "2182d1dbd97b461587b04d01246949b7", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/financial_documents/2182d1dbd97b461587b04d01246949b7?download=6bcaaf7011c747ef9ef05690bc0f88e8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/financial_documents/efc5cf6d869b4dacb3ccbef948132ba3?download=6bcaaf7011c747ef9ef05690bc0f88e8", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "efc5cf6d869b4dacb3ccbef948132ba3", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/eligibility_documents/ce1adf32caf64846936f8e21956b990d?download=f20fb61ed9de43a39a775b9f82d2faaf", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/eligibility_documents/69ea8f7c365742e9a44a3e7327d9cc59?download=f20fb61ed9de43a39a775b9f82d2faaf", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "69ea8f7c365742e9a44a3e7327d9cc59", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "c1e6dead94ae411a9b2222d104d8b0ac", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/qualification_documents/c1e6dead94ae411a9b2222d104d8b0ac?download=4146517e137540559a5e012437179a7f", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/qualification_documents/72a1ad5d712e4f0983a233e53ddacf5d?download=4146517e137540559a5e012437179a7f", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "72a1ad5d712e4f0983a233e53ddacf5d", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "status": "draft", "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 8644.77, - "amountPerformance": 579.45, "yearlyPaymentsPercentage": 0.86, "annualCostsReduction": [ 200.0, @@ -236,13 +229,18 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 13, "days": 40 - } + }, + "amountPerformance": 579.45, + "amount": 8644.77 }, - "selfQualified": true + "selfQualified": true, + "lotValues": [], + "id": "a7cd2c260a0448f5a1bf70345eb8d414", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "6e1d05e840cc4798a24801a4b4318ee1", - "transfer": "027a353e1d1e48fb9cbea951fccc5ccf" + "token": "aaccbb23d7a24dc3a95364e938e06aab", + "transfer": "822ec686f6fb423db70676a75858010b" } } diff --git a/docs/source/tendering/esco/tutorial/register-bidder.http b/docs/source/tendering/esco/tutorial/register-bidder.http index 2dc964363a..4a5f4f9d7f 100644 --- a/docs/source/tendering/esco/tutorial/register-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-bidder.http @@ -67,7 +67,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f X-Content-Type-Options: nosniff { "data": { @@ -75,9 +75,9 @@ X-Content-Type-Options: nosniff { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -87,15 +87,13 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", "subcontractingDetails": "ДКП «Орфей», Україна", "parameters": [], "documents": [], @@ -106,8 +104,6 @@ X-Content-Type-Options: nosniff "value": { "currency": "UAH", "valueAddedTaxIncluded": true, - "amount": 8917.4, - "amountPerformance": 816.29, "yearlyPaymentsPercentage": 0.9, "annualCostsReduction": [ 500.0, @@ -135,13 +131,18 @@ X-Content-Type-Options: nosniff "contractDuration": { "years": 10, "days": 74 - } + }, + "amountPerformance": 816.29, + "amount": 8917.4 }, - "selfQualified": true + "selfQualified": true, + "lotValues": [], + "id": "931f9a28ea1c44bda087fc6d9349405f", + "date": "2021-03-16T00:00:00+02:00" }, "access": { - "token": "3558940bd3654d09b73766b6712599cc", - "transfer": "844e527cb4ed42dc8469ac19ea0395be" + "token": "01d276fa7ea64637ad3be5084d677b89", + "transfer": "4fd880a096c546f48f705deb2ac7d61f" } } diff --git a/docs/source/tendering/esco/tutorial/reject-qualification3.http b/docs/source/tendering/esco/tutorial/reject-qualification3.http index 848418680e..340408d957 100644 --- a/docs/source/tendering/esco/tutorial/reject-qualification3.http +++ b/docs/source/tendering/esco/tutorial/reject-qualification3.http @@ -16,7 +16,7 @@ X-Content-Type-Options: nosniff { "data": { "id": "a9f7b7af576f4cc99e3fba206c6b9701", - "bidID": "5310455e694b497a843478d8f7cf8865", + "bidID": "a7cd2c260a0448f5a1bf70345eb8d414", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/esco/tutorial/rejected-bid-view.http b/docs/source/tendering/esco/tutorial/rejected-bid-view.http index b50f5104ef..0cbad1bf51 100644 --- a/docs/source/tendering/esco/tutorial/rejected-bid-view.http +++ b/docs/source/tendering/esco/tutorial/rejected-bid-view.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865?acc_token=7cb87b2d0f3d446993a6da1f03746396 HTTP/1.0 +GET /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414?acc_token=7cb87b2d0f3d446993a6da1f03746396 HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -30,10 +30,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -43,7 +43,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -53,7 +53,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -63,7 +63,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -73,7 +73,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -83,7 +83,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -93,7 +93,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -103,7 +103,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -113,7 +113,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -123,7 +123,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -133,7 +133,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -145,7 +145,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -157,11 +157,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/documents/131f45bdc2bb41bc82a9eb373b5c5159?download=9428cc919ddc46249fe7f4aedbd3e329", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -172,7 +172,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", diff --git a/docs/source/tendering/esco/tutorial/tender-cancelled.http b/docs/source/tendering/esco/tutorial/tender-cancelled.http index e05cd4dc91..5eeaa8ce54 100644 --- a/docs/source/tendering/esco/tutorial/tender-cancelled.http +++ b/docs/source/tendering/esco/tutorial/tender-cancelled.http @@ -696,11 +696,11 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "c2273631949e4fbeb8ff3a1be667e937", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=c2273631949e4fbeb8ff3a1be667e937", + "id": "931f9a28ea1c44bda087fc6d9349405f", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=931f9a28ea1c44bda087fc6d9349405f", "requirementResponses": [ { - "id": "facaaa42b5194c24b96bae7748fa3458", + "id": "3c64debf715f4421a988da1427307ea2", "title": "Requirement response", "description": "some description", "requirement": { @@ -710,7 +710,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "6f17e566208f4f448019883253cebee0", + "id": "202775b70a6440a6b769767d4c3a80ee", "title": "Requirement response", "description": "some description", "requirement": { @@ -720,7 +720,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c52ba0792e554102b6776079d4ee6017", + "id": "52ff2b36621c45988058cdc7a52ae07b", "title": "Requirement response", "description": "some description", "requirement": { @@ -730,7 +730,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "401cbd31800d40d9ad12b1888bab57f6", + "id": "ff09cf89f87a4816bb7386e6ab39b92b", "title": "Requirement response", "description": "some description", "requirement": { @@ -740,7 +740,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e37e0762f179435fabbceb1500f875c4", + "id": "17841c01e6dd495ebe543391b088bf46", "title": "Requirement response", "description": "some description", "requirement": { @@ -750,7 +750,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f351cdaf294246b98109194c81c7bdc2", + "id": "19898df6a57246a1a04730e1908e0543", "title": "Requirement response", "description": "some description", "requirement": { @@ -760,7 +760,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "8de658aabf7941f683be9659847a0f30", + "id": "fb14f57d764b45bb949a8725257e5644", "title": "Requirement response", "description": "some description", "requirement": { @@ -770,7 +770,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3f9f71035f2f454581e0d450587a9fdc", + "id": "ee3b33c7e1e547f58fb6228bc9e2c01e", "title": "Requirement response", "description": "some description", "requirement": { @@ -780,7 +780,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "3606a46847254d49911b87e658dccb58", + "id": "fac8c947ff7d4d8eb37e6ede92cd4dca", "title": "Requirement response", "description": "some description", "requirement": { @@ -790,7 +790,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c3e238f9b12146cca0cf47161a125c00", + "id": "c76cda63d3434f8aaa6f0e04f9e95261", "title": "Requirement response", "description": "some description", "requirement": { @@ -800,7 +800,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "c73386a2749a4ba9b8535a5bfa83ff97", + "id": "51a73b9d743a4d38878f889e2f65bd55", "title": "Requirement response", "description": "some description", "requirement": { @@ -812,11 +812,11 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", + "id": "fe0e171a76a9484690da8f1ca3078c5c", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c8eb97234afd4072b4d81ba5c0ed3ed8?Signature=t2Aq3lWbnBCVGU6%2B9z%2BwxKM24Yw2ExDFeHzd6Ud5xCw%2BpEAYACs0lptGJoFCVNC5strcCc01JtmujRm942UiDw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -824,11 +824,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", + "id": "d680c26128134c5d92a6b3f742bdd2e4", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -839,11 +839,11 @@ X-Content-Type-Options: nosniff ], "financialDocuments": [ { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", + "id": "e51f3496da644d008f4ebf28bf244426", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d10c185327ec4bbebe4e3ad70a99817c?Signature=dnOnNSdDKFKkat82dovkCMtE7tpb4w%2FCpgPWzAfBL63IM2ZEc2YAq0JJOk61yepzLv7daBmfdjGNA8KFDzXCBA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e205d4bfb1664749a31410c1fcbc0273?Signature=1%2BC2Nxc%2FPIgFhzgfScLfI%2BkpWthB%2B6jJgVAp184qG31Bk2dwwnhKwwCWNk609la2GO6QVAT6eqz0ZbMFqwp4BA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -851,11 +851,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "0dd418a59806492e96538c63ea053a6e", + "id": "6478d18120e944b3875dbec011f545be", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/7313decb01c14f3ba03a500fcfa366a3?Signature=9hTXvenrHrquWXCRUADo09v2OWdj3FHAJ8N50Z%2FYDbt4cZyM1eLa1IUeoP%2ByStdQMeqnp1xkT5mKMxA82FteCw%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e306562479754a0d8a0d64cb0036fcae?Signature=0zTwe9ZZqhfzjGZSKSEGGOBDH0jZmG%2FkoCPoh43ZDw6lXcAeP3hw1l0tGHzoPJ3bcUPWIGevLYGBCdGAXbzECw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -865,11 +865,11 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "0f9a61626ee949fc93143f984c9c0357", + "id": "e72c93051d2246239ad4350c91d01826", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/d76b0d3e7ad945ebbd9f08a407b5b565?Signature=EIyw%2Bn8dMS1cNpI%2Bc3QQNiYu3T6wgPutCMk7LOvfrFQ1P6fmk4Epu89Uf1jH%2B9BUYx%2BHxo%2BS%2BFYJY59eQeYUAA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=tGMvTFUaIJSTHX5eOTa52FiCibqT0JAItY0fRlLK60LnScSptwMbLpCY1V%2FH0tSGFKnyp1BDOhdAE%2FAzoIykDw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -879,11 +879,11 @@ X-Content-Type-Options: nosniff ], "qualificationDocuments": [ { - "id": "a8ab2b549b0e48c1a8ca183631fd427c", + "id": "3a6cfa8745244c76826154b4196fa36e", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://public-docs-sandbox.prozorro.gov.ua/get/1e5b3746a8a1483a828de3f39a63f42d?Signature=mO9YxkqdeGzsf%2FQ1Pjk%2BnbO8EUQOhtDvcZm3ZpS9ZzsQTs6JLSt9xSNx2wERsq0RWw0nlD2BfyMg7mOYkasfCA%3D%3D&KeyID=a8968c46", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/55caeebab78045959bdf295a177ca980?Signature=GgZlbGXozSZkmMS5CQiPEG87kW5ylVGtf7NxAtI8o2spziVfIaOBPvJr9VqEFUBTcDXeW%2BxrlFBzguIu0FEaBw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -954,11 +954,11 @@ X-Content-Type-Options: nosniff } ], "date": "2021-03-16T00:00:00+02:00", - "id": "468ac9114f984d6db190c626a8aaf7d2", - "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=468ac9114f984d6db190c626a8aaf7d2", + "id": "ae5a970874fd4292995525fb1c03d678", + "participationUrl": "http://auction-sandbox.prozorro.gov.ua/tenders/33f610abd0a54c8bb1da547c377a3324?key_for_bid=ae5a970874fd4292995525fb1c03d678", "requirementResponses": [ { - "id": "b877fc81873d47cfaa0b68738a965bab", + "id": "7ce7b3f20af44b8ea0038eac22b771c9", "title": "Requirement response", "description": "some description", "requirement": { @@ -968,7 +968,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "56cc50ae82ef40739e33c54071281378", + "id": "6805aef85dcb44c2b97233b7bc05f762", "title": "Requirement response", "description": "some description", "requirement": { @@ -978,7 +978,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "a62c47bdbf6a4fd4935467c8f49ab9e2", + "id": "28cd24546e654c5bb0bd1fb0b34e5cca", "title": "Requirement response", "description": "some description", "requirement": { @@ -988,7 +988,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "e40fb445125c43928ac560b776b3bee3", + "id": "4a55f693d28a4429bb972d60e47067b3", "title": "Requirement response", "description": "some description", "requirement": { @@ -998,7 +998,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4d8a18c15df54d86a1a12d27ff03f15d", + "id": "3b0d989cebc44d159152bd94df382dae", "title": "Requirement response", "description": "some description", "requirement": { @@ -1008,7 +1008,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "eec10e3d2fb74e768819d4d0f9471fa8", + "id": "bdfa0fc40f364577b77cc03a1cde6337", "title": "Requirement response", "description": "some description", "requirement": { @@ -1018,7 +1018,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "943160f942334de488a5f4277f973468", + "id": "bc64d0acf5d649cf95304c1ad027aeb3", "title": "Requirement response", "description": "some description", "requirement": { @@ -1028,7 +1028,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "2222495d0c56422685cf0cfc8739e57c", + "id": "b1df38da91c14f73aab5373a564512c6", "title": "Requirement response", "description": "some description", "requirement": { @@ -1038,7 +1038,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "9d85c85e65d3473d91cc87241f7478ed", + "id": "8d33ee6707bf4c388c4a7da1b8d7a9e9", "title": "Requirement response", "description": "some description", "requirement": { @@ -1048,7 +1048,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "138bcfc60c324bc1a5d0f04bf234a60e", + "id": "cf49cb16c7fd427ab37512a04ed3ce88", "title": "Requirement response", "description": "some description", "requirement": { @@ -1058,7 +1058,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "253107eb122f4fc3b261e7bcb9321ac9", + "id": "85817bee9b3648ec8bf4813b0a78cd65", "title": "Requirement response", "description": "some description", "requirement": { @@ -1129,10 +1129,10 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "id": "5310455e694b497a843478d8f7cf8865", + "id": "a7cd2c260a0448f5a1bf70345eb8d414", "requirementResponses": [ { - "id": "0c83b2116d554e51ad5a51c109f98dc1", + "id": "87b2e4d05506485d8746769b51674e54", "title": "Requirement response", "description": "some description", "requirement": { @@ -1142,7 +1142,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "b1f3e5e73fbd4bc490e671ec83c4fcd7", + "id": "5b43954eaac54a42abe4f6385f3b052f", "title": "Requirement response", "description": "some description", "requirement": { @@ -1152,7 +1152,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "23d38be436c6488fa15beab61bb96398", + "id": "5a426a864d09455596110c7ab21bc72d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1162,7 +1162,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "16a6fdd622af465fbb8d11f4c3b0d786", + "id": "038564ca237f424ca615cb6d8dc35eac", "title": "Requirement response", "description": "some description", "requirement": { @@ -1172,7 +1172,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4aa665013ab045c7bece97b11be2218b", + "id": "81339009cf414f7095caa39f0f1451ec", "title": "Requirement response", "description": "some description", "requirement": { @@ -1182,7 +1182,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "4f335444dca64a4fbf272a13352eb5cd", + "id": "71ee5de187f14a10a9ab872174b63c24", "title": "Requirement response", "description": "some description", "requirement": { @@ -1192,7 +1192,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "07e89f094d6f4e559e0ac8877bafeca6", + "id": "d1a4e33f1b3344ad919d340ac1f91ed7", "title": "Requirement response", "description": "some description", "requirement": { @@ -1202,7 +1202,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "46522501f4d443b4a59fa139ba90d1ec", + "id": "e641c4a8076942779643f2486f79c869", "title": "Requirement response", "description": "some description", "requirement": { @@ -1212,7 +1212,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "dea79f24e5b14956879161235063696a", + "id": "e554cd2d186644af95ffd1fa181b7e94", "title": "Requirement response", "description": "some description", "requirement": { @@ -1222,7 +1222,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "73236a8c31244baabea734870779076f", + "id": "3457efb50d1f42a19630b24dbb14e63d", "title": "Requirement response", "description": "some description", "requirement": { @@ -1232,7 +1232,7 @@ X-Content-Type-Options: nosniff "value": "True" }, { - "id": "f41e6401e6b74acb86cd56ed8fd0cdb3", + "id": "177971d89f974a50a773a475cbe3ac50", "title": "Requirement response", "description": "some description", "requirement": { @@ -1244,7 +1244,7 @@ X-Content-Type-Options: nosniff ], "documents": [ { - "id": "52c71f573d024dee83d8a6e14a88b327", + "id": "660d0c01949547d6b6247fe90cacd4f2", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", @@ -1256,11 +1256,11 @@ X-Content-Type-Options: nosniff "language": "uk" }, { - "id": "131f45bdc2bb41bc82a9eb373b5c5159", + "id": "e49036f82b48481fbf2ad9c4a5f855ed", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/5310455e694b497a843478d8f7cf8865/documents/131f45bdc2bb41bc82a9eb373b5c5159?download=9428cc919ddc46249fe7f4aedbd3e329", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", @@ -1271,7 +1271,7 @@ X-Content-Type-Options: nosniff ], "eligibilityDocuments": [ { - "id": "ce1adf32caf64846936f8e21956b990d", + "id": "69ea8f7c365742e9a44a3e7327d9cc59", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", @@ -1340,7 +1340,7 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "bid_id": "c2273631949e4fbeb8ff3a1be667e937", + "bid_id": "931f9a28ea1c44bda087fc6d9349405f", "complaintPeriod": { "startDate": "2021-03-16T00:00:00+02:00", "endDate": "2021-03-16T00:00:00+02:00" @@ -1646,7 +1646,7 @@ X-Content-Type-Options: nosniff "qualifications": [ { "id": "034c906ddc6c44cdb6ceca4bedd3e804", - "bidID": "c2273631949e4fbeb8ff3a1be667e937", + "bidID": "931f9a28ea1c44bda087fc6d9349405f", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1654,7 +1654,7 @@ X-Content-Type-Options: nosniff }, { "id": "4131d03c9cd44592a8c1b75bddb6b07c", - "bidID": "468ac9114f984d6db190c626a8aaf7d2", + "bidID": "ae5a970874fd4292995525fb1c03d678", "status": "active", "date": "2021-03-16T00:00:00+02:00", "qualified": true, @@ -1662,7 +1662,7 @@ X-Content-Type-Options: nosniff }, { "id": "a9f7b7af576f4cc99e3fba206c6b9701", - "bidID": "5310455e694b497a843478d8f7cf8865", + "bidID": "a7cd2c260a0448f5a1bf70345eb8d414", "status": "unsuccessful", "date": "2021-03-16T00:00:00+02:00", "qualified": false, diff --git a/docs/source/tendering/esco/tutorial/upload-bid-eligibility-document-proposal.http b/docs/source/tendering/esco/tutorial/upload-bid-eligibility-document-proposal.http index 0ddaf2cbef..05cc08d3f9 100644 --- a/docs/source/tendering/esco/tutorial/upload-bid-eligibility-document-proposal.http +++ b/docs/source/tendering/esco/tutorial/upload-bid-eligibility-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/eligibility_documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/eligibility_documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 151 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 329 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="eligibility_doc.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "eligibility_doc.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cf23b9f3719f423d9d9a447631f0e067?Signature=3gkezQEnOUdwGfYcwFgt4Lf09rvQjSoGI4CqzI8QOhhu9s8iMoWvRPGr70zA4HEzJqC3CF%2FbniHWRxi8aoAoDQ%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/eligibility_documents/0f9a61626ee949fc93143f984c9c0357 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/eligibility_documents/e72c93051d2246239ad4350c91d01826 X-Content-Type-Options: nosniff { "data": { - "id": "0f9a61626ee949fc93143f984c9c0357", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/eligibility_documents/0f9a61626ee949fc93143f984c9c0357?download=d76b0d3e7ad945ebbd9f08a407b5b565", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/eligibility_documents/e72c93051d2246239ad4350c91d01826?download=cf23b9f3719f423d9d9a447631f0e067", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e72c93051d2246239ad4350c91d01826", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/esco/tutorial/upload-bid-financial-document-proposal.http b/docs/source/tendering/esco/tutorial/upload-bid-financial-document-proposal.http index a3e98db6be..8ea76a1e84 100644 --- a/docs/source/tendering/esco/tutorial/upload-bid-financial-document-proposal.http +++ b/docs/source/tendering/esco/tutorial/upload-bid-financial-document-proposal.http @@ -1,66 +1,66 @@ -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 147 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 333 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="financial_doc.pdf" -Content-Type: application/pdf - -1000$ ------BOUNDARY-- - +{ + "data": { + "title": "financial_doc.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e205d4bfb1664749a31410c1fcbc0273?Signature=Q70sm5xAnJ3v%2FepNwI%2FV7HeySlw%2Bm5RBIj0bXcSLvceRh%2BKuQIIa3f1zsLKRCpnyV4NyHLEKGZek37pzuh5RCw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/e51f3496da644d008f4ebf28bf244426 X-Content-Type-Options: nosniff { "data": { - "id": "dbeee3fef6f94ff9ba686a4592ed20b1", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/dbeee3fef6f94ff9ba686a4592ed20b1?download=d10c185327ec4bbebe4e3ad70a99817c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/e51f3496da644d008f4ebf28bf244426?download=e205d4bfb1664749a31410c1fcbc0273", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "e51f3496da644d008f4ebf28bf244426", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 148 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 326 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="financial_doc2.pdf" -Content-Type: application/pdf - -1000$ ------BOUNDARY-- - +{ + "data": { + "title": "financial_doc2.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e306562479754a0d8a0d64cb0036fcae?Signature=urBWMefeYcuvQlY0M6L5klAgqYfm23fcJgUftK2nKUxFcVg7aBNmtuCyVuL9ythoimlsA6LUnym2LGOY73YuDA%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/6478d18120e944b3875dbec011f545be X-Content-Type-Options: nosniff { "data": { - "id": "0dd418a59806492e96538c63ea053a6e", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/financial_documents/0dd418a59806492e96538c63ea053a6e?download=7313decb01c14f3ba03a500fcfa366a3", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/financial_documents/6478d18120e944b3875dbec011f545be?download=e306562479754a0d8a0d64cb0036fcae", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "6478d18120e944b3875dbec011f545be", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/esco/tutorial/upload-bid-private-proposal.http b/docs/source/tendering/esco/tutorial/upload-bid-private-proposal.http index 94840e1867..2198c58bf1 100644 --- a/docs/source/tendering/esco/tutorial/upload-bid-private-proposal.http +++ b/docs/source/tendering/esco/tutorial/upload-bid-private-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 156 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 342 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal_top_secrets.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal_top_secrets.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/fc98c264f5494ffaa5555698c52c5f1e?Signature=edXrZxrxozO%2BxbEJM6QKAI0hO4ndYxwD9%2Bm8JGUBXxi8B%2BK3dmUcD%2BQFe7Z2T%2Bb5OssmvadGRKKDMLRcpJLpBw%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4 X-Content-Type-Options: nosniff { "data": { - "id": "35ea0551f2ae4cd48c60fd088d3525e5", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/35ea0551f2ae4cd48c60fd088d3525e5?download=4e1538cb7e0042678704536c5ce47f3c", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/d680c26128134c5d92a6b3f742bdd2e4?download=fc98c264f5494ffaa5555698c52c5f1e", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "d680c26128134c5d92a6b3f742bdd2e4", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/esco/tutorial/upload-bid-proposal.http b/docs/source/tendering/esco/tutorial/upload-bid-proposal.http index c8898aee19..5e519e1f4c 100644 --- a/docs/source/tendering/esco/tutorial/upload-bid-proposal.http +++ b/docs/source/tendering/esco/tutorial/upload-bid-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 144 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 328 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="Proposal.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "Proposal.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=As5%2FWWhDNaWQ%2FKVbChs2ZOO6Fg%2BvP1ZU4MUfmgwKF57HxLWUlmjfeziUESDEqdctW7HgNmlxARO9CML%2F4LyKBg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/1ecfafb087644ed6ba8d235bed9dbdb3 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c X-Content-Type-Options: nosniff { "data": { - "id": "1ecfafb087644ed6ba8d235bed9dbdb3", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/documents/1ecfafb087644ed6ba8d235bed9dbdb3?download=c8eb97234afd4072b4d81ba5c0ed3ed8", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c?download=bd899d26e31643489abf7981b0f34549", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "fe0e171a76a9484690da8f1ca3078c5c", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/esco/tutorial/upload-bid-qualification-document-proposal.http b/docs/source/tendering/esco/tutorial/upload-bid-qualification-document-proposal.http index 273acaa10c..8f65f2716c 100644 --- a/docs/source/tendering/esco/tutorial/upload-bid-qualification-document-proposal.http +++ b/docs/source/tendering/esco/tutorial/upload-bid-qualification-document-proposal.http @@ -1,33 +1,33 @@ -POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents?acc_token=3558940bd3654d09b73766b6712599cc HTTP/1.0 +POST /api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents?acc_token=01d276fa7ea64637ad3be5084d677b89 HTTP/1.0 Authorization: Bearer broker -Content-Length: 158 -Content-Type: multipart/form-data; boundary=---BOUNDARY +Content-Length: 340 +Content-Type: application/json Host: lb-api-sandbox.prozorro.gov.ua DATA: ------BOUNDARY -Content-Disposition: form-data; name="file"; filename="qualification_document.pdf" -Content-Type: application/pdf - -content ------BOUNDARY-- - +{ + "data": { + "title": "qualification_document.pdf", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/55caeebab78045959bdf295a177ca980?Signature=%2BuQeSapdTnxA1Nqb5IG4szQ1b6%2FYVnS7TbEY%2FHQYU2DJfgTPh5bcKK9wKQGthbDLTsJ7JSxQYtHBFIiQLg1NBg%3D%3D&KeyID=a8968c46", + "hash": "md5:00000000000000000000000000000000", + "format": "application/pdf" + } +} Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents/a8ab2b549b0e48c1a8ca183631fd427c +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents/3a6cfa8745244c76826154b4196fa36e X-Content-Type-Options: nosniff { "data": { - "id": "a8ab2b549b0e48c1a8ca183631fd427c", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/c2273631949e4fbeb8ff3a1be667e937/qualification_documents/a8ab2b549b0e48c1a8ca183631fd427c?download=1e5b3746a8a1483a828de3f39a63f42d", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/qualification_documents/3a6cfa8745244c76826154b4196fa36e?download=55caeebab78045959bdf295a177ca980", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3a6cfa8745244c76826154b4196fa36e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } } diff --git a/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http b/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http index 93a646911a..93eb955914 100644 --- a/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/openeu/http/tutorial/register-3rd-bidder.http @@ -116,6 +116,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/a3862b2b1ae843528accfedd051cdef2?Signature=20QWJzodvNP2bfpedho6U%2F3T71yvMI4I9TJc%2BEnhF0dpky1H0Vf5vI4rq2Y99B3uZ0gMXJlKhd95jr3qwCmKAQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "f06ffd3de2a8478b9b433d8a520a6a13", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" @@ -126,6 +127,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/9ff17557b8d74a169916ccc5653c0a2d?Signature=%2Fnd7a4Qcr76Y3KpZhMCbiqTIOMY19FWObhcn1heyrRicUirKAuXYO1se0bRvbNoKASFDuCf2PDlveoPLCS4nCg%3D%3D&KeyID=a8968c46", "documentOf": "tender", + "confidentiality": "public", "id": "96cf8cc9d9cf4fdc804181f0cfd278b6", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" @@ -138,6 +140,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/6a292c9f2bb64ba3b38e5547f0bbc9e7/financial_documents/fe7b16eb251b488abb61b01d5af97456?download=6a165adbf494490aa6eb016b0331685a", "documentOf": "tender", + "confidentiality": "public", "id": "fe7b16eb251b488abb61b01d5af97456", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" @@ -150,6 +153,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/6a292c9f2bb64ba3b38e5547f0bbc9e7/eligibility_documents/97055bdcb0dc47c98bba5cb716d5d477?download=07d313e6717642fcb43032920da39ac2", "documentOf": "tender", + "confidentiality": "public", "id": "97055bdcb0dc47c98bba5cb716d5d477", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" @@ -162,6 +166,7 @@ X-Content-Type-Options: nosniff "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/6a292c9f2bb64ba3b38e5547f0bbc9e7/qualification_documents/9469aa0fc58c419eaebb6a2e94a31a6f?download=90d1707c32b34547bc5034dbe547c2a6", "documentOf": "tender", + "confidentiality": "public", "id": "9469aa0fc58c419eaebb6a2e94a31a6f", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" diff --git a/docs/source/tendering/pricequotation/http/activate-bidder.http b/docs/source/tendering/pricequotation/http/activate-bidder.http index a6c1c66b38..a5363f7ab6 100644 --- a/docs/source/tendering/pricequotation/http/activate-bidder.http +++ b/docs/source/tendering/pricequotation/http/activate-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e?acc_token=7e91cc260b8d4c7fbd12afe11ee24975 HTTP/1.0 +PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483?acc_token=7432920eba3141d69a91ef109c9ee4ec HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -15,13 +15,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "id": "635dac1cc52641d2a557b66099e10483", + "date": "2021-03-16T00:00:01+02:00", + "documents": [], "tenderers": [ { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -31,14 +34,12 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "2a61e50221604e168498d4a2f6a16f8e", "status": "active", "value": { "amount": 459.0, @@ -47,63 +48,63 @@ X-Content-Type-Options: nosniff }, "requirementResponses": [ { - "id": "6151ba1204c24bb0995eda7fb759b58f", + "id": "546cd5f70b71467c84e6258ac73f0503", "requirement": { "id": "655360-0001-001-01" }, "value": "23.8" }, { - "id": "7bfb4e5c0c4e475fa54d3a526a4e1479", + "id": "087d0e39ec974050a890f4675eabe410", "requirement": { "id": "655360-0002-001-01" }, "value": "1920x1080" }, { - "id": "a5087f859e184459aa0a323afe6ff6b3", + "id": "5f2b1501bc04447db467290093454886", "requirement": { "id": "655360-0003-001-01" }, "value": "16:9" }, { - "id": "5ebdcafc052f4e6c80f7c77ce9a91c43", + "id": "d0fe323b8cc1407394e8a57962d8b538", "requirement": { "id": "655360-0004-001-01" }, "value": "250" }, { - "id": "568181437b714833a6997fc22c3b3f0a", + "id": "f3931668644e466dbc94eebe4abdcfb5", "requirement": { "id": "655360-0005-001-01" }, "value": "1000:1" }, { - "id": "7985689a4cac4664896ec6ffc385b621", + "id": "0532ce1a936946f99de8c4b95ac9d66a", "requirement": { "id": "655360-0006-001-01" }, "value": "1" }, { - "id": "fba749f64504449a95b43e51dd812453", + "id": "26239f3d179b4b0f89fc96008803adde", "requirement": { "id": "655360-0007-001-01" }, "value": "1" }, { - "id": "6ced515d86bd45059b3950e8393836c4", + "id": "2d825a12a07e423a9c316d804123e128", "requirement": { "id": "655360-0008-001-01" }, "value": "HDMI" }, { - "id": "3c7a32c3f8794b03b4d3cb915f85f151", + "id": "0241310053384fe39feed458a1606524", "requirement": { "id": "655360-0009-001-01" }, diff --git a/docs/source/tendering/pricequotation/http/award-active.http b/docs/source/tendering/pricequotation/http/award-active.http index 306d555908..4379fd9e16 100644 --- a/docs/source/tendering/pricequotation/http/award-active.http +++ b/docs/source/tendering/pricequotation/http/award-active.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/awards/2457dbf1f0fa43daaf6148695865ce39?acc_token=3a9b10d6d5544c5ab63ca47f59595980 HTTP/1.0 +PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/awards/2457dbf1f0fa43daaf6148695865ce39?acc_token=e2f9d984fab2496baec376d1ebb9dded HTTP/1.0 Authorization: Bearer broker Content-Length: 30 Content-Type: application/json @@ -77,7 +77,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "62632b90b4c44ebd81073e2fc9dbc000" + "bid_id": "b417921608714f3f8b317c0cf06ff72f" } } diff --git a/docs/source/tendering/pricequotation/http/award-unsuccesful.http b/docs/source/tendering/pricequotation/http/award-unsuccesful.http index 941b4cda5d..0d296175e5 100644 --- a/docs/source/tendering/pricequotation/http/award-unsuccesful.http +++ b/docs/source/tendering/pricequotation/http/award-unsuccesful.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/awards/50caa882244f4300aed60835d798a6a1?acc_token=7e91cc260b8d4c7fbd12afe11ee24975 HTTP/1.0 +PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/awards/50caa882244f4300aed60835d798a6a1?acc_token=7432920eba3141d69a91ef109c9ee4ec HTTP/1.0 Authorization: Bearer broker Content-Length: 36 Content-Type: application/json @@ -77,7 +77,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "2a61e50221604e168498d4a2f6a16f8e" + "bid_id": "635dac1cc52641d2a557b66099e10483" } } diff --git a/docs/source/tendering/pricequotation/http/awards-listing-after-cancel.http b/docs/source/tendering/pricequotation/http/awards-listing-after-cancel.http index 8eeef078b1..d90e090c64 100644 --- a/docs/source/tendering/pricequotation/http/awards-listing-after-cancel.http +++ b/docs/source/tendering/pricequotation/http/awards-listing-after-cancel.http @@ -70,7 +70,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "2a61e50221604e168498d4a2f6a16f8e" + "bid_id": "635dac1cc52641d2a557b66099e10483" }, { "id": "2457dbf1f0fa43daaf6148695865ce39", @@ -135,7 +135,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "62632b90b4c44ebd81073e2fc9dbc000" + "bid_id": "b417921608714f3f8b317c0cf06ff72f" } ] } diff --git a/docs/source/tendering/pricequotation/http/awards-listing.http b/docs/source/tendering/pricequotation/http/awards-listing.http index da866b55b4..99757b0f12 100644 --- a/docs/source/tendering/pricequotation/http/awards-listing.http +++ b/docs/source/tendering/pricequotation/http/awards-listing.http @@ -70,7 +70,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "2a61e50221604e168498d4a2f6a16f8e" + "bid_id": "635dac1cc52641d2a557b66099e10483" }, { "id": "2457dbf1f0fa43daaf6148695865ce39", @@ -135,7 +135,7 @@ X-Content-Type-Options: nosniff } } ], - "bid_id": "62632b90b4c44ebd81073e2fc9dbc000" + "bid_id": "b417921608714f3f8b317c0cf06ff72f" } ] } diff --git a/docs/source/tendering/pricequotation/http/bidder-documents.http b/docs/source/tendering/pricequotation/http/bidder-documents.http index ce5a3cc958..713406da31 100644 --- a/docs/source/tendering/pricequotation/http/bidder-documents.http +++ b/docs/source/tendering/pricequotation/http/bidder-documents.http @@ -1,4 +1,4 @@ -GET /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e/documents?acc_token=7e91cc260b8d4c7fbd12afe11ee24975 HTTP/1.0 +GET /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483/documents?acc_token=7432920eba3141d69a91ef109c9ee4ec HTTP/1.0 Authorization: Bearer broker Host: lb-api-sandbox.prozorro.gov.ua @@ -8,14 +8,14 @@ X-Content-Type-Options: nosniff { "data": [ { - "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e/documents/f9e48772753847cbb8486625c7e5fc1d?download=6ef1648bde044fe4acda3a1e4a7bfb5b", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6ef1648bde044fe4acda3a1e4a7bfb5b?Signature=SJBsDdqoCFnpi1jBtgFWTu292tbSdlM4ty7WSW0RU0qvP4OJj7bVNDq%2F12QuyIaNAMtqdoEp%2F2s0ekmDFFYqCA%3D%3D&KeyID=a8968c46", + "documentOf": "tender", + "id": "29a6d2346a444933bf06cf09398efc8d", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } ] } diff --git a/docs/source/tendering/pricequotation/http/patch-bidder.http b/docs/source/tendering/pricequotation/http/patch-bidder.http index 3844ee33b8..43a4e091dc 100644 --- a/docs/source/tendering/pricequotation/http/patch-bidder.http +++ b/docs/source/tendering/pricequotation/http/patch-bidder.http @@ -1,4 +1,4 @@ -PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e?acc_token=7e91cc260b8d4c7fbd12afe11ee24975 HTTP/1.0 +PATCH /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483?acc_token=7432920eba3141d69a91ef109c9ee4ec HTTP/1.0 Authorization: Bearer broker Content-Length: 36 Content-Type: application/json @@ -17,13 +17,16 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "id": "635dac1cc52641d2a557b66099e10483", + "date": "2021-03-16T00:00:01+02:00", + "documents": [], "tenderers": [ { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -33,14 +36,12 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "2a61e50221604e168498d4a2f6a16f8e", "status": "draft", "value": { "amount": 459.0, @@ -49,63 +50,63 @@ X-Content-Type-Options: nosniff }, "requirementResponses": [ { - "id": "6151ba1204c24bb0995eda7fb759b58f", + "id": "546cd5f70b71467c84e6258ac73f0503", "requirement": { "id": "655360-0001-001-01" }, "value": "23.8" }, { - "id": "7bfb4e5c0c4e475fa54d3a526a4e1479", + "id": "087d0e39ec974050a890f4675eabe410", "requirement": { "id": "655360-0002-001-01" }, "value": "1920x1080" }, { - "id": "a5087f859e184459aa0a323afe6ff6b3", + "id": "5f2b1501bc04447db467290093454886", "requirement": { "id": "655360-0003-001-01" }, "value": "16:9" }, { - "id": "5ebdcafc052f4e6c80f7c77ce9a91c43", + "id": "d0fe323b8cc1407394e8a57962d8b538", "requirement": { "id": "655360-0004-001-01" }, "value": "250" }, { - "id": "568181437b714833a6997fc22c3b3f0a", + "id": "f3931668644e466dbc94eebe4abdcfb5", "requirement": { "id": "655360-0005-001-01" }, "value": "1000:1" }, { - "id": "7985689a4cac4664896ec6ffc385b621", + "id": "0532ce1a936946f99de8c4b95ac9d66a", "requirement": { "id": "655360-0006-001-01" }, "value": "1" }, { - "id": "fba749f64504449a95b43e51dd812453", + "id": "26239f3d179b4b0f89fc96008803adde", "requirement": { "id": "655360-0007-001-01" }, "value": "1" }, { - "id": "6ced515d86bd45059b3950e8393836c4", + "id": "2d825a12a07e423a9c316d804123e128", "requirement": { "id": "655360-0008-001-01" }, "value": "HDMI" }, { - "id": "3c7a32c3f8794b03b4d3cb915f85f151", + "id": "0241310053384fe39feed458a1606524", "requirement": { "id": "655360-0009-001-01" }, diff --git a/docs/source/tendering/pricequotation/http/register-2nd-bidder.http b/docs/source/tendering/pricequotation/http/register-2nd-bidder.http index 7b5997c27c..d74788494c 100644 --- a/docs/source/tendering/pricequotation/http/register-2nd-bidder.http +++ b/docs/source/tendering/pricequotation/http/register-2nd-bidder.http @@ -108,7 +108,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/62632b90b4c44ebd81073e2fc9dbc000 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/b417921608714f3f8b317c0cf06ff72f X-Content-Type-Options: nosniff { "data": { @@ -116,9 +116,9 @@ X-Content-Type-Options: nosniff { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -128,14 +128,13 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "62632b90b4c44ebd81073e2fc9dbc000", + "status": "draft", "value": { "amount": 479.0, "currency": "UAH", @@ -143,96 +142,97 @@ X-Content-Type-Options: nosniff }, "documents": [ { - "id": "02fd6af18f5e49a99a68ff73f0169903", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/62632b90b4c44ebd81073e2fc9dbc000/documents/02fd6af18f5e49a99a68ff73f0169903?download=192b7b24d38d4de6bc9a6b1e6c77960b", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/b417921608714f3f8b317c0cf06ff72f/documents/22f67f6902c04a4082bf73851b786a22?download=192b7b24d38d4de6bc9a6b1e6c77960b", + "documentOf": "tender", + "id": "22f67f6902c04a4082bf73851b786a22", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" }, { - "id": "59edf3c71d23491eb00428e8efe3b9ce", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/62632b90b4c44ebd81073e2fc9dbc000/documents/59edf3c71d23491eb00428e8efe3b9ce?download=e6ac8b976a3445839cd998263b5ffb42", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/b417921608714f3f8b317c0cf06ff72f/documents/4d0d26d7bce149ed83e14e127c7c4b9b?download=e6ac8b976a3445839cd998263b5ffb42", + "documentOf": "tender", + "id": "4d0d26d7bce149ed83e14e127c7c4b9b", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } ], "requirementResponses": [ { - "id": "b77debb00fc84b3eacc5b1805c4cd4a7", + "id": "992fe700e899420889f0352e6286eb73", "requirement": { "id": "655360-0001-001-01" }, "value": "23.8" }, { - "id": "7557b12547334e7d843968e671e7d62b", + "id": "83b56c80fb814252a2da8214f74c33e3", "requirement": { "id": "655360-0002-001-01" }, "value": "1920x1080" }, { - "id": "da6ad23a4cd149a193da0e23c5574b5d", + "id": "accabda2c98d4b9b809762e9744a262d", "requirement": { "id": "655360-0003-001-01" }, "value": "16:9" }, { - "id": "d2d262620d534dca8229a5df601d394f", + "id": "db0eef8d75c84ffb94ff9bcd948ecca4", "requirement": { "id": "655360-0004-001-01" }, "value": "250" }, { - "id": "95a2d29a4bb04e8db719f74ab7aa2ec1", + "id": "0a7e5d7437f44521934798755def58c6", "requirement": { "id": "655360-0005-001-01" }, "value": "1000:1" }, { - "id": "65cc255132c344a2919b8367e30c56c6", + "id": "55bc6e5a813447a4b01f59a90b180077", "requirement": { "id": "655360-0006-001-01" }, "value": "1" }, { - "id": "560c11fc0b014f948780865d8456dc39", + "id": "1855b2e3b8d54f509e416d7122e34764", "requirement": { "id": "655360-0007-001-01" }, "value": "1" }, { - "id": "5a3d7f1509bc41e19235d3ea774e8f2f", + "id": "5053f15b4faf49e9a8701042dd7ae534", "requirement": { "id": "655360-0008-001-01" }, "value": "HDMI" }, { - "id": "17346ca5a1d74950831f84be42c62db0", + "id": "37f55707395141288d5bbf704fc4c19d", "requirement": { "id": "655360-0009-001-01" }, "value": "36" } ], - "status": "draft" + "id": "b417921608714f3f8b317c0cf06ff72f", + "date": "2021-03-16T00:00:01+02:00" }, "access": { - "token": "3a9b10d6d5544c5ab63ca47f59595980", - "transfer": "f01b1affbdb64995941c2f15baccecf4" + "token": "e2f9d984fab2496baec376d1ebb9dded", + "transfer": "3678ab49c8df4c5dbfedf0a6acf7bcd1" } } diff --git a/docs/source/tendering/pricequotation/http/register-bidder.http b/docs/source/tendering/pricequotation/http/register-bidder.http index 6216161093..d860dff05e 100644 --- a/docs/source/tendering/pricequotation/http/register-bidder.http +++ b/docs/source/tendering/pricequotation/http/register-bidder.http @@ -95,7 +95,7 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483 X-Content-Type-Options: nosniff { "data": { @@ -103,9 +103,9 @@ X-Content-Type-Options: nosniff { "name": "Державне управління справами", "identifier": { + "uri": "http://www.dus.gov.ua/", "scheme": "UA-EDR", - "id": "00037256", - "uri": "http://www.dus.gov.ua/" + "id": "00037256" }, "address": { "streetAddress": "вул. Банкова, 11, корпус 1", @@ -115,89 +115,90 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Державне управління справами", - "telephone": "+0440000000" + "telephone": "+0440000000", + "name": "Державне управління справами" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:01+02:00", - "id": "2a61e50221604e168498d4a2f6a16f8e", "status": "draft", "value": { "amount": 469.0, "currency": "UAH", "valueAddedTaxIncluded": true }, + "documents": [], "requirementResponses": [ { - "id": "6151ba1204c24bb0995eda7fb759b58f", + "id": "546cd5f70b71467c84e6258ac73f0503", "requirement": { "id": "655360-0001-001-01" }, "value": "23.8" }, { - "id": "7bfb4e5c0c4e475fa54d3a526a4e1479", + "id": "087d0e39ec974050a890f4675eabe410", "requirement": { "id": "655360-0002-001-01" }, "value": "1920x1080" }, { - "id": "a5087f859e184459aa0a323afe6ff6b3", + "id": "5f2b1501bc04447db467290093454886", "requirement": { "id": "655360-0003-001-01" }, "value": "16:9" }, { - "id": "5ebdcafc052f4e6c80f7c77ce9a91c43", + "id": "d0fe323b8cc1407394e8a57962d8b538", "requirement": { "id": "655360-0004-001-01" }, "value": "250" }, { - "id": "568181437b714833a6997fc22c3b3f0a", + "id": "f3931668644e466dbc94eebe4abdcfb5", "requirement": { "id": "655360-0005-001-01" }, "value": "1000:1" }, { - "id": "7985689a4cac4664896ec6ffc385b621", + "id": "0532ce1a936946f99de8c4b95ac9d66a", "requirement": { "id": "655360-0006-001-01" }, "value": "1" }, { - "id": "fba749f64504449a95b43e51dd812453", + "id": "26239f3d179b4b0f89fc96008803adde", "requirement": { "id": "655360-0007-001-01" }, "value": "1" }, { - "id": "6ced515d86bd45059b3950e8393836c4", + "id": "2d825a12a07e423a9c316d804123e128", "requirement": { "id": "655360-0008-001-01" }, "value": "HDMI" }, { - "id": "3c7a32c3f8794b03b4d3cb915f85f151", + "id": "0241310053384fe39feed458a1606524", "requirement": { "id": "655360-0009-001-01" }, "value": "36" } - ] + ], + "id": "635dac1cc52641d2a557b66099e10483", + "date": "2021-03-16T00:00:01+02:00" }, "access": { - "token": "7e91cc260b8d4c7fbd12afe11ee24975", - "transfer": "d7be0156d7894abeb6b94a2bef338233" + "token": "7432920eba3141d69a91ef109c9ee4ec", + "transfer": "428f4a00c91c46c38d36ec77fb906741" } } diff --git a/docs/source/tendering/pricequotation/http/tender-contract-upload-document.http b/docs/source/tendering/pricequotation/http/tender-contract-upload-document.http index cd4a99d4e7..901a6890a7 100644 --- a/docs/source/tendering/pricequotation/http/tender-contract-upload-document.http +++ b/docs/source/tendering/pricequotation/http/tender-contract-upload-document.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/contracts/96153e64cbb44972946b7588c65da1e9/documents/58630a9dee574cedba85e5d5983775ff +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/contracts/96153e64cbb44972946b7588c65da1e9/documents/f9e48772753847cbb8486625c7e5fc1d X-Content-Type-Options: nosniff { "data": { - "id": "58630a9dee574cedba85e5d5983775ff", + "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "contract_first_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/pricequotation/http/tender-contract-upload-second-document.http b/docs/source/tendering/pricequotation/http/tender-contract-upload-second-document.http index 9aeff25eee..46a212d44e 100644 --- a/docs/source/tendering/pricequotation/http/tender-contract-upload-second-document.http +++ b/docs/source/tendering/pricequotation/http/tender-contract-upload-second-document.http @@ -15,11 +15,11 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/contracts/96153e64cbb44972946b7588c65da1e9/documents/f24744ecea6646e09d832d9136d84890 +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/contracts/96153e64cbb44972946b7588c65da1e9/documents/58630a9dee574cedba85e5d5983775ff X-Content-Type-Options: nosniff { "data": { - "id": "f24744ecea6646e09d832d9136d84890", + "id": "58630a9dee574cedba85e5d5983775ff", "hash": "md5:00000000000000000000000000000000", "title": "contract_second_document.doc", "format": "application/msword", diff --git a/docs/source/tendering/pricequotation/http/upload-bid-proposal.http b/docs/source/tendering/pricequotation/http/upload-bid-proposal.http index 01da9db2f8..a9fe111677 100644 --- a/docs/source/tendering/pricequotation/http/upload-bid-proposal.http +++ b/docs/source/tendering/pricequotation/http/upload-bid-proposal.http @@ -1,4 +1,4 @@ -POST /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e/documents?acc_token=7e91cc260b8d4c7fbd12afe11ee24975 HTTP/1.0 +POST /api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483/documents?acc_token=7432920eba3141d69a91ef109c9ee4ec HTTP/1.0 Authorization: Bearer broker Content-Length: 328 Content-Type: application/json @@ -15,18 +15,18 @@ DATA: Response: 201 Created Content-Type: application/json -Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e/documents/f9e48772753847cbb8486625c7e5fc1d +Location: http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483/documents/29a6d2346a444933bf06cf09398efc8d X-Content-Type-Options: nosniff { "data": { - "id": "f9e48772753847cbb8486625c7e5fc1d", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/2a61e50221604e168498d4a2f6a16f8e/documents/f9e48772753847cbb8486625c7e5fc1d?download=6ef1648bde044fe4acda3a1e4a7bfb5b", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/635dac1cc52641d2a557b66099e10483/documents/29a6d2346a444933bf06cf09398efc8d?download=6ef1648bde044fe4acda3a1e4a7bfb5b", + "documentOf": "tender", + "id": "29a6d2346a444933bf06cf09398efc8d", "datePublished": "2021-03-16T00:00:01+02:00", - "dateModified": "2021-03-16T00:00:01+02:00", - "documentOf": "tender" + "dateModified": "2021-03-16T00:00:01+02:00" } } diff --git a/docs/tests/test_competitivedialogue.py b/docs/tests/test_competitivedialogue.py index 93c637d94d..56f41780aa 100644 --- a/docs/tests/test_competitivedialogue.py +++ b/docs/tests/test_competitivedialogue.py @@ -872,7 +872,7 @@ def test_stage2_EU(self): self.assertEqual(response.status, '200 OK') with open(TARGET_DIR + 'stage2/EU/register-2nd-bidder.http', 'w') as self.app.file_obj: - bid2_draft = deepcopy(bid2) + bid2_draft = deepcopy(bid2_stage2) response = self.app.post_json( '/tenders/{}/bids'.format(self.tender_id), {'data': bid2_draft}) diff --git a/src/openprocurement/tender/cfaua/procedure/models/bid.py b/src/openprocurement/tender/cfaua/procedure/models/bid.py index 2407187c87..256bbcd7a2 100644 --- a/src/openprocurement/tender/cfaua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaua/procedure/models/bid.py @@ -1,12 +1,10 @@ from schematics.types import StringType, BooleanType -from schematics.types.serializable import serializable -from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin -from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.bid import ( Bid as BaseBid, PostBid as BasePostBid, PatchBid as BasePatchBid, + get_default_bid_status, ) from openprocurement.tender.core.procedure.models.base import ListType from openprocurement.tender.cfaua.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue @@ -14,7 +12,6 @@ PostDocument, Document, ) -from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from schematics.types.compound import ModelType @@ -40,17 +37,10 @@ class PostBid(PostBidResponsesMixin, BasePostBid): selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) status = StringType( - choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"] + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + default=get_default_bid_status("pending") ) - @serializable(serialized_name="status", serialize_when_none=True) - def default_status(self): - if not self.status: - if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: - return "draft" - return "pending" - return self.status - class Bid(PostBidResponsesMixin, BaseBid): subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py index 34285fb041..c7d26721dd 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py @@ -4,14 +4,12 @@ PatchBusinessOrganization, PostBusinessOrganization, ) -from openprocurement.tender.core.procedure.context import get_tender, get_now +from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.core.procedure.validation import validate_bid_value from openprocurement.tender.competitivedialogue.procedure.models.lot_value import LotValue, PatchLotValue, PostLotValue from openprocurement.tender.competitivedialogue.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.req_response import PostBidResponsesMixin, PatchBidResponsesMixin -from openprocurement.tender.core.procedure.models.bid import MetaBid, validate_lot_values -from openprocurement.tender.core.procedure.utils import get_first_revision_date -from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM +from openprocurement.tender.core.procedure.models.bid import MetaBid, validate_lot_values, get_default_bid_status from schematics.types.compound import ModelType from schematics.types import BooleanType, StringType from schematics.types.serializable import serializable @@ -47,17 +45,9 @@ def id(self): selfEligible = BooleanType(choices=[True]) status = StringType( choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], - default="pending", + default=get_default_bid_status("pending") ) - @serializable(serialized_name="status", serialize_when_none=True) - def default_status(self): - if not self.status: - if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: - return "draft" - return "pending" - return self.status - def validate_value(self, data, value): tender = get_tender() validate_bid_value(tender, value) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py index 24094cf1fa..218e50bd8c 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/bid_blanks.py @@ -484,7 +484,6 @@ def get_tender_bidder(self): # Create another bidder bidder_data["identifier"]["id"] = "00037257" - bid_data["value"]["amount"] = 499 self.create_bid(self.tender_id, bid_data) # Create another 2 bidder @@ -579,7 +578,6 @@ def deleted_bid_do_not_locks_tender_in_state(self): bidder_data = bid_data["tenderers"][0] for bid_amount in (400, 405): # Create two bids bidder_data["identifier"]["id"] = "00037256" + str(bid_amount) - bid_data["value"] = {"amount": bid_amount} bid, bid_token = self.create_bid(self.tender_id, bid_data) bids.append(bid) bids_tokens.append(bid_token) @@ -593,7 +591,6 @@ def deleted_bid_do_not_locks_tender_in_state(self): # Create new bid bidder_data["identifier"]["id"] = "00037258" - bid_data["value"] = {"amount": 101} self.create_bid(self.tender_id, bid_data) # Create new bid bidder_data["identifier"]["id"] = "00037259" @@ -2021,7 +2018,6 @@ def patch_tender_with_bids_lots_none(self): ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") - errors = {error["name"]: error["description"] for error in response.json["errors"]} self.assertEqual(errors["lots"][0], ["This field is required."]) - self.assertEqual(errors["bids"][0]["lotValues"][0], {"relatedLot": ["relatedLot should be one of lots"]}) + self.assertEqual(errors["items"][0], {"relatedLot": ["relatedLot should be one of lots"]}) diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py index 96e24af2e6..b9403ffe33 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage1/tender_blanks.py @@ -577,7 +577,6 @@ def multiple_bidders_tender_eu(self): bid_data = deepcopy(test_bids[0]) bid_data["tenderers"] = [bidder_data] self.create_bid(tender_id, bid_data, "pending") - bid_data["value"]["amount"] = 499 bidder_data["identifier"]["id"] = "00037257" self.create_bid(tender_id, bid_data, "pending") bid_id = response.json["data"]["id"] @@ -678,11 +677,9 @@ def try_go_to_ready_stage_eu(self): bid_data["tenderers"] = [bidder_data] self.app.authorization = ("Basic", ("broker", "")) self.create_bid(tender_id, bid_data, "pending") - bid_data["value"]["amount"] = 499 bidder_data["identifier"]["id"] = "00037257" bid, bid_token = self.create_bid(tender_id, bid_data, "pending") bid_id = bid["id"] - bid_data["value"]["amount"] = 498 bidder_data["identifier"]["id"] = "00037258" self.create_bid(tender_id, bid_data, "pending") # switch to active.pre-qualification diff --git a/src/openprocurement/tender/core/procedure/models/bid.py b/src/openprocurement/tender/core/procedure/models/bid.py index da9f609d6e..f5a11587ba 100644 --- a/src/openprocurement/tender/core/procedure/models/bid.py +++ b/src/openprocurement/tender/core/procedure/models/bid.py @@ -24,6 +24,14 @@ from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM +def get_default_bid_status(active_status="active"): + def default_status(): + if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: + return "draft" + return active_status + return default_status + + # PATCH DATA --- class PatchBid(BaseBid): parameters = ListType(ModelType(PatchParameter, required=True), validators=[validate_parameters_uniq]) @@ -93,17 +101,8 @@ def id(self): tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) lotValues = ListType(ModelType(PostLotValue, required=True)) - status = StringType(choices=["active", "draft"]) + status = StringType(choices=["active", "draft"], default=get_default_bid_status("active")) documents = ListType(ModelType(PostDocument, required=True)) - - @serializable(serialized_name="status", serialize_when_none=True) - def default_status(self): - if not self.status: - if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: - return "draft" - return "active" - return self.status - # -- POST diff --git a/src/openprocurement/tender/esco/tests/bid_blanks.py b/src/openprocurement/tender/esco/tests/bid_blanks.py index f8f9f02461..e1d6ba8bef 100644 --- a/src/openprocurement/tender/esco/tests/bid_blanks.py +++ b/src/openprocurement/tender/esco/tests/bid_blanks.py @@ -143,24 +143,11 @@ def create_tender_bid_invalid(self): bid_data = deepcopy(self.test_bids_data[0]) del bid_data["value"] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -298,24 +285,11 @@ def create_tender_bid_invalid(self): "annualCostsReduction": [100] * 21, } - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -366,24 +340,11 @@ def create_tender_bid_invalid(self): "currency": "USD", } - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -405,24 +366,11 @@ def create_tender_bid_invalid(self): "currency": "UAH", "valueAddedTaxIncluded": False, } - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -479,24 +427,11 @@ def create_tender_bid_invalid_funding_kind_budget(self): if get_now() < RELEASE_ECRITERIA_ARTICLE_17: bid_data["selfEligible"] = True - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -577,36 +512,17 @@ def create_tender_bid(self): for status in ("active", "unsuccessful", "deleted", "invalid"): data = deepcopy(self.test_bids_data[0]) data.update({"status": status}) - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}, status=403) - else: - response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", - {"data": {"status": status}}, - status=403, - ) + response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}, status=403) self.assertEqual(response.status, "403 Forbidden") self.set_status("complete") - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}, status=403) - action = "add" - else: - response = self.app.patch_json( - f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", - {"data": {"status": "pending"}}, - status=403, - ) - action = "update" + response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}, status=403) self.assertEqual(response.status, "403 Forbidden") self.assertEqual(response.content_type, "application/json") self.assertEqual( response.json["errors"][0]["description"], - f"Can't {action} bid in current (complete) tender status", + f"Can't add bid in current (complete) tender status", ) @@ -1389,17 +1305,7 @@ def create_tender_bid_no_scale(self): def features_bid_invalid(self): data = deepcopy(self.test_bids_data[0]) - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) - else: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", - {"data": {"status": "pending"}}, - status=422, - ) + response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1408,17 +1314,7 @@ def features_bid_invalid(self): [{"description": ["This field is required."], "location": "body", "name": "parameters"}], ) data["parameters"] = [{"code": "OCDS-123454-AIR-INTAKE", "value": 0.03}] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) - else: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", - {"data": {"status": "pending"}}, - status=422, - ) + response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1443,17 +1339,7 @@ def features_bid_invalid(self): ) data["parameters"][1]["code"] = "OCDS-123454-YEARS" data["parameters"][1]["value"] = 0.2 - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) - else: - response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", - {"data": {"status": "pending"}}, - status=422, - ) + response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": data}, status=422) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") diff --git a/src/openprocurement/tender/esco/tests/lot_blanks.py b/src/openprocurement/tender/esco/tests/lot_blanks.py index 5272204e69..39c3aa4dcb 100644 --- a/src/openprocurement/tender/esco/tests/lot_blanks.py +++ b/src/openprocurement/tender/esco/tests/lot_blanks.py @@ -1031,24 +1031,11 @@ def create_tender_bid_invalid(self): bid_data = deepcopy(self.test_bids_data[0]) del bid_data["value"] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1179,24 +1166,11 @@ def create_tender_bid_invalid(self): "relatedLot": self.initial_lots[0]["id"], } ] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1223,24 +1197,11 @@ def create_tender_bid_invalid(self): "relatedLot": self.initial_lots[0]["id"], } ] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1265,24 +1226,11 @@ def create_tender_bid_invalid(self): "value": self.test_bids_data[0]["value"], "lotValues": [{"value": self.test_bids_data[0]["value"], "relatedLot": self.initial_lots[0]["id"]}] }) - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1473,24 +1421,11 @@ def create_tender_feature_bid_invalid(self): bid_data = deepcopy(self.test_bids_data[0]) del bid_data["value"] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1558,24 +1493,11 @@ def create_tender_feature_bid_invalid(self): bid_data["lotValues"] = [{"value": self.test_bids_data[0]["value"], "relatedLot": self.lot_id}] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1586,24 +1508,11 @@ def create_tender_feature_bid_invalid(self): bid_data["parameters"] = [{"code": "code_item", "value": 0.01}] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1613,24 +1522,11 @@ def create_tender_feature_bid_invalid(self): ) bid_data["parameters"] = [{"code": "code_invalid", "value": 0.01}] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") @@ -1651,24 +1547,11 @@ def create_tender_feature_bid_invalid(self): {"code": "code_lot", "value": 0.01}, ] - if get_now() < TWO_PHASE_COMMIT_FROM: - response = self.app.post_json( - request_path, - {"data": bid_data}, - status=422, - ) - else: - response = self.app.post_json( - request_path, - {"data": bid_data}, - ) - bid_id = response.json["data"]["id"] - bid_token = response.json["access"]["token"] - response = self.app.patch_json( - f"{request_path}/{bid_id}?acc_token={bid_token}", - {"data": {"status": "active"}}, - status=422 - ) + response = self.app.post_json( + request_path, + {"data": bid_data}, + status=422, + ) self.assertEqual(response.status, "422 Unprocessable Entity") self.assertEqual(response.content_type, "application/json") self.assertEqual(response.json["status"], "error") diff --git a/src/openprocurement/tender/openeu/procedure/models/bid.py b/src/openprocurement/tender/openeu/procedure/models/bid.py index 2958722fb5..c949220ff1 100644 --- a/src/openprocurement/tender/openeu/procedure/models/bid.py +++ b/src/openprocurement/tender/openeu/procedure/models/bid.py @@ -1,19 +1,16 @@ from schematics.types import StringType, BooleanType +from openprocurement.tender.core.procedure.models.bid import get_default_bid_status from openprocurement.tender.openua.procedure.models.bid import ( Bid as BaseBid, PostBid as BasePostBid, PatchBid as BasePatchBid, ) -from schematics.types.serializable import serializable -from openprocurement.tender.core.procedure.utils import get_first_revision_date from openprocurement.tender.core.procedure.models.base import ListType -from openprocurement.tender.core.procedure.context import get_tender, get_now from openprocurement.tender.openeu.procedure.models.lot_value import LotValue, PostLotValue, PatchLotValue from openprocurement.tender.openua.procedure.models.document import ( PostDocument, Document, ) -from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from schematics.types.compound import ModelType @@ -37,17 +34,10 @@ class PostBid(BasePostBid): selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) status = StringType( - choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"] + choices=["draft", "pending", "active", "invalid", "invalid.pre-qualification", "unsuccessful", "deleted"], + default=get_default_bid_status("pending") ) - @serializable(serialized_name="status", serialize_when_none=True) - def default_status(self): - if not self.status: - if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: - return "draft" - return "pending" - return self.status - class Bid(BaseBid): lotValues = ListType(ModelType(LotValue, required=True)) diff --git a/src/openprocurement/tender/openua/tests/tender_blanks.py b/src/openprocurement/tender/openua/tests/tender_blanks.py index 7f4f5f6195..bed33e18c7 100644 --- a/src/openprocurement/tender/openua/tests/tender_blanks.py +++ b/src/openprocurement/tender/openua/tests/tender_blanks.py @@ -960,6 +960,7 @@ def invalid_bid_tender_lot(self): self.app.authorization = ("Basic", ("broker", "")) bid_data = deepcopy(self.test_bids_data[0]) bid_data.update({ + "value": None, "status": "draft", "lotValues": [{"value": {"amount": 500}, "relatedLot": i} for i in lots] }) diff --git a/src/openprocurement/tender/pricequotation/procedure/models/bid.py b/src/openprocurement/tender/pricequotation/procedure/models/bid.py index 13cac11b37..6a03a711c7 100644 --- a/src/openprocurement/tender/pricequotation/procedure/models/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/models/bid.py @@ -1,12 +1,11 @@ from schematics.types import StringType, MD5Type from schematics.types.compound import ModelType from schematics.types.serializable import serializable -from openprocurement.api.constants import TWO_PHASE_COMMIT_FROM from openprocurement.api.models import Model, Value from openprocurement.api.validation import OPERATIONS from openprocurement.api.utils import raise_operation_error -from openprocurement.tender.core.procedure.context import get_tender, get_request, get_now -from openprocurement.tender.core.procedure.utils import get_first_revision_date +from openprocurement.tender.core.procedure.context import get_tender, get_request +from openprocurement.tender.core.procedure.models.bid import get_default_bid_status from openprocurement.tender.core.procedure.models.document import PostDocument, Document from openprocurement.tender.core.procedure.models.base import ( ListType, @@ -53,7 +52,7 @@ def id(self): min_size=1, max_size=1 ) - status = StringType(choices=["active", "draft"]) + status = StringType(choices=["active", "draft"], default=get_default_bid_status("active")) value = ModelType(Value) documents = ListType(ModelType(PostDocument, required=True), default=list) requirementResponses = ListType( @@ -62,14 +61,6 @@ def id(self): min_size=1, ) - @serializable(serialized_name="status", serialize_when_none=True) - def default_status(self): - if not self.status: - if get_first_revision_date(get_tender(), default=get_now()) > TWO_PHASE_COMMIT_FROM: - return "draft" - return "active" - return self.status - def validate_value(self, data, value): tender = get_tender() validate_bid_value(tender, value) From 0d6ef829c75f749aef07100683dd99fdda93cdff Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Wed, 18 Aug 2021 17:23:36 +0300 Subject: [PATCH 09/17] Bid serializator changes --- .../tutorial/activate-bidder.http | 1 - .../tutorial/bidder-participation-url.http | 2 +- .../tutorial/bidder2-participation-url.http | 4 +- .../tutorial/register-2nd-bidder.http | 4 +- .../tutorial/register-bidder.http | 1 - .../cfaua/tutorial/activate-bidder.http | 5 -- .../add-requirement-responses-to-bidder.http | 5 -- ...bidder-activate-after-changing-tender.http | 4 +- .../bidder-view-financial-documents.http | 11 ++- .../cfaua/tutorial/register-2nd-bidder.http | 5 -- .../cfaua/tutorial/register-3rd-bidder.http | 4 +- .../cfaua/tutorial/register-4rd-bidder.http | 4 +- .../cfaua/tutorial/register-bidder.http | 5 -- ...alification-document-proposal-updated.http | 2 +- .../multiple_lots_tutorial/bid-lot1.http | 4 - .../multiple_lots_tutorial/bid-lot2.http | 4 - .../register_ok_bid.http | 5 -- .../tutorial/activate-bidder.http | 5 -- .../add-requirement-responses-to-bidder.http | 5 -- ...bidder-activate-after-changing-tender.http | 2 +- .../tutorial/register-2nd-bidder.http | 5 -- .../tutorial/register-3rd-bidder.http | 5 -- .../tutorial/register-4rd-bidder.http | 7 +- .../tutorial/register-bidder.http | 5 -- .../tutorial/stage2/EU/activate-bidder.http | 6 -- ...bidder-activate-after-changing-tender.http | 2 +- .../EU/bidder-view-financial-documents.http | 11 +-- .../stage2/EU/register-2nd-bidder.http | 6 -- .../stage2/EU/register-3rd-bidder.http | 5 +- .../tutorial/stage2/EU/register-bidder.http | 6 -- .../tutorial/stage2/UA/activate-bidder.http | 5 +- ...bidder-activate-after-changing-tender.http | 2 +- .../stage2/UA/bidder-participation-url.http | 2 +- .../stage2/UA/register-2nd-bidder.http | 3 - .../tutorial/stage2/UA/register-bidder.http | 3 - ...bidder-activate-after-changing-tender.http | 4 +- .../http/bidder-after-changing-tender.http | 10 +-- .../http/bidder-participation-url.http | 2 +- .../defense/http/register-2nd-bidder.http | 3 - .../defense/http/register-bidder.http | 3 - .../esco/multiple_lots_tutorial/bid-lot1.http | 5 -- .../esco/multiple_lots_tutorial/bid-lot2.http | 5 -- .../esco/tutorial/activate-bidder.http | 6 -- .../add-requirement-responses-to-bidder.http | 6 -- ...bidder-activate-after-changing-tender.http | 2 +- .../bidder-view-financial-documents.http | 78 +++++++++---------- .../esco/tutorial/register-2nd-bidder.http | 6 -- .../esco/tutorial/register-3rd-bidder.http | 5 +- .../esco/tutorial/register-bidder.http | 6 -- .../http/tutorial/register-2nd-bidder.http | 2 +- .../bidder-view-financial-documents.http | 78 +++++++++---------- .../openua/http/register-bidder.http | 2 +- .../pricequotation/http/activate-bidder.http | 1 - .../pricequotation/http/patch-bidder.http | 1 - .../http/register-2nd-bidder.http | 4 +- .../pricequotation/http/register-bidder.http | 1 - .../cfaselectionua/procedure/models/bid.py | 4 +- .../cfaselectionua/procedure/serializers.py | 11 +-- .../cfaselectionua/procedure/validation.py | 17 ++-- .../procedure/views/bid_document.py | 2 +- .../tender/cfaselectionua/tests/bid_blanks.py | 14 ++-- .../tender/cfaua/procedure/models/bid.py | 10 +-- .../tender/cfaua/procedure/serializers.py | 21 +++++ .../cfaua/procedure/views/bid_document.py | 4 +- .../tender/cfaua/tests/bid_blanks.py | 6 +- .../procedure/models/bid.py | 10 +-- .../procedure/serializers.py | 16 +--- .../procedure/views/stage1/bid_document.py | 2 +- .../tests/stage2/bid_blanks.py | 5 -- .../tender/esco/procedure/models/bid.py | 2 +- .../tender/esco/procedure/serializers.py | 3 + .../tender/esco/tests/bid_blanks.py | 14 ++-- .../openuadefense/procedure/models/bid.py | 6 +- .../procedure/views/bid_document.py | 4 +- .../pricequotation/procedure/models/bid.py | 2 +- 75 files changed, 188 insertions(+), 350 deletions(-) diff --git a/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http index 2729ddcf89..53e1f1b8d4 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/activate-bidder.http @@ -40,7 +40,6 @@ X-Content-Type-Options: nosniff "status": "active", "id": "03e8ecacaef043e9b20f1a36a5279ac7", "date": "2021-03-16T00:00:00+02:00", - "documents": [], "parameters": [ { "code": "OCDS-123454-AIR-INTAKE", diff --git a/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http b/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http index 7c2f61d698..9a0ccdd368 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http +++ b/docs/source/tendering/cfaselectionua/tutorial/bidder-participation-url.http @@ -38,7 +38,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/03e8ecacaef043e9b20f1a36a5279ac7/documents/bf871fbed76240b1a0b359332f381ebb?download=32dacd322185446594eb865b681b975d", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/32dacd322185446594eb865b681b975d?Signature=85b5nciCwPI27%2BpzlbJkhTXxKofcDEfqcJBl3NaonZpWyuMxZpx3sqVSNgt4mOL9%2F4%2FqnBEEcq%2FO6AQ6ndybAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" diff --git a/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http b/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http index 34f7b04894..08ba9fef01 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http +++ b/docs/source/tendering/cfaselectionua/tutorial/bidder2-participation-url.http @@ -38,7 +38,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/9383d40f6e404558827b2b7481dea5da?download=6f95f83074884c4793b92674ecbf017d", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6f95f83074884c4793b92674ecbf017d?Signature=QoHCra37U%2FEXoEYg1Srz%2B%2BHfziG7TmHsS1Kwof8nkEHMWsbVlY%2BKnuoZbhVUBdcBnfmDucQGTJIjynfLt3wnAQ%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" @@ -48,7 +48,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/d155a202959247a9b7d090c41ca410e7?download=634443ba221c4aec9e80218dce5d9898", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/634443ba221c4aec9e80218dce5d9898?Signature=mtYQ%2BQUtqn3VyRg2qigXiCQOJfMEg%2BRShGSWo%2FvohBcnk2ajfiLnZJNPsiMteYmwwhdGgs6kU9vbSfMfOIdnCw%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender" diff --git a/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http index 2e8aacbf1a..278d460fe0 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/register-2nd-bidder.http @@ -97,7 +97,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/9383d40f6e404558827b2b7481dea5da?download=6f95f83074884c4793b92674ecbf017d", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/6f95f83074884c4793b92674ecbf017d?Signature=QoHCra37U%2FEXoEYg1Srz%2B%2BHfziG7TmHsS1Kwof8nkEHMWsbVlY%2BKnuoZbhVUBdcBnfmDucQGTJIjynfLt3wnAQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "id": "9383d40f6e404558827b2b7481dea5da", "datePublished": "2021-03-16T00:00:00+02:00", @@ -107,7 +107,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e08a950b18594d05b7c7318066bae24a/bids/51b3dee8818a41fea7a6bb43777476ec/documents/d155a202959247a9b7d090c41ca410e7?download=634443ba221c4aec9e80218dce5d9898", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/634443ba221c4aec9e80218dce5d9898?Signature=mtYQ%2BQUtqn3VyRg2qigXiCQOJfMEg%2BRShGSWo%2FvohBcnk2ajfiLnZJNPsiMteYmwwhdGgs6kU9vbSfMfOIdnCw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "id": "d155a202959247a9b7d090c41ca410e7", "datePublished": "2021-03-16T00:00:00+02:00", diff --git a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http index 0d0a3f02d1..245e33c5ce 100644 --- a/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaselectionua/tutorial/register-bidder.http @@ -79,7 +79,6 @@ X-Content-Type-Options: nosniff } ], "status": "draft", - "documents": [], "parameters": [ { "code": "OCDS-123454-AIR-INTAKE", diff --git a/docs/source/tendering/cfaua/tutorial/activate-bidder.http b/docs/source/tendering/cfaua/tutorial/activate-bidder.http index ec9aa21a3a..39d312dc17 100644 --- a/docs/source/tendering/cfaua/tutorial/activate-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/activate-bidder.http @@ -15,7 +15,6 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", @@ -166,10 +165,6 @@ X-Content-Type-Options: nosniff "status": "pending" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "pending" } diff --git a/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http index fc13e689ec..3c40103f2a 100644 --- a/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/add-requirement-responses-to-bidder.http @@ -115,7 +115,6 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", @@ -266,10 +265,6 @@ X-Content-Type-Options: nosniff "status": "pending" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft" } diff --git a/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http index 1b81a33f96..d2ec39dca9 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-activate-after-changing-tender.http @@ -172,7 +172,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add?download=576584a3773a4d2799e4af16de7afaef", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", @@ -251,7 +251,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", diff --git a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http index 2aaede4db2..1c338a097f 100644 --- a/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/cfaua/tutorial/bidder-view-financial-documents.http @@ -7,7 +7,6 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { - "parameters": [], "tenderers": [ { "name": "ДКП «Школяр»", @@ -158,12 +157,14 @@ X-Content-Type-Options: nosniff "status": "pending" } ], + "selfQualified": true, + "status": "pending", "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/documents/e5d2ba0b59284460a205a7c7f9e09add?download=576584a3773a4d2799e4af16de7afaef", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/576584a3773a4d2799e4af16de7afaef?Signature=eLr29Kwl9WC3bjpcqLZYIIPp41L4E%2FKcaKZalupTpM0kWURXdbQQr7PXvXZTL8bXB1vYeJ2KPUkp2AnlTPbGDQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "e5d2ba0b59284460a205a7c7f9e09add", @@ -238,14 +239,12 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public" } - ], - "selfQualified": true, - "status": "pending" + ] } } diff --git a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http index be18fee0c2..4b334b0b98 100644 --- a/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-2nd-bidder.http @@ -71,7 +71,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], "lotValues": [ { "value": { @@ -84,10 +83,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "5502be861ff24fa281a68247002d018c", diff --git a/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http index cbab71aca9..402486252b 100644 --- a/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-3rd-bidder.http @@ -111,7 +111,6 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "parameters": [], "lotValues": [ { "value": { @@ -129,7 +128,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/fd4a6cfadb32474b8b6d2c8c045f9e1d?download=c1779fafc15841d3a83131dee57a4640", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c1779fafc15841d3a83131dee57a4640?Signature=%2BhrD5a0ABwsMn60xLG5karTIWa%2BwjvMewCmI%2B%2BoDDUQqfLk8khBp%2FiicUw3LeTRcnRt1GeY9fA8%2BxGOVwLGmBw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "fd4a6cfadb32474b8b6d2c8c045f9e1d", @@ -140,7 +139,6 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/7b1decebe35a4408b2fa079344de8313/documents/4474922426e24118a49f17150ce09eb9?download=256123ec589044029ec3f8823d26d1a4", "documentOf": "tender", "confidentiality": "buyerOnly", "confidentialityRationale": "Only our company sells badgers with pink hair.", diff --git a/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http b/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http index 2808a730b7..96d9a49a70 100644 --- a/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-4rd-bidder.http @@ -111,7 +111,6 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "parameters": [], "lotValues": [ { "value": { @@ -129,7 +128,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/b85ae26451e547cda0810ef04c777cf9?download=c1779fafc15841d3a83131dee57a4640", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/c1779fafc15841d3a83131dee57a4640?Signature=%2BhrD5a0ABwsMn60xLG5karTIWa%2BwjvMewCmI%2B%2BoDDUQqfLk8khBp%2FiicUw3LeTRcnRt1GeY9fA8%2BxGOVwLGmBw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "b85ae26451e547cda0810ef04c777cf9", @@ -140,7 +139,6 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/f2396c5eb7dc40e986705a3de1cdc13b/documents/a18e17da85ee43b5bb4a3dc4117715de?download=256123ec589044029ec3f8823d26d1a4", "documentOf": "tender", "confidentiality": "buyerOnly", "confidentialityRationale": "Only our company sells badgers with pink hair.", diff --git a/docs/source/tendering/cfaua/tutorial/register-bidder.http b/docs/source/tendering/cfaua/tutorial/register-bidder.http index 84b2c34c66..76d60e0063 100644 --- a/docs/source/tendering/cfaua/tutorial/register-bidder.http +++ b/docs/source/tendering/cfaua/tutorial/register-bidder.http @@ -72,7 +72,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "parameters": [], "subcontractingDetails": "ДКП «Орфей», Україна", "lotValues": [ { @@ -86,10 +85,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "b142414a5dc84ec0a828ba7e3d5f3513", diff --git a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http index 131f143719..92d5fe2867 100644 --- a/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http +++ b/docs/source/tendering/cfaua/tutorial/upload-bid-qualification-document-proposal-updated.http @@ -23,7 +23,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "qualification_document2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/ef44ad8f031941c794b167447fb95f3b?download=9595b5d341ff4269b8f0df2aa37ce8de", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/37cb590308a242a9836f51a9994c7492/bids/b142414a5dc84ec0a828ba7e3d5f3513/qualification_documents/3eb8844179a441aea334906f1bf1d3c2?download=9595b5d341ff4269b8f0df2aa37ce8de", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public" diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http index bcea538125..16dc86dc8e 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot1.http @@ -77,10 +77,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "1364aaf7ec90441692c76ccb24a623f8", diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http index a79cffcf0d..c2f9898b52 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/bid-lot2.http @@ -85,10 +85,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "efd32c624d1c490a9d4e31ec0301cfa8", diff --git a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http index 0c6017b064..eb56bb12ea 100644 --- a/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http +++ b/docs/source/tendering/competitivedialogue/multiple_lots_tutorial/register_ok_bid.http @@ -72,7 +72,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "parameters": [], "lotValues": [ { "value": { @@ -86,10 +85,6 @@ X-Content-Type-Options: nosniff "date": "2021-03-16T00:00:00+02:00" } ], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "86fe022865a240c1bd311525ec54152c", diff --git a/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http index be72d44a58..56b0af2d23 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/activate-bidder.http @@ -152,11 +152,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "subcontractingDetails": "ДКП «Орфей», Україна", "selfQualified": true, "status": "pending" diff --git a/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http index 06e334a265..24c4566dfc 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/add-requirement-responses-to-bidder.http @@ -252,11 +252,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "subcontractingDetails": "ДКП «Орфей», Україна", "selfQualified": true, "status": "draft" diff --git a/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http index 545d6046a9..e40eee2729 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/bidder-activate-after-changing-tender.http @@ -159,7 +159,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/fd70953552a346ecbb2d7f86de89b253/documents/58c3e809e0bb499f87fda30df5d0576b?download=076b981bb04b40b88ebb84ad089a3247", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/076b981bb04b40b88ebb84ad089a3247?Signature=QFDSC7YPY4Xy9jsrJxkl9AuSufsvuSsl1U7etzrsdG%2BRyGJCmObwUvdYrGfLrWEFtIVhxcUg1FSVcwaGr1MOAQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http index 78b494dc6a..3466e1826b 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-2nd-bidder.http @@ -63,11 +63,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "5534cee2594649ccaa91a9f87caa96e2", diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http index 19fd0841a2..b9ff3ce137 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-3rd-bidder.http @@ -63,11 +63,6 @@ X-Content-Type-Options: nosniff "scale": "mid" } ], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "c8cf921842b343ae90f0b4666658776e", diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http index e7be2a5e3d..cad79e4a12 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-4rd-bidder.http @@ -79,13 +79,12 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "lotValues": [], "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/bf2b73185c7644999f4c772fd7dbc4b7?download=18236fa45edb456ca74c8320b4b0d2b8", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/18236fa45edb456ca74c8320b4b0d2b8?Signature=2tXvP8ECxXUCuKzXtQhvKzz2gUUTv86aaWK209GAAvOjZ1wEQIGilN5iGCXZaKNvybgsfm2Vb4kphWWkaqFFCA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "isDescriptionDecision": false, @@ -97,7 +96,6 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/cce509cd3c324437829f34f6d4d074fb/bids/858275d219d14850b85c83ea77b91281/documents/19fcd74e8e884158873085b65694b1dc?download=aec550f71c1e47f4bb789564fdfa149c", "documentOf": "tender", "confidentiality": "buyerOnly", "confidentialityRationale": "Only our company sells badgers with pink hair.", @@ -107,9 +105,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "858275d219d14850b85c83ea77b91281", diff --git a/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http index a0580e996d..52250cfd91 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/register-bidder.http @@ -65,11 +65,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "fd70953552a346ecbb2d7f86de89b253", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http index 11042fbd0b..0c5f027fbc 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/activate-bidder.http @@ -46,12 +46,6 @@ X-Content-Type-Options: nosniff "id": "58e27c7c070d4d97b09d73d735ad23aa", "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "pending" } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http index a4f28fc5ad..08d6ef1af6 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-activate-after-changing-tender.http @@ -53,7 +53,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e?download=0ebab89f70e14ee79ac687594e90aa45", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http index 207fadd76b..4b1c5f1787 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/bidder-view-financial-documents.http @@ -38,14 +38,14 @@ X-Content-Type-Options: nosniff "id": "58e27c7c070d4d97b09d73d735ad23aa", "date": "2021-03-16T00:00:00+02:00", "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], + "selfQualified": true, + "status": "pending", "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/58e27c7c070d4d97b09d73d735ad23aa/documents/495d6da3c2b040ffa35339eb84d63c2e?download=0ebab89f70e14ee79ac687594e90aa45", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/0ebab89f70e14ee79ac687594e90aa45?Signature=9aoCYzGqWd6EnH2PO5FddFgVKa0%2BzDPyB5hofn0%2FlwHTA%2BGSMyAGVFqho1BSeRayT%2Bjugg3Z26AyoNAr934UCA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "495d6da3c2b040ffa35339eb84d63c2e", @@ -89,7 +89,6 @@ X-Content-Type-Options: nosniff "dateModified": "2021-03-16T00:00:00+02:00" } ], - "eligibilityDocuments": [], "qualificationDocuments": [ { "hash": "md5:00000000000000000000000000000000", @@ -102,9 +101,7 @@ X-Content-Type-Options: nosniff "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" } - ], - "selfQualified": true, - "status": "pending" + ] } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http index ecb60aea4c..622f49ea3f 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-2nd-bidder.http @@ -70,12 +70,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "77605656b3e8479fbfa66cf3d764520c", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http index 40f48f22a8..0c686655b8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-3rd-bidder.http @@ -110,14 +110,12 @@ X-Content-Type-Options: nosniff "scale": "large" } ], - "parameters": [], - "lotValues": [], "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/866c3ddfea9249e9a4953a1943facdf4?download=bd22239ca7e843b5a9b78629492dd7ef", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd22239ca7e843b5a9b78629492dd7ef?Signature=hn64tIoU1SMP2A3RWyThO%2F59nkS2V%2BWRPLPhDALx9aH1K0jIC%2FUaGcadYcO%2BGjNJnKGHwGH%2FR%2Fmi04t2efQPBQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "866c3ddfea9249e9a4953a1943facdf4", @@ -128,7 +126,6 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db1ddb06a5a44954bc0b9f555776112d/bids/9ee879e314fd487584383884598ae7c7/documents/6be95b29d2d749a2ad53f32098040908?download=f2990cef9058446d95845fcdd7c796d2", "documentOf": "tender", "confidentiality": "buyerOnly", "confidentialityRationale": "Only our company sells badgers with pink hair.", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http index 143623d018..e9c20ae75f 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/EU/register-bidder.http @@ -73,12 +73,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "lotValues": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "selfQualified": true, "status": "draft", "id": "58e27c7c070d4d97b09d73d735ad23aa", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http index 7f9b1352bd..447a8e47a8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/activate-bidder.http @@ -47,10 +47,7 @@ X-Content-Type-Options: nosniff "id": "1d98255f593f4a09a2fe81564728302f", "date": "2021-03-16T00:00:00+02:00", "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], - "documents": [] + "subcontractingDetails": "ДКП «Орфей», Україна" } } diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http index e4e5b7e9ad..a23df781b8 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-activate-after-changing-tender.http @@ -55,7 +55,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6?download=47c968737f624b6fb2947bce2efcbbef", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/47c968737f624b6fb2947bce2efcbbef?Signature=ui2PtOExSOnCaDAB5fD27QR5emb%2B1MNR5sfhorucH0kJEX92qtfZ38VkY9LC7RktFR68yAnqXel4jQwE0VPzBg%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public" diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http index 5dd02cfc89..93c693e3fb 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/bidder-participation-url.http @@ -47,7 +47,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/db4876add6b747dfafc1b99523c02097/bids/1d98255f593f4a09a2fe81564728302f/documents/c91902ad94c84634af4b0be8fe9e73b6?download=47c968737f624b6fb2947bce2efcbbef", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/47c968737f624b6fb2947bce2efcbbef?Signature=ui2PtOExSOnCaDAB5fD27QR5emb%2B1MNR5sfhorucH0kJEX92qtfZ38VkY9LC7RktFR68yAnqXel4jQwE0VPzBg%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http index b332a776fc..9ceaa9b29f 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-2nd-bidder.http @@ -72,9 +72,6 @@ X-Content-Type-Options: nosniff ], "status": "draft", "selfQualified": true, - "lotValues": [], - "parameters": [], - "documents": [], "id": "d763b870e0344234823a04cad520e0fd", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http index 4a753604a8..39ce7d5fe1 100644 --- a/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http +++ b/docs/source/tendering/competitivedialogue/tutorial/stage2/UA/register-bidder.http @@ -75,9 +75,6 @@ X-Content-Type-Options: nosniff "status": "draft", "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], - "documents": [], "id": "1d98255f593f4a09a2fe81564728302f", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http b/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http index 93139fbc64..523a6a360a 100644 --- a/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/defense/http/bidder-activate-after-changing-tender.http @@ -49,8 +49,6 @@ X-Content-Type-Options: nosniff "selfEligible": true, "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], "documents": [ { "id": "a38bde5cd16f4abca5753048197ea87d", @@ -58,7 +56,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cb62bd21fee54c2798310d1f002f5979?Signature=XggChyH1zpkvXMQ1PJskrvV%2B3GPsgu0iHEehLQjizv8seQP1EXkMMFm0qby1qaUXagXu4w5vCtj6Z8yoBqJ7DA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:01+02:00", "confidentiality": "public" diff --git a/docs/source/tendering/defense/http/bidder-after-changing-tender.http b/docs/source/tendering/defense/http/bidder-after-changing-tender.http index b60256fead..37dbdbddc4 100644 --- a/docs/source/tendering/defense/http/bidder-after-changing-tender.http +++ b/docs/source/tendering/defense/http/bidder-after-changing-tender.http @@ -39,23 +39,21 @@ X-Content-Type-Options: nosniff "selfEligible": true, "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], + "id": "f8a53de01e5042089db617bd4814b778", + "date": "2021-03-16T00:00:01+02:00", "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cb62bd21fee54c2798310d1f002f5979?Signature=XggChyH1zpkvXMQ1PJskrvV%2B3GPsgu0iHEehLQjizv8seQP1EXkMMFm0qby1qaUXagXu4w5vCtj6Z8yoBqJ7DA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "a38bde5cd16f4abca5753048197ea87d", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00" } - ], - "id": "f8a53de01e5042089db617bd4814b778", - "date": "2021-03-16T00:00:01+02:00" + ] } } diff --git a/docs/source/tendering/defense/http/bidder-participation-url.http b/docs/source/tendering/defense/http/bidder-participation-url.http index 2805f7a6bb..8229659ae4 100644 --- a/docs/source/tendering/defense/http/bidder-participation-url.http +++ b/docs/source/tendering/defense/http/bidder-participation-url.http @@ -47,7 +47,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/f8aae737ac8f4d34a52254e2f3416505/bids/f8a53de01e5042089db617bd4814b778/documents/a38bde5cd16f4abca5753048197ea87d?download=cb62bd21fee54c2798310d1f002f5979", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/cb62bd21fee54c2798310d1f002f5979?Signature=XggChyH1zpkvXMQ1PJskrvV%2B3GPsgu0iHEehLQjizv8seQP1EXkMMFm0qby1qaUXagXu4w5vCtj6Z8yoBqJ7DA%3D%3D&KeyID=a8968c46", "datePublished": "2021-03-16T00:00:01+02:00", "dateModified": "2021-03-16T00:00:01+02:00", "documentOf": "tender", diff --git a/docs/source/tendering/defense/http/register-2nd-bidder.http b/docs/source/tendering/defense/http/register-2nd-bidder.http index 4bdd80ac66..f2131646d8 100644 --- a/docs/source/tendering/defense/http/register-2nd-bidder.http +++ b/docs/source/tendering/defense/http/register-2nd-bidder.http @@ -74,9 +74,6 @@ X-Content-Type-Options: nosniff "status": "draft", "selfEligible": true, "selfQualified": true, - "lotValues": [], - "parameters": [], - "documents": [], "id": "a01e736f8a744691af391d67e9cbd56c", "date": "2021-03-16T00:00:01+02:00" }, diff --git a/docs/source/tendering/defense/http/register-bidder.http b/docs/source/tendering/defense/http/register-bidder.http index 85e7024361..d6426e442b 100644 --- a/docs/source/tendering/defense/http/register-bidder.http +++ b/docs/source/tendering/defense/http/register-bidder.http @@ -76,9 +76,6 @@ X-Content-Type-Options: nosniff "selfEligible": true, "selfQualified": true, "subcontractingDetails": "ДКП «Орфей», Україна", - "lotValues": [], - "parameters": [], - "documents": [], "id": "f8a53de01e5042089db617bd4814b778", "date": "2021-03-16T00:00:01+02:00" }, diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http index dc080e72a5..48ca002090 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot1.http @@ -98,11 +98,6 @@ X-Content-Type-Options: nosniff "scale": "micro" } ], - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "draft", "selfQualified": true, "lotValues": [ diff --git a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http index 25d39c2da6..8e30f55ce2 100644 --- a/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http +++ b/docs/source/tendering/esco/multiple_lots_tutorial/bid-lot2.http @@ -130,11 +130,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "draft", "selfQualified": true, "lotValues": [ diff --git a/docs/source/tendering/esco/tutorial/activate-bidder.http b/docs/source/tendering/esco/tutorial/activate-bidder.http index cd0b96b2e6..50d8c5314b 100644 --- a/docs/source/tendering/esco/tutorial/activate-bidder.http +++ b/docs/source/tendering/esco/tutorial/activate-bidder.http @@ -153,11 +153,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "pending", "value": { "currency": "UAH", @@ -193,7 +188,6 @@ X-Content-Type-Options: nosniff "days": 74 } }, - "lotValues": [], "selfQualified": true } } diff --git a/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http b/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http index c0be6e4222..af687cea2a 100644 --- a/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http +++ b/docs/source/tendering/esco/tutorial/add-requirement-responses-to-bidder.http @@ -253,11 +253,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", @@ -293,7 +288,6 @@ X-Content-Type-Options: nosniff "days": 74 } }, - "lotValues": [], "selfQualified": true } } diff --git a/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http b/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http index 5034ae2a16..d1548b7570 100644 --- a/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http +++ b/docs/source/tendering/esco/tutorial/bidder-activate-after-changing-tender.http @@ -160,7 +160,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c?download=bd899d26e31643489abf7981b0f34549", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "public", diff --git a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http index b40bb29686..1dc283607f 100644 --- a/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/esco/tutorial/bidder-view-financial-documents.http @@ -145,13 +145,48 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], + "status": "pending", + "value": { + "currency": "UAH", + "valueAddedTaxIncluded": true, + "amount": 8917.4, + "amountPerformance": 816.29, + "yearlyPaymentsPercentage": 0.9, + "annualCostsReduction": [ + 500.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0, + 1000.0 + ], + "contractDuration": { + "years": 10, + "days": 74 + } + }, + "selfQualified": true, "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/931f9a28ea1c44bda087fc6d9349405f/documents/fe0e171a76a9484690da8f1ca3078c5c?download=bd899d26e31643489abf7981b0f34549", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/bd899d26e31643489abf7981b0f34549?Signature=LSjz%2FVncGdvIXATJCtqx9wZH4qCdIX8%2Bb%2BvtoDbhNrC3l6cVeUuudEVPDjzv29iIctnFCRy%2BquIkVXebQKJBAA%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "fe0e171a76a9484690da8f1ca3078c5c", @@ -220,44 +255,7 @@ X-Content-Type-Options: nosniff "datePublished": "2021-03-16T00:00:00+02:00", "dateModified": "2021-03-16T00:00:00+02:00" } - ], - "status": "pending", - "value": { - "currency": "UAH", - "valueAddedTaxIncluded": true, - "amount": 8917.4, - "amountPerformance": 816.29, - "yearlyPaymentsPercentage": 0.9, - "annualCostsReduction": [ - 500.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0, - 1000.0 - ], - "contractDuration": { - "years": 10, - "days": 74 - } - }, - "lotValues": [], - "selfQualified": true + ] } } diff --git a/docs/source/tendering/esco/tutorial/register-2nd-bidder.http b/docs/source/tendering/esco/tutorial/register-2nd-bidder.http index 43007817d7..98b36d520b 100644 --- a/docs/source/tendering/esco/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-2nd-bidder.http @@ -93,11 +93,6 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", @@ -134,7 +129,6 @@ X-Content-Type-Options: nosniff "amount": 9331.37 }, "selfQualified": true, - "lotValues": [], "id": "ae5a970874fd4292995525fb1c03d678", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/esco/tutorial/register-3rd-bidder.http b/docs/source/tendering/esco/tutorial/register-3rd-bidder.http index 3a11738970..fe2cecc31d 100644 --- a/docs/source/tendering/esco/tutorial/register-3rd-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-3rd-bidder.http @@ -133,13 +133,12 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], - "parameters": [], "documents": [ { "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/660d0c01949547d6b6247fe90cacd4f2?download=990290f4487844639797e1f0adf02bc3", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/990290f4487844639797e1f0adf02bc3?Signature=rOXN3tFVHoQCpMt2DSVVNl%2FvV6DOQUbzdFR0SblLD6LbwpfADRlJyqoONJi60r2C0BrDVvvzEycUAUVf4cu9Aw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "confidentiality": "public", "id": "660d0c01949547d6b6247fe90cacd4f2", @@ -150,7 +149,6 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/33f610abd0a54c8bb1da547c377a3324/bids/a7cd2c260a0448f5a1bf70345eb8d414/documents/e49036f82b48481fbf2ad9c4a5f855ed?download=9428cc919ddc46249fe7f4aedbd3e329", "documentOf": "tender", "confidentiality": "buyerOnly", "confidentialityRationale": "Only our company sells badgers with pink hair.", @@ -234,7 +232,6 @@ X-Content-Type-Options: nosniff "amount": 8644.77 }, "selfQualified": true, - "lotValues": [], "id": "a7cd2c260a0448f5a1bf70345eb8d414", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/esco/tutorial/register-bidder.http b/docs/source/tendering/esco/tutorial/register-bidder.http index 4a5f4f9d7f..a5808581ba 100644 --- a/docs/source/tendering/esco/tutorial/register-bidder.http +++ b/docs/source/tendering/esco/tutorial/register-bidder.http @@ -95,11 +95,6 @@ X-Content-Type-Options: nosniff } ], "subcontractingDetails": "ДКП «Орфей», Україна", - "parameters": [], - "documents": [], - "financialDocuments": [], - "eligibilityDocuments": [], - "qualificationDocuments": [], "status": "draft", "value": { "currency": "UAH", @@ -136,7 +131,6 @@ X-Content-Type-Options: nosniff "amount": 8917.4 }, "selfQualified": true, - "lotValues": [], "id": "931f9a28ea1c44bda087fc6d9349405f", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/http/tutorial/register-2nd-bidder.http b/docs/source/tendering/http/tutorial/register-2nd-bidder.http index 2424724bb9..7650438454 100644 --- a/docs/source/tendering/http/tutorial/register-2nd-bidder.http +++ b/docs/source/tendering/http/tutorial/register-2nd-bidder.http @@ -83,6 +83,7 @@ X-Content-Type-Options: nosniff "scale": "sme" } ], + "status": "draft", "documents": [ { "hash": "md5:00000000000000000000000000000000", @@ -106,7 +107,6 @@ X-Content-Type-Options: nosniff } ], "id": "6dc5b86cfd0b468ab72f0e6540fec137", - "status": "draft", "date": "2021-03-16T00:00:01+02:00" }, "access": { diff --git a/docs/source/tendering/openeu/http/tutorial/bidder-view-financial-documents.http b/docs/source/tendering/openeu/http/tutorial/bidder-view-financial-documents.http index 30ea213055..f402ab2308 100644 --- a/docs/source/tendering/openeu/http/tutorial/bidder-view-financial-documents.http +++ b/docs/source/tendering/openeu/http/tutorial/bidder-view-financial-documents.http @@ -7,13 +7,18 @@ Content-Type: application/json X-Content-Type-Options: nosniff { "data": { + "value": { + "amount": 500.0, + "currency": "UAH", + "valueAddedTaxIncluded": true + }, "tenderers": [ { "name": "ДКП «Школяр»", "identifier": { + "uri": "http://www.sc.gov.ua/", "scheme": "UA-EDR", - "id": "00137256", - "uri": "http://www.sc.gov.ua/" + "id": "00137256" }, "address": { "streetAddress": "вул. Островського, 33", @@ -23,20 +28,15 @@ X-Content-Type-Options: nosniff "countryName": "Україна" }, "contactPoint": { - "name": "Сергій Олексюк", "email": "soleksuk@gmail.com", - "telephone": "+380432216930" + "telephone": "+380432216930", + "name": "Сергій Олексюк" }, "scale": "micro" } ], - "date": "2021-03-16T00:00:00+02:00", "id": "7b97714f142c430b98dd609d94a9e441", - "value": { - "amount": 500.0, - "currency": "UAH", - "valueAddedTaxIncluded": true - }, + "date": "2021-03-16T00:00:00+02:00", "requirementResponses": [ { "id": "039ef29aab6c4459b0d7c44cf5f00fd3", @@ -149,90 +149,84 @@ X-Content-Type-Options: nosniff "value": "True" } ], + "subcontractingDetails": "ДКП «Орфей», Україна", + "selfQualified": true, + "status": "pending", "documents": [ { - "id": "9c6c487bd8474272aeeef2b98848640e", "hash": "md5:00000000000000000000000000000000", "title": "Proposal.pdf", "format": "application/pdf", "url": "http://public-docs-sandbox.prozorro.gov.ua/get/3436c5b74fae4a6396cb495b38c4a7bf?Signature=xb6zEhLUtq25zw4gaPuLWfObN9WzWu8L0bT1AeU9fbbc85DYWxTWoUVERSTcq7ZE4RhUSV8MsAENb59z0a8XDA%3D%3D&KeyID=a8968c46", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "9c6c487bd8474272aeeef2b98848640e", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { "id": "28852cb33d7e4d0d8175cc86f80283da", + "datePublished": "2021-03-16T00:00:00+02:00", "hash": "md5:00000000000000000000000000000000", "title": "Proposal_top_secrets.pdf", "format": "application/pdf", "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/documents/28852cb33d7e4d0d8175cc86f80283da?download=396144e95a5f4abb8c1d2fd408ff4d72", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", "documentOf": "tender", - "confidentialityRationale": "Only our company sells badgers with pink hair.", + "dateModified": "2021-03-16T00:00:00+02:00", "confidentiality": "buyerOnly", - "language": "uk" + "confidentialityRationale": "Only our company sells badgers with pink hair." } ], "financialDocuments": [ { - "id": "8e02e8f62e594ef89dd5e2217abe653a", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/8e02e8f62e594ef89dd5e2217abe653a?download=83d40b8f44aa42e8834777e83d65136a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/0c9fff4eb20b4184a98742e4b5482090?download=83d40b8f44aa42e8834777e83d65136a", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "0c9fff4eb20b4184a98742e4b5482090", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" }, { - "id": "9db719cc857747bbb8e8626d70bc7a85", "hash": "md5:00000000000000000000000000000000", "title": "financial_doc2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/9db719cc857747bbb8e8626d70bc7a85?download=c3ae1eb4787a4dca98285ad72a6c6df1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/financial_documents/eedddc200fd242d684df6fedee82411b?download=c3ae1eb4787a4dca98285ad72a6c6df1", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "eedddc200fd242d684df6fedee82411b", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "eligibilityDocuments": [ { - "id": "248bc5542a1f4f8fb36288792bf74e38", "hash": "md5:00000000000000000000000000000000", "title": "eligibility_doc.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/248bc5542a1f4f8fb36288792bf74e38?download=9f525265f9f844849fd1b50c43dfd6c1", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/eligibility_documents/3c4e08f5c0ad42e9a486b6120115eb59?download=9f525265f9f844849fd1b50c43dfd6c1", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "3c4e08f5c0ad42e9a486b6120115eb59", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } ], "qualificationDocuments": [ { - "id": "1289a50765c744afb22ca3e8886f9646", "hash": "md5:00000000000000000000000000000000", "title": "qualification_document.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/1289a50765c744afb22ca3e8886f9646?download=89a25b5566bc4df98cc4c64c21ce9d8a", - "datePublished": "2021-03-16T00:00:00+02:00", - "dateModified": "2021-03-16T00:00:00+02:00", + "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/5d65b887e53f4c0d97374b32fe5c6b8a/bids/7b97714f142c430b98dd609d94a9e441/qualification_documents/6b55e644de364f5fac63e5fe3cd9adb0?download=89a25b5566bc4df98cc4c64c21ce9d8a", "documentOf": "tender", "confidentiality": "public", - "language": "uk" + "id": "6b55e644de364f5fac63e5fe3cd9adb0", + "datePublished": "2021-03-16T00:00:00+02:00", + "dateModified": "2021-03-16T00:00:00+02:00" } - ], - "selfQualified": true, - "subcontractingDetails": "ДКП «Орфей», Україна", - "status": "pending" + ] } } diff --git a/docs/source/tendering/openua/http/register-bidder.http b/docs/source/tendering/openua/http/register-bidder.http index b5ebbdf473..90646d0a0b 100644 --- a/docs/source/tendering/openua/http/register-bidder.http +++ b/docs/source/tendering/openua/http/register-bidder.http @@ -73,8 +73,8 @@ X-Content-Type-Options: nosniff } ], "status": "draft", - "subcontractingDetails": "ДКП «Орфей», Україна", "selfQualified": true, + "subcontractingDetails": "ДКП «Орфей», Україна", "id": "0f4edde39c8440589de23c8efb2c8fb8", "date": "2021-03-16T00:00:00+02:00" }, diff --git a/docs/source/tendering/pricequotation/http/activate-bidder.http b/docs/source/tendering/pricequotation/http/activate-bidder.http index a5363f7ab6..aee883f947 100644 --- a/docs/source/tendering/pricequotation/http/activate-bidder.http +++ b/docs/source/tendering/pricequotation/http/activate-bidder.http @@ -17,7 +17,6 @@ X-Content-Type-Options: nosniff "data": { "id": "635dac1cc52641d2a557b66099e10483", "date": "2021-03-16T00:00:01+02:00", - "documents": [], "tenderers": [ { "name": "Державне управління справами", diff --git a/docs/source/tendering/pricequotation/http/patch-bidder.http b/docs/source/tendering/pricequotation/http/patch-bidder.http index 43a4e091dc..740171e060 100644 --- a/docs/source/tendering/pricequotation/http/patch-bidder.http +++ b/docs/source/tendering/pricequotation/http/patch-bidder.http @@ -19,7 +19,6 @@ X-Content-Type-Options: nosniff "data": { "id": "635dac1cc52641d2a557b66099e10483", "date": "2021-03-16T00:00:01+02:00", - "documents": [], "tenderers": [ { "name": "Державне управління справами", diff --git a/docs/source/tendering/pricequotation/http/register-2nd-bidder.http b/docs/source/tendering/pricequotation/http/register-2nd-bidder.http index d74788494c..b14b5cc3a9 100644 --- a/docs/source/tendering/pricequotation/http/register-2nd-bidder.http +++ b/docs/source/tendering/pricequotation/http/register-2nd-bidder.http @@ -145,7 +145,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part1.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/b417921608714f3f8b317c0cf06ff72f/documents/22f67f6902c04a4082bf73851b786a22?download=192b7b24d38d4de6bc9a6b1e6c77960b", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/192b7b24d38d4de6bc9a6b1e6c77960b?Signature=CVZKWk94K98I8qC6AG1vXsG0a%2FevBdstqBn5YpFW41JCULXAM2vtaFWQsNTa5zbc%2BatZ9y4F0ewJk9%2FrxUDLBw%3D%3D&KeyID=a8968c46", "documentOf": "tender", "id": "22f67f6902c04a4082bf73851b786a22", "datePublished": "2021-03-16T00:00:01+02:00", @@ -155,7 +155,7 @@ X-Content-Type-Options: nosniff "hash": "md5:00000000000000000000000000000000", "title": "Proposal_part2.pdf", "format": "application/pdf", - "url": "http://lb-api-sandbox.prozorro.gov.ua/api/2.5/tenders/e821f507458c4e99bdd9928981355ffa/bids/b417921608714f3f8b317c0cf06ff72f/documents/4d0d26d7bce149ed83e14e127c7c4b9b?download=e6ac8b976a3445839cd998263b5ffb42", + "url": "http://public-docs-sandbox.prozorro.gov.ua/get/e6ac8b976a3445839cd998263b5ffb42?Signature=VCjd%2BsC5JO5dsnfKlP9NMTUwhUOAFwPWrRWHJknfgB0NZ81mf7OwZLG1oVrd2EKQ8G9ZQh8hXngt7%2BbwawjsCQ%3D%3D&KeyID=a8968c46", "documentOf": "tender", "id": "4d0d26d7bce149ed83e14e127c7c4b9b", "datePublished": "2021-03-16T00:00:01+02:00", diff --git a/docs/source/tendering/pricequotation/http/register-bidder.http b/docs/source/tendering/pricequotation/http/register-bidder.http index d860dff05e..439c92cc33 100644 --- a/docs/source/tendering/pricequotation/http/register-bidder.http +++ b/docs/source/tendering/pricequotation/http/register-bidder.http @@ -127,7 +127,6 @@ X-Content-Type-Options: nosniff "currency": "UAH", "valueAddedTaxIncluded": true }, - "documents": [], "requirementResponses": [ { "id": "546cd5f70b71467c84e6258ac73f0503", diff --git a/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py index c97892109f..ada178cb30 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/models/bid.py @@ -19,8 +19,8 @@ class PatchBid(PatchBidResponsesMixin, BasePatchBid): class PostBid(PostBidResponsesMixin, BasePostBid): - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + lotValues = ListType(ModelType(PostLotValue, required=True)) subcontractingDetails = StringType() diff --git a/src/openprocurement/tender/cfaselectionua/procedure/serializers.py b/src/openprocurement/tender/cfaselectionua/procedure/serializers.py index 28e2a18c3d..a3f79368a8 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/serializers.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/serializers.py @@ -1,8 +1,6 @@ -from openprocurement.tender.core.procedure.serializers import ( - BidSerializer as BaseBidSerializer, - lot_value_serializer, - value_amount_to_float, -) +from openprocurement.tender.core.procedure.serializers.base import ListSerializer +from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer +from openprocurement.tender.core.procedure.serializers.bid import BidSerializer as BaseBidSerializer def parameter_values_to_float(_, value): @@ -13,7 +11,6 @@ def parameter_values_to_float(_, value): class BidSerializer(BaseBidSerializer): serializers = { - "value": value_amount_to_float, - "lotValues": lot_value_serializer, "parameters": parameter_values_to_float, + "documents": ListSerializer(ConfidentialDocumentSerializer), } diff --git a/src/openprocurement/tender/cfaselectionua/procedure/validation.py b/src/openprocurement/tender/cfaselectionua/procedure/validation.py index 212f1a5eca..763572db07 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/validation.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/validation.py @@ -31,14 +31,15 @@ def validate_bid_vs_agreement(request, **_): ): raise_operation_error(request, "Bid value.amount can't be greater than contact value.amount.") - contract_parameters = {p["code"]: p["value"] for p in supplier_contract.get("parameters", "")} - for p in data.get("parameters", ""): - code = p["code"] - if ( - code not in contract_parameters - or not equals_decimal_and_corrupted(Decimal(p["value"]), contract_parameters[code]) - ): - raise_operation_error(request, "Can't post inconsistent bid") + if data.get("parameters"): + contract_parameters = {p["code"]: p["value"] for p in supplier_contract.get("parameters", "")} + for p in data["parameters"]: + code = p["code"] + if ( + code not in contract_parameters + or not equals_decimal_and_corrupted(Decimal(p["value"]), contract_parameters[code]) + ): + raise_operation_error(request, "Can't post inconsistent bid") def validate_bid_document_operation_with_not_pending_award(request, **_): diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py index 8d7a26b4c7..4e3b3bc04a 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py @@ -58,8 +58,8 @@ def collection_post(self): validate_bid_document_operation_with_not_pending_award, validate_bid_document_operation_period, - validate_upload_document, update_doc_fields_on_put_document, + validate_upload_document, validate_data_model(Document), ), permission="edit_bid", diff --git a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py index da18c1e68c..38d548f306 100644 --- a/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaselectionua/tests/bid_blanks.py @@ -1100,7 +1100,7 @@ def create_tender_bid_document_json(self): doc_id = response.json["data"]["id"] self.assertIn(doc_id, response.headers["Location"]) self.assertEqual("name.doc", response.json["data"]["title"]) - key = response.json["data"]["url"].split("?")[-1].split("=")[-1] + key = self.get_doc_id_from_url(response.json["data"]["url"]) response = self.app.get("/tenders/{}/bids/{}/documents".format(self.tender_id, self.bid_id), status=403) self.assertEqual(response.status, "403 Forbidden") @@ -1261,10 +1261,10 @@ def put_tender_bid_document_json(self): self.assertEqual(response.content_type, "application/json") self.assertEqual("test description", response.json["data"]["description"]) self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] + key = self.get_doc_id_from_url(response.json["data"]["url"]) response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( + "/tenders/{}/bids/{}/documents/{}?download={}&acc_token={}".format( self.tender_id, self.bid_id, doc_id, key, self.bid_token ) ) @@ -1297,10 +1297,10 @@ def put_tender_bid_document_json(self): self.assertEqual(response.content_type, "application/json") self.assertEqual("test description", response.json["data"]["description"]) self.assertEqual(doc_id, response.json["data"]["id"]) - key = response.json["data"]["url"].split("?")[-1] + key = self.get_doc_id_from_url(response.json["data"]["url"]) response = self.app.get( - "/tenders/{}/bids/{}/documents/{}?{}&acc_token={}".format( + "/tenders/{}/bids/{}/documents/{}?download={}&acc_token={}".format( self.tender_id, self.bid_id, doc_id, key, self.bid_token ) ) @@ -1461,7 +1461,7 @@ def create_tender_bid_with_document(self): self.assertIn(bid["id"], response.headers["Location"]) document = bid[docs_container][0] self.assertEqual("name.doc", document["title"]) - key = document["url"].split("?")[-1].split("=")[-1] + key = self.get_doc_id_from_url(document["url"]) response = self.app.get( "/tenders/{}/bids/{}/{}".format(self.tender_id, self.bid_id, docs_container_url), status=403 @@ -1617,7 +1617,7 @@ def create_tender_bid_with_documents(self): self.assertEqual(ids, [doc["id"] for doc in response.json["data"]]) for index, document in enumerate(documents): - key = document["url"].split("?")[-1].split("=")[-1] + key = self.get_doc_id_from_url(document["url"]) response = self.app.get( "/tenders/{}/bids/{}/{}/{}?download=some_id&acc_token={}".format( diff --git a/src/openprocurement/tender/cfaua/procedure/models/bid.py b/src/openprocurement/tender/cfaua/procedure/models/bid.py index 256bbcd7a2..bde06936e1 100644 --- a/src/openprocurement/tender/cfaua/procedure/models/bid.py +++ b/src/openprocurement/tender/cfaua/procedure/models/bid.py @@ -27,12 +27,12 @@ class PatchBid(PatchBidResponsesMixin, BasePatchBid): class PostBid(PostBidResponsesMixin, BasePostBid): subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) - documents = ListType(ModelType(PostDocument, required=True), default=list) - financialDocuments = ListType(ModelType(PostDocument, required=True), default=list) - eligibilityDocuments = ListType(ModelType(PostDocument, required=True), default=list) - qualificationDocuments = ListType(ModelType(PostDocument, required=True), default=list) + documents = ListType(ModelType(PostDocument, required=True)) + financialDocuments = ListType(ModelType(PostDocument, required=True)) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) + qualificationDocuments = ListType(ModelType(PostDocument, required=True)) selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) diff --git a/src/openprocurement/tender/cfaua/procedure/serializers.py b/src/openprocurement/tender/cfaua/procedure/serializers.py index 738a5e41cf..94d7655282 100644 --- a/src/openprocurement/tender/cfaua/procedure/serializers.py +++ b/src/openprocurement/tender/cfaua/procedure/serializers.py @@ -1,11 +1,32 @@ from openprocurement.tender.core.procedure.context import get_tender, get_request from openprocurement.tender.core.procedure.utils import is_item_owner +from openprocurement.tender.core.procedure.serializers.base import ListSerializer +from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer from openprocurement.tender.openua.procedure.serializers import ( BidSerializer as BaseBidSerializer, ) +def value_amount_to_float(_, value): + if isinstance(value, dict) and "amount" in value: + value["amount"] = float(value["amount"]) + return value + + +def lot_value_serializer(s, values): + for item in values: + if "value" in item: + item["value"] = value_amount_to_float(s, item["value"]) + return values + + class BidSerializer(BaseBidSerializer): + serializers = { + "documents": ListSerializer(ConfidentialDocumentSerializer), + "value": value_amount_to_float, + "lotValues": lot_value_serializer, + } + whitelist = None def __init__(self, data: dict): diff --git a/src/openprocurement/tender/cfaua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py index 1cba10f0ee..3f3ca1b164 100644 --- a/src/openprocurement/tender/cfaua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py @@ -1,7 +1,7 @@ from openprocurement.tender.core.procedure.views.bid_document import TenderBidDocumentResource from openprocurement.api.utils import json_view from openprocurement.tender.openua.procedure.models.document import PostDocument, PatchDocument, Document -from openprocurement.tender.openua.procedure.serializers import ConfidentialDocumentSerializer +from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer from openprocurement.tender.core.procedure.validation import ( validate_input_data, validate_patch_data, @@ -92,8 +92,8 @@ def collection_post(self): validate_bid_document_operation_period, validate_update_bid_document_confidentiality, - validate_upload_document, update_doc_fields_on_put_document, + validate_upload_document, validate_data_model(Document), ), permission="edit_bid", diff --git a/src/openprocurement/tender/cfaua/tests/bid_blanks.py b/src/openprocurement/tender/cfaua/tests/bid_blanks.py index 6ee98bf4c1..3748f260b9 100644 --- a/src/openprocurement/tender/cfaua/tests/bid_blanks.py +++ b/src/openprocurement/tender/cfaua/tests/bid_blanks.py @@ -2308,7 +2308,7 @@ def create_tender_bid_with_documents(self): self.assertEqual(ids, [doc["id"] for doc in response.json["data"]]) for index, document in enumerate(documents): - key = document["url"].split("?")[-1].split("=")[-1] + key = self.get_doc_id_from_url(document["url"]) response = self.app.get( "/tenders/{}/bids/{}/{}/{}?download=some_id&acc_token={}".format( @@ -2397,7 +2397,7 @@ def create_tender_bid_with_document(self): self.assertIn(bid["id"], response.headers["Location"]) document = bid[docs_container][0] self.assertEqual("name.doc", document["title"]) - key = document["url"].split("?")[-1].split("=")[-1] + key = self.get_doc_id_from_url(document["url"]) response = self.app.get( "/tenders/{}/bids/{}/{}".format(self.tender_id, self.bid_id, docs_container_url), status=403 @@ -3433,8 +3433,6 @@ def view_bid_in_qualification_st_st(self): # CS-5342 if get_now() < RELEASE_ECRITERIA_ARTICLE_17: expected_keys.add("selfEligible") self.assertEqual(set(bids[0].keys()), expected_keys) - - expected_keys |= {"documents", "eligibilityDocuments", "parameters", "financialDocuments", "qualificationDocuments",} response = self.app.get("/tenders/{}/bids/{}".format(self.tender_id, bids[0]["id"])) self.assertEqual(set(response.json["data"].keys()), expected_keys) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py index c7d26721dd..735aa0cc5b 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/models/bid.py @@ -35,11 +35,11 @@ def id(self): tenderers = ListType(ModelType(PostBusinessOrganization, required=True), required=True, min_size=1, max_size=1) subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) - documents = ListType(ModelType(PostDocument, required=True), default=list) - financialDocuments = ListType(ModelType(PostDocument, required=True), default=list) - eligibilityDocuments = ListType(ModelType(PostDocument, required=True), default=list) - qualificationDocuments = ListType(ModelType(PostDocument, required=True), default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) + documents = ListType(ModelType(PostDocument, required=True)) + financialDocuments = ListType(ModelType(PostDocument, required=True)) + eligibilityDocuments = ListType(ModelType(PostDocument, required=True)) + qualificationDocuments = ListType(ModelType(PostDocument, required=True)) selfQualified = BooleanType(required=True, choices=[True]) selfEligible = BooleanType(choices=[True]) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/serializers.py b/src/openprocurement/tender/competitivedialogue/procedure/serializers.py index cde55877fb..d7bdc51610 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/serializers.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/serializers.py @@ -1,5 +1,4 @@ -from openprocurement.tender.core.procedure.context import get_tender, get_request -from openprocurement.tender.core.procedure.utils import is_item_owner +from openprocurement.tender.core.procedure.context import get_tender from openprocurement.tender.openua.procedure.serializers import BidSerializer as BaseBidSerializer @@ -24,15 +23,4 @@ def __init__(self, data: dict): "subcontractingDetails", "requirementResponses", } # elif is_item_owner(get_request(), data): - # pass # bid_role = "view" - - @property - def data(self) -> dict: - if self.whitelist: - data = { - k: self.serialize_value(k, v) - for k, v in self._data.items() - if k in self.whitelist - } - return data - return super().data + # pass # bid_role = "view"a diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py index cc56761d07..9b4b002715 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py @@ -60,8 +60,8 @@ def collection_post(self): validate_bid_document_operation_period, validate_update_bid_document_confidentiality, - validate_upload_document, update_doc_fields_on_put_document, + validate_upload_document, validate_data_model(Document), ), permission="edit_bid", diff --git a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py index fd86576513..caeb645362 100644 --- a/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py +++ b/src/openprocurement/tender/competitivedialogue/tests/stage2/bid_blanks.py @@ -423,9 +423,6 @@ def features_bidder_eu(self): i["status"] = "pending" bid.pop("date") bid.pop("id") - for f in ("lotValues", "documents", "financialDocuments", "eligibilityDocuments", "qualificationDocuments"): - self.assertEqual(bid.pop(f), []) - self.assertEqual(bid, i) @@ -994,8 +991,6 @@ def features_bidder_ua(self): i["status"] = "active" bid.pop("date") bid.pop("id") - for f in ("lotValues", "documents"): - self.assertEqual(bid.pop(f), []) self.assertEqual(bid, i) diff --git a/src/openprocurement/tender/esco/procedure/models/bid.py b/src/openprocurement/tender/esco/procedure/models/bid.py index ec332b268f..5031bf7321 100644 --- a/src/openprocurement/tender/esco/procedure/models/bid.py +++ b/src/openprocurement/tender/esco/procedure/models/bid.py @@ -52,7 +52,7 @@ def validate_value(self, data, value): class PostBid(ESCOMixin, BasePostBid): - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) class Bid(ESCOMixin, BaseBid): diff --git a/src/openprocurement/tender/esco/procedure/serializers.py b/src/openprocurement/tender/esco/procedure/serializers.py index 998d374fe2..03fe954485 100644 --- a/src/openprocurement/tender/esco/procedure/serializers.py +++ b/src/openprocurement/tender/esco/procedure/serializers.py @@ -1,3 +1,5 @@ +from openprocurement.tender.core.procedure.serializers.base import ListSerializer +from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer from openprocurement.tender.openeu.procedure.serializers import BidSerializer as BaseBidSerializer @@ -32,4 +34,5 @@ class BidSerializer(BaseBidSerializer): serializers = { "value": bid_value_to_float, "lotValues": bid_lot_values_to_float, + "documents": ListSerializer(ConfidentialDocumentSerializer), } diff --git a/src/openprocurement/tender/esco/tests/bid_blanks.py b/src/openprocurement/tender/esco/tests/bid_blanks.py index e1d6ba8bef..0cf38b7086 100644 --- a/src/openprocurement/tender/esco/tests/bid_blanks.py +++ b/src/openprocurement/tender/esco/tests/bid_blanks.py @@ -463,7 +463,10 @@ def create_tender_bid_invalid_funding_kind_budget(self): def create_tender_bid(self): data = deepcopy(self.test_bids_data[0]) data.update( - {"lotValues": None, "parameters": None, "documents": None} + { + "lotValues": None, "parameters": None, "documents": None, + "financialDocuments": None, "eligibilityDocuments": None, "qualificationDocuments": None, + } ) response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}) self.assertEqual(response.status, "201 Created") @@ -1366,14 +1369,7 @@ def features_bid(self): bid = response.json["data"] bid.pop("date") bid.pop("id") - default_fields = { - 'lotValues', - 'documents', - 'financialDocuments', - 'eligibilityDocuments', - 'qualificationDocuments' - } - self.assertEqual(set(bid), set(i) | default_fields) + self.assertEqual(set(bid), set(i)) def patch_and_put_document_into_invalid_bid(self): diff --git a/src/openprocurement/tender/openuadefense/procedure/models/bid.py b/src/openprocurement/tender/openuadefense/procedure/models/bid.py index 93b35a455c..78b329bb40 100644 --- a/src/openprocurement/tender/openuadefense/procedure/models/bid.py +++ b/src/openprocurement/tender/openuadefense/procedure/models/bid.py @@ -22,9 +22,9 @@ class PostBid(BasePostBid): selfEligible = BooleanType(choices=[True], required=True) selfQualified = BooleanType(choices=[True], required=True) subcontractingDetails = StringType() - lotValues = ListType(ModelType(PostLotValue, required=True), default=list) - parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq], default=list) - documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True), default=list) + lotValues = ListType(ModelType(PostLotValue, required=True)) + parameters = ListType(ModelType(Parameter, required=True), validators=[validate_parameters_uniq]) + documents = ListType(ConfidentialDocumentModelType(PostDocument, required=True)) def validate_value(self, data, value): tender = get_tender() diff --git a/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py index 8164df04a8..c6c7e26163 100644 --- a/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py @@ -2,7 +2,7 @@ from openprocurement.tender.core.procedure.views.bid_document import TenderBidDocumentResource from openprocurement.api.utils import json_view from openprocurement.tender.openua.procedure.models.document import PostDocument, PatchDocument, Document -from openprocurement.tender.openua.procedure.serializers import ConfidentialDocumentSerializer +from openprocurement.tender.core.procedure.serializers.document import ConfidentialDocumentSerializer from openprocurement.tender.core.procedure.validation import ( validate_input_data, validate_patch_data, @@ -71,8 +71,8 @@ def collection_post(self): validate_bid_document_operation_in_award_status, validate_update_bid_document_confidentiality, - validate_upload_document, update_doc_fields_on_put_document, + validate_upload_document, validate_data_model(Document), ), permission="edit_bid", diff --git a/src/openprocurement/tender/pricequotation/procedure/models/bid.py b/src/openprocurement/tender/pricequotation/procedure/models/bid.py index 6a03a711c7..3ccde201ca 100644 --- a/src/openprocurement/tender/pricequotation/procedure/models/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/models/bid.py @@ -54,7 +54,7 @@ def id(self): ) status = StringType(choices=["active", "draft"], default=get_default_bid_status("active")) value = ModelType(Value) - documents = ListType(ModelType(PostDocument, required=True), default=list) + documents = ListType(ModelType(PostDocument, required=True)) requirementResponses = ListType( ModelType(RequirementResponse), required=True, From 33ef5537d1102daebd0d92b000e4dfefe8506b46 Mon Sep 17 00:00:00 2001 From: "stepan.rasputny" Date: Thu, 26 Aug 2021 12:54:33 +0300 Subject: [PATCH 10/17] Fix upload docs for belowThreshold --- .../belowthreshold/procedure/validation.py | 27 ++++++++++++++--- .../tender/belowthreshold/validation.py | 30 ++++++++++++++----- 2 files changed, 46 insertions(+), 11 deletions(-) diff --git a/src/openprocurement/tender/belowthreshold/procedure/validation.py b/src/openprocurement/tender/belowthreshold/procedure/validation.py index 22e8a47bf5..bd6f58e004 100644 --- a/src/openprocurement/tender/belowthreshold/procedure/validation.py +++ b/src/openprocurement/tender/belowthreshold/procedure/validation.py @@ -4,6 +4,7 @@ from openprocurement.api.constants import GUARANTEE_ALLOWED_TENDER_TYPES from openprocurement.tender.core.procedure.context import get_now from openprocurement.tender.core.procedure.documents import check_document, update_document_url +from json.decoder import JSONDecodeError # BID DOCUMENTS @@ -54,10 +55,28 @@ def validate_bid_document_operation_with_not_pending_award(request, **kwargs): def validate_upload_documents_not_allowed_for_simple_pmr(request, **kwargs): + try: + doc_type = request.json["data"].get("documentType", "") == "contractGuarantees" + except JSONDecodeError: + doc_type = True + except AttributeError: + docs = request.json["data"] + doc_type = all(doc.get("documentType", "") != "contractGuarantees" for doc in docs) tender = request.validated["tender"] statuses = ("active.qualification",) if tender["status"] in statuses and tender.get("procurementMethodRationale") == "simple": - raise_operation_error( - request, - f"Can't upload document with {statuses} tender status and procurementMethodRationale simple" - ) + if tender.get("procurementMethodRationale") == "simple": + bid_id = request.validated["bid"]["id"] + criteria = tender["criteria"] + awards = tender["awards"] + bid_with_active_award = any([award["status"] == "active" and award["bid_id"] == bid_id for award in awards]) + needed_criterion = any( + [criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria] + ) + if not all([doc_type, needed_criterion, bid_with_active_award]): + raise_operation_error( + request, + "Can't upload document with {} tender status and procurementMethodRationale simple".format( + statuses + ), + ) diff --git a/src/openprocurement/tender/belowthreshold/validation.py b/src/openprocurement/tender/belowthreshold/validation.py index 4d788fe7b6..ff9bbcf570 100644 --- a/src/openprocurement/tender/belowthreshold/validation.py +++ b/src/openprocurement/tender/belowthreshold/validation.py @@ -6,6 +6,7 @@ base_validate_operation_ecriteria_objects, _validate_related_criterion, ) +from json.decoder import JSONDecodeError # tender documents @@ -197,13 +198,28 @@ def validate_put_requirement_objects(request, **kwargs): def validate_upload_documents_not_allowed_for_simple_pmr(request, **kwargs): + try: + doc_type = request.json["data"].get("documentType", "") == "contractGuarantees" + except JSONDecodeError: + doc_type = True + except AttributeError: + docs = request.json["data"] + doc_type = all(doc.get("documentType", "") != "contractGuarantees" for doc in docs) tender = request.validated["tender"] - upload_document_not_allowed_tender_statuses = ("active.qualification", ) - if request.validated["tender_status"] in upload_document_not_allowed_tender_statuses: + statuses = ("active.qualification",) + if tender["status"] in statuses and tender.get("procurementMethodRationale") == "simple": if tender.get("procurementMethodRationale") == "simple": - raise_operation_error( - request, - "Can't upload document with {} tender status and procurementMethodRationale simple".format( - upload_document_not_allowed_tender_statuses - ), + bid_id = request.validated["bid"]["id"] + criteria = tender["criteria"] + awards = tender["awards"] + bid_with_active_award = any([award["status"] == "active" and award["bid_id"] == bid_id for award in awards]) + needed_criterion = any( + [criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria] ) + if not all([doc_type, needed_criterion, bid_with_active_award]): + raise_operation_error( + request, + "Can't upload document with {} tender status and procurementMethodRationale simple".format( + statuses + ), + ) From 89f9dac07b7839745e90e9ee1aae580b30c53d20 Mon Sep 17 00:00:00 2001 From: smithumble Date: Fri, 27 Aug 2021 15:42:00 +0300 Subject: [PATCH 11/17] Add related projects to readme --- README.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 68c2dd4655..a436ce7b62 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# OpenProcurement Api +# Prozorro Openprocurement Api ## Installation @@ -90,3 +90,34 @@ sphinx-intl update -p build/locale -l uk -w 0 cd docs sphinx-intl build ``` + + +## Related services projects + +#### Document service (openprocurement.documentservice) +https://github.com/ProzorroUKR/openprocurement.documentservice + +#### Tasks (prozorro_tasks) +Integrations tasks service +https://github.com/ProzorroUKR/prozorro_tasks + +#### Auction (prozorro-auction) +Auction service + +#### Auctions (openprocurement.auction) +Deprecated auction service +https://github.com/ProzorroUKR/openprocurement.auction +https://github.com/ProzorroUKR/openprocurement.auction.esco +https://github.com/ProzorroUKR/openprocurement.auction.js +https://github.com/ProzorroUKR/openprocurement.auction.esco-js +https://github.com/ProzorroUKR/openprocurement.auction.worker + +#### Chronograph (prozorro_chronograph) +Chronograph service + +#### Chronograph (openprocurement.chronograph) +Deprecated chronograph service +https://github.com/ProzorroUKR/openprocurement.chronograph + +#### Bridges +API data bridges (contracting, competitive dialogue, framework agreement, price quotation) From 44b769d6dc685682fc04cdfc6aa64803dc8516ef Mon Sep 17 00:00:00 2001 From: smithumble Date: Fri, 27 Aug 2021 15:45:07 +0300 Subject: [PATCH 12/17] Add related projects to readme (fix layout) --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index a436ce7b62..e22d6c30d9 100644 --- a/README.md +++ b/README.md @@ -95,29 +95,43 @@ sphinx-intl build ## Related services projects #### Document service (openprocurement.documentservice) + https://github.com/ProzorroUKR/openprocurement.documentservice #### Tasks (prozorro_tasks) + Integrations tasks service + https://github.com/ProzorroUKR/prozorro_tasks #### Auction (prozorro-auction) + Auction service #### Auctions (openprocurement.auction) + Deprecated auction service + https://github.com/ProzorroUKR/openprocurement.auction + https://github.com/ProzorroUKR/openprocurement.auction.esco + https://github.com/ProzorroUKR/openprocurement.auction.js + https://github.com/ProzorroUKR/openprocurement.auction.esco-js + https://github.com/ProzorroUKR/openprocurement.auction.worker #### Chronograph (prozorro_chronograph) + Chronograph service #### Chronograph (openprocurement.chronograph) + Deprecated chronograph service + https://github.com/ProzorroUKR/openprocurement.chronograph #### Bridges + API data bridges (contracting, competitive dialogue, framework agreement, price quotation) From c124f3c3c9c74e778b4af3f3c98a02fb7cb09110 Mon Sep 17 00:00:00 2001 From: "stepan.rasputny" Date: Fri, 27 Aug 2021 16:52:44 +0300 Subject: [PATCH 13/17] Removed documentType validation --- .../belowthreshold/procedure/validation.py | 73 ++++++++----------- .../tender/belowthreshold/tests/bid_blanks.py | 2 - .../tender/belowthreshold/validation.py | 10 +-- src/openprocurement/tender/core/validation.py | 21 ++---- 4 files changed, 39 insertions(+), 67 deletions(-) diff --git a/src/openprocurement/tender/belowthreshold/procedure/validation.py b/src/openprocurement/tender/belowthreshold/procedure/validation.py index bd6f58e004..37d10ebc90 100644 --- a/src/openprocurement/tender/belowthreshold/procedure/validation.py +++ b/src/openprocurement/tender/belowthreshold/procedure/validation.py @@ -4,7 +4,6 @@ from openprocurement.api.constants import GUARANTEE_ALLOWED_TENDER_TYPES from openprocurement.tender.core.procedure.context import get_now from openprocurement.tender.core.procedure.documents import check_document, update_document_url -from json.decoder import JSONDecodeError # BID DOCUMENTS @@ -12,27 +11,23 @@ def validate_bid_document_operation_in_not_allowed_tender_status(request, **kwar tender = request.validated["tender"] if tender["status"] == "active.awarded" and tender["procurementMethodType"] in GUARANTEE_ALLOWED_TENDER_TYPES: bid_id = request.validated["bid"]["id"] - data_list = request.validated["data"] - if not isinstance(data_list, list): - data_list = [data_list] - - for data in data_list: - if ( - data.get("documentType", "") == "contractGuarantees" - and any(award["status"] == "active" and award["bid_id"] == bid_id - for award in tender.get("awards", "")) - and any( - criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" - for criterion in tender.get("criteria", "") - ) - ): - pass # contractGuarantees documents are allowed if award for this bid is active - else: - raise_operation_error( - request, - f"Can't {OPERATIONS.get(request.method)} document " - f"in current ({tender['status']}) tender status" - ) + if ( + any( + award["status"] == "active" and award["bid_id"] == bid_id + for award in tender.get("awards", "") + ) + and any( + criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" + for criterion in tender.get("criteria", "") + ) + ): + pass # documents are allowed if award for this bid is active + else: + raise_operation_error( + request, + f"Can't {OPERATIONS.get(request.method)} document " + f"in current ({tender['status']}) tender status" + ) elif tender["status"] not in ("active.tendering", "active.qualification"): raise_operation_error( request, @@ -55,28 +50,20 @@ def validate_bid_document_operation_with_not_pending_award(request, **kwargs): def validate_upload_documents_not_allowed_for_simple_pmr(request, **kwargs): - try: - doc_type = request.json["data"].get("documentType", "") == "contractGuarantees" - except JSONDecodeError: - doc_type = True - except AttributeError: - docs = request.json["data"] - doc_type = all(doc.get("documentType", "") != "contractGuarantees" for doc in docs) tender = request.validated["tender"] statuses = ("active.qualification",) if tender["status"] in statuses and tender.get("procurementMethodRationale") == "simple": - if tender.get("procurementMethodRationale") == "simple": - bid_id = request.validated["bid"]["id"] - criteria = tender["criteria"] - awards = tender["awards"] - bid_with_active_award = any([award["status"] == "active" and award["bid_id"] == bid_id for award in awards]) - needed_criterion = any( - [criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria] + bid_id = request.validated["bid"]["id"] + criteria = tender["criteria"] + awards = tender["awards"] + bid_with_active_award = any([award["status"] == "active" and award["bid_id"] == bid_id for award in awards]) + needed_criterion = any( + [criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria] + ) + if not all([needed_criterion, bid_with_active_award]): + raise_operation_error( + request, + "Can't upload document with {} tender status and procurementMethodRationale simple".format( + statuses + ), ) - if not all([doc_type, needed_criterion, bid_with_active_award]): - raise_operation_error( - request, - "Can't upload document with {} tender status and procurementMethodRationale simple".format( - statuses - ), - ) diff --git a/src/openprocurement/tender/belowthreshold/tests/bid_blanks.py b/src/openprocurement/tender/belowthreshold/tests/bid_blanks.py index 9fb369b768..b71fd85b2d 100644 --- a/src/openprocurement/tender/belowthreshold/tests/bid_blanks.py +++ b/src/openprocurement/tender/belowthreshold/tests/bid_blanks.py @@ -1652,12 +1652,10 @@ def create_tender_bid_document_with_award_json(self): "title": "test.doc", "url": self.generate_docservice_url(), "format": "application/msword", - "documentType": "contractGuarantees", "hash": "md5:" + "0" * 32 }}, status=201 ) - self.assertEqual(response.json["data"]["documentType"], "contractGuarantees") doc_id = response.json["data"]["id"] self.app.post_json( diff --git a/src/openprocurement/tender/belowthreshold/validation.py b/src/openprocurement/tender/belowthreshold/validation.py index ff9bbcf570..e739f024b5 100644 --- a/src/openprocurement/tender/belowthreshold/validation.py +++ b/src/openprocurement/tender/belowthreshold/validation.py @@ -6,7 +6,6 @@ base_validate_operation_ecriteria_objects, _validate_related_criterion, ) -from json.decoder import JSONDecodeError # tender documents @@ -198,13 +197,6 @@ def validate_put_requirement_objects(request, **kwargs): def validate_upload_documents_not_allowed_for_simple_pmr(request, **kwargs): - try: - doc_type = request.json["data"].get("documentType", "") == "contractGuarantees" - except JSONDecodeError: - doc_type = True - except AttributeError: - docs = request.json["data"] - doc_type = all(doc.get("documentType", "") != "contractGuarantees" for doc in docs) tender = request.validated["tender"] statuses = ("active.qualification",) if tender["status"] in statuses and tender.get("procurementMethodRationale") == "simple": @@ -216,7 +208,7 @@ def validate_upload_documents_not_allowed_for_simple_pmr(request, **kwargs): needed_criterion = any( [criterion["classification"]["id"] == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria] ) - if not all([doc_type, needed_criterion, bid_with_active_award]): + if not all([needed_criterion, bid_with_active_award]): raise_operation_error( request, "Can't upload document with {} tender status and procurementMethodRationale simple".format( diff --git a/src/openprocurement/tender/core/validation.py b/src/openprocurement/tender/core/validation.py index cfae6c52b3..46708ba0b9 100644 --- a/src/openprocurement/tender/core/validation.py +++ b/src/openprocurement/tender/core/validation.py @@ -1186,8 +1186,6 @@ def validate_bid_document_operation_in_not_allowed_tender_status(request, **kwar bid_id = request.validated["bid_id"] criteria = tender["criteria"] awards = tender["awards"] - data = request.validated.get("data", {}) - bid_with_active_award = any([ award.status == "active" and award.bid_id == bid_id for award in awards @@ -1196,17 +1194,14 @@ def validate_bid_document_operation_in_not_allowed_tender_status(request, **kwar criterion.classification.id == "CRITERION.OTHER.CONTRACT.GUARANTEE" for criterion in criteria ]) - documents_data = data if isinstance(data, list) else [data] - for document_data in documents_data: - doc_type = document_data.get("documentType", "") == "contractGuarantees" - if not all([doc_type, needed_criterion, bid_with_active_award]): - raise_operation_error( - request, - "Can't {} document in current ({}) tender status".format( - OPERATIONS.get(request.method), - request.validated["tender_status"] - ), - ) + if not all([needed_criterion, bid_with_active_award]): + raise_operation_error( + request, + "Can't {} document in current ({}) tender status".format( + OPERATIONS.get(request.method), + request.validated["tender_status"] + ), + ) elif request.validated["tender_status"] not in ["active.tendering", "active.qualification"]: raise_operation_error( From 47dac173796816df52b5ced344d2bd0da2b84a3e Mon Sep 17 00:00:00 2001 From: Ivan Date: Sat, 28 Aug 2021 12:13:11 +0300 Subject: [PATCH 14/17] Release 2.6.48 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index af7a4ceb0a..915d28b6c3 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ import os from setuptools import setup, find_packages -version = "2.6.46" +version = "2.6.48" here = os.path.abspath(os.path.dirname(__file__)) From 308f4ced96aef9e26eb8f2a7abf6567310e8f374 Mon Sep 17 00:00:00 2001 From: "stepan.rasputny" Date: Mon, 30 Aug 2021 13:44:22 +0300 Subject: [PATCH 15/17] Release 2.6.49 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 915d28b6c3..0db203e926 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ import os from setuptools import setup, find_packages -version = "2.6.48" +version = "2.6.49" here = os.path.abspath(os.path.dirname(__file__)) From 7aca115a178b793c1286586a0e8c2359d471c829 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Tue, 7 Sep 2021 09:34:22 +0000 Subject: [PATCH 16/17] CS-11238 Fixing 'value: None' case --- requirements.txt | 2 +- .../belowthreshold/procedure/views/bid.py | 2 +- .../procedure/views/bid_document.py | 2 +- .../cfaselectionua/procedure/views/bid.py | 2 +- .../procedure/views/bid_document.py | 2 +- .../tender/cfaua/procedure/views/bid.py | 2 +- .../cfaua/procedure/views/bid_document.py | 4 +- .../procedure/views/stage1/bid.py | 2 +- .../procedure/views/stage1/bid_document.py | 56 +++++++-------- .../procedure/views/stage2/bid.py | 26 +++---- .../tender/core/procedure/validation.py | 27 ++++--- .../tender/esco/procedure/serializers.py | 32 ++++----- .../tender/esco/procedure/views/bid.py | 2 +- src/openprocurement/tender/esco/tests/bid.py | 2 + .../tender/esco/tests/bid_blanks.py | 70 ++++++++++++++++++- .../tender/openeu/procedure/views/bid.py | 2 +- .../openeu/procedure/views/bid_document.py | 2 +- .../tender/openua/procedure/views/bid.py | 2 +- .../openua/procedure/views/bid_document.py | 2 +- .../tender/openua/tests/bid.py | 2 + .../tender/openua/tests/bid_blanks.py | 38 ++++++++++ .../openuadefense/procedure/views/bid.py | 2 +- .../procedure/views/bid_document.py | 2 +- .../pricequotation/procedure/views/bid.py | 2 +- .../simpledefense/procedure/views/bid.py | 2 +- 25 files changed, 202 insertions(+), 87 deletions(-) diff --git a/requirements.txt b/requirements.txt index e378a70726..5436f8a031 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,7 +38,7 @@ git+git://github.com/ProzorroUKR/request_id_middleware.git@0.1.2#egg=request_id_ git+git://github.com/ProzorroUKR/openprocurement.subscribers.serverid.git@1.2#egg=openprocurement.subscribers.serverid git+git://github.com/ProzorroUKR/esculator.git@0.0.2#egg=esculator git+git://github.com/ProzorroUKR/dateorro.git@0.0.3#egg=dateorro -git+git://github.com/ProzorroUKR/rfc6266.git@0.0.6#egg=rfc6266 +git+git://github.com/ProzorroUKR/rfc6266.git@0.0.7#egg=rfc6266 git+git://github.com/ProzorroUKR/python-json-patch.git@1.14+jsondiff.unicode.replacefix.0#egg=jsonpatch git+git://github.com/ProzorroUKR/barbecue.git@0.2#egg=barbecue git+git://github.com/ProzorroUKR/couchdb-python.git@1.2-bad-status-line#egg=couchdb diff --git a/src/openprocurement/tender/belowthreshold/procedure/views/bid.py b/src/openprocurement/tender/belowthreshold/procedure/views/bid.py index e488054287..f098a911fd 100644 --- a/src/openprocurement/tender/belowthreshold/procedure/views/bid.py +++ b/src/openprocurement/tender/belowthreshold/procedure/views/bid.py @@ -49,7 +49,7 @@ def collection_post(self): permission="edit_bid", validators=( unless_administrator(validate_item_owner("bid")), - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, validate_bid_operation_period, diff --git a/src/openprocurement/tender/belowthreshold/procedure/views/bid_document.py b/src/openprocurement/tender/belowthreshold/procedure/views/bid_document.py index 422c9e466b..2aad2f3fad 100644 --- a/src/openprocurement/tender/belowthreshold/procedure/views/bid_document.py +++ b/src/openprocurement/tender/belowthreshold/procedure/views/bid_document.py @@ -65,7 +65,7 @@ def put(self): content_type="application/json", validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), validate_bid_document_operation_in_not_allowed_tender_status, validate_bid_document_operation_period, diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py b/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py index eb7622ee8f..a861376011 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/views/bid.py @@ -77,7 +77,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_vs_agreement, diff --git a/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py index 4e3b3bc04a..b9770e9cfc 100644 --- a/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/cfaselectionua/procedure/views/bid_document.py @@ -72,7 +72,7 @@ def put(self): validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), validate_bid_document_operation_in_not_allowed_tender_status, diff --git a/src/openprocurement/tender/cfaua/procedure/views/bid.py b/src/openprocurement/tender/cfaua/procedure/views/bid.py index eff1bde0a2..b0f5571b38 100644 --- a/src/openprocurement/tender/cfaua/procedure/views/bid.py +++ b/src/openprocurement/tender/cfaua/procedure/views/bid.py @@ -81,7 +81,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, diff --git a/src/openprocurement/tender/cfaua/procedure/views/bid_document.py b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py index 3f3ca1b164..a6f7c9c29f 100644 --- a/src/openprocurement/tender/cfaua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/cfaua/procedure/views/bid_document.py @@ -105,7 +105,7 @@ def put(self): content_type="application/json", validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), validate_bid_document_operation_in_award_status, unless_allowed_by_qualification_milestone( @@ -208,7 +208,7 @@ def put(self): content_type="application/json", validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), validate_bid_document_operation_in_award_status, unless_allowed_by_qualification_milestone( diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py index a459d7e935..29e7f99a57 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid.py @@ -65,7 +65,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_status_update_not_to_pending, ), diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py index 9b4b002715..4bb1efc872 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage1/bid_document.py @@ -33,15 +33,15 @@ class EUTenderBidDocumentResource(OpenEUTenderBidDocumentResource): @json_view( validators=( - validate_item_owner("bid"), - validate_input_data(PostDocument, allow_bulk=True), + validate_item_owner("bid"), + validate_input_data(PostDocument, allow_bulk=True), - unless_allowed_by_qualification_milestone( - validate_bid_document_in_tender_status, - validate_bid_document_operation_in_award_status, - ), - validate_bid_document_operation_period, - validate_bid_document_operation_in_bid_status, + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_bid_document_operation_in_bid_status, ), permission="edit_bid", ) @@ -50,19 +50,19 @@ def collection_post(self): @json_view( validators=( - validate_item_owner("bid"), - validate_input_data(PostDocument), + validate_item_owner("bid"), + validate_input_data(PostDocument), - unless_allowed_by_qualification_milestone( - validate_bid_document_in_tender_status, - validate_bid_document_operation_in_award_status, - ), - validate_bid_document_operation_period, - validate_update_bid_document_confidentiality, + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, - update_doc_fields_on_put_document, - validate_upload_document, - validate_data_model(Document), + update_doc_fields_on_put_document, + validate_upload_document, + validate_data_model(Document), ), permission="edit_bid", ) @@ -72,15 +72,15 @@ def put(self): @json_view( content_type="application/json", validators=( - validate_item_owner("bid"), - validate_input_data(PatchDocument), - validate_patch_data(Document, item_name="document"), - unless_allowed_by_qualification_milestone( - validate_bid_document_in_tender_status, - validate_bid_document_operation_in_award_status, - ), - validate_bid_document_operation_period, - validate_update_bid_document_confidentiality, + validate_item_owner("bid"), + validate_input_data(PatchDocument, none_means_remove=True), + validate_patch_data(Document, item_name="document"), + unless_allowed_by_qualification_milestone( + validate_bid_document_in_tender_status, + validate_bid_document_operation_in_award_status, + ), + validate_bid_document_operation_period, + validate_update_bid_document_confidentiality, ), permission="edit_bid", ) diff --git a/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py index 3937949046..c7fe4d5993 100644 --- a/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py +++ b/src/openprocurement/tender/competitivedialogue/procedure/views/stage2/bid.py @@ -33,13 +33,13 @@ class CompetitiveDialogueStage2EUBidResource(BaseResourceEU): content_type="application/json", permission="create_bid", validators=( - validate_bid_accreditation_level, - validate_bid_operation_not_in_tendering, - validate_bid_operation_period, - validate_input_data(PostBidEU), - validate_post_bid_status, - validate_firm_to_create_bid, - validate_data_documents, + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBidEU), + validate_post_bid_status, + validate_firm_to_create_bid, + validate_data_documents, ), ) def collection_post(self): @@ -58,12 +58,12 @@ class CompetitiveDialogueStage2UABidResource(BaseResourceUA): content_type="application/json", permission="create_bid", validators=( - validate_bid_accreditation_level, - validate_bid_operation_not_in_tendering, - validate_bid_operation_period, - validate_input_data(PostBidUA), - validate_firm_to_create_bid, - validate_data_documents, + validate_bid_accreditation_level, + validate_bid_operation_not_in_tendering, + validate_bid_operation_period, + validate_input_data(PostBidUA), + validate_firm_to_create_bid, + validate_data_documents, ), ) def collection_post(self): diff --git a/src/openprocurement/tender/core/procedure/validation.py b/src/openprocurement/tender/core/procedure/validation.py index a468e4ff65..b0ff95e066 100644 --- a/src/openprocurement/tender/core/procedure/validation.py +++ b/src/openprocurement/tender/core/procedure/validation.py @@ -11,14 +11,14 @@ from decimal import Decimal -def validate_input_data(input_model, allow_bulk=False, filters=None): +def validate_input_data(input_model, allow_bulk=False, filters=None, none_means_remove=False): """ :param input_model: a model to validate data against :param allow_bulk: if True, request.validated["data"] will be a list of valid inputs :param filters: list of filter function that applied on valid data + :param none_means_remove: null values passed cause deleting saved values at those keys :return: """ - def validate(request, **_): request.validated["json_data"] = json_data = validate_json_data(request, allow_bulk=allow_bulk) # now you can use context.get_json_data() in model validators to access the whole passed object @@ -28,14 +28,19 @@ def validate(request, **_): data = [] for input_data in json_data: - # if None is passed it should be added to the result - # None means that the field value is deleted - # IMPORTANT: input_data can contain more fields than are allowed to update - # validate_data will raise Rogue field error then - result = {k: v - for k, v in input_data.items() - if v is None - or isinstance(v, list) and len(v) == 0} + result = {} + if none_means_remove: + # if None is passed it should be added to the result + # None means that the field value is deleted + # IMPORTANT: input_data can contain more fields than are allowed to update + # validate_data will raise Rogue field error then + for k, v in input_data.items(): + if ( + v is None + or isinstance(v, list) and len(v) == 0 # for list fields, an empty list does the same + ): + result[k] = v + valid_data = validate_data(request, input_model, input_data) if valid_data is not None: result.update(valid_data) @@ -244,7 +249,7 @@ def validate_value_type(value, datatype): def validate_relatedlot(tender, relatedLot): - if relatedLot not in [lot["id"] for lot in tender.get("lots") if lot]: + if relatedLot not in [lot["id"] for lot in tender.get("lots") or [] if lot]: raise ValidationError("relatedLot should be one of lots") diff --git a/src/openprocurement/tender/esco/procedure/serializers.py b/src/openprocurement/tender/esco/procedure/serializers.py index 03fe954485..81b1d2708d 100644 --- a/src/openprocurement/tender/esco/procedure/serializers.py +++ b/src/openprocurement/tender/esco/procedure/serializers.py @@ -4,22 +4,22 @@ def bid_value_to_float(_, value): - costs_reduction = value.get("annualCostsReduction") - if isinstance(costs_reduction, list): - value["annualCostsReduction"] = tuple(float(e) for e in costs_reduction) - - yearly_percentage = value.get("yearlyPaymentsPercentage") - if yearly_percentage: - value["yearlyPaymentsPercentage"] = float(yearly_percentage) - - amount = value.get("amount") - if amount: - value["amount"] = float(amount) - - amount_performance = value.get("amountPerformance") - if amount_performance: - value["amountPerformance"] = float(amount_performance) - + if isinstance(value, dict): + costs_reduction = value.get("annualCostsReduction") + if isinstance(costs_reduction, list): + value["annualCostsReduction"] = tuple(float(e) for e in costs_reduction) + + yearly_percentage = value.get("yearlyPaymentsPercentage") + if yearly_percentage: + value["yearlyPaymentsPercentage"] = float(yearly_percentage) + + amount = value.get("amount") + if amount: + value["amount"] = float(amount) + + amount_performance = value.get("amountPerformance") + if amount_performance: + value["amountPerformance"] = float(amount_performance) return value diff --git a/src/openprocurement/tender/esco/procedure/views/bid.py b/src/openprocurement/tender/esco/procedure/views/bid.py index dc8f07a664..462279c0a8 100644 --- a/src/openprocurement/tender/esco/procedure/views/bid.py +++ b/src/openprocurement/tender/esco/procedure/views/bid.py @@ -79,7 +79,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, diff --git a/src/openprocurement/tender/esco/tests/bid.py b/src/openprocurement/tender/esco/tests/bid.py index 0ff5d4dfed..6a44e40ded 100644 --- a/src/openprocurement/tender/esco/tests/bid.py +++ b/src/openprocurement/tender/esco/tests/bid.py @@ -57,6 +57,7 @@ from openprocurement.tender.esco.tests.bid_blanks import ( create_tender_bid_invalid, create_tender_bid, + create_tender_bid_lot, patch_tender_bid, deleted_bid_is_not_restorable, bid_Administrator_change, @@ -145,6 +146,7 @@ class Tender2LotBidResourceTest(BaseESCOContentWebTest): initial_status = "active.tendering" test_patch_tender_with_bids_lots_none = snitch(patch_tender_with_bids_lots_none) + test_create_tender_bid = snitch(create_tender_bid_lot) class TenderBidFeaturesResourceTest(BaseESCOContentWebTest): diff --git a/src/openprocurement/tender/esco/tests/bid_blanks.py b/src/openprocurement/tender/esco/tests/bid_blanks.py index 0cf38b7086..9e47ba44de 100644 --- a/src/openprocurement/tender/esco/tests/bid_blanks.py +++ b/src/openprocurement/tender/esco/tests/bid_blanks.py @@ -7,7 +7,9 @@ # TenderBidResourceTest from openprocurement.api.utils import get_now from openprocurement.api.constants import RELEASE_ECRITERIA_ARTICLE_17, TWO_PHASE_COMMIT_FROM -from openprocurement.tender.esco.tests.base import test_bids +from openprocurement.tender.esco.tests.base import test_bids, NBU_DISCOUNT_RATE +from openprocurement.tender.esco.utils import to_decimal +from esculator import npv, escp def create_tender_bid_invalid(self): @@ -529,6 +531,72 @@ def create_tender_bid(self): ) +def create_tender_bid_lot(self): + data = deepcopy(self.test_bids_data[0]) + data["lotValues"] = [{ + "value": data["value"], + "relatedLot": self.initial_lots[0]["id"] + }] + data.update( + { + "value": None, "parameters": None, "documents": None, + "financialDocuments": None, "eligibilityDocuments": None, "qualificationDocuments": None, + } + ) + + response = self.app.post_json("/tenders/{}/bids".format(self.tender_id), {"data": data}) + self.assertEqual(response.status, "201 Created") + self.assertEqual(response.content_type, "application/json") + bid = response.json["data"] + self.assertEqual(bid["tenderers"][0]["name"], self.test_bids_data[0]["tenderers"][0]["name"]) + self.assertIn("id", bid) + self.assertIn(bid["id"], response.headers["Location"]) + value = bid["lotValues"][0]["value"] + expected_value = self.test_bids_data[0]["value"] + self.assertEqual( + value["contractDuration"]["years"], self.test_bids_data[0]["value"]["contractDuration"]["years"] + ) + self.assertEqual( + value["contractDuration"]["days"], self.test_bids_data[0]["value"]["contractDuration"]["days"] + ) + self.assertEqual(value["annualCostsReduction"], self.test_bids_data[0]["value"]["annualCostsReduction"]) + self.assertEqual( + value["yearlyPaymentsPercentage"], self.test_bids_data[0]["value"]["yearlyPaymentsPercentage"] + ) + expected_bid_amount = round( + float( + to_decimal( + escp( + expected_value["contractDuration"]["years"], + expected_value["contractDuration"]["days"], + expected_value["yearlyPaymentsPercentage"], + expected_value["annualCostsReduction"], + get_now(), + ) + ) + ), + 2, + ) + self.assertEqual(value["amount"], expected_bid_amount) + + expected_amount_performance = round( + float( + to_decimal( + npv( + test_bids[0]["value"]["contractDuration"]["years"], + test_bids[0]["value"]["contractDuration"]["days"], + test_bids[0]["value"]["yearlyPaymentsPercentage"], + test_bids[0]["value"]["annualCostsReduction"], + get_now(), + NBU_DISCOUNT_RATE, + ) + ) + ), + 2, + ) + self.assertEqual(value["amountPerformance"], expected_amount_performance) + + def create_tender_bid_31_12(self): # time travel - announce tender 31.12.17 tender = self.db.get(self.tender_id) diff --git a/src/openprocurement/tender/openeu/procedure/views/bid.py b/src/openprocurement/tender/openeu/procedure/views/bid.py index 50c7313cb1..0611c1ff0e 100644 --- a/src/openprocurement/tender/openeu/procedure/views/bid.py +++ b/src/openprocurement/tender/openeu/procedure/views/bid.py @@ -83,7 +83,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, diff --git a/src/openprocurement/tender/openeu/procedure/views/bid_document.py b/src/openprocurement/tender/openeu/procedure/views/bid_document.py index 3468f23ce4..0f5c712fef 100644 --- a/src/openprocurement/tender/openeu/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openeu/procedure/views/bid_document.py @@ -103,7 +103,7 @@ def put(self): content_type="application/json", validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), unless_allowed_by_qualification_milestone( validate_bid_document_in_tender_status, diff --git a/src/openprocurement/tender/openua/procedure/views/bid.py b/src/openprocurement/tender/openua/procedure/views/bid.py index 7b91c0cd3c..95b3b7b854 100644 --- a/src/openprocurement/tender/openua/procedure/views/bid.py +++ b/src/openprocurement/tender/openua/procedure/views/bid.py @@ -55,7 +55,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, diff --git a/src/openprocurement/tender/openua/procedure/views/bid_document.py b/src/openprocurement/tender/openua/procedure/views/bid_document.py index 108152e5d9..eefe01f386 100644 --- a/src/openprocurement/tender/openua/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openua/procedure/views/bid_document.py @@ -86,7 +86,7 @@ def put(self): validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), unless_allowed_by_qualification_milestone( diff --git a/src/openprocurement/tender/openua/tests/bid.py b/src/openprocurement/tender/openua/tests/bid.py index b82e87b16d..8942b4f1f4 100644 --- a/src/openprocurement/tender/openua/tests/bid.py +++ b/src/openprocurement/tender/openua/tests/bid.py @@ -34,6 +34,7 @@ # TenderBidResourceTest create_tender_biddder_invalid, create_tender_bidder, + create_bid_after_removing_lot, patch_tender_bidder, get_tender_bidder, delete_tender_bidder, @@ -221,6 +222,7 @@ class Tender2LotBidResourceTest(BaseTenderUAContentWebTest): initial_status = "active.tendering" test_patch_tender_with_bids_lots_none = snitch(patch_tender_with_bids_lots_none) + test_create_bid_after_removing_lot = snitch(create_bid_after_removing_lot) class TenderBidFeaturesResourceTest(BaseTenderUAContentWebTest): diff --git a/src/openprocurement/tender/openua/tests/bid_blanks.py b/src/openprocurement/tender/openua/tests/bid_blanks.py index 27cb912592..2ebee02571 100644 --- a/src/openprocurement/tender/openua/tests/bid_blanks.py +++ b/src/openprocurement/tender/openua/tests/bid_blanks.py @@ -382,6 +382,44 @@ def patch_tender_bidder(self): self.assertEqual(response.json["errors"][0]["description"], "Can't update bid in current (complete) tender status") +def create_bid_after_removing_lot(self): + + # create bid + bid_data = deepcopy(self.test_bids_data[0]) + bid_data["lotValues"] = [{"value": {"amount": 500}, "relatedLot": self.initial_lots[0]["id"]}] + bid_data["documents"] = None + bid_data["parameters"] = None + bid_data.pop("value") + response = self.app.post_json(f"/tenders/{self.tender_id}/bids", {"data": bid_data}) + bid, bid_token = response.json["data"], response.json["access"]["token"] + bid_id = bid["id"] + self.assertNotIn("documents", bid) + self.assertNotIn("parameters", bid) + + # removing tender lots + tender = self.db.get(self.tender_id) + del tender["lots"] + self.db.save(tender) + + response = self.app.get(f"/tenders/{self.tender_id}") + self.assertNotIn("lots", response.json["data"]) + + # patch bid to delete lotValues + response = self.app.patch_json( + f"/tenders/{self.tender_id}/bids/{bid_id}?acc_token={bid_token}", + {"data": { + "lotValues": None, + "value": {"amount": 500}, + "parameters": None, + }} + ) + data = response.json["data"] + self.assertEquals(data["value"]["amount"], 500) + self.assertNotIn("lotValues", data) + self.assertNotIn("documents", data) + self.assertNotIn("parameters", data) + + def get_tender_bidder(self): bid_data = deepcopy(self.test_bids_data[0]) bid_data.update({ diff --git a/src/openprocurement/tender/openuadefense/procedure/views/bid.py b/src/openprocurement/tender/openuadefense/procedure/views/bid.py index 642e07d5b8..d16bedf0d6 100644 --- a/src/openprocurement/tender/openuadefense/procedure/views/bid.py +++ b/src/openprocurement/tender/openuadefense/procedure/views/bid.py @@ -55,7 +55,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, diff --git a/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py index c6c7e26163..21f7ceed50 100644 --- a/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py +++ b/src/openprocurement/tender/openuadefense/procedure/views/bid_document.py @@ -84,7 +84,7 @@ def put(self): content_type="application/json", validators=( validate_item_owner("bid"), - validate_input_data(PatchDocument), + validate_input_data(PatchDocument, none_means_remove=True), validate_patch_data(Document, item_name="document"), unless_allowed_by_qualification_milestone( diff --git a/src/openprocurement/tender/pricequotation/procedure/views/bid.py b/src/openprocurement/tender/pricequotation/procedure/views/bid.py index 75cf32cc10..987fcf2db8 100644 --- a/src/openprocurement/tender/pricequotation/procedure/views/bid.py +++ b/src/openprocurement/tender/pricequotation/procedure/views/bid.py @@ -47,7 +47,7 @@ def collection_post(self): permission="edit_bid", validators=( unless_administrator(validate_item_owner("bid")), - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, validate_bid_operation_period, diff --git a/src/openprocurement/tender/simpledefense/procedure/views/bid.py b/src/openprocurement/tender/simpledefense/procedure/views/bid.py index 5c2728f41a..172d23adc5 100644 --- a/src/openprocurement/tender/simpledefense/procedure/views/bid.py +++ b/src/openprocurement/tender/simpledefense/procedure/views/bid.py @@ -47,7 +47,7 @@ def collection_post(self): unless_administrator(validate_item_owner("bid")), validate_update_deleted_bid, - validate_input_data(PatchBid, filters=(filter_administrator_bid_update,)), + validate_input_data(PatchBid, filters=(filter_administrator_bid_update,), none_means_remove=True), validate_patch_data(Bid, item_name="bid"), validate_bid_operation_not_in_tendering, From c8a524e9b2c97408274d88504e77156573993e05 Mon Sep 17 00:00:00 2001 From: Aleksey Stryukov Date: Tue, 7 Sep 2021 12:35:42 +0300 Subject: [PATCH 17/17] Release 2.6.50 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 0db203e926..24c2b5a902 100644 --- a/setup.py +++ b/setup.py @@ -1,7 +1,7 @@ import os from setuptools import setup, find_packages -version = "2.6.49" +version = "2.6.50" here = os.path.abspath(os.path.dirname(__file__))