fix: update task in typesense when adding a label or assignee to them
Resolves https://community.vikunja.io/t/typesense-only-works-if-i-re-index/2212
This commit is contained in:
parent
037022e857
commit
521300613f
@ -17,6 +17,7 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"code.vikunja.io/api/pkg/events"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -46,7 +47,7 @@ type LabelTask struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TableName makes a pretty table name
|
// TableName makes a pretty table name
|
||||||
func (LabelTask) TableName() string {
|
func (*LabelTask) TableName() string {
|
||||||
return "label_tasks"
|
return "label_tasks"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +85,7 @@ func (lt *LabelTask) Delete(s *xorm.Session, _ web.Auth) (err error) {
|
|||||||
// @Failure 404 {object} web.HTTPError "The label does not exist."
|
// @Failure 404 {object} web.HTTPError "The label does not exist."
|
||||||
// @Failure 500 {object} models.Message "Internal error"
|
// @Failure 500 {object} models.Message "Internal error"
|
||||||
// @Router /tasks/{task}/labels [put]
|
// @Router /tasks/{task}/labels [put]
|
||||||
func (lt *LabelTask) Create(s *xorm.Session, _ web.Auth) (err error) {
|
func (lt *LabelTask) Create(s *xorm.Session, auth web.Auth) (err error) {
|
||||||
// Check if the label is already added
|
// Check if the label is already added
|
||||||
exists, err := s.Exist(&LabelTask{LabelID: lt.LabelID, TaskID: lt.TaskID})
|
exists, err := s.Exist(&LabelTask{LabelID: lt.LabelID, TaskID: lt.TaskID})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -100,6 +101,20 @@ func (lt *LabelTask) Create(s *xorm.Session, _ web.Auth) (err error) {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t, err := GetTaskByIDSimple(s, lt.TaskID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
doer, _ := user.GetFromAuth(auth)
|
||||||
|
err = events.Dispatch(&TaskUpdatedEvent{
|
||||||
|
Task: &t,
|
||||||
|
Doer: doer,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = updateProjectByTaskID(s, lt.TaskID)
|
err = updateProjectByTaskID(s, lt.TaskID)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -280,6 +280,13 @@ func (t *Task) addNewAssigneeByID(s *xorm.Session, newAssigneeID int64, project
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
err = events.Dispatch(&TaskUpdatedEvent{
|
||||||
|
Task: t,
|
||||||
|
Doer: doer,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
err = updateProjectLastUpdated(s, &Project{ID: t.ProjectID})
|
err = updateProjectLastUpdated(s, &Project{ID: t.ProjectID})
|
||||||
return
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user