Fix syncing for Add/remove
This commit is contained in:
parent
d2af894174
commit
f00c6f2f49
|
@ -98,6 +98,9 @@ class Event(Thing):
|
||||||
For example: an ``Allocate`` is performed to a Computer and this
|
For example: an ``Allocate`` is performed to a Computer and this
|
||||||
relationship is filled with the components the computer had
|
relationship is filled with the components the computer had
|
||||||
at the time of the event.
|
at the time of the event.
|
||||||
|
|
||||||
|
For Add and Remove though, this has another meaning: the components
|
||||||
|
that are added or removed.
|
||||||
"""
|
"""
|
||||||
parent_id = Column(BigInteger, ForeignKey(Computer.id))
|
parent_id = Column(BigInteger, ForeignKey(Computer.id))
|
||||||
parent = relationship(Computer,
|
parent = relationship(Computer,
|
||||||
|
@ -438,6 +441,9 @@ def update_components_event_one(target: EventWithOneDevice, device: Device, __,
|
||||||
Syncs the :attr:`.Event.components` with the components in
|
Syncs the :attr:`.Event.components` with the components in
|
||||||
:attr:`ereuse_devicehub.resources.device.models.Computer.components`.
|
:attr:`ereuse_devicehub.resources.device.models.Computer.components`.
|
||||||
"""
|
"""
|
||||||
|
# For Add and Remove, ``components`` have different meanings
|
||||||
|
# see Event.components for more info
|
||||||
|
if not isinstance(target, (Add, Remove)):
|
||||||
target.components.clear()
|
target.components.clear()
|
||||||
if isinstance(device, Computer):
|
if isinstance(device, Computer):
|
||||||
target.components |= device.components
|
target.components |= device.components
|
||||||
|
|
Reference in New Issue