Feature Request: Edit vs Design mode

I’m trying to setup a number of different tables widgets linked by some reference. (Trying to use Grist properly as a relational DB).

For the end users however, I want them to be able to update the field in whatever view they’re looking at. So even if “First name” is a referenced column, I should be able to change it without having to go hunting to find whatever table its actually from.

It would be nice to toggle between a “Design” mode - where I can edit the formulas, and reference pointers, but then drop the users into “Edit” mode, where they can edit all the fields and not have to care about the back-end table structure.

I am not sure I understand your request.

“even if “First name” is a referenced column, I should be able to change it without having to go hunting to find whatever table its actually from.”

What you mean with change it? Change the reference? Or change the first name (let’s say, someone spelled John Snow, and the correct was Jon) or change the whole record of that reference (like you want to add Neil Armstrong, but he isn´t in the list)?

In most systems, the common way to do that would be to open a modal window to edit a record in another table without leaving the current form.

One thing you CAN do in Grist is to add a link to the other table on the side of the field with the reference.

I don´t know if opening the link in a new tab or like a modal can be done just with the code. Or if you would need to right click and tell to open in new tab.

Create a table with 1st and 2nd names
image

in another table, a column has a reference to that names table.
image

If I start to write another name that does not exists in the referenced table, I have the option to add it.
image

Ok, it added Alfredo… but that entry has no info to it besides the first name
image

it doesn´t has a 2nd name, and if this was a real system, it would lack all other info, as address, etc, etc, etc
image

So I am guessing that’s the problem you bring here. Supposing this is a system with dozens of tables, after adding Alfredo, who would know WHERE to go and add the rest of info for Alfredo? Or how would someone EVEN KNOW Alfredo was created but lacks the rest of the info?

So I created another column with a link to the record of the name
image

when clicking it, it takes me to the correct page with the card widget, so the user can fill it.

The link cell uses a SELF HYPERLINK
image

Then, next, I added a rule to the link, so if the referenced record LACKS some info (because I only inserted the first name), then it stays red, so the user knows he needs to open the link to fill the rest of the info

Even added some Pencil Icons (for “edit”), with the windowskey + ‘.’ trick

BUT I don´t know how to open automatically in new tab. Right now, you need to right click at the hyperlink to open in new tab.

FINALLY, there is the real possibility I completely misundestood your problem and thus all of the above I created and wrote was in vain :rofl:

1 Like

Linking to the other table could work - but I was hoping to have it all on a single view.

Often my administrators work with many records at a time. In an example - I have a list of boats, and some data about the moorings they’re on. Its a 1:1 relationship, but not a permanent relationship (A give boat may be re-assigned to another mooring). The Last Inspected, Next Inspection, and notes field are linked from another table.

To make it easy for my administrators (Who are used to spreadsheets) I want to allow them to edit the contents of the cell (not the reference formula).

Wouldn´t have widgets (cards or cards lists) for Last Inspected, Next Inspected and Mooring Notes linked to your main table, on the same page, do what you want?

Like this

Each time you click on a ship, it shows on the top the last Mooring Note and the Last Inspection Date with Next Inspection Date.

If you want to add a new Mooring Note you click on the plus sign of the widget. It will create a new Mooring note for that ship.

Same thing for new inspections. You click the plus sign, type the date of the last inspection (example, yesterday) and when the next inspection should occur).

The main table shows ship data and it brings automatically the last inspection for that ship from the Inspections table, the last “next inspection” date and also the last Mooring Note.

I also fixed it, changing feets and pounds to meters and kilograms. :smiley:

here… Emma Maersk has no mooring notes

I just go there and write a new mooring note

as soon as I click outside, the last mooring note is already updated at the mooring note column of Emma Maersk, in the main table

if I want a new mooring note, I click on the plus sign of Mooring Notes Card while Emma Marsk is selected in the main table.

ps: add a column order for Mooring Notes and Inspections widgets, so you order them by Date (Mooring Notes) and Last Inspection (Inspections), inverted order, so it always shows the last card.

Alternatively, instead of using the card widget, you can always use a list of cards widget, to show the history of mooring notes and inspections.

Here, instead of tables and single cards, I used Card Lists for the main table, mooring notes table and inspections table.

@John_Ross I suppose the inspections and mooring notes are references from other tables because you want to keep an HISTORY of past inspections and mooring notes.

In that sense, simply overwriting a cell writing over it would not make much sense and it’s a workflow I have never seen used in any program. A cell always represents a field in a record. Overwriting it is altering the record. Therefore, if Mooring Notes and Inspections are another table, any program would have you create a NEW record for Mooring Notes or Inspections.

Either by having a button to add new mooring notes or inspectiosn (like in my first answer where I create a “link” or by automatically already showing you the other table (either in widget format like I did above, or IN-LINE table (a sort of widget inside a widget), which GetGrist still does not support).

There is yet another alternative, which is using the BUTTON widget… so you create a button (outside the table, fixed on the page layout) for adding new Mooring Notes and another for adding new Inspections. The button will do it for the current selected ship.

Those suggestions are great. I keep thinking about things in terms of how I would use a spreadsheet. I obviously am not thinking about how the UX can be even better with the power of Grist. This is definitely something my users would find intuitive.

Thanks!

2 Likes

Glad to be of help. If you need any help to reproduce what I did, give it a shout. (this is my home google account)