Skip to content

Commit 40f1aa2

Browse files
committed
fix label count
1 parent 5a438ee commit 40f1aa2

26 files changed

+358
-314
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ require (
4848
github.com/go-redis/redis v6.15.2+incompatible
4949
github.com/go-sql-driver/mysql v1.4.1
5050
github.com/go-swagger/go-swagger v0.20.1
51-
github.com/go-xorm/xorm v0.7.7-0.20190822154023-17592d96b35b
51+
github.com/go-xorm/xorm v0.7.8-0.20190923153426-6d1191376545
5252
github.com/gobwas/glob v0.2.3
5353
github.com/gogits/chardet v0.0.0-20150115103509-2404f7772561
5454
github.com/gogs/cron v0.0.0-20171120032916-9f6c956d3e14
@@ -124,6 +124,6 @@ require (
124124
gopkg.in/testfixtures.v2 v2.5.0
125125
mvdan.cc/xurls/v2 v2.0.0
126126
strk.kbt.io/projects/go/libravatar v0.0.0-20160628055650-5eed7bff870a
127-
xorm.io/builder v0.3.5
127+
xorm.io/builder v0.3.6
128128
xorm.io/core v0.7.0
129129
)

go.sum

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,10 +250,13 @@ github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013/go.m
250250
github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:9wScpmSP5A3Bk8V3XHWUcJmYTh+ZnlHVyc+A4oZYS3Y=
251251
github.com/go-xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:56xuuqnHyryaerycW3BfssRdxQstACi0Epw/yC5E2xM=
252252
github.com/go-xorm/xorm v0.7.6/go.mod h1:nqz2TAsuOHWH2yk4FYWtacCGgdbrcdZ5mF1XadqEHls=
253-
github.com/go-xorm/xorm v0.7.7-0.20190822154023-17592d96b35b h1:Y0hWUheXDHpIs7BWtJcykO4d1VOsVDKg1PsP5YJwxxM=
254-
github.com/go-xorm/xorm v0.7.7-0.20190822154023-17592d96b35b/go.mod h1:nqz2TAsuOHWH2yk4FYWtacCGgdbrcdZ5mF1XadqEHls=
253+
github.com/go-xorm/xorm v0.7.7-0.20190906141504-57a7e4421e87 h1:vWBG8ItvL5knPwn2Y9WHHreK/YOWfIvhOvVZL7rYwtc=
254+
github.com/go-xorm/xorm v0.7.7-0.20190906141504-57a7e4421e87/go.mod h1:naX9gqm6RkYnlRkV+dY8Ysjiknn2DofS930iRgBLaCE=
255+
github.com/go-xorm/xorm v0.7.8-0.20190923153426-6d1191376545 h1:b3qn2nZKxoG2hsi6cJpSV0ylNJSQfB+nQ9vYL9uxYBU=
256+
github.com/go-xorm/xorm v0.7.8-0.20190923153426-6d1191376545/go.mod h1:RSsmsVARCy4sayuKWFPaVNQMPYGLNRIK71YIVvgImL0=
255257
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
256258
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
259+
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
257260
github.com/gogits/chardet v0.0.0-20150115103509-2404f7772561 h1:deE7ritpK04PgtpyVOS2TYcQEld9qLCD5b5EbVNOuLA=
258261
github.com/gogits/chardet v0.0.0-20150115103509-2404f7772561/go.mod h1:YgYOrVn3Nj9Tq0EvjmFbphRytDj7JNRoWSStJZWDJTQ=
259262
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -340,6 +343,7 @@ github.com/jackc/pgx v3.3.0+incompatible h1:Wa90/+qsITBAPkAZjiByeIGHFcj3Ztu+Vzrr
340343
github.com/jackc/pgx v3.3.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
341344
github.com/jackc/pgx v3.5.0+incompatible h1:BRJ4G3UPtvml5R1ey0biqqGuYUGayMYekm3woO75orY=
342345
github.com/jackc/pgx v3.5.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
346+
github.com/jackc/pgx v3.6.0+incompatible/go.mod h1:0ZGrqGqkRlliWnWB4zKnWtjbSWbGkVEFm4TeybAXq+I=
343347
github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4=
344348
github.com/jaytaylor/html2text v0.0.0-20160923191438-8fb95d837f7d h1:ig/iUfDDg06RVW8OMby+GrmW6K2nPO3AFHlEIdvJSd4=
345349
github.com/jaytaylor/html2text v0.0.0-20160923191438-8fb95d837f7d/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=
@@ -818,5 +822,9 @@ strk.kbt.io/projects/go/libravatar v0.0.0-20160628055650-5eed7bff870a h1:8q33Shx
818822
strk.kbt.io/projects/go/libravatar v0.0.0-20160628055650-5eed7bff870a/go.mod h1:FJGmPh3vz9jSos1L/F91iAgnC/aejc0wIIrF2ZwJxdY=
819823
xorm.io/builder v0.3.5 h1:EilU39fvWDxjb1cDaELpYhsF+zziRBhew8xk4pngO+A=
820824
xorm.io/builder v0.3.5/go.mod h1:ZFbByS/KxZI1FKRjL05PyJ4YrK2bcxlUaAxdum5aTR8=
825+
xorm.io/builder v0.3.6-0.20190906062455-b937eb46ecfb h1:2idZcp79ldX5qLeQ6WKCdS7aEFNOMvQc9wrtt5hSRwM=
826+
xorm.io/builder v0.3.6-0.20190906062455-b937eb46ecfb/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU=
827+
xorm.io/builder v0.3.6 h1:ha28mQ2M+TFx96Hxo+iq6tQgnkC9IZkM6D8w9sKHHF8=
828+
xorm.io/builder v0.3.6/go.mod h1:LEFAPISnRzG+zxaxj2vPicRwz67BdhFreKg8yv8/TgU=
821829
xorm.io/core v0.7.0 h1:hKxuOKWZNeiFQsSuGet/KV8HZ788hclvAl+7azx3tkM=
822830
xorm.io/core v0.7.0/go.mod h1:TuOJjIVa7e3w/rN8tDcAvuLBMtwzdHPbyOzE6Gk1EUI=

models/issue.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -760,11 +760,6 @@ func (issue *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (er
760760
return err
761761
}
762762
for idx := range issue.Labels {
763-
if issue.IsClosed {
764-
issue.Labels[idx].NumClosedIssues++
765-
} else {
766-
issue.Labels[idx].NumClosedIssues--
767-
}
768763
if err = updateLabel(e, issue.Labels[idx]); err != nil {
769764
return err
770765
}

models/issue_label.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"strings"
1313

1414
api "code.gitea.io/gitea/modules/structs"
15+
"xorm.io/builder"
1516

1617
"github.com/go-xorm/xorm"
1718
)
@@ -294,7 +295,20 @@ func GetLabelsByIssueID(issueID int64) ([]*Label, error) {
294295
}
295296

296297
func updateLabel(e Engine, l *Label) error {
297-
_, err := e.ID(l.ID).AllCols().Update(l)
298+
_, err := e.ID(l.ID).
299+
SetExpr("num_issues",
300+
builder.Select("count(*)").From("issue_label").
301+
Where(builder.Eq{"label_id": l.ID}),
302+
).
303+
SetExpr("num_closed_issues",
304+
builder.Select("count(*)").From("issue_label").
305+
InnerJoin("issue", "issue_label.issue_id = issue.id").
306+
Where(builder.Eq{
307+
"issue_label.label_id": l.ID,
308+
"issue.is_closed": true,
309+
}),
310+
).
311+
AllCols().Update(l)
298312
return err
299313
}
300314

@@ -375,10 +389,6 @@ func newIssueLabel(e *xorm.Session, issue *Issue, label *Label, doer *User) (err
375389
return err
376390
}
377391

378-
label.NumIssues++
379-
if issue.IsClosed {
380-
label.NumClosedIssues++
381-
}
382392
return updateLabel(e, label)
383393
}
384394

@@ -448,10 +458,6 @@ func deleteIssueLabel(e *xorm.Session, issue *Issue, label *Label, doer *User) (
448458
return err
449459
}
450460

451-
label.NumIssues--
452-
if issue.IsClosed {
453-
label.NumClosedIssues--
454-
}
455461
return updateLabel(e, label)
456462
}
457463

0 commit comments

Comments
 (0)