Skip to content

Commit 8a268df

Browse files
committed
Updated tender status values
1 parent 9bbf393 commit 8a268df

20 files changed

Lines changed: 118 additions & 115 deletions

src/openprocurement/api/models.py

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ class Document(Model):
121121
class Options:
122122
serialize_when_none = False
123123
roles = {
124-
"embedded": schematics_embedded_role,
125-
"view": (blacklist("revisions") + schematics_default_role),
126-
"revisions": whitelist("uri", "dateModified"),
124+
'embedded': schematics_embedded_role,
125+
'view': (blacklist('revisions') + schematics_default_role),
126+
'revisions': whitelist('uri', 'dateModified'),
127127
}
128128

129129
id = StringType()
@@ -184,8 +184,8 @@ class Organization(Model):
184184
class Options:
185185
serialize_when_none = False
186186
roles = {
187-
"embedded": schematics_embedded_role,
188-
"view": schematics_default_role,
187+
'embedded': schematics_embedded_role,
188+
'view': schematics_default_role,
189189
}
190190

191191
name = StringType(required=True)
@@ -201,16 +201,17 @@ class Bid(Model):
201201
class Options:
202202
serialize_when_none = False
203203
roles = {
204-
"embedded": schematics_embedded_role,
205-
"view": schematics_default_role,
206-
"auction_view": whitelist("value", "id", "date"),
207-
"enquiries": whitelist(),
208-
"tendering": whitelist(),
209-
"auction": whitelist("value"),
210-
"qualification": whitelist("value"),
211-
"awarded": whitelist("value"),
212-
"contract-signed": schematics_default_role,
213-
"paused": whitelist(),
204+
'embedded': schematics_embedded_role,
205+
'view': schematics_default_role,
206+
'auction_view': whitelist('value', 'id', 'date'),
207+
'active.enquiries': whitelist(),
208+
'active.tendering': whitelist(),
209+
'active.auction': whitelist('value'),
210+
'active.qualification': whitelist('value'),
211+
'active.awarded': whitelist('value'),
212+
'complete': schematics_default_role,
213+
'paused': whitelist(),
214+
'unsuccessful': whitelist()
214215
}
215216

216217
tenderers = ListType(ModelType(Organization), default=list())
@@ -230,15 +231,16 @@ class Question(Model):
230231
class Options:
231232
serialize_when_none = False
232233
roles = {
233-
"embedded": schematics_embedded_role,
234-
"view": schematics_default_role,
235-
"enquiries": (blacklist("author") + schematics_embedded_role),
236-
"tendering": (blacklist("author") + schematics_embedded_role),
237-
"auction": (blacklist("author") + schematics_embedded_role),
238-
"qualification": schematics_default_role,
239-
"awarded": schematics_default_role,
240-
"contract-signed": schematics_default_role,
241-
"paused": schematics_default_role,
234+
'embedded': schematics_embedded_role,
235+
'view': schematics_default_role,
236+
'active.enquiries': (blacklist('author') + schematics_embedded_role),
237+
'active.tendering': (blacklist('author') + schematics_embedded_role),
238+
'active.auction': (blacklist('author') + schematics_embedded_role),
239+
'active.qualification': schematics_default_role,
240+
'active.awarded': schematics_default_role,
241+
'complete': schematics_default_role,
242+
'paused': schematics_default_role,
243+
'unsuccessful': schematics_default_role,
242244
}
243245

244246
id = StringType(required=True, default=lambda: uuid4().hex)
@@ -253,8 +255,8 @@ class Complaint(Model):
253255
class Options:
254256
serialize_when_none = False
255257
roles = {
256-
"embedded": schematics_embedded_role,
257-
"view": schematics_default_role,
258+
'embedded': schematics_embedded_role,
259+
'view': schematics_default_role,
258260
}
259261

260262
id = StringType(required=True, default=lambda: uuid4().hex)
@@ -275,8 +277,8 @@ class Award(Model):
275277
class Options:
276278
serialize_when_none = False
277279
roles = {
278-
"embedded": schematics_embedded_role,
279-
"view": schematics_default_role,
280+
'embedded': schematics_embedded_role,
281+
'view': schematics_default_role,
280282
}
281283

282284
id = StringType(required=True, default=lambda: uuid4().hex)
@@ -295,28 +297,29 @@ class Options:
295297
complaints = ListType(ModelType(Complaint), default=list())
296298

297299

298-
plain_role = (blacklist("_attachments", "revisions", "dateModified") + schematics_embedded_role)
299-
view_role = (blacklist("_attachments", "revisions") + schematics_embedded_role)
300-
listing_role = whitelist("dateModified", "doc_id")
301-
auction_view_role = whitelist("tenderID", "dateModified", "bids", "auctionPeriod", "minimalStep")
302-
enquiries_role = (blacklist("_attachments", "revisions", "bids") + schematics_embedded_role)
300+
plain_role = (blacklist('_attachments', 'revisions', 'dateModified') + schematics_embedded_role)
301+
view_role = (blacklist('_attachments', 'revisions') + schematics_embedded_role)
302+
listing_role = whitelist('dateModified', 'doc_id')
303+
auction_view_role = whitelist('tenderID', 'dateModified', 'bids', 'auctionPeriod', 'minimalStep')
304+
enquiries_role = (blacklist('_attachments', 'revisions', 'bids') + schematics_embedded_role)
303305

304306

305307
class Tender(SchematicsDocument, Model):
306308
"""Data regarding tender process - publicly inviting prospective contractors to submit bids for evaluation and selecting a winner or winners."""
307309
class Options:
308310
roles = {
309-
"plain": plain_role,
310-
"view": view_role,
311-
"listing": listing_role,
312-
"auction_view": auction_view_role,
313-
"enquiries": enquiries_role,
314-
"tendering": enquiries_role,
315-
"auction": view_role,
316-
"qualification": view_role,
317-
"awarded": view_role,
318-
"contract-signed": view_role,
319-
"paused": view_role,
311+
'plain': plain_role,
312+
'view': view_role,
313+
'listing': listing_role,
314+
'auction_view': auction_view_role,
315+
'active.enquiries': enquiries_role,
316+
'active.tendering': enquiries_role,
317+
'active.auction': view_role,
318+
'active.qualification': view_role,
319+
'active.awarded': view_role,
320+
'complete': view_role,
321+
'paused': view_role,
322+
'unsuccessful': view_role,
320323
}
321324

322325
title = StringType()
@@ -357,14 +360,14 @@ class Options:
357360
deliveryDate = ModelType(Period)
358361
auctionPeriod = ModelType(Period)
359362
minimalStep = ModelType(Value)
360-
status = StringType(choices=['enquiries', 'tendering', 'auction', 'qualification', 'awarded', 'contract-signed', 'paused'], default='enquiries')
363+
status = StringType(choices=['active.enquiries', 'active.tendering', 'active.auction', 'active.qualification', 'active.awarded', 'complete', 'paused', 'unsuccessful'], default='active.enquiries')
361364
questions = ListType(ModelType(Question), default=list())
362365
complaints = ListType(ModelType(Complaint), default=list())
363366

364367
_attachments = DictType(DictType(BaseType), default=dict()) # couchdb attachments
365368
dateModified = IsoDateTimeType(default=get_now)
366369

367-
@serializable(serialized_name="id")
370+
@serializable(serialized_name='id')
368371
def doc_id(self):
369372
"""A property that is serialized by schematics exports."""
370373
return self._id

src/openprocurement/api/tests/auction.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_get_tender_auction(self):
6565
self.assertEqual(response.content_type, 'application/json')
6666
self.assertEqual(response.json['errors'][0]["description"], "Can't get auction info in current tender status")
6767

68-
self.set_status('auction')
68+
self.set_status('active.auction')
6969

7070
response = self.app.get('/tenders/{}/auction'.format(self.tender_id))
7171
self.assertEqual(response.status, '200 OK')
@@ -90,7 +90,7 @@ def test_get_tender_auction(self):
9090
self.assertEqual(response.content_type, 'application/json')
9191
self.assertTrue('{\n "data": {\n "' in response.body)
9292

93-
self.set_status('qualification')
93+
self.set_status('active.qualification')
9494

9595
response = self.app.get('/tenders/{}/auction'.format(self.tender_id), status=403)
9696
self.assertEqual(response.status, '403 Forbidden')
@@ -103,7 +103,7 @@ def test_post_tender_auction(self):
103103
self.assertEqual(response.content_type, 'application/json')
104104
self.assertEqual(response.json['errors'][0]["description"], "Can't report auction results in current tender status")
105105

106-
self.set_status('auction')
106+
self.set_status('active.auction')
107107

108108
patch_data = {
109109
'bids': [
@@ -154,7 +154,7 @@ def test_post_tender_auction(self):
154154
self.assertEqual(auction["bids"][0]['value']['amount'], patch_data["bids"][1]['value']['amount'])
155155
self.assertEqual(auction["bids"][1]['value']['amount'], patch_data["bids"][0]['value']['amount'])
156156

157-
self.set_status('qualification')
157+
self.set_status('active.qualification')
158158

159159
response = self.app.patch_json('/tenders/{}/auction'.format(self.tender_id), {'data': patch_data}, status=403)
160160
self.assertEqual(response.status, '403 Forbidden')

src/openprocurement/api/tests/award.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66

77
class TenderAwardResourceTest(BaseTenderWebTest):
8-
initial_data = {'status': 'qualification'}
8+
initial_data = {'status': 'active.qualification'}
99

1010
def test_create_tender_award_invalid(self):
1111
request_path = '/tenders/{}/awards'.format(self.tender_id)
@@ -106,7 +106,7 @@ def test_create_tender_award_invalid(self):
106106
u'url', u'name': u'tender_id'}
107107
])
108108

109-
self.set_status('contract-signed')
109+
self.set_status('complete')
110110

111111
response = self.app.post_json('/tenders/{}/awards'.format(
112112
self.tender_id), {'data': {'suppliers': [{'identifier': {'id': 0}, 'name': 'Name'}], 'status': 'pending'}}, status=403)
@@ -159,7 +159,7 @@ def test_patch_tender_award(self):
159159
u'url', u'name': u'tender_id'}
160160
])
161161

162-
self.set_status('contract-signed')
162+
self.set_status('complete')
163163

164164
response = self.app.get('/tenders/{}/awards/{}'.format(self.tender_id, award['id']))
165165
self.assertEqual(response.status, '200 OK')
@@ -204,7 +204,7 @@ def test_get_tender_award(self):
204204

205205

206206
class TenderAwardComplaintResourceTest(BaseTenderWebTest):
207-
initial_data = {'status': 'qualification'}
207+
initial_data = {'status': 'active.qualification'}
208208

209209
def setUp(self):
210210
super(TenderAwardComplaintResourceTest, self).setUp()
@@ -321,7 +321,7 @@ def test_create_tender_award_complaint(self):
321321
self.assertTrue('id' in complaint)
322322
self.assertTrue(complaint['id'] in response.headers['Location'])
323323

324-
self.set_status('contract-signed')
324+
self.set_status('complete')
325325

326326
response = self.app.post_json('/tenders/{}/awards/{}/complaints'.format(
327327
self.tender_id, self.award_id), {'data': {'title': 'complaint title', 'description': 'complaint description', 'author': {'identifier': {'id': 0}, 'name': 'Name'}}}, status=403)
@@ -375,7 +375,7 @@ def test_patch_tender_award_complaint(self):
375375
self.assertEqual(response.json['data']["status"], "resolved")
376376
self.assertEqual(response.json['data']["resolution"], "resolution text")
377377

378-
self.set_status('contract-signed')
378+
self.set_status('complete')
379379

380380
response = self.app.patch_json('/tenders/{}/awards/{}/complaints/{}'.format(self.tender_id, self.award_id, complaint['id']), {"data": {"status": "resolved", "resolution": "resolution text"}}, status=403)
381381
self.assertEqual(response.status, '403 Forbidden')
@@ -435,7 +435,7 @@ def test_get_tender_award_complaints(self):
435435

436436

437437
class TenderAwardComplaintDocumentResourceTest(BaseTenderWebTest):
438-
initial_data = {'status': 'qualification'}
438+
initial_data = {'status': 'active.qualification'}
439439

440440
def setUp(self):
441441
super(TenderAwardComplaintDocumentResourceTest, self).setUp()
@@ -636,7 +636,7 @@ def test_create_tender_award_complaint_document(self):
636636
self.assertEqual(doc_id, response.json["data"]["id"])
637637
self.assertEqual('name.doc', response.json["data"]["title"])
638638

639-
self.set_status('contract-signed')
639+
self.set_status('complete')
640640

641641
response = self.app.post('/tenders/{}/awards/{}/complaints/{}/documents'.format(
642642
self.tender_id, self.award_id, self.complaint_id), upload_files=[('file', 'name.doc', 'content')], status=403)
@@ -698,7 +698,7 @@ def test_put_tender_award_complaint_document(self):
698698
self.assertEqual(response.content_length, 8)
699699
self.assertEqual(response.body, 'content3')
700700

701-
self.set_status('contract-signed')
701+
self.set_status('complete')
702702

703703
response = self.app.put('/tenders/{}/awards/{}/complaints/{}/documents/{}'.format(
704704
self.tender_id, self.award_id, self.complaint_id, doc_id), upload_files=[('file', 'name.doc', 'content3')], status=403)
@@ -726,7 +726,7 @@ def test_patch_tender_award_complaint_document(self):
726726
self.assertEqual(doc_id, response.json["data"]["id"])
727727
self.assertEqual('document description', response.json["data"]["description"])
728728

729-
self.set_status('contract-signed')
729+
self.set_status('complete')
730730

731731
response = self.app.patch_json('/tenders/{}/awards/{}/complaints/{}/documents/{}'.format(self.tender_id, self.award_id, self.complaint_id, doc_id), {"data": {"description": "document description"}}, status=403)
732732
self.assertEqual(response.status, '403 Forbidden')
@@ -735,7 +735,7 @@ def test_patch_tender_award_complaint_document(self):
735735

736736

737737
class TenderAwardDocumentResourceTest(BaseTenderWebTest):
738-
initial_data = {'status': 'qualification'}
738+
initial_data = {'status': 'active.qualification'}
739739

740740
def setUp(self):
741741
super(TenderAwardDocumentResourceTest, self).setUp()
@@ -894,7 +894,7 @@ def test_create_tender_award_document(self):
894894
self.assertEqual(doc_id, response.json["data"]["id"])
895895
self.assertEqual('name.doc', response.json["data"]["title"])
896896

897-
self.set_status('contract-signed')
897+
self.set_status('complete')
898898

899899
response = self.app.post('/tenders/{}/awards/{}/documents'.format(
900900
self.tender_id, self.award_id), upload_files=[('file', 'name.doc', 'content')], status=403)
@@ -956,7 +956,7 @@ def test_put_tender_award_document(self):
956956
self.assertEqual(response.content_length, 8)
957957
self.assertEqual(response.body, 'content3')
958958

959-
self.set_status('contract-signed')
959+
self.set_status('complete')
960960

961961
response = self.app.put('/tenders/{}/awards/{}/documents/{}'.format(
962962
self.tender_id, self.award_id, doc_id), upload_files=[('file', 'name.doc', 'content3')], status=403)
@@ -984,7 +984,7 @@ def test_patch_tender_award_document(self):
984984
self.assertEqual(doc_id, response.json["data"]["id"])
985985
self.assertEqual('document description', response.json["data"]["description"])
986986

987-
self.set_status('contract-signed')
987+
self.set_status('complete')
988988

989989
response = self.app.patch_json('/tenders/{}/awards/{}/documents/{}'.format(self.tender_id, self.award_id, doc_id), {"data": {"description": "document description"}}, status=403)
990990
self.assertEqual(response.status, '403 Forbidden')

0 commit comments

Comments
 (0)