Principle
Allow to search on custom fields (aka fields defined freely in each tracker) without too much overhead in the query definition or column selection.
Apply "duck typing" principle: if it has the same name and has a compatible type, let's assume it's the same thing.
Compatible types definition:
- All numerics (initial_effort could be fload or int): float
- All list with same bind (eg a select box with static values and check box with static values)
- String and text fields
- Date
- Date time
Date and date time are separated because it's hard to guess what's the expected result when the query is "start_date >= 2017-04-24 07:15" and the field is a date (without time).
Are excluded:
- rank
- computed fields
- artifact links
- open list
- permission on artifact
A field is selectable as a column if and only if
- The name is present in all trackers of the query
- The types assocated to this name are compatible
- The user can read the field in all trackers
Technical side
- No change on column selector (still button + drop down)
- Group permission verification for Permissions on artifacts
- Fetch data to display with same strategy then current tracker table renderer