What high-level problem are you trying to solve?
I have an entity which can be updated by two forms. One of the forms is created by authorized persons and the entities associated can be created confidently as soon as the submissions are received by Central. The other form is created via a public link and the entities associated need to be marked as approved by an authorized user before being created. Central allows me to define the entity workflow globally at entity-level. I want to define that for each form and each entity updated by that form.
That requirement makes a lot of sense. We don't currently have a way of using Central's approve/reject workflow for a subset of Entities in a list.
The best option I can think of is to layer on your own approve/reject workflow using Entities. For example, you could add a approved
property to the Entity List. Anywhere that you access/display Entities, you could filter out the ones that are not approved with a choice_filter
or expression in [ ]
like approved='yes'
.
Then, you could modify your forms from authorized users to always save yes
to the approved
property. Your forms from unauthorized users would save pending
to it or just leave it blank.
Your reviewers could then view the Entity data in Central and set the approved
value to yes
directly on the Entity details page.
The downside of using the Entity details page to mark submissions as approved is that there would be no validation to ensure the value is actually yes
. An alternative would be to create a review form that starts by showing a list of Entities with choice_filter
of approved = 'pending'
. The form could then show all the relevant data to review in a note and maybe even automated quality checks like a warning if age is greater than 100. Alternatively, the Entity properties could be used as defaults for editable fields if the reviewer is allowed to make edits to some or all fields. A select_one
with values yes
or no
could then be saved to the approved
property.