[#68702] Clean up custom field filter spec
[#68702] Clean up Project table spec
[#68702] Add project list filter spec for groups and placeholder users
[#68702] User filter matches group membership
[#68702] Add specs for group membership filtering
Filters are now defined declaratively during tool definition.
In addition to simple where-based filters (like the ones we've been
using in SearchProject), we now also support using query filters
that are defined for other purposes already. Though we keep supporting
custom filtering, since pre-existing classes are often not available
and necessary for very simple filtering operations.
As a side-find, specs for the ProjectStatusFilter have been extended.
This is consistent with what we expose via the API, where we never tried
to hide this data. It was effectively only hidden from the UI.
We couldn't come up with a reason why it was hidden from the UI back then,
but since we now needed to expose updated_at to everyone (previous commit),
it only made sense to consistently also allow created_at to be seen by everyone.
The main motivation to add this was to allow filtering by it via API.
Though consistently, we've now enabled it to be usable from the UI as well,
where updated_at is now available as a column and for filtering and ordering.
Favorite is the correct term in the context of expressing a preference
for a particular project / other OpenProject domain object.
Updates `ActsAsFavorable` to `ActsAsFavoritable`, as well as filenames,
identifiers and strings to:
favored => favorited
favorable => favoritable
favoring => favoriting
* Add BudgetRelation, fixed budget
* Add fixed_budget editing to budget form
* Show and allow setting the budget state
* Rename fixed_budget to supplementary_amount to make it a factor of the budget
* Add an `available` method so we don't have to calculate this all the time
* Add a section to the show budget page to display amounts
* Highlight totals
* Add tests and allocation + spent for children
* Show budget allocated to children in budget show
* Add an allocated to children column
* show children in the page
* Implement bottom->up addition approach
* remove unused DB column and make sure each budget only has one parent
* Add budget relation controller
* Remove names for budgets in specs
* Refactor tests to use `have_attributes`
* re-add appropriate names for spec factories