try to use only_fields for devices but not used

This commit is contained in:
Cayo Puigdefabregas 2021-11-18 11:50:29 +01:00
parent 5510417125
commit 63f7adf69c
1 changed files with 73 additions and 1 deletions

View File

@ -14,6 +14,7 @@ from ereuse_devicehub.resources import enums
from ereuse_devicehub.resources.device import models as m, states from ereuse_devicehub.resources.device import models as m, states
from ereuse_devicehub.resources.models import STR_BIG_SIZE, STR_SIZE from ereuse_devicehub.resources.models import STR_BIG_SIZE, STR_SIZE
from ereuse_devicehub.resources.schemas import Thing, UnitCodes from ereuse_devicehub.resources.schemas import Thing, UnitCodes
# from ereuse_devicehub.resources.action.schemas import Action as s_action
class Device(Thing): class Device(Thing):
@ -96,6 +97,77 @@ class Device(Thing):
field_names=['actions']) field_names=['actions'])
ACTIONS_VALUE = (
'id',
'type',
'created'
)
TAGS_VALUE = (
'id',
'printable',
'code',
'device',
'type',
'url'
)
class Device2(Thing):
__doc__ = m.Device.__doc__
id = Integer(description=m.Device.id.comment, dump_only=True)
hid = SanitizedStr(lower=True, description=m.Device.hid.comment)
tags = f.Nested('Tag',
many=True,
collection_class=OrderedSet,
description='A set of tags that identify the device.',
only=TAGS_VALUE)
model = SanitizedStr(lower=True,
validate=Length(max=STR_BIG_SIZE),
description=m.Device.model.comment)
manufacturer = SanitizedStr(lower=True,
validate=Length(max=STR_SIZE),
description=m.Device.manufacturer.comment)
serial_number = SanitizedStr(lower=True,
validate=Length(max=STR_BIG_SIZE),
data_key='serialNumber')
# actions = NestedOn('Action', many=True, dump_only=True, description=m.Device.actions.__doc__)
actions = f.Nested('Action', only=ACTIONS_VALUE, many=True)
# actions = f.Nested(s_actions.Action(only=ACTIONS_VALUE),
# many=True,
# dump_only=True,
# description=m.Device.actions.__doc__)
# actions_one = NestedOn('Action', many=True, load_only=True, collection_class=OrderedSet)
url = URL(dump_only=True, description=m.Device.url.__doc__)
# lots = NestedOn('Lot',
# many=True,
# dump_only=True,
# description='The lots where this device is directly under.')
tradings = Dict(dump_only=True, description='')
traking = EnumField(states.Traking, dump_only=True, description=m.Device.physical.__doc__)
revoke = UUID(dump_only=True)
allocated = Boolean(description=m.Device.allocated.comment)
devicehub_id = SanitizedStr(data_key='devicehubID',
description=m.Device.devicehub_id.comment)
COMPONENTS_VALUES = (
'type',
'manufacturer',
'model'
)
class Computer2(Device):
__doc__ = m.Computer.__doc__
# components = f.Nested(Component(only=COMPONENTS_VALUES),
# many=True,
# dump_only=True,
# collection_class=OrderedSet,
# description='The components that are inside this computer.')
class Computer(Device): class Computer(Device):
__doc__ = m.Computer.__doc__ __doc__ = m.Computer.__doc__
components = NestedOn('Component', components = NestedOn('Component',