BernhardWebstudio / DataShot_DesktopApp

Desktop application client intended to support an object-precapture-image-data workflow for capture of natural science collections data. See the wiki (https://github.com/MCZbase/DataShot_DesktopApp/wiki) for user documentation, or the README below for developer documentation.
0 stars 0 forks source link

See who is working to prevent collisions #4

Open GenieTim opened 5 years ago

GenieTim commented 5 years ago

Prevent multiple people to work on the same file.

greeffm commented 5 years ago

This is a test comment

EntomologicalZivi commented 3 years ago

dazu sagen wir nicht nein ;)

GenieTim commented 3 years ago

There are multiple ways to achieve this, of various difficulty and sensibility. The first distinction to make is:

  1. Do the users get informed of the open specimen of someone else when opening a specimen themselfs...
  2. ...when trying to edit a field...
  3. ...or when saving changes?

The first idea might be annoying if all you want to do is check, open or look at the specimen. Additionally, technologically, it is much more difficult as it either needs a pessimistic lock on the database entry (with the additional disadvantage that this lock needs to be released; how to do that if the app crashes etc.) or some form of network communication between the DataShot instances, which in turn is not the safe choice in terms of security. Additional questions would arise, what to do e.g. when a user goes to eat lunch with a specimen still open.

The third approach is easier. But it also brings new questions:

a. should the changes of the first one to press save be successful and the others gets an error message and need to restart editing?
b. should the changes of the first one to press save be successful and the others be informed of the changes in order to overwrite, merge or cancel their changes?

yvessavoy commented 3 years ago

I understand the concerns and we think we close this issue for now. We will coordinate on who is doing which species and we think this should solve the problem for now.