fix(kanban): don't prevent setting a different bucket as done bucket
Resolves https://kolaente.dev/vikunja/frontend/issues/3373
This commit is contained in:
parent
769b4f8d66
commit
edbfc06a41
@ -293,10 +293,14 @@ func (b *Bucket) Update(s *xorm.Session, _ web.Auth) (err error) {
|
||||
}
|
||||
|
||||
if doneBucket != nil && doneBucket.IsDoneBucket && b.IsDoneBucket && doneBucket.ID != b.ID {
|
||||
return &ErrOnlyOneDoneBucketPerProject{
|
||||
BucketID: b.ID,
|
||||
ProjectID: b.ProjectID,
|
||||
DoneBucketID: doneBucket.ID,
|
||||
// When the current bucket will be the new done bucket, the old one should not be the done bucket anymore
|
||||
doneBucket.IsDoneBucket = false
|
||||
_, err = s.
|
||||
Where("id = ?", doneBucket.ID).
|
||||
Cols("is_done_bucket").
|
||||
Update(doneBucket)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ func TestBucket_Update(t *testing.T) {
|
||||
|
||||
testAndAssertBucketUpdate(t, b, s)
|
||||
})
|
||||
t.Run("only one done bucket per project", func(t *testing.T) {
|
||||
t.Run("old done bucket should be unset", func(t *testing.T) {
|
||||
db.LoadAndAssertFixtures(t)
|
||||
s := db.NewSession()
|
||||
defer s.Close()
|
||||
@ -229,7 +229,16 @@ func TestBucket_Update(t *testing.T) {
|
||||
}
|
||||
|
||||
err := b.Update(s, &user.User{ID: 1})
|
||||
assert.Error(t, err)
|
||||
assert.True(t, IsErrOnlyOneDoneBucketPerProject(err))
|
||||
assert.NoError(t, err)
|
||||
db.AssertExists(t, "buckets", map[string]interface{}{
|
||||
"id": 1,
|
||||
"project_id": 1,
|
||||
"is_done_bucket": true,
|
||||
}, false)
|
||||
db.AssertExists(t, "buckets", map[string]interface{}{
|
||||
"id": 3,
|
||||
"project_id": 1,
|
||||
"is_done_bucket": false,
|
||||
}, false)
|
||||
})
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user