https://community.openproject.org/wp/62261
When switching a parent to automatic scheduling mode, the date picker
displayed an error because the dates set in manual mode are reused.
Fix is to dismiss dates from `params` when the scheduling mode is
automatic, so that the dates are always computed.
https://community.openproject.org/wp/62362
When clicking the checkbox, it takes all form data and sends it to the
server for rerendering the form with the value updated.
Problem is: when the date form is not displayed and the "no
predecessors" message is displayed instead, there is no form data, so it
sends incomplete data to the server, and the server renders a minimalist
form.
The fix is to hide the checkbox too if the other form elements are hidden.
No checkbox, no click, no problem.
https://community.openproject.org/wp/61979
Switching to automatic mode was done in `ScheduleDependency` before. As
the scheduling mode was changed outside of the `SetScheduleService`, it
was not seen as a change and no dependent result was saved and
eventually the scheduling mode change was not persisted.
By moving the scheduling mode change to the `SetScheduleService`, the
dependent results are now correctly saved and the scheduling mode change
is persisted.
There are more important things to do to ensure this can be merged
before 15.4 freeze. In the meantime, we'll test these scenarios
manually and implement them later.
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`.
See https://community.openproject.org/wp/44053
When moving work packages, we try not to move followers except if forced
to satisfy follows relations. In this case the followers are moved
forward.
The work packages in precedes/follows relations can never be moved to an
earlier date automatically. Only the user can move backwards.
* Remove work_packages_duration_field_active feature flag
Duration is now globally active for 12.3.0.
* Remove `ignore_non_working_days: false` in tests
Not needed anymore as it is now the default value. Keep it where the test explicitly refers to it, for clarity.
Co-authored-by: Christophe Bliard <c.bliard@openproject.com>
* Rename most notification to toaster instances
* Frontend builds
* Fix spec build
* Rename more notification elements to toaster
* Rename toaster-box to op-toast
* Fix op-toast-container
* Rename toasters upload progress
* Try fixing page.rb toaster check
* Fix some specs, break some others
* Correctly overwrite toast_type
* Fix more specs
* Fix one more notification to toaster rename
* Fix linting errors, harmonize naming more
* Remove byebug debugging statement
* Remove byebug debugging statement
* Rename notification in the backend, too
* Rename more instances of notifications to toastService
* Rename backend back to notification since bundle gems expect it there
* expect_toaster -> expect_toast
Co-authored-by: Henriette Darge <h.darge@openproject.com>
Updates the copyright to 2021 for all files that have a copyright. Files in our source code without the copyright header still do not receive one automatically. Additionally, backlisted files are also excluded.
Previously the copyright of chiliproject which references redmine stated a copyright of redmine up to and including 2017 which is not true for the code we have in here. Because of that I changed that to 2013