In this thread, I suggested how to block deleting a record if it has child records, thus protecting it from leaving orphaned child records. It would use a status column that counts child records and if status is 0, then based on User Permissions, the record is free to delete. If status is 1, it’s blocked.
I am wondering if a similar system (of a STATUS COLUMN) can´t be created to fullfill a problem in Grist and other “Excel like systems”: it’s too easy to accidentaly change a record without noticing what you did. Because every record is open for editing.
Most business systems will have buttons for you to edit a record already saved. And another to save the record being edited.
I THINK the first part can be done in the following way. All records are closed to the user. They have a column for “status”, where depending on status, user can´t edit them.
I guess that will also make it impossible to CHANGE the status so you can edit the record.
But MAYBE an ACTION BUTTON can change the status to “editable” even if the user can´t directly change it.
So user select record he wants to edit, click the action button on top of the page called EDIT, and action button changes the status of the record, so the record is now open for editing.
As for saving. No idea really. Anytime you type anything in any cell, it already saves it.
A possible solution would be to also have a column status where the record is in status EDITING unless user clicks “SAVE” Action Button. While in editing status, the record won´t be available for calculations, etc. It’s like in Limbo.
ps: I wonder if an easier way to do all that can´t be automatically available. Including automatic hidden columns (just like the ID column of tables), small EDIT and SAVE button widgets already connected to right columns… and possibility of enabling and disabling this feature, per table or widget.