spec: `./modules/team_planner/spec/features/team_planner_add_existing_work_packages_spec.rb:176`
failing job: https://github.com/opf/openproject/actions/runs/15991857052/job/45107671723
Moving by 800 pixels was too imprecise: it was moved to Wednesday
instead of being moved to Tuesday as intended. It was ok when the
element was not fully loaded, but not when it was. Probably its
dimensions changed a bit and that was enough to fall on the wrong day...
The fix is to drag from the card to the target date column header, with
an y offset of the header's height. This way it's dragged exactly on the
day area below the day header. It works even if we change the default
dimensions of everything.
* create a breadcrumbs angular component
* change the styles of breadcrumbs component so it look like other breadcrumbs
* add breadcrumbs component to the partition query space component
* add breadcrumbs to boards
* add breadcrumbs to team planners and calendar
* add breadcrumbs to ifc viewer and wps and gantt pages
* add feature specs for modules that have breadcrumbs component
* add mobile view for breadcrumbs component
* fix mobile styles in bcf module
* remove margin-bottom from breadcrumb mobile since it has some space from toolbar title
* add a section for active breadcrumb
* move breadcrumb items for gantt and wp to a separate method
* fix urls for work packages and gantt pages when there is no project selected
* use only op- classes
* use existing translations and use capybara accessible selectors
* change gantt translation key
* fix failing test in boards
* add section header of side bar menu to the breadcrumb last item
* change css BEM styles and change the projectWorkPackages path to workPackages path
* undo css changes in bcf view
* fix failing tests
* change target of anchors
* Use real space instead of a margin so that screen readers can read it out correctly
---------
Co-authored-by: Henriette Darge <h.darge@openproject.com>
When drag&dropping a work package in the team planner from the left
panel, the dates should be set, especially if they were not set
initially. This differs from the behavior of the calendar module where
drag&dropping from one date to another should keep any unset dates.
Also, only start date and duration are set to be able to deal with
non-working days.
That use case was hopefully caught by a failing feature spec:
modules/team_planner/spec/features/team_planner_add_existing_work_packages_spec.rb:135.
I added another spec to ensure that non-working days are handled correctly.
The `schedule_manually` column is also non-nullable now.
This includes the following changes:
- Automatically scheduled parent dates are and `ignore_non_working_days`
attributes are now always derived from children's values, even if the
children are scheduled manually.
It's more natural. Without that, adding a child to a work package
would not change the parent's dates.
As a consequence, the parent can start on a non-working day if one of
its children is manually scheduled, ignores non-working days, and
starts on a non-working day. That's why the parent's
`ignore_non_working_days` attribute is now also derived from all its
children regardless of the scheduling mode.
If the parent is manually scheduled, its dates and it's ability to
ignore non-working days will still be defined independently from its
children.
- Fix tests broken by scheduling mode being manual by default.
The tests had to be adapted to explicitly set scheduling mode to
automatic for followers and parents, and sometimes even follower's
children. Without it, work packages would not be rescheduled
automatically.
- Replace schedule helpers with table helpers.
Schedule helpers helped well, but table helpers are more flexible and
support more column types.
- Add "days counting" and "scheduling mode" columns to table helpers.
"days counting" to set `ignore_non_working_days` attribute.
- "all days" value maps to `ignore_non_working_days: true`.
- "working days" value maps to `ignore_non_working_days: false`.
"scheduling mode" to set `schedule_manually` attribute.
- "manual" value maps to `schedule_manually: true`.
- "automatic" value maps to `schedule_manually: false`.
modules/team_planner/spec/features/query_handling_spec.rb sometimes
misses the dropdown, because it does not wait long enough after adding a
filter, and once the filter is applied, the page state is reset and the
dropdown is closed, which leads to the error.
* [#46490] Number of displayed assignees in team planner wrongly restricted by "objects per page"
https://community.openproject.org/work_packages/46490
* Refactor team_planner.add_assignee method to include retry_block
* Separate helper method to check for searching and adding
---------
Co-authored-by: Oliver Günther <mail@oliverguenther.de>
* Use date display field for card dates
https://community.openproject.org/work_packages/51858
* Allow overriding which format to use
* Fix rendering of only start and due date within combined date field
* Use display field for team planner too
* Restore placeholders
* Render due date instead of start date to get highlighting
There was a race-condition where the saving of the query was happening
as the update request for the added filter was also happening, causing
the frontend to not register the save as a successful creation but
as a successful update (from the added filter), causing the spec to
fail under conditions where it's execution was too fast.
The bcf_view_management spec is behaving a bit differently than others.
After adding the first filter, the filter count is still expected to
be "1" for some reason and starts incrementing with every other filter
added from then on. An injectable `initial_filter_count`.
**NOTE**: This is only a patch to aid in the flakiness that everyone
is experiencing but ultimately I would expect the "Save" button and
the "Save as" button to be disabled until every already performed
request is done (which would prevent this from happening to some users
just performing things at Capybara speed, or for some users under high
latency regions).