Skip to content

Commit

Permalink
Show reviews labels - Review required, Approved and Changes requested…
Browse files Browse the repository at this point in the history
… - in the pull request lists. Related to issue go-gitea#8257
  • Loading branch information
oscarcosta committed Dec 7, 2019
1 parent e3081c6 commit d9f1bbf
Show file tree
Hide file tree
Showing 19 changed files with 97 additions and 1 deletion.
14 changes: 14 additions & 0 deletions models/branches.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,20 @@ func (protectBranch *ProtectedBranch) GetGrantedApprovalsCount(pr *PullRequest)
return approvals
}

// GetRejectedReviewsCount returns the number of rejected reviews for pr.
func (protectBranch *ProtectedBranch) GetRejectedReviewsCount(pr *PullRequest) int64 {
rejects, err := x.Where("issue_id = ?", pr.Issue.ID).
And("type = ?", ReviewTypeReject).
And("official = ?", true).
Count(new(Review))
if err != nil {
log.Error("GetRejectedReviewsCount: %v", err)
return 0
}

return rejects
}

// GetProtectedBranchByRepoID getting protected branch by repo ID
func GetProtectedBranchByRepoID(repoID int64) ([]*ProtectedBranch, error) {
protectedBranches := make([]*ProtectedBranch, 0)
Expand Down
3 changes: 3 additions & 0 deletions models/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,9 @@ func (issue *Issue) loadPullRequest(e Engine) (err error) {
}
issue.PullRequest.Issue = issue
}
if issue.PullRequest != nil && issue.PullRequest.Issue == nil {
issue.PullRequest.Issue = issue
}
return nil
}

Expand Down
31 changes: 31 additions & 0 deletions models/pull.go
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,37 @@ func (pr *PullRequest) loadProtectedBranch(e Engine) (err error) {
return
}

func (pr *PullRequest) requiredApprovals() int64 {
if pr.ProtectedBranch == nil {
if err := pr.loadProtectedBranch(x); err != nil {
log.Error("Error loading ProtectedBranch", err)
}
}
if pr.ProtectedBranch != nil {
return pr.ProtectedBranch.RequiredApprovals
}
return 0
}

// RequiresApproval returns true if this pull request requires approval, otherwise returns false
func (pr *PullRequest) RequiresApproval() bool {
return pr.requiredApprovals() > 0
}

// GetReviewLabel returns the localization label for the review of this pull request
func (pr *PullRequest) GetReviewLabel() string {
if pr.RequiresApproval() {
if pr.ProtectedBranch.HasEnoughApprovals(pr) {
return "repo.pulls.review_approved"
}
if pr.ProtectedBranch.GetRejectedReviewsCount(pr) > 0 {
return "repo.pulls.review_rejected"
}
return "repo.pulls.review_required"
}
return "repo.pulls.review_approved" // by default
}

// GetDefaultMergeMessage returns default message used when merging pull request
func (pr *PullRequest) GetDefaultMergeMessage() string {
if pr.HeadRepo == nil {
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_cs-CZ.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1047,6 +1047,9 @@ pulls.open_unmerged_pull_exists=`Nemůžete provést operaci znovuotevření pro
pulls.status_checking=Některé kontroly jsou nedořešeny
pulls.status_checks_success=Všechny kontroly byly úspěšné
pulls.status_checks_error=Některé kontroly selhaly
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Nový milník
milestones.open_tab=%d otevřených
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_de-DE.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,9 @@ pulls.open_unmerged_pull_exists=`Du kannst diesen Pull-Request nicht erneut öff
pulls.status_checking=Einige Prüfungen sind noch ausstehend
pulls.status_checks_success=Alle Prüfungen waren erfolgreich
pulls.status_checks_error=Einige Prüfungen sind fehlgeschlagen
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Neuer Meilenstein
milestones.open_tab=%d offen
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_en-US.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1070,6 +1070,9 @@ pulls.open_unmerged_pull_exists = `You cannot perform a reopen operation because
pulls.status_checking = Some checks are pending
pulls.status_checks_success = All checks were successful
pulls.status_checks_error = Some checks failed
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested
milestones.new = New Milestone
milestones.open_tab = %d Open
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_es-ES.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1041,6 +1041,9 @@ pulls.open_unmerged_pull_exists=`No puede realizar la reapertura porque hay un p
pulls.status_checking=Algunas comprobaciones están pendientes
pulls.status_checks_success=Todas las comprobaciones han sido exitosas
pulls.status_checks_error=Algunas comprobaciones han fallado
pulls.review_required = Revisión requerida
pulls.review_approved = Aprobada
pulls.review_rejected = Cambios solicitados

milestones.new=Nuevo hito
milestones.open_tab=%d abiertas
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_fa-IR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1022,6 +1022,9 @@ pulls.open_unmerged_pull_exists=`شما نمی‌توانید یک عملیات
pulls.status_checking=برخی از بررسی‎ها در حال تعلیق هستند
pulls.status_checks_success=تمامی بررسی‎ها موفق بودند
pulls.status_checks_error=برخی بررسی‎ها با مشکل مواجه شد
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=نقطه عطف جدید
milestones.open_tab=%d باز شد
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_fr-FR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@ pulls.open_unmerged_pull_exists=`Vous ne pouvez pas ré-ouvrir cette demande de
pulls.status_checking=Certains contrôles sont en attente
pulls.status_checks_success=Tous les contrôles ont réussi
pulls.status_checks_error=Certains contrôles ont échoué
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested
milestones.new=Nouveau jalon
milestones.open_tab=%d Ouvert
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_ja-JP.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`同じ条件のプルリクエスト (#%d) が
pulls.status_checking=いくつかの検証が待機中です
pulls.status_checks_success=検証はすべて成功しました
pulls.status_checks_error=検証がいくつか失敗しました
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=新しいマイルストーン
milestones.open_tab=%d件 オープン中
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_lv-LV.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1006,6 +1006,9 @@ pulls.open_unmerged_pull_exists=`Jūs nevarat veikt atkārtotas atvēršanas dar
pulls.status_checking=Dažas pārbaudes vēl tiek veiktas
pulls.status_checks_success=Visas pārbaudes ir veiksmīgas
pulls.status_checks_error=Dažas pārbaudes bija neveiksmīgas
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested

milestones.new=Jauns atskaites punkts
milestones.open_tab=%d atvērti
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_pl-PL.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,9 @@ pulls.open_unmerged_pull_exists=`Nie możesz wykonać operacji ponownego otwarci
pulls.status_checking=Niektóre etapy są w toku
pulls.status_checks_success=Wszystkie etapy powiodły się
pulls.status_checks_error=Niektóre etapy nie powiodły się
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested
milestones.new=Nowy kamień milowy
milestones.open_tab=Otwarte %d
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_pt-BR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`Não é possível executar uma operação de re
pulls.status_checking=Algumas verificações estão pendentes
pulls.status_checks_success=Todas as verificações foram bem sucedidas
pulls.status_checks_error=Algumas verificações falharam
pulls.review_required = Revisão requerida
pulls.review_approved = Aprovado
pulls.review_rejected = Alterações solicitadas

milestones.new=Novo marco
milestones.open_tab=%d Aberto
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_tr-TR.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1012,6 +1012,9 @@ pulls.open_unmerged_pull_exists=`Aynı özelliklere sahip bekleyen bir çekme is
pulls.status_checking=Bazı denetlemeler beklemede
pulls.status_checks_success=Tüm denetlemeler başarılı oldu
pulls.status_checks_error=Bazı denetlemeler başarısız oldu
pulls.review_required = Review required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested
milestones.new=Yeni Kilometre Taşı
milestones.open_tab=%d Açık
Expand Down
3 changes: 3 additions & 0 deletions options/locale/locale_zh-CN.ini
Original file line number Diff line number Diff line change
Expand Up @@ -1069,6 +1069,9 @@ pulls.open_unmerged_pull_exists=`您不能执行重新打开操作, 因为已经
pulls.status_checking=一些检测仍在等待运行
pulls.status_checks_success=所有检测均成功
pulls.status_checks_error=一些检测失败
pulls.review_required = Review Required
pulls.review_approved = Approved
pulls.review_rejected = Changes requested
milestones.new=新的里程碑
milestones.open_tab=%d 开启中
Expand Down
4 changes: 4 additions & 0 deletions routers/user/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,10 @@ func Issues(ctx *context.Context) {
issue.Repo = showReposMap[issue.RepoID]

if isPullList {
if err := issue.LoadPullRequest(); err != nil {
ctx.ServerError("LoadPullRequest", err)
return
}
commitStatus[issue.PullRequest.ID], _ = issue.PullRequest.GetLastCommitStatus()
}
}
Expand Down
4 changes: 3 additions & 1 deletion templates/repo/issue/list.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName | Escape) | Safe}}
{{end}}

{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{$.Link}}/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Milestone}}
<a class="milestone" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
Expand Down
3 changes: 3 additions & 0 deletions templates/repo/issue/milestone_issues.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName|Escape) | Safe}}
{{end}}
{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{$.RepoLink}}/issues/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Ref}}
<a class="ref" href="{{$.RepoLink}}/src/branch/{{.Ref}}">
<span class="octicon octicon-git-branch"></span> {{.Ref}}
Expand Down
3 changes: 3 additions & 0 deletions templates/user/dashboard/issues.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@
{{else}}
{{$.i18n.Tr .GetLastEventLabelFake $timeStr (.Poster.GetDisplayName|Escape) | Safe}}
{{end}}
{{if .IsPull }}{{if .PullRequest.RequiresApproval }}
&bull; <a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}/issues/{{.Index}}">{{$.i18n.Tr .PullRequest.GetReviewLabel }}</a>
{{end}}{{end}}
{{if .Milestone}}
<a class="milestone" href="{{AppSubUrl}}/{{.Repo.Owner.Name}}/{{.Repo.Name}}{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{$.SelectLabels}}&milestone={{.Milestone.ID}}&assignee={{$.AssigneeID}}">
<span class="octicon octicon-milestone"></span> {{.Milestone.Name}}
Expand Down

0 comments on commit d9f1bbf

Please sign in to comment.