summaryrefslogtreecommitdiffstats
path: root/models/repo/issue.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo/issue.go')
-rw-r--r--models/repo/issue.go67
1 files changed, 67 insertions, 0 deletions
diff --git a/models/repo/issue.go b/models/repo/issue.go
new file mode 100644
index 0000000000..3edcc7b5a0
--- /dev/null
+++ b/models/repo/issue.go
@@ -0,0 +1,67 @@
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package repo
+
+import (
+ "context"
+
+ "code.gitea.io/gitea/models/db"
+ "code.gitea.io/gitea/models/unit"
+ "code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/setting"
+)
+
+// ___________.__ ___________ __
+// \__ ___/|__| _____ ___\__ ___/___________ ____ | | __ ___________
+// | | | |/ \_/ __ \| | \_ __ \__ \ _/ ___\| |/ // __ \_ __ \
+// | | | | Y Y \ ___/| | | | \// __ \\ \___| <\ ___/| | \/
+// |____| |__|__|_| /\___ >____| |__| (____ /\___ >__|_ \\___ >__|
+// \/ \/ \/ \/ \/ \/
+
+// CanEnableTimetracker returns true when the server admin enabled time tracking
+// This overrules IsTimetrackerEnabled
+func (repo *Repository) CanEnableTimetracker() bool {
+ return setting.Service.EnableTimetracking
+}
+
+// IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs.
+func (repo *Repository) IsTimetrackerEnabled() bool {
+ if !setting.Service.EnableTimetracking {
+ return false
+ }
+
+ var u *RepoUnit
+ var err error
+ if u, err = repo.GetUnit(unit.TypeIssues); err != nil {
+ return setting.Service.DefaultEnableTimetracking
+ }
+ return u.IssuesConfig().EnableTimetracker
+}
+
+// AllowOnlyContributorsToTrackTime returns value of IssuesConfig or the default value
+func (repo *Repository) AllowOnlyContributorsToTrackTime() bool {
+ var u *RepoUnit
+ var err error
+ if u, err = repo.GetUnit(unit.TypeIssues); err != nil {
+ return setting.Service.DefaultAllowOnlyContributorsToTrackTime
+ }
+ return u.IssuesConfig().AllowOnlyContributorsToTrackTime
+}
+
+// IsDependenciesEnabled returns if dependencies are enabled and returns the default setting if not set.
+func (repo *Repository) IsDependenciesEnabled() bool {
+ return repo.IsDependenciesEnabledCtx(db.DefaultContext)
+}
+
+// IsDependenciesEnabledCtx returns if dependencies are enabled and returns the default setting if not set.
+func (repo *Repository) IsDependenciesEnabledCtx(ctx context.Context) bool {
+ var u *RepoUnit
+ var err error
+ if u, err = repo.getUnit(ctx, unit.TypeIssues); err != nil {
+ log.Trace("%s", err)
+ return setting.Service.DefaultEnableDependencies
+ }
+ return u.IssuesConfig().EnableDependencies
+}