mirror of
https://github.com/go-vikunja/vikunja.git
synced 2026-04-29 02:49:55 -05:00
fix: treat archived TickTick tasks as done during import
TickTick uses status "2" (Archived) for completed tasks that were subsequently archived. The import only checked for status "1" (Completed), causing archived tasks to be imported as open despite having a completion timestamp. Closes go-vikunja/vikunja#2278
This commit is contained in:
@@ -118,7 +118,7 @@ func convertTickTickToVikunja(tasks []*tickTickTask) (result []*models.ProjectWi
|
||||
StartDate: t.StartDate.Time,
|
||||
EndDate: t.DueDate.Time,
|
||||
DueDate: t.DueDate.Time,
|
||||
Done: t.Status == "1",
|
||||
Done: t.Status == "1" || t.Status == "2",
|
||||
DoneAt: t.CompletedTime.Time,
|
||||
Position: t.Order,
|
||||
Labels: labels,
|
||||
|
||||
@@ -82,12 +82,21 @@ func TestConvertTicktickTasksToVikunja(t *testing.T) {
|
||||
Order: -109951627776,
|
||||
},
|
||||
{
|
||||
TaskID: 4,
|
||||
TaskID: 4,
|
||||
ParentID: 0,
|
||||
ProjectName: "Project 1",
|
||||
Title: "Test task 4 - archived",
|
||||
Status: "2",
|
||||
CompletedTime: time3,
|
||||
Order: -109951627777,
|
||||
},
|
||||
{
|
||||
TaskID: 5,
|
||||
ParentID: 0,
|
||||
ProjectName: "Project 2",
|
||||
Title: "Test task 4",
|
||||
Title: "Test task 5",
|
||||
Status: "0",
|
||||
Order: -109951627777,
|
||||
Order: -109951627778,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -98,7 +107,7 @@ func TestConvertTicktickTasksToVikunja(t *testing.T) {
|
||||
assert.Equal(t, vikunjaTasks[1].ParentProjectID, vikunjaTasks[0].ID)
|
||||
assert.Equal(t, vikunjaTasks[2].ParentProjectID, vikunjaTasks[0].ID)
|
||||
|
||||
assert.Len(t, vikunjaTasks[1].Tasks, 3)
|
||||
assert.Len(t, vikunjaTasks[1].Tasks, 4)
|
||||
assert.Equal(t, vikunjaTasks[1].Title, tickTickTasks[0].ProjectName)
|
||||
|
||||
assert.Equal(t, vikunjaTasks[1].Tasks[0].Title, tickTickTasks[0].Title)
|
||||
@@ -142,11 +151,16 @@ func TestConvertTicktickTasksToVikunja(t *testing.T) {
|
||||
assert.Equal(t, vikunjaTasks[1].Tasks[2].Position, tickTickTasks[2].Order)
|
||||
assert.False(t, vikunjaTasks[1].Tasks[2].Done)
|
||||
|
||||
assert.Len(t, vikunjaTasks[2].Tasks, 1)
|
||||
assert.Equal(t, vikunjaTasks[2].Title, tickTickTasks[3].ProjectName)
|
||||
assert.Equal(t, vikunjaTasks[1].Tasks[3].Title, tickTickTasks[3].Title)
|
||||
assert.Equal(t, vikunjaTasks[1].Tasks[3].Position, tickTickTasks[3].Order)
|
||||
assert.True(t, vikunjaTasks[1].Tasks[3].Done)
|
||||
assert.Equal(t, vikunjaTasks[1].Tasks[3].DoneAt, tickTickTasks[3].CompletedTime.Time)
|
||||
|
||||
assert.Equal(t, vikunjaTasks[2].Tasks[0].Title, tickTickTasks[3].Title)
|
||||
assert.Equal(t, vikunjaTasks[2].Tasks[0].Position, tickTickTasks[3].Order)
|
||||
assert.Len(t, vikunjaTasks[2].Tasks, 1)
|
||||
assert.Equal(t, vikunjaTasks[2].Title, tickTickTasks[4].ProjectName)
|
||||
|
||||
assert.Equal(t, vikunjaTasks[2].Tasks[0].Title, tickTickTasks[4].Title)
|
||||
assert.Equal(t, vikunjaTasks[2].Tasks[0].Position, tickTickTasks[4].Order)
|
||||
}
|
||||
|
||||
func TestLinesToSkipBeforeHeader(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user