Make formula columns write protected

Hi, new Grist user here, testing out Grist-Desktop on Windows.

As a test study I have set up a training log, where you can enter different exercises and a step log for each day. Then a formula that calculate score for each exercise (duration, difficuly etc) and gives a final score, and summarize all today’s exercises in a separate report view to see if you reached your daily goal.

My problem is I can (as (for now) single user and Admin) accidently write data in the formula column for an activity and thereby overwrite the formula with a set value. It is easy to undo / set up formula again, but a bit annoying.

I tried locking the formula column down by Access Controls → Table rules → Exercise log Table → Add Column Rule → Formula Column → Set it to “Read Only” for all → Save

But, it actully only made things worse, as it now seems I can still change values in the Formula column and overwrite the formula with a value, but after Read Only setting, it is no longer possible to undo the change I made. Undo fails with message “Failed to apply undo action: Blocked by column update access rules”

Is there a better way to make a formula column “Read only” in, for now, this single user scenario?

1 Like

Great idea Johan. It would be great to have a confirmation window popup asking you to confirm a change to a formula.

Additionally, adding a Special rule “Allow owners to edit structure…” similar to the Allow Editors option could be used to lock down a document when not in development mode.

1 Like

Same problem here. I can create access rules to protect the document from everyone except for myself. When I accidentally move or delete things, it cannot be undone. I have to catch what I changed, unblock myself and manually change it back. Wish there is a way to really lock things down and prevent changes made by me.

The amazing @natalie-grist gave me the solution today.

Scroll to the bottom of Access Rules until you find Special Rules. Each rule has a chevron (right pointing arrow) which can be clicked to expand. You will then have the option to add rules just as you can for a table.

To prevent owners from editing the structure just add a rule user.Access == OWNER and set the permission to Read-Only

Thanks Natalie! :+1: :tada: :beers:

3 Likes

This is great, thanks!

Now the annoyance is instead I have to unlock it when I want to make changes to formulas :grin:

Will keep it on for a while to see if unlocking access eats more time than accidental overwrites!

A “best of bosth worlds” might be if this locked changes in grid, but you could still as owner/admin update formulas through sidebar? But maybe access rules are noth that granualr / both views share the same rules…

1 Like

I think you’ll discover that pretty quickly after your first accidental overwrite :wink:

Hehe, well, as of now I have always noticed right away and just (C-z) undo, most of my formulas are relatively simple and if not, I saved them outside of Grist. :slight_smile: