diff options
author | Roberto Santalla <roobre@users.noreply.github.com> | 2021-01-20 20:53:48 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 21:53:48 +0200 |
commit | ef85bf84ee42678c1dcb3d6ea69565737c2f6eed (patch) | |
tree | 0c5c16a85733ba74c175a122feae2bd95a2655f8 /routers | |
parent | 172229966c9c69305d7b6b9b69552346343fe270 (diff) | |
download | gitea-ef85bf84ee42678c1dcb3d6ea69565737c2f6eed.tar.gz gitea-ef85bf84ee42678c1dcb3d6ea69565737c2f6eed.zip |
Project: show referenced PRs in issue cards (#14183)
Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/projects.go | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/routers/repo/projects.go b/routers/repo/projects.go index d3cdab6b75..4cff199b34 100644 --- a/routers/repo/projects.go +++ b/routers/repo/projects.go @@ -280,10 +280,32 @@ func ViewProject(ctx *context.Context) { boards[0].Title = ctx.Tr("repo.projects.type.uncategorized") } - if ctx.Data["Issues"], err = boards.LoadIssues(); err != nil { + issueList, err := boards.LoadIssues() + if err != nil { ctx.ServerError("LoadIssuesOfBoards", err) return } + ctx.Data["Issues"] = issueList + + linkedPrsMap := make(map[int64][]*models.Issue) + for _, issue := range issueList { + var referencedIds []int64 + for _, comment := range issue.Comments { + if comment.RefIssueID != 0 && comment.RefIsPull { + referencedIds = append(referencedIds, comment.RefIssueID) + } + } + + if len(referencedIds) > 0 { + if linkedPrs, err := models.Issues(&models.IssuesOptions{ + IssueIDs: referencedIds, + IsPull: util.OptionalBoolTrue, + }); err == nil { + linkedPrsMap[issue.ID] = linkedPrs + } + } + } + ctx.Data["LinkedPRs"] = linkedPrsMap project.RenderedContent = string(markdown.Render([]byte(project.Description), ctx.Repo.RepoLink, ctx.Repo.Repository.ComposeMetas())) |