The Approval system functionality gives the manager (or another big boss) the ability to approve the result before it can be processed further.
As we don't have a solution 'out-of-the-box' right now, let's see, how it can be configured roundabout way.
Setting up an App Structure
So, at first, let's configure the App Structure. To be honest, I am a bit lazy, so, I've just installed a Project Management Template from our Template Gallery. We are going to approve Tasks, so, the templated structure will work well.
The only thing we need to do at this level - add a relation. Choose the Task type and add one-to-many relation with User from our People App.
That strange UI doesn't allow us to name relations while creating, so we will have to do that with the second step. Let's name this field "Approved by".
I suppose, that our Task Workflow extension will be added one more stage - Approved - and it will be the Final one (use Alt+Click to open the State as an Entity and see the "Final" checkbox)
Tadaah! Ready 💪
Adding some dummy data
Well, the only thing I've added - some assignees and some States.
Ok, l will try to highlight the main targets for such kind of Views.
Track all Tasks, that are waiting for the approval - for the bird view
Track Tasks, that are waiting for my approval - for the manager
Track my Tasks, that must be approved - for the poor worker
1.Track all Tasks, that are waiting for the approval
Let's create a Kanban board with Task as Cards, State as Columns, and Assignees seemed on these cards. Here is the configuration
And now we need just to turn Filter on. Let this board show us only those cards, that have Assignees, but that is still not Approved.
2. Track Tasks, that are waiting for my approval
For this View, I suggest you add an approval manager as Assignee. Added? Cool. Now you can turn on a unique Fibery Filter
Why unique? Because in Fibery all the Views are collaborative ones. That means, that if someone turns on the Filter, everyone will see that and get the same result. But "Assignees contains Me" filter make View unique per user - everyone will see only those Tasks, he is assigned to.
3.Track my Tasks, that must be approved - for the poor worker
A little embarrassing to say it, but our previous View will work for this case as well. So… looks like we're done here 🦄
Tips and Cons
If you are fond of bureaucracy and have many Bosses to approve:
you can set a couple of one-to-many relations between Task and User - that will work if you need to know the role of the approval-guy, or if you have multiple approval stages. Ex.: fields "Designer approval", "Developer Approval", "Carrot Approval"
you can set a many-to-many relation between Task and User - that will work if you just need to see who approved that
If you want to strict the rules and avoid a situation, when somebody can cheat and fill in incorrect data in the Approved by Field.
Action Button will solve the problem. You can create an Action Button ( called "Approve"), that will check which of the users clicked on it, and then fill in the data into a read-only-API-created field "Approved by". You can also make the button more complicated and set there condition who has the right to click on it.
Here you can read an article about Action Buttons
And here you can check all the info about Fibery API
Note: if you are not familiar with the JS at all, but do really need this button - ping us in the Intercom chat, we will do our best to help you 💪
Thanks for the reading, guys! If you have better ideas of how to manage it - feel free to share it here or in our Community! Don't hesitate to throw us questions in the Intercom chat, if smth is not clear.