Hello.
I’m trying to use grist to centralize orders among members of Community-Supported Agriculture Non-profit organizations.
I had some support from Dmitry months ago which advised-me against using the form feature (which only fits the simplest use-cases), and pointed me to this example, which relies on user.SessionID to enable using acl with anonymous users:
I now have the opportunity to give it a try, but my use case is slightly mode complex: the member (adhérent in french) needs to fill two tables : one about himself (name, organization,…) and another one about the products and quantities he orders.
Here it is
It works, and I’m quite happy with it, with a few hiccups:
- 1/ the user can fill several records in the adhérents table (I think I’ll manage to fix that)
- 2/ there is redundancy in the commandes table: There is both a reference to the adhérents table and a field holding the user.SessionID value. Since the user.SessionID is also stored in the adhérents table, this is redundant. But replacing
user.SessionID != rec.SessionID
withuser.SessionID != rec.adherent.SessionIDin the acces rules from de commandes table does not work: it prevents the user to add a record. - 3/ the interface is really complex for the end-user who just needs to fill an order. For instance, filling the order in two steps : first member information then the items would improve the UX in my opinion.
Are there ways to have simpler interface for such uses cases ?
I suppose it could be done with a custom widget, or even with an external webservice.
Hints an examples are much welcome.
Thank you!