|
9 | 9 |
|
10 | 10 |
|
11 | 11 | class BaseSchema(Schema): |
| 12 | + |
| 13 | + def __init__(self, *args, **kwargs): |
| 14 | + # kwargs['strict'] = True |
| 15 | + super(BaseSchema, self).__init__(*args, **kwargs) |
| 16 | + |
12 | 17 | id = fields.Str() |
13 | 18 |
|
14 | 19 | # Set allow_none to True in all fields |
@@ -334,18 +339,50 @@ def make_object(self, data): |
334 | 339 | return Param(**data) |
335 | 340 |
|
336 | 341 |
|
| 342 | +class UISchema(BaseSchema): |
| 343 | + visibility = fields.Bool() |
| 344 | + @post_load |
| 345 | + def make_object(self, data): |
| 346 | + from connect.models import UI |
| 347 | + return UI(**data) |
| 348 | + |
| 349 | + |
| 350 | +class UnitSchema(BaseSchema): |
| 351 | + title = fields.Str() |
| 352 | + unit = fields.Str() |
| 353 | + |
| 354 | + @post_load |
| 355 | + def make_object(self, data): |
| 356 | + from connect.models import Unit |
| 357 | + return Unit(**data) |
| 358 | + |
| 359 | + |
| 360 | +class CommitmentSchema(BaseSchema): |
| 361 | + multiplier = fields.Str() |
| 362 | + count = fields.Int() |
| 363 | + |
| 364 | + @post_load |
| 365 | + def make_object(self, data): |
| 366 | + from connect.models import Commitment |
| 367 | + return Commitment(**data) |
| 368 | + |
| 369 | + |
337 | 370 | class ItemSchema(BaseSchema): |
338 | 371 | mpn = fields.Str() |
339 | 372 | quantity = QuantityField() |
340 | 373 | old_quantity = QuantityField() |
341 | 374 | renewal = fields.Nested(RenewalSchema) |
| 375 | + unit = fields.Nested(UnitSchema) |
| 376 | + commitment = fields.Nested(CommitmentSchema) |
342 | 377 | params = fields.Nested(ParamSchema, many=True) |
343 | 378 | display_name = fields.Str() |
344 | 379 | global_id = fields.Str() |
345 | 380 | item_type = fields.Str() |
| 381 | + description = fields.Str() |
346 | 382 | period = fields.Str() |
347 | 383 | type = fields.Str() |
348 | 384 | name = fields.Str() |
| 385 | + ui = fields.Nested(UISchema) |
349 | 386 |
|
350 | 387 | @post_load |
351 | 388 | def make_object(self, data): |
@@ -828,8 +865,8 @@ def make_object(self, data): |
828 | 865 |
|
829 | 866 |
|
830 | 867 | class AttributesSchema(BaseSchema): |
831 | | - provider = fields.Nested(CompanySchema, only=('external_id')) |
832 | | - vendor = fields.Nested(CompanySchema, only=('external_id')) |
| 868 | + provider = fields.Nested(CompanySchema, only=('external_id',)) |
| 869 | + vendor = fields.Nested(CompanySchema, only=('external_id',)) |
833 | 870 |
|
834 | 871 | @post_load |
835 | 872 | def make_object(self, data): |
|
0 commit comments