|
|
|
@ -20,7 +20,6 @@ internal object TaskListQueryNonRecursive {
|
|
|
|
|
private val TAGS =
|
|
|
|
|
field("group_concat(distinct(${TaskListFragment.TAGS_METADATA_JOIN}.tag_uid))")
|
|
|
|
|
.`as`("tags")
|
|
|
|
|
private const val COMPLETION_SORT = "parentComplete ASC, tasks.completed DESC, "
|
|
|
|
|
private val FIELDS =
|
|
|
|
|
TaskListQuery.FIELDS.plus(listOf(
|
|
|
|
|
TAGS,
|
|
|
|
@ -32,18 +31,21 @@ internal object TaskListQueryNonRecursive {
|
|
|
|
|
val sortMode = preferences.sortMode
|
|
|
|
|
val sortGroup = field(SortHelper.getSortGroup(sortMode) ?: "NULL").`as`("sortGroup")
|
|
|
|
|
val query = SortHelper.adjustQueryForFlagsAndSort(preferences, joinedQuery, sortMode)
|
|
|
|
|
val completionSort = if (preferences.completedTasksAtBottom) {
|
|
|
|
|
COMPLETION_SORT
|
|
|
|
|
} else {
|
|
|
|
|
""
|
|
|
|
|
}
|
|
|
|
|
val completeAtBottom = if (preferences.completedTasksAtBottom) "parentComplete ASC," else ""
|
|
|
|
|
val completionSort =
|
|
|
|
|
if (preferences.completedTasksAtBottom && preferences.sortCompletedByCompletionDate) {
|
|
|
|
|
"tasks.completed DESC,"
|
|
|
|
|
} else {
|
|
|
|
|
""
|
|
|
|
|
}
|
|
|
|
|
val orderBy = "$completeAtBottom $completionSort"
|
|
|
|
|
val groupedQuery = when {
|
|
|
|
|
filter is RecentlyModifiedFilter ->
|
|
|
|
|
query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY")
|
|
|
|
|
query.contains("ORDER BY") ->
|
|
|
|
|
query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY $completionSort")
|
|
|
|
|
query.replace("ORDER BY", "GROUP BY ${Task.ID} ORDER BY $orderBy")
|
|
|
|
|
preferences.completedTasksAtBottom ->
|
|
|
|
|
"$query GROUP BY ${Task.ID} ORDER BY $completionSort"
|
|
|
|
|
"$query GROUP BY ${Task.ID} ORDER BY $orderBy"
|
|
|
|
|
else ->
|
|
|
|
|
"$query GROUP BY ${Task.ID}"
|
|
|
|
|
}
|
|
|
|
|