feat(views): add bucket configuration mode

This commit is contained in:
kolaente 2024-03-14 15:58:14 +01:00
parent 38457aaca5
commit a9020e976d
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 39 additions and 8 deletions

View File

@ -22,15 +22,24 @@ import (
"xorm.io/xorm"
)
type projectViewBucketConfiguration20240313230538 struct {
Title string
Filter string
}
type projectView20240313230538 struct {
ID int64 `xorm:"autoincr not null unique pk" json:"id" param:"view"`
Title string `xorm:"varchar(255) not null" json:"title" valid:"runelength(1|250)"`
ProjectID int64 `xorm:"not null index" json:"project_id" param:"project"`
ViewKind int `xorm:"not null" json:"view_kind"`
Filter string `xorm:"text null default null" query:"filter" json:"filter"`
Position float64 `xorm:"double null" json:"position"`
Updated time.Time `xorm:"updated not null" json:"updated"`
Created time.Time `xorm:"created not null" json:"created"`
ID int64 `xorm:"autoincr not null unique pk" json:"id" param:"view"`
Title string `xorm:"varchar(255) not null" json:"title" valid:"runelength(1|250)"`
ProjectID int64 `xorm:"not null index" json:"project_id" param:"project"`
ViewKind int `xorm:"not null" json:"view_kind"`
Filter string `xorm:"text null default null" query:"filter" json:"filter"`
Position float64 `xorm:"double null" json:"position"`
BucketConfigurationMode int `xorm:"default 0" json:"bucket_configuration_mode"`
BucketConfiguration []*projectViewBucketConfiguration20240313230538 `xorm:"json" json:"bucket_configuration"`
Updated time.Time `xorm:"updated not null" json:"updated"`
Created time.Time `xorm:"created not null" json:"created"`
}
func (projectView20240313230538) TableName() string {
@ -77,6 +86,10 @@ func init() {
Position: position,
}
if kind == 3 {
view.BucketConfigurationMode = 1
}
_, err := tx.Insert(view)
return err
}

View File

@ -31,6 +31,19 @@ const (
ProjectViewKindKanban
)
type BucketConfigurationModeKind int
const (
BucketConfigurationModeNone BucketConfigurationModeKind = iota
BucketConfigurationModeManual
BucketConfigurationModeFilter
)
type ProjectViewBucketConfiguration struct {
Title string
Filter string
}
type ProjectView struct {
// The unique numeric id of this view
ID int64 `xorm:"autoincr not null unique pk" json:"id" param:"view"`
@ -46,6 +59,11 @@ type ProjectView struct {
// The position of this view in the list. The list of all views will be sorted by this parameter.
Position float64 `xorm:"double null" json:"position"`
// The bucket configuration mode. Can be `none`, `manual` or `filter`. `manual` allows to move tasks between buckets as you normally would. `filter` creates buckets based on a filter for each bucket.
BucketConfigurationMode BucketConfigurationModeKind `xorm:"default 0" json:"bucket_configuration_mode"`
// When the bucket configuration mode is not `manual`, this field holds the options of that configuration.
BucketConfiguration []*ProjectViewBucketConfiguration `xorm:"json" json:"bucket_configuration"`
// A timestamp when this view was updated. You cannot change this value.
Updated time.Time `xorm:"updated not null" json:"updated"`
// A timestamp when this reaction was created. You cannot change this value.