fix(migration): delete all default buckets when migration provides its own

Previously only the "To-Do" default bucket was deleted, leaving "Doing"
and "Done" as duplicates alongside migration-provided buckets. Now all
default-created buckets are removed when migration data already provides
bucket assignments for all tasks.
This commit is contained in:
kolaente
2026-04-07 13:58:31 +02:00
committed by kolaente
parent ccf1468884
commit e40877cca1

View File

@@ -466,7 +466,8 @@ func createProjectWithEverything(s *xorm.Session, project *models.ProjectWithTas
}
}
// All tasks brought their own bucket with them, therefore the newly created default bucket is just extra space
// All tasks brought their own bucket with them, therefore the newly created default buckets are just extra space.
// Delete all default-created buckets ("To-Do", "Doing", "Done") that were auto-generated.
if !needsDefaultBucket {
b := &models.Bucket{ProjectID: project.ID}
@@ -482,17 +483,21 @@ func createProjectWithEverything(s *xorm.Session, project *models.ProjectWithTas
return err
}
buckets := bucketsIn.([]*models.Bucket)
var newBacklogBucket *models.Bucket
for _, b := range buckets {
if b.Title == "To-Do" {
newBacklogBucket = b
newBacklogBucket.ProjectID = project.ID
break
}
migrationBucketIDs := make(map[int64]bool)
for _, mb := range bucketsByOldID {
migrationBucketIDs[mb.ID] = true
}
err = newBacklogBucket.Delete(s, user)
if err != nil && !models.IsErrCannotRemoveLastBucket(err) {
return err
for _, b := range buckets {
if migrationBucketIDs[b.ID] {
continue
}
b.ProjectID = project.ID
err = b.Delete(s, user)
if err != nil && !models.IsErrCannotRemoveLastBucket(err) {
return err
}
}
}