Add Subtask does not work correctly from tasks with Parent Task field disabled
It's desirable sometimes to make a certain tracker designated for having child tasks only, but not having parents (a "top level" task)
Unfortunately, if you do this (by disabling "parent" field for the tracker the top-level task tracker) you lose the ability to usefully use the Add Subtask link for those issues. This is because Add Subtask currently defaults to the same tracker as the parent tracker for the child. Since the tracker does not allow the Parent task field, the linkage gets lost (even if the user manually selects another tracker -- which they will have to do anyway) and has to be re-added manually. This makes the Add Subtask link useless in this case, making it slightly less useful than just clicking New Issue.
A simple fix is to change how the default tracker is chosen after clicking Add Subtask. If the tracker that would have been chosen doesn't support being a subtask (no Parent task field) then pick another one.
The attached patch does this by sticking with the same tracker as current if it supports subtasking. If the same tracker doesn't, it picks the highest-priority (as in ORDER BY trackers.position) tracker enabled for that project that does support being a subtask.
This patch is based on 2.4.1.stable. If I am missing anything else needed to consider this patch for merging please let me know. Thanks!
Updated by Edosoft Factory over 9 years ago
A related plugin that modifies that method is Subtasks Inherited Fields Plugin. Checkout at https://github.com/edosoft/redmine-inherit-fields-plugin
Updated by Go MAEDA about 7 years ago
This problem have been partially fixed by #22345 (Redmine 3.3.0), but still remains when "Parent task" field of the topmost tracker is disabled.
("topmost tracker" means the tracker which has smallest position value)
I have updated the patch by Domingo Galdos for the current trunk (3.3.2.devel.16240).
Updated by Jean-Philippe Lang almost 7 years ago
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Fix in r16383 using a different approach in order to avoid to compute the default tracker each time the link to add a subtask is rendered. Thanks for pointing this out.