refactor(models): remove *Arr helper fields now handled by normalizer

This commit is contained in:
kolaente 2026-04-21 12:57:27 +02:00 committed by kolaente
parent fb9119c98d
commit c6c57d9d15
3 changed files with 7 additions and 32 deletions

View File

@ -35,11 +35,9 @@ type TaskCollection struct {
Search string `query:"s" json:"s"`
// The query parameter to sort by. This is for ex. done, priority, etc.
SortBy []string `query:"sort_by" json:"sort_by"`
SortByArr []string `query:"sort_by[]" json:"-"`
SortBy []string `query:"sort_by" json:"sort_by"`
// The query parameter to order the items by. This can be either asc or desc, with asc being the default.
OrderBy []string `query:"order_by" json:"order_by"`
OrderByArr []string `query:"order_by[]" json:"-"`
OrderBy []string `query:"order_by" json:"order_by"`
// The filter query to match tasks by. Check out https://vikunja.io/docs/filters for a full explanation.
Filter string `query:"filter" json:"filter"`
@ -56,8 +54,7 @@ type TaskCollection struct {
// If set to `reactions`, the reactions of each task will be present in the response.
// If set to `comments`, the first 50 comments of each task will be present in the response.
// You can set this multiple times with different values.
Expand []TaskCollectionExpandable `query:"expand" json:"-"`
ExpandArr []TaskCollectionExpandable `query:"expand[]" json:"-"`
Expand []TaskCollectionExpandable `query:"expand" json:"-"`
isSavedFilter bool
@ -107,18 +104,6 @@ func validateTaskField(fieldName string) error {
}
func getTaskFilterOptsFromCollection(tf *TaskCollection, projectView *ProjectView) (opts *taskSearchOptions, err error) {
if len(tf.SortByArr) > 0 {
tf.SortBy = append(tf.SortBy, tf.SortByArr...)
}
if len(tf.OrderByArr) > 0 {
tf.OrderBy = append(tf.OrderBy, tf.OrderByArr...)
}
if len(tf.ExpandArr) > 0 {
tf.Expand = append(tf.Expand, tf.ExpandArr...)
}
var sort = make([]*sortParam, 0, len(tf.SortBy))
for i, s := range tf.SortBy {
param := &sortParam{
@ -272,18 +257,12 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa
// By prepending sort options before the saved ones from the filter, we make sure the supplied sort
// options via query take precedence over the rest.
sortby := append(tf.SortBy, tf.SortByArr...)
sortby = append(sortby, sf.Filters.SortBy...)
sortby = append(sortby, sf.Filters.SortByArr...)
sortby := append(tf.SortBy, sf.Filters.SortBy...)
orderby := append(tf.OrderBy, tf.OrderByArr...)
orderby = append(orderby, sf.Filters.OrderBy...)
orderby = append(orderby, sf.Filters.OrderByArr...)
orderby := append(tf.OrderBy, sf.Filters.OrderBy...)
sf.Filters.SortBy = sortby
sf.Filters.SortByArr = nil
sf.Filters.OrderBy = orderby
sf.Filters.OrderByArr = nil
if sf.Filters.FilterTimezone == "" {
u, err := user.GetUserByID(s, a.GetID())
@ -297,8 +276,7 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa
tc.ProjectViewID = tf.ProjectViewID
tc.ProjectID = tf.ProjectID
tc.isSavedFilter = true
tc.Expand = append(tf.Expand, tf.ExpandArr...)
tc.ExpandArr = nil
tc.Expand = tf.Expand
if tf.Filter != "" {
if tc.Filter != "" {

View File

@ -141,8 +141,7 @@ type Task struct {
CommentCount *int64 `xorm:"-" json:"comment_count,omitempty"`
// Behaves exactly the same as with the TaskCollection.Expand parameter
Expand []TaskCollectionExpandable `xorm:"-" json:"-" query:"expand"`
ExpandArr []TaskCollectionExpandable `xorm:"-" json:"-" query:"expand[]"`
Expand []TaskCollectionExpandable `xorm:"-" json:"-" query:"expand"`
// The position of the task - any task project can be sorted as usual by this parameter.
// When accessing tasks via views with buckets, this is primarily used to sort them based on a range.
@ -1966,7 +1965,6 @@ func (t *Task) Delete(s *xorm.Session, a web.Auth) (err error) {
// @Router /tasks/{id} [get]
func (t *Task) ReadOne(s *xorm.Session, a web.Auth) (err error) {
t.Expand = append(t.Expand, t.ExpandArr...)
expand := t.Expand
if err = t.resolveIDFromProjectAndIndex(s); err != nil {
return

View File

@ -40,7 +40,6 @@ func (t *Task) CanCreate(s *xorm.Session, a web.Auth) (bool, error) {
// CanRead determines if a user can read a task
func (t *Task) CanRead(s *xorm.Session, a web.Auth) (canRead bool, maxPermission int, err error) {
t.Expand = append(t.Expand, t.ExpandArr...)
expand := t.Expand
if err = t.resolveIDFromProjectAndIndex(s); err != nil {
return