Moved methods to get issue dependencies for a given issue from repo to issue

+ Simplified both.
This commit is contained in:
Konrad Langenberg 2017-11-14 22:04:46 +01:00 committed by Konrad
parent 6109fcf49a
commit 85cdd94d92
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
3 changed files with 44 additions and 44 deletions

View File

@ -1447,3 +1447,45 @@ func updateIssue(e Engine, issue *Issue) error {
func UpdateIssue(issue *Issue) error {
return updateIssue(x, issue)
}
// Get Blocked By Dependencies, aka all issues this issue is blocked by.
func (issue *Issue) getBlockedByDependencies(e Engine) (_ []*Issue, err error) {
var issueDeps []*Issue
if err = x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
Where("issue_id = ?", issue.ID).
Find(&issueDeps); err != nil {
return issueDeps, err
}
return issueDeps, nil
}
// Get Blocking Dependencies, aka all issues this issue blocks.
func (issue *Issue) getBlockingDependencies(e Engine) ([]*Issue, error) {
var issueDeps []*Issue
if err := x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.issue_id").
Where("dependency_id = ?", issue.ID).
Find(&issueDeps); err != nil {
return issueDeps, err
}
return issueDeps, nil
}
// BlockedByDependencies finds all Dependencies an issue is blocked by
func (issue *Issue) BlockedByDependencies() (_ []*Issue, err error) {
return issue.getBlockedByDependencies(x)
}
// BlockingDependencies returns all blocking dependencies, aka all other issues a given issue blocks
func (issue *Issue) BlockingDependencies() (_ []*Issue, err error) {
return issue.getBlockingDependencies(x)
}

View File

@ -733,16 +733,6 @@ func (repo *Repository) getUsersWithAccessMode(e Engine, mode AccessMode) (_ []*
return users, nil
}
// BlockedByDependencies finds all Dependencies an issue is blocked by
func (repo *Repository) BlockedByDependencies(issueID int64) (_ []*Issue, err error) {
return repo.getBlockedByDependencies(x, issueID)
}
// BlockingDependencies returns all blocking dependencies
func (repo *Repository) BlockingDependencies(issueID int64) (_ []*Issue, err error) {
return repo.getBlockingDependencies(x, issueID)
}
// NextIssueIndex returns the next issue index
// FIXME: should have a mutex to prevent producing same index for two issues that are created
// closely enough.
@ -2452,35 +2442,3 @@ func (repo *Repository) GetUserFork(userID int64) (*Repository, error) {
}
return &forkedRepo, nil
}
// Get Blocked By Dependencies, aka all issues this issue is blocked by.
func (repo *Repository) getBlockedByDependencies(e Engine, issueID int64) (_ []*Issue, err error) {
var issueDeps []*Issue
if err = x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.dependency_id").
Where("issue_id = ?", issueID).
Find(&issueDeps); err != nil {
return issueDeps, err
}
return issueDeps, nil
}
// Get Blocking Dependencies, aka all issues this issue blocks.
func (repo *Repository) getBlockingDependencies(e Engine, issueID int64) ([]*Issue, error) {
var issueDeps []*Issue
if err := x.
Table("issue_dependency").
Select("issue.*").
Join("INNER", "issue", "issue.id = issue_dependency.issue_id").
Where("dependency_id = ?", issueID).
Find(&issueDeps); err != nil {
return issueDeps, err
}
return issueDeps, nil
}

View File

@ -715,8 +715,8 @@ func ViewIssue(ctx *context.Context) {
// Get Dependencies
ctx.Data["IssueDependenciesEnabled"] = repo.UnitEnabled(models.UnitTypeIssueDependencies)
ctx.Data["BlockedByDependencies"], err = repo.BlockedByDependencies(issue.ID)
ctx.Data["BlockingDependencies"], err = repo.BlockingDependencies(issue.ID)
ctx.Data["BlockedByDependencies"], err = issue.BlockedByDependencies()
ctx.Data["BlockingDependencies"], err = issue.BlockingDependencies()
ctx.Data["Participants"] = participants
ctx.Data["NumParticipants"] = len(participants)