fix(views): do not break filters when combining them with view filters

This commit is contained in:
kolaente 2024-03-15 22:30:31 +01:00
parent 6913334b17
commit 73e5483e87
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
1 changed files with 12 additions and 6 deletions

View File

@ -74,7 +74,7 @@ func validateTaskField(fieldName string) error {
return ErrInvalidTaskField{TaskField: fieldName}
}
func getTaskFilterOptsFromCollection(tf *TaskCollection) (opts *taskSearchOptions, err error) {
func getTaskFilterOptsFromCollection(tf *TaskCollection, projectView *ProjectView) (opts *taskSearchOptions, err error) {
if len(tf.SortByArr) > 0 {
tf.SortBy = append(tf.SortBy, tf.SortByArr...)
}
@ -95,6 +95,10 @@ func getTaskFilterOptsFromCollection(tf *TaskCollection) (opts *taskSearchOption
param.orderBy = getSortOrderFromString(tf.OrderBy[i])
}
if s == taskPropertyPosition && projectView != nil {
param.projectViewID = projectView.ID
}
// Param validation
if err := param.validate(); err != nil {
return nil, err
@ -177,14 +181,16 @@ func (tf *TaskCollection) ReadAll(s *xorm.Session, a web.Auth, search string, pa
return nil, 0, 0, err
}
if tf.Filter != "" {
tf.Filter = "(" + tf.Filter + ") && (" + view.Filter + ")"
} else {
tf.Filter = view.Filter
if view.Filter != "" {
if tf.Filter != "" {
tf.Filter = "(" + tf.Filter + ") && (" + view.Filter + ")"
} else {
tf.Filter = view.Filter
}
}
}
opts, err := getTaskFilterOptsFromCollection(tf)
opts, err := getTaskFilterOptsFromCollection(tf, view)
if err != nil {
return nil, 0, 0, err
}