summaryrefslogtreecommitdiffstats
path: root/models/project/project.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/project/project.go')
-rw-r--r--models/project/project.go34
1 files changed, 29 insertions, 5 deletions
diff --git a/models/project/project.go b/models/project/project.go
index 9074fd0c15..931ef44675 100644
--- a/models/project/project.go
+++ b/models/project/project.go
@@ -19,12 +19,18 @@ import (
)
type (
- // ProjectsConfig is used to identify the type of board that is being created
- ProjectsConfig struct {
+ // BoardConfig is used to identify the type of board that is being created
+ BoardConfig struct {
BoardType BoardType
Translation string
}
+ // CardConfig is used to identify the type of board card that is being used
+ CardConfig struct {
+ CardType CardType
+ Translation string
+ }
+
// Type is used to identify the type of project in question and ownership
Type uint8
)
@@ -91,6 +97,7 @@ type Project struct {
CreatorID int64 `xorm:"NOT NULL"`
IsClosed bool `xorm:"INDEX"`
BoardType BoardType
+ CardType CardType
Type Type
RenderedContent string `xorm:"-"`
@@ -145,15 +152,23 @@ func init() {
db.RegisterModel(new(Project))
}
-// GetProjectsConfig retrieves the types of configurations projects could have
-func GetProjectsConfig() []ProjectsConfig {
- return []ProjectsConfig{
+// GetBoardConfig retrieves the types of configurations project boards could have
+func GetBoardConfig() []BoardConfig {
+ return []BoardConfig{
{BoardTypeNone, "repo.projects.type.none"},
{BoardTypeBasicKanban, "repo.projects.type.basic_kanban"},
{BoardTypeBugTriage, "repo.projects.type.bug_triage"},
}
}
+// GetCardConfig retrieves the types of configurations project board cards could have
+func GetCardConfig() []CardConfig {
+ return []CardConfig{
+ {CardTypeTextOnly, "repo.projects.card_type.text_only"},
+ {CardTypeImagesAndText, "repo.projects.card_type.images_and_text"},
+ }
+}
+
// IsTypeValid checks if a project type is valid
func IsTypeValid(p Type) bool {
switch p {
@@ -237,6 +252,10 @@ func NewProject(p *Project) error {
p.BoardType = BoardTypeNone
}
+ if !IsCardTypeValid(p.CardType) {
+ p.CardType = CardTypeTextOnly
+ }
+
if !IsTypeValid(p.Type) {
return util.NewInvalidArgumentErrorf("project type is not valid")
}
@@ -280,9 +299,14 @@ func GetProjectByID(ctx context.Context, id int64) (*Project, error) {
// UpdateProject updates project properties
func UpdateProject(ctx context.Context, p *Project) error {
+ if !IsCardTypeValid(p.CardType) {
+ p.CardType = CardTypeTextOnly
+ }
+
_, err := db.GetEngine(ctx).ID(p.ID).Cols(
"title",
"description",
+ "card_type",
).Update(p)
return err
}