fix(filters): prevent position and bucket ID overriding position of existing tasks
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This fixes a bug where the task position in a task was updated and immediately overridden by the update event handler. Resolves https://community.vikunja.io/t/not-able-to-move-task-between-buckets-within-a-kanban-view-for-saved-filter/2882
This commit is contained in:
parent
8ab387396d
commit
35a463c984
@ -332,21 +332,37 @@ func addTaskToFilter(s *xorm.Session, filter *SavedFilter, view *ProjectView, fa
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
bucketID, err := getDefaultBucketID(s, view)
|
||||
taskHasBucketInView, err := s.Where(builder.And(
|
||||
builder.Eq{"task_id": task.ID},
|
||||
builder.Eq{"project_view_id": view.ID},
|
||||
)).Exist(&TaskBucket{})
|
||||
if !taskHasBucketInView {
|
||||
bucketID, err := getDefaultBucketID(s, view)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
taskBucket = &TaskBucket{
|
||||
BucketID: bucketID,
|
||||
TaskID: task.ID,
|
||||
ProjectViewID: view.ID,
|
||||
}
|
||||
}
|
||||
|
||||
// Check if a position for this task already exists
|
||||
existingTaskPosition, err := s.Where(builder.And(
|
||||
builder.Eq{"task_id": task.ID},
|
||||
builder.Eq{"project_view_id": view.ID},
|
||||
)).Exist(&TaskPosition{})
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
taskBucket = &TaskBucket{
|
||||
BucketID: bucketID,
|
||||
TaskID: task.ID,
|
||||
ProjectViewID: view.ID,
|
||||
}
|
||||
|
||||
taskPosition = &TaskPosition{
|
||||
TaskID: task.ID,
|
||||
ProjectViewID: view.ID,
|
||||
Position: calculateDefaultPosition(task.Index, task.Position),
|
||||
if !existingTaskPosition {
|
||||
taskPosition = &TaskPosition{
|
||||
TaskID: task.ID,
|
||||
ProjectViewID: view.ID,
|
||||
Position: calculateDefaultPosition(task.Index, task.Position),
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user