diff --git a/core/bug_api.php b/core/bug_api.php index 06bc514..f2328a1 100644 --- a/core/bug_api.php +++ b/core/bug_api.php @@ -1107,6 +1107,15 @@ function bug_move( $p_bug_id, $p_target_project_id ) { // Map by name $t_category_name = category_get_field( $t_category_id, 'name' ); $t_target_project_category_id = category_get_id_by_name( $t_category_name, $p_target_project_id, /* triggerErrors */ false ); + while ( $t_target_project_category_id === false && + !project_hierarchy_is_toplevel($p_target_project_id)) + { + $p_parent_project_id = project_hierarchy_get_parent($p_target_project_id); + if (!project_hierarchy_inherit_parent( $p_target_project_id, $p_parent_project_id )) + break; + $p_target_project_id = $p_parent_project_id; + $t_target_project_category_id = category_get_id_by_name( $t_category_name, $p_target_project_id, /* triggerErrors */ false ); + } if ( $t_target_project_category_id === false ) { // Use default category after moves, since there is no match by name. $t_target_project_category_id = config_get( 'default_category_for_moves' );