summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorRoberto Santalla <roobre@users.noreply.github.com>2021-01-20 20:53:48 +0100
committerGitHub <noreply@github.com>2021-01-20 21:53:48 +0200
commitef85bf84ee42678c1dcb3d6ea69565737c2f6eed (patch)
tree0c5c16a85733ba74c175a122feae2bd95a2655f8 /routers
parent172229966c9c69305d7b6b9b69552346343fe270 (diff)
downloadgitea-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.go24
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()))