diff -r d8ec2d8ffa82 -r ca5501d851fa src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt --- a/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Tue Jan 03 18:25:51 2023 +0100 +++ b/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Sun Jan 08 17:07:26 2023 +0100 @@ -184,7 +184,13 @@ private fun project(http: HttpRequest, dao: DataAccessObject) { withPathInfo(http, dao)?.run { - val issues = dao.listIssues(project, version, component) + val filter = IssueFilter(http) + + val needRelationsMap = filter.onlyBlocker + + val relationsMap = if (needRelationsMap) dao.getIssueRelationMap(project, filter.includeDone) else emptyMap() + + val issues = dao.listIssues(project, filter.includeDone, version, component) .sortedWith( IssueSorter( IssueSorter.Criteria(IssueSorter.Field.DONE), @@ -192,10 +198,16 @@ IssueSorter.Criteria(IssueSorter.Field.UPDATED, false) ) ) + .filter { + (!filter.onlyMine || (it.assignee?.username ?: "") == (http.remoteUser ?: "")) && + (!filter.onlyBlocker || (relationsMap[it.id]?.any { (_,type) -> type.blocking }?:false)) && + (filter.status.isEmpty() || filter.status.contains(it.status)) && + (filter.category.isEmpty() || filter.category.contains(it.category)) + } with(http) { pageTitle = project.name - view = ProjectDetails(projectInfo, issues, version, component) + view = ProjectDetails(projectInfo, issues, filter, version, component) feedPath = feedPath(project) navigationMenu = activeProjectNavMenu( dao.listProjects(), @@ -467,7 +479,7 @@ project, version, component, - dao.listIssues(project), + dao.listIssues(project, true), dao.listIssueRelations(issue), relationError )