fetch tasks for caldav lists
All checks were successful
continuous-integration/drone/pr Build is passing
All checks were successful
continuous-integration/drone/pr Build is passing
This commit is contained in:
parent
b4771c1bce
commit
464e539897
|
@ -17,14 +17,15 @@
|
||||||
package caldav
|
package caldav
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"code.vikunja.io/api/pkg/log"
|
"code.vikunja.io/api/pkg/log"
|
||||||
"code.vikunja.io/api/pkg/models"
|
"code.vikunja.io/api/pkg/models"
|
||||||
user2 "code.vikunja.io/api/pkg/user"
|
user2 "code.vikunja.io/api/pkg/user"
|
||||||
"github.com/samedi/caldav-go/data"
|
"github.com/samedi/caldav-go/data"
|
||||||
"github.com/samedi/caldav-go/errs"
|
"github.com/samedi/caldav-go/errs"
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// DavBasePath is the base url path
|
// DavBasePath is the base url path
|
||||||
|
@ -316,8 +317,9 @@ func (vcls *VikunjaCaldavListStorage) DeleteResource(rpath string) error {
|
||||||
|
|
||||||
// VikunjaListResourceAdapter holds the actual resource
|
// VikunjaListResourceAdapter holds the actual resource
|
||||||
type VikunjaListResourceAdapter struct {
|
type VikunjaListResourceAdapter struct {
|
||||||
list *models.List
|
list *models.List
|
||||||
task *models.Task
|
listTasks []*models.Task
|
||||||
|
task *models.Task
|
||||||
|
|
||||||
isPrincipal bool
|
isPrincipal bool
|
||||||
isCollection bool
|
isCollection bool
|
||||||
|
@ -353,12 +355,12 @@ func (vlra *VikunjaListResourceAdapter) CalculateEtag() string {
|
||||||
// GetContent returns the content string of a resource (a task in our case)
|
// GetContent returns the content string of a resource (a task in our case)
|
||||||
func (vlra *VikunjaListResourceAdapter) GetContent() string {
|
func (vlra *VikunjaListResourceAdapter) GetContent() string {
|
||||||
if vlra.list != nil && vlra.list.Tasks != nil {
|
if vlra.list != nil && vlra.list.Tasks != nil {
|
||||||
return getCaldavTodosForTasks(vlra.list)
|
return getCaldavTodosForTasks(vlra.list, vlra.listTasks)
|
||||||
}
|
}
|
||||||
|
|
||||||
if vlra.task != nil {
|
if vlra.task != nil {
|
||||||
list := models.List{Tasks: []*models.Task{vlra.task}}
|
list := models.List{Tasks: []*models.Task{vlra.task}}
|
||||||
return getCaldavTodosForTasks(&list)
|
return getCaldavTodosForTasks(&list, list.Tasks)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
@ -396,8 +398,26 @@ func (vcls *VikunjaCaldavListStorage) getListRessource(isCollection bool) (rr Vi
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
listTasks := vcls.list.Tasks
|
||||||
|
if listTasks == nil {
|
||||||
|
tk := models.TaskCollection{
|
||||||
|
ListID: vcls.list.ID,
|
||||||
|
}
|
||||||
|
var iface interface{}
|
||||||
|
iface, _, _, err = tk.ReadAll(vcls.user, "", 1, 1000)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tasks, ok := iface.([]*models.Task)
|
||||||
|
if ok {
|
||||||
|
listTasks = tasks
|
||||||
|
vcls.list.Tasks = tasks
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rr = VikunjaListResourceAdapter{
|
rr = VikunjaListResourceAdapter{
|
||||||
list: vcls.list,
|
list: vcls.list,
|
||||||
|
listTasks: listTasks,
|
||||||
isCollection: isCollection,
|
isCollection: isCollection,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,19 +17,20 @@
|
||||||
package caldav
|
package caldav
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"code.vikunja.io/api/pkg/caldav"
|
"code.vikunja.io/api/pkg/caldav"
|
||||||
"code.vikunja.io/api/pkg/log"
|
"code.vikunja.io/api/pkg/log"
|
||||||
"code.vikunja.io/api/pkg/models"
|
"code.vikunja.io/api/pkg/models"
|
||||||
"github.com/laurent22/ical-go"
|
"github.com/laurent22/ical-go"
|
||||||
"strconv"
|
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func getCaldavTodosForTasks(list *models.List) string {
|
func getCaldavTodosForTasks(list *models.List, listTasks []*models.Task) string {
|
||||||
|
|
||||||
// Make caldav todos from Vikunja todos
|
// Make caldav todos from Vikunja todos
|
||||||
var caldavtodos []*caldav.Todo
|
var caldavtodos []*caldav.Todo
|
||||||
for _, t := range list.Tasks {
|
for _, t := range listTasks {
|
||||||
|
|
||||||
duration := t.EndDate.Sub(t.StartDate)
|
duration := t.EndDate.Sub(t.StartDate)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user