Skip to content
Snippets Groups Projects
Commit d27da27b authored by George Andrinopoulos's avatar George Andrinopoulos Committed by Winnie Hellmann
Browse files

Move total time spend calculation to milestoneish

parent d2fe9f2b
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -86,6 +86,14 @@ module Milestoneish
false
end
 
def total_issue_time_spent
issues.joins(:timelogs).sum(:time_spent)
end
def human_total_issue_time_spent
Gitlab::TimeTrackingFormatter.output(total_issue_time_spent)
end
private
 
def count_issues_by_state(user)
Loading
Loading
Loading
Loading
@@ -152,12 +152,4 @@ class GlobalMilestone
@milestones.first.start_date
end
end
def total_time_spent
issues.joins(:timelogs).sum(:time_spent) + merge_requests.joins(:timelogs).sum(:time_spent)
end
def human_total_time_spent
Gitlab::TimeTrackingFormatter.output(total_time_spent)
end
end
Loading
Loading
@@ -213,14 +213,6 @@ class Milestone < ActiveRecord::Base
project_id.present?
end
 
def total_time_spent
issues.joins(:timelogs).sum(:time_spent) + merge_requests.joins(:timelogs).sum(:time_spent)
end
def human_total_time_spent
Gitlab::TimeTrackingFormatter.output(total_time_spent)
end
private
 
# Milestone titles must be unique across project milestones and group milestones
Loading
Loading
Loading
Loading
@@ -89,15 +89,15 @@
.sidebar-collapsed-icon
= custom_icon('icon_hourglass')
%span.collapsed-milestone-total-time-spent
- if milestone.human_total_time_spent
= milestone.human_total_time_spent
- if milestone.human_total_issue_time_spent
= milestone.human_total_issue_time_spent
- else
None
.title.hide-collapsed
Total time spent
Total issue time spent
.value.hide-collapsed
- if milestone.human_total_time_spent
%span.bold= milestone.human_total_time_spent
- if milestone.human_total_issue_time_spent
%span.bold= milestone.human_total_issue_time_spent
- else
%span.no-value No time spent
 
Loading
Loading
Loading
Loading
@@ -186,4 +186,15 @@ describe Milestone, 'Milestoneish' do
expect(milestone.elapsed_days).to eq(2)
end
end
describe '#total_issue_time_spent' do
it 'calculates total issue time spent' do
closed_issue_1.spend_time(duration: 300, user: author)
closed_issue_1.save!
closed_issue_2.spend_time(duration: 600, user: assignee)
closed_issue_2.save!
expect(milestone.total_issue_time_spent).to eq(900)
end
end
end
Loading
Loading
@@ -190,37 +190,4 @@ describe GlobalMilestone do
end
end
end
describe '#total_time_spent' do
let(:milestone1_project1) { create(:milestone, title: "Milestone v1.2", project: project1) }
let(:milestone1_project2) { create(:milestone, title: "Milestone v1.2", project: project2) }
let(:issue1) { create(:issue, milestone: milestone1_project1) }
let(:issue2) { create(:issue, milestone: milestone1_project2) }
let(:merge_request1) { create(:merge_request, milestone: milestone1_project1) }
let(:merge_request2) { create(:merge_request, milestone: milestone1_project2) }
before do
milestones =
[
milestone1_project1,
milestone1_project2
]
milestones_relation = Milestone.where(id: milestones.map(&:id))
@global_milestone = described_class.new(milestone1_project1.title, milestones_relation)
end
it 'calculates total time spent' do
issue1.spend_time(duration: 300, user: user)
issue1.save!
issue2.spend_time(duration: 600, user: user2)
issue2.save!
merge_request1.spend_time(duration: 200, user: user)
merge_request1.save!
merge_request2.spend_time(duration: 100, user: user2)
merge_request2.save!
expect(@global_milestone.total_time_spent).to eq(1200)
end
end
end
Loading
Loading
@@ -284,27 +284,4 @@ describe Milestone do
expect(milestone.participants).to eq [user]
end
end
describe '#total_time_spent' do
let(:user) { build(:user) }
let(:project) { build(:project, name: 'sample-project') }
let(:milestone) { build(:milestone, iid: 1, project: project) }
let(:issue1) { build(:issue, milestone: milestone) }
let(:issue2) { build(:issue, milestone: milestone) }
let(:merge_request1) { build(:merge_request, milestone: milestone) }
let(:merge_request2) { build(:merge_request, milestone: milestone) }
it 'calculates total time spent' do
issue1.spend_time(duration: 300, user: user)
issue1.save!
issue2.spend_time(duration: 600, user: user)
issue2.save!
merge_request1.spend_time(duration: 200, user: user)
merge_request1.save!
merge_request2.spend_time(duration: 100, user: user)
merge_request2.save!
expect(milestone.total_time_spent).to eq(1200)
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