specify / specify7

Specify 7
https://www.specifysoftware.org/products/specify-7/
GNU General Public License v2.0
66 stars 36 forks source link

Add a holding status for modified records / "transaction" mode for certain users #1715

Open tlammer opened 2 years ago

tlammer commented 2 years ago

Requested by UMich They were looking for a way collection managers could approve changes to existing records before the changes were applied.

From UMich "Is there a way for a CM to track changes or approve them before they are officially put in production? For example, suppose a person managed by the CM modifies a bunch of records. Before these changes are committed, it would be ideal if the CM could do a query to return a list of all modified records waiting for the CM to approve and commit."

maxpatiiuk commented 2 years ago

There is no holding mechanism, but they could use some yes/no field on the form as a flag and then use the query builder to find all records with that flag.

For finding changes, you can use the audit log for this purpose. The audit log records can be filtered down to edits by a given user, for a given table, or a given record, within some time and for a given type of edits. In the next release I would add a one-click option to see the edit history for a given record

tlammer commented 2 years ago

the one click edit history would be very valuable.
The checkbox solution is not ideal because it relies on the student remembering to mark it and the supervisor would have to go through records one at a time to approve them rather than being able to do a quick overview of the changes and approve that way

maxpatiiuk commented 2 years ago

Edit history has been added. See https://github.com/specify/specify7/issues/1703

maxpatiiuk commented 2 years ago

For this request, could add a feature that makes it easy to see which records where last modified by a particular person

grantfitzsimmons commented 1 year ago

From https://github.com/specify/specify7/issues/3248:

This would allow an administrator to approve the records they wish to create before they enter the database

How would it work if there were a SQL-like transaction mode in Specify? Certain users would create temporary records that would need to be approved by an administrator

  • What if they modify a record that someone else modifies in another session before it is committed?
  • What if there is a conflict in the unique identifier of their created record?
  • What if they modify an item in a relationship?
  • Would we create a temporary table or store it in some other temporary manner?
  • How would you visualize to the user they are in a temporary state
  • How would you ask an administrator to approve the records (in bulk? in a form view dialog?)
grantfitzsimmons commented 1 year ago

Requested again today by KU Mammals