b11492c2e3
Milestoneish#issues_visible_to_user caches only the ActiveRecord relation, not the actual result. Introduce Milestoneish#total_issues_count that relies on the cached method Milestoneish#count_issues_by_state to reduce the number of queries.
43 lines
2.4 KiB
Text
43 lines
2.4 KiB
Text
- dashboard = local_assigns[:dashboard]
|
|
- custom_dom_id = dom_id(@project ? milestone : milestone.milestones.first)
|
|
|
|
%li{ class: "milestone milestone-#{milestone.closed? ? 'closed' : 'open'}", id: custom_dom_id }
|
|
.row
|
|
.col-sm-6
|
|
%strong= link_to_gfm truncate(milestone.title, length: 100), milestone_path
|
|
.col-sm-6
|
|
.pull-right.light #{milestone.percent_complete(current_user)}% complete
|
|
.row
|
|
.col-sm-6
|
|
= link_to pluralize(milestone.total_issues_count(current_user), 'Issue'), issues_path
|
|
·
|
|
= link_to pluralize(milestone.merge_requests.size, 'Merge Request'), merge_requests_path
|
|
.col-sm-6= milestone_progress_bar(milestone)
|
|
- if milestone.is_a?(GlobalMilestone)
|
|
.row
|
|
.col-sm-6
|
|
.expiration= render('shared/milestone_expired', milestone: milestone)
|
|
.projects
|
|
- milestone.milestones.each do |milestone|
|
|
= link_to milestone_path(milestone) do
|
|
%span.label.label-gray
|
|
= dashboard ? milestone.project.name_with_namespace : milestone.project.name
|
|
- if @group
|
|
.col-sm-6
|
|
- if can?(current_user, :admin_milestones, @group)
|
|
- if milestone.closed?
|
|
= link_to 'Reopen Milestone', group_milestone_path(@group, milestone.safe_title, title: milestone.title, milestone: {state_event: :activate }), method: :put, class: "btn btn-xs btn-grouped btn-reopen"
|
|
- else
|
|
= link_to 'Close Milestone', group_milestone_path(@group, milestone.safe_title, title: milestone.title, milestone: {state_event: :close }), method: :put, class: "btn btn-xs btn-close"
|
|
|
|
- if @project
|
|
.row
|
|
.col-sm-6= render('shared/milestone_expired', milestone: milestone)
|
|
.col-sm-6.milestone-actions
|
|
- if can?(current_user, :admin_milestone, milestone.project) and milestone.active?
|
|
= link_to edit_namespace_project_milestone_path(milestone.project.namespace, milestone.project, milestone), class: "btn btn-xs btn-grouped" do
|
|
Edit
|
|
\
|
|
= link_to 'Close Milestone', namespace_project_milestone_path(@project.namespace, @project, milestone, milestone: {state_event: :close }), method: :put, remote: true, class: "btn btn-xs btn-close btn-grouped"
|
|
= link_to namespace_project_milestone_path(milestone.project.namespace, milestone.project, milestone), data: { confirm: 'Are you sure?' }, method: :delete, class: "btn btn-xs btn-remove btn-grouped" do
|
|
Delete
|