338
338
self.screen.new()
340
340
def duplicate(self):
341
# Store selected ids before executing modifiedSave() because, there, the selection is lost.
342
selectedIds = self.screen.selectedIds()
341
344
if not self.modifiedSave():
343
res_id = self.screen.currentId()
344
new_id = Rpc.session.execute('/object', 'execute', self.model, 'copy', res_id, {}, Rpc.session.context)
345
self.screen.load( [new_id], self.screen.addOnTop() )
347
QApplication.setOverrideCursor( Qt.WaitCursor )
349
# Duplicate all selected records but, remember the ID of the copy of the
350
# currently selected record
353
currentId = self.screen.currentId()
354
for id in selectedIds:
355
copyId = Rpc.session.execute('/object', 'execute', self.model, 'copy', id, {}, Rpc.session.context)
356
newIds.append( copyId )
360
# Ensure the copy of the currently selected ID is the first of the list
361
# so it will be the current one, once loaded by screen.
363
newIds.remove( newId )
364
newIds.insert(0, newId)
366
self.screen.load( newIds, self.screen.addOnTop() )
346
367
self.updateStatus(_('<font color="orange">Working now on the duplicated document</font>'))
368
QApplication.restoreOverrideCursor()
349
371
if not self.screen.currentRecord():