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 {
|
if doneBucket != nil && doneBucket.IsDoneBucket && b.IsDoneBucket && doneBucket.ID != b.ID {
|
||||||
return &ErrOnlyOneDoneBucketPerProject{
|
// When the current bucket will be the new done bucket, the old one should not be the done bucket anymore
|
||||||
BucketID: b.ID,
|
doneBucket.IsDoneBucket = false
|
||||||
ProjectID: b.ProjectID,
|
_, err = s.
|
||||||
DoneBucketID: doneBucket.ID,
|
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)
|
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)
|
db.LoadAndAssertFixtures(t)
|
||||||
s := db.NewSession()
|
s := db.NewSession()
|
||||||
defer s.Close()
|
defer s.Close()
|
||||||
@ -229,7 +229,16 @@ func TestBucket_Update(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err := b.Update(s, &user.User{ID: 1})
|
err := b.Update(s, &user.User{ID: 1})
|
||||||
assert.Error(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, IsErrOnlyOneDoneBucketPerProject(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