0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-12-27 01:44:10 -05:00

Merge pull request #309 from nuss-justin/trello/244

[Trello#244] Mention all members of team by mention team name
This commit is contained in:
无闻 2014-07-24 13:25:00 -04:00
commit 87855d42a0
2 changed files with 46 additions and 6 deletions

View file

@ -562,3 +562,45 @@ func UnFollowUser(userId int64, unFollowId int64) (err error) {
} }
return session.Commit() return session.Commit()
} }
func UpdateMentions(userNames []string, issueId int64) error {
users := make([]*User, 0, len(userNames))
if err := x.Where("name IN (?)", strings.Join(userNames, "\",\"")).OrderBy("name ASC").Find(&users); err != nil {
return err
}
ids := make([]int64, 0, len(userNames))
for _, user := range users {
ids = append(ids, user.Id)
if user.Type == INDIVIDUAL {
continue
}
if user.NumMembers == 0 {
continue
}
tempIds := make([]int64, 0, user.NumMembers)
orgUsers, err := GetOrgUsersByOrgId(user.Id)
if err != nil {
return err
}
for _, orgUser := range orgUsers {
tempIds = append(tempIds, orgUser.Id)
}
ids = append(ids, tempIds...)
}
if err := UpdateIssueUserPairsByMentions(ids, issueId); err != nil {
return err
}
return nil
}

View file

@ -252,9 +252,8 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C
ms[i] = ms[i][1:] ms[i] = ms[i][1:]
} }
ids := models.GetUserIdsByNames(ms) if err := models.UpdateMentions(ms, issue.Id); err != nil {
if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil { ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err)
ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err)
return return
} }
} }
@ -771,9 +770,8 @@ func Comment(ctx *middleware.Context, params martini.Params) {
ms[i] = ms[i][1:] ms[i] = ms[i][1:]
} }
ids := models.GetUserIdsByNames(ms) if err := models.UpdateMentions(ms, issue.Id); err != nil {
if err := models.UpdateIssueUserPairsByMentions(ids, issue.Id); err != nil { ctx.Handle(500, "issue.CreateIssue(UpdateMentions)", err)
ctx.Handle(500, "issue.CreateIssue(UpdateIssueUserPairsByMentions)", err)
return return
} }
} }