I noticed something that cannot be done in formulas and views which I think can be really usefull to a lot of peope (it would definitely be benifitial to me).
Currently, Fibery lacks the following filtering capabilities in views:
It does not provide complex logic in filters (I cannot set a filter to be "When status is X and due date is Y or status is Z).
It cannot filter based on hierarchies.
For example, if every project has multiple tasks, and also multiple sub projects, I might want to filter all the tasks that appear under some project. This includes the tasks the are also under the sub projects of that project.
Such a filter would look something like this:
Parent field: <A field representing a many to one relationship of the entity filtered to anoter (or the same) entity type>
Parent field: <A field representing a many to one relationship of the Parent entity of the entity filtered to anoter (or the same) entity type>
And so on
Task under “Project X”
Task Parent Field: “Parent Project”
Project Parent Field: “Parent Project”
Some Special care might be required for types the reference themselves (like a project that has sub projects)
As many filtering capabilities are lacking in views, the only way to implement them is by creating a type that represents a view and implement the filtering using formulas. Even so, some filtering capabilities cannot be implemented using this approach, or are very hard to implement, because the following features are missing:
- When using the filter operation on a collection, it is possible to use only fields of the entities in the collection and hardcoded values. It is not possible to use fields of the entity type for which the formula is created.
Lets say I implement a List type which has many tasks linked to it, and can link to one project. I want to implement a formula so that only tasks that are under that project will be shown.
To do this, I’ll need to apply the “filter” operation to the “tasks” field. However, the Project field of the list is not available inside the “filter” operation.
There are workarounds for that, but they require lots of formulas and string manipulations, which shouldn’t be the case for such a simple operation.
- There is no “Containes” operation for collection fields in formulas. If I want to know whether some collection field contains a certain entity, I have to do that using complicated string manipulation operations.
The combination of the 2 lacking features means that some filtering operation cannot be done at all, not even through the use of string manipulation operations.
For example, if I create a Lisk type that has a many to many relationship to tasks, and has fields like “project” and “time estimate” for filtering, it is impossible to create a formula field that filters only tasks based on the criteria set in the filter fields.
I will not go into details here about why this is the case as this post is already long enough.
The only workaround I found is creating a special Type that contains filtering information, and has only one entity that is automatically linked to all entities in the workspace. This isn’t a very elegant solution.
I know some of the featues I asked for are not as needed as other features right now. However, I do hope you consider them in the future, especially the hierarchy filters, which probably have the largest auduance.