code.gitea.io/gitea@v1.22.3/models/repo/issue.go (about)

     1  // Copyright 2017 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package repo
     5  
     6  import (
     7  	"context"
     8  
     9  	"code.gitea.io/gitea/models/unit"
    10  	"code.gitea.io/gitea/modules/log"
    11  	"code.gitea.io/gitea/modules/setting"
    12  )
    13  
    14  // ___________.__             ___________                     __
    15  // \__    ___/|__| _____   ___\__    ___/___________    ____ |  | __ ___________
    16  // |    |   |  |/     \_/ __ \|    |  \_  __ \__  \ _/ ___\|  |/ // __ \_  __ \
    17  // |    |   |  |  Y Y  \  ___/|    |   |  | \// __ \\  \___|    <\  ___/|  | \/
    18  // |____|   |__|__|_|  /\___  >____|   |__|  (____  /\___  >__|_ \\___  >__|
    19  // \/     \/                    \/     \/     \/    \/
    20  
    21  // CanEnableTimetracker returns true when the server admin enabled time tracking
    22  // This overrules IsTimetrackerEnabled
    23  func (repo *Repository) CanEnableTimetracker() bool {
    24  	return setting.Service.EnableTimetracking
    25  }
    26  
    27  // IsTimetrackerEnabled returns whether or not the timetracker is enabled. It returns the default value from config if an error occurs.
    28  func (repo *Repository) IsTimetrackerEnabled(ctx context.Context) bool {
    29  	if !setting.Service.EnableTimetracking {
    30  		return false
    31  	}
    32  
    33  	var u *RepoUnit
    34  	var err error
    35  	if u, err = repo.GetUnit(ctx, unit.TypeIssues); err != nil {
    36  		return setting.Service.DefaultEnableTimetracking
    37  	}
    38  	return u.IssuesConfig().EnableTimetracker
    39  }
    40  
    41  // AllowOnlyContributorsToTrackTime returns value of IssuesConfig or the default value
    42  func (repo *Repository) AllowOnlyContributorsToTrackTime(ctx context.Context) bool {
    43  	var u *RepoUnit
    44  	var err error
    45  	if u, err = repo.GetUnit(ctx, unit.TypeIssues); err != nil {
    46  		return setting.Service.DefaultAllowOnlyContributorsToTrackTime
    47  	}
    48  	return u.IssuesConfig().AllowOnlyContributorsToTrackTime
    49  }
    50  
    51  // IsDependenciesEnabled returns if dependencies are enabled and returns the default setting if not set.
    52  func (repo *Repository) IsDependenciesEnabled(ctx context.Context) bool {
    53  	var u *RepoUnit
    54  	var err error
    55  	if u, err = repo.GetUnit(ctx, unit.TypeIssues); err != nil {
    56  		log.Trace("IsDependenciesEnabled: %v", err)
    57  		return setting.Service.DefaultEnableDependencies
    58  	}
    59  	return u.IssuesConfig().EnableDependencies
    60  }