Re-order to remove before adding when moving items.

This commit is contained in:
Matthew Stratford 2021-04-25 00:46:01 +01:00
parent 62565e0887
commit c26da1ed27

View file

@ -154,17 +154,17 @@ class WebsocketServer:
# SPECIAL CASE ALERT! We need to talk to two channels here.
elif command == "MOVE":
# TODO Should we trust the client with the item info?
# Tell the old channel to remove "weight"
extra += str(data["weight"])
command = "REMOVE"
# remove the exiting item first
self.channel_to_q[channel].put(
"{}REMOVE:{}".format(message, data["weight"])
)
# Now hijack to send the new add on the new channel.
# Now modify the item with the weight in the new channel
new_channel = int(data["new_channel"])
self.logger.log.info(new_channel)
item = data["item"]
item["weight"] = int(data["new_weight"])
# If we're moving within the same channel, add 1 to the weight, since we're adding the new item before we remove the old one, UI gave us the weight expected after removing.
@ -175,6 +175,9 @@ class WebsocketServer:
self.channel_to_q[new_channel].put(
"WEBSOCKET:ADD:" + json.dumps(item))
# Don't bother, we should be done.
return
except ValueError as e:
self.logger.log.exception(
"Error decoding extra data {} for command {} ".format(