SyncServer - fix priority on remote sites

This commit is contained in:
Petr Kalis 2021-05-04 10:43:48 +02:00
parent 5d40c9e31e
commit 999e1b78fd
3 changed files with 32 additions and 11 deletions

View file

@ -717,9 +717,15 @@ class SyncServerModule(PypeModule, ITrayModule):
}},
{'$addFields': {
'priority': {
'$cond': [{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
self.DEFAULT_PRIORITY]}
'$cond': [
{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
{'$cond': [
{'$size': '$order_remote.priority'},
{'$first': '$order_remote.priority'},
self.DEFAULT_PRIORITY]}
]
},
}},
{'$group': {
'_id': '$_id',

View file

@ -36,13 +36,16 @@ class PriorityDelegate(QtWidgets.QStyledItemDelegate):
editor = PriorityLineEdit(
parent,
option.widget.selectionModel().selectedRows())
editor.setValidator(QtGui.QIntValidator(0, 1000, self))
editor.setFocus(True)
return editor
def setModelData(self, editor, model, index):
for index in editor.selected_idxs:
model.set_priority_data(index, editor.text())
try:
val = int(editor.text())
except ValueError:
val = model.sync_server.DEFAULT_PRIORITY
model.set_priority_data(index, val)
class PriorityLineEdit(QtWidgets.QLineEdit):

View file

@ -691,9 +691,15 @@ class SyncRepresentationSummaryModel(_SyncRepresentationModel):
1,
0]},
'priority': {
'$cond': [{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
self.sync_server.DEFAULT_PRIORITY]},
'$cond': [
{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
{'$cond': [
{'$size': '$order_remote.priority'},
{'$first': '$order_remote.priority'},
self.sync_server.DEFAULT_PRIORITY]}
]
},
}},
{'$group': {
'_id': '$_id',
@ -1204,9 +1210,15 @@ class SyncRepresentationDetailModel(_SyncRepresentationModel):
]}
]}},
'priority': {
'$cond': [{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
self.sync_server.DEFAULT_PRIORITY]}
'$cond': [
{'$size': '$order_local.priority'},
{'$first': '$order_local.priority'},
{'$cond': [
{'$size': '$order_remote.priority'},
{'$first': '$order_remote.priority'},
self.sync_server.DEFAULT_PRIORITY]}
]
},
}},
{"$project": self.projection}
]