mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-04-30 00:46:38 +00:00
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:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user