Skip to content
Snippets Groups Projects
Commit 0827b573 authored by Enrico Scholz's avatar Enrico Scholz
Browse files

allow to associate group milestones with releases

parent bd82b9a6
No related branches found
No related tags found
No related merge requests found
......@@ -55,7 +55,7 @@ export const fetchProjectMilestones = ({ commit, state }) => {
export const fetchGroupMilestones = ({ commit, state }) => {
commit(types.REQUEST_START);
Api.groupMilestones(state.groupId)
Api.groupMilestones(state.groupId, { 'include_parent_milestones': true })
.then((response) => {
commit(types.RECEIVE_GROUP_MILESTONES_SUCCESS, response);
})
......@@ -90,6 +90,7 @@ export const searchProjectMilestones = ({ commit, state }) => {
export const searchGroupMilestones = ({ commit, state }) => {
const options = {
search: state.searchQuery,
include_parent_milestones: true,
};
commit(types.REQUEST_START);
......
......@@ -67,7 +67,7 @@ def data_for_new_release_page
end
def group_milestone_project_releases_available?(project)
false
"true"
end
private
......
......@@ -7,6 +7,7 @@ class MilestoneRelease < ApplicationRecord
belongs_to :release
validate :same_project_between_milestone_and_release
validate :same_group_between_milestone_and_release
private
......@@ -17,6 +18,19 @@ def same_project_between_milestone_and_release
errors.add(:base, _('Release does not have the same project as the milestone'))
end
def same_group_between_milestone_and_release
return unless release_id_changed? || milestone_id_changed?
return unless milestone&.group_id && release&.project_id
g = release.project.group
while g do
return if g.id == milestone.group_id
g = g.parent
end
errors.add(:base, _('Associated project not member of the milestone\'s group'))
end
end
MilestoneRelease.prepend_mod_with('MilestoneRelease')
......@@ -65,7 +65,7 @@ def milestones
project: project,
current_user: current_user,
project_ids: Array(project.id),
group_ids: Array(project_group_id),
group_ids: project_group_ids,
state: 'all',
title: params[:milestones],
ids: params[:milestone_ids]
......@@ -111,6 +111,18 @@ def execute_hooks(release, action = 'create')
# overridden in EE
def project_group_id; end
def project_group_ids
res = []
group = project.group
while group do
res.append(group.id)
group = group.parent
end
res
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment