Refactor: TotalTimest return seconds (#25370)

so template/browser can deal with string format

---
*Sponsored by Kithara Software GmbH*
This commit is contained in:
6543 2023-06-19 18:40:06 +02:00 committed by GitHub
parent bd2e3226be
commit 749802c922
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 11 deletions

View file

@ -199,8 +199,8 @@ func addTime(ctx context.Context, user *user_model.User, issue *Issue, amount in
return tt, db.Insert(ctx, tt) return tt, db.Insert(ctx, tt)
} }
// TotalTimes returns the spent time for each user by an issue // TotalTimes returns the spent time in seconds for each user by an issue
func TotalTimes(options *FindTrackedTimesOptions) (map[*user_model.User]string, error) { func TotalTimes(options *FindTrackedTimesOptions) (map[*user_model.User]int64, error) {
trackedTimes, err := GetTrackedTimes(db.DefaultContext, options) trackedTimes, err := GetTrackedTimes(db.DefaultContext, options)
if err != nil { if err != nil {
return nil, err return nil, err
@ -211,7 +211,7 @@ func TotalTimes(options *FindTrackedTimesOptions) (map[*user_model.User]string,
totalTimesByUser[t.UserID] += t.Time totalTimesByUser[t.UserID] += t.Time
} }
totalTimes := make(map[*user_model.User]string) totalTimes := make(map[*user_model.User]int64)
// Fetching User and making time human readable // Fetching User and making time human readable
for userID, total := range totalTimesByUser { for userID, total := range totalTimesByUser {
user, err := user_model.GetUserByID(db.DefaultContext, userID) user, err := user_model.GetUserByID(db.DefaultContext, userID)
@ -221,7 +221,7 @@ func TotalTimes(options *FindTrackedTimesOptions) (map[*user_model.User]string,
} }
return nil, err return nil, err
} }
totalTimes[user] = util.SecToTime(total) totalTimes[user] = total
} }
return totalTimes, nil return totalTimes, nil
} }

View file

@ -86,8 +86,8 @@ func TestTotalTimes(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, total, 1) assert.Len(t, total, 1)
for user, time := range total { for user, time := range total {
assert.Equal(t, int64(1), user.ID) assert.EqualValues(t, 1, user.ID)
assert.Equal(t, "6 minutes 40 seconds", time) assert.EqualValues(t, 400, time)
} }
total, err = issues_model.TotalTimes(&issues_model.FindTrackedTimesOptions{IssueID: 2}) total, err = issues_model.TotalTimes(&issues_model.FindTrackedTimesOptions{IssueID: 2})
@ -95,9 +95,9 @@ func TestTotalTimes(t *testing.T) {
assert.Len(t, total, 2) assert.Len(t, total, 2)
for user, time := range total { for user, time := range total {
if user.ID == 2 { if user.ID == 2 {
assert.Equal(t, "1 hour 1 minute", time) assert.EqualValues(t, 3662, time)
} else if user.ID == 1 { } else if user.ID == 1 {
assert.Equal(t, "20 seconds", time) assert.EqualValues(t, 20, time)
} else { } else {
assert.Error(t, assert.AnError) assert.Error(t, assert.AnError)
} }
@ -107,8 +107,8 @@ func TestTotalTimes(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
assert.Len(t, total, 1) assert.Len(t, total, 1)
for user, time := range total { for user, time := range total {
assert.Equal(t, int64(2), user.ID) assert.EqualValues(t, 2, user.ID)
assert.Equal(t, "1 second", time) assert.EqualValues(t, 1, time)
} }
total, err = issues_model.TotalTimes(&issues_model.FindTrackedTimesOptions{IssueID: 4}) total, err = issues_model.TotalTimes(&issues_model.FindTrackedTimesOptions{IssueID: 4})

View file

@ -340,7 +340,7 @@
<div class="content"> <div class="content">
{{template "shared/user/authorlink" $user}} {{template "shared/user/authorlink" $user}}
<div class="text"> <div class="text">
{{$trackedtime}} {{$trackedtime|Sec2Time}}
</div> </div>
</div> </div>
</div> </div>