summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorLanre Adelowo <yo@lanre.wtf>2020-08-17 04:07:38 +0100
committerGitHub <noreply@github.com>2020-08-16 23:07:38 -0400
commit4027c5dd7c11c1256094e202be591ec1b86a011e (patch)
tree49e361a50395f0496c49d52bfd571ee47c1ebf44 /modules
parentd285b5d35a44bf9fde0682532aeef9550f78cf83 (diff)
downloadgitea-4027c5dd7c11c1256094e202be591ec1b86a011e.tar.gz
gitea-4027c5dd7c11c1256094e202be591ec1b86a011e.zip
Kanban board (#8346)
Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com> Co-authored-by: Kerry <flatline-studios@users.noreply.github.com> Co-authored-by: Jaqra <jaqra@hotmail.com> Co-authored-by: Kyle Evans <kevans91@users.noreply.github.com> Co-authored-by: Tsakiridis Ilias <TsakiDev@users.noreply.github.com> Co-authored-by: Ilias Tsakiridis <ilias.tsakiridis@outlook.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules')
-rw-r--r--modules/auth/repo_form.go31
-rw-r--r--modules/context/repo.go1
-rw-r--r--modules/setting/project.go24
-rw-r--r--modules/setting/setting.go1
-rw-r--r--modules/structs/repo.go3
5 files changed, 60 insertions, 0 deletions
diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go
index 6c3421e4f7..696d3b9a53 100644
--- a/modules/auth/repo_form.go
+++ b/modules/auth/repo_form.go
@@ -128,6 +128,7 @@ type RepoSettingForm struct {
ExternalTrackerURL string
TrackerURLFormat string
TrackerIssueStyle string
+ EnableProjects bool
EnablePulls bool
PullsIgnoreWhitespace bool
PullsAllowMerge bool
@@ -364,6 +365,7 @@ type CreateIssueForm struct {
AssigneeIDs string `form:"assignee_ids"`
Ref string `form:"ref"`
MilestoneID int64
+ ProjectID int64
AssigneeID int64
Content string
Files []string
@@ -422,6 +424,35 @@ func (i IssueLockForm) HasValidReason() bool {
return false
}
+// __________ __ __
+// \______ \_______ ____ |__| ____ _____/ |_ ______
+// | ___/\_ __ \/ _ \ | |/ __ \_/ ___\ __\/ ___/
+// | | | | \( <_> ) | \ ___/\ \___| | \___ \
+// |____| |__| \____/\__| |\___ >\___ >__| /____ >
+// \______| \/ \/ \/
+
+// CreateProjectForm form for creating a project
+type CreateProjectForm struct {
+ Title string `binding:"Required;MaxSize(100)"`
+ Content string
+ BoardType models.ProjectBoardType
+}
+
+// UserCreateProjectForm is a from for creating an individual or organization
+// form.
+type UserCreateProjectForm struct {
+ Title string `binding:"Required;MaxSize(100)"`
+ Content string
+ BoardType models.ProjectBoardType
+ UID int64 `binding:"Required"`
+}
+
+// EditProjectBoardTitleForm is a form for editing the title of a project's
+// board
+type EditProjectBoardTitleForm struct {
+ Title string `binding:"Required;MaxSize(100)"`
+}
+
// _____ .__.__ __
// / \ |__| | ____ _______/ |_ ____ ____ ____
// / \ / \| | | _/ __ \ / ___/\ __\/ _ \ / \_/ __ \
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 5ebed0eb7e..4aac0c05aa 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -818,5 +818,6 @@ func UnitTypes() macaron.Handler {
ctx.Data["UnitTypeWiki"] = models.UnitTypeWiki
ctx.Data["UnitTypeExternalWiki"] = models.UnitTypeExternalWiki
ctx.Data["UnitTypeExternalTracker"] = models.UnitTypeExternalTracker
+ ctx.Data["UnitTypeProjects"] = models.UnitTypeProjects
}
}
diff --git a/modules/setting/project.go b/modules/setting/project.go
new file mode 100644
index 0000000000..56505b0ca4
--- /dev/null
+++ b/modules/setting/project.go
@@ -0,0 +1,24 @@
+// Copyright 2020 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 setting
+
+import "code.gitea.io/gitea/modules/log"
+
+// Project settings
+var (
+ Project = struct {
+ ProjectBoardBasicKanbanType []string
+ ProjectBoardBugTriageType []string
+ }{
+ ProjectBoardBasicKanbanType: []string{"To Do", "In Progress", "Done"},
+ ProjectBoardBugTriageType: []string{"Needs Triage", "High Priority", "Low Priority", "Closed"},
+ }
+)
+
+func newProject() {
+ if err := Cfg.Section("project").MapTo(&Project); err != nil {
+ log.Fatal("Failed to map Project settings: %v", err)
+ }
+}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index d77df2d75f..33854a2300 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -1124,4 +1124,5 @@ func NewServices() {
newIndexerService()
newTaskService()
NewQueueService()
+ newProject()
}
diff --git a/modules/structs/repo.go b/modules/structs/repo.go
index 2ff1a1ec26..217a6f74ad 100644
--- a/modules/structs/repo.go
+++ b/modules/structs/repo.go
@@ -82,6 +82,7 @@ type Repository struct {
HasWiki bool `json:"has_wiki"`
ExternalWiki *ExternalWiki `json:"external_wiki,omitempty"`
HasPullRequests bool `json:"has_pull_requests"`
+ HasProjects bool `json:"has_projects"`
IgnoreWhitespaceConflicts bool `json:"ignore_whitespace_conflicts"`
AllowMerge bool `json:"allow_merge_commits"`
AllowRebase bool `json:"allow_rebase"`
@@ -147,6 +148,8 @@ type EditRepoOption struct {
DefaultBranch *string `json:"default_branch,omitempty"`
// either `true` to allow pull requests, or `false` to prevent pull request.
HasPullRequests *bool `json:"has_pull_requests,omitempty"`
+ // either `true` to enable project unit, or `false` to disable them.
+ HasProjects *bool `json:"has_projects,omitempty"`
// either `true` to ignore whitespace for conflicts, or `false` to not ignore whitespace. `has_pull_requests` must be `true`.
IgnoreWhitespaceConflicts *bool `json:"ignore_whitespace_conflicts,omitempty"`
// either `true` to allow merging pull requests with a merge commit, or `false` to prevent merging pull requests with merge commits. `has_pull_requests` must be `true`.