1.1 --- a/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Tue Jan 03 18:25:51 2023 +0100 1.2 +++ b/src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt Sun Jan 08 17:07:26 2023 +0100 1.3 @@ -184,7 +184,13 @@ 1.4 private fun project(http: HttpRequest, dao: DataAccessObject) { 1.5 withPathInfo(http, dao)?.run { 1.6 1.7 - val issues = dao.listIssues(project, version, component) 1.8 + val filter = IssueFilter(http) 1.9 + 1.10 + val needRelationsMap = filter.onlyBlocker 1.11 + 1.12 + val relationsMap = if (needRelationsMap) dao.getIssueRelationMap(project, filter.includeDone) else emptyMap() 1.13 + 1.14 + val issues = dao.listIssues(project, filter.includeDone, version, component) 1.15 .sortedWith( 1.16 IssueSorter( 1.17 IssueSorter.Criteria(IssueSorter.Field.DONE), 1.18 @@ -192,10 +198,16 @@ 1.19 IssueSorter.Criteria(IssueSorter.Field.UPDATED, false) 1.20 ) 1.21 ) 1.22 + .filter { 1.23 + (!filter.onlyMine || (it.assignee?.username ?: "") == (http.remoteUser ?: "<Anonymous>")) && 1.24 + (!filter.onlyBlocker || (relationsMap[it.id]?.any { (_,type) -> type.blocking }?:false)) && 1.25 + (filter.status.isEmpty() || filter.status.contains(it.status)) && 1.26 + (filter.category.isEmpty() || filter.category.contains(it.category)) 1.27 + } 1.28 1.29 with(http) { 1.30 pageTitle = project.name 1.31 - view = ProjectDetails(projectInfo, issues, version, component) 1.32 + view = ProjectDetails(projectInfo, issues, filter, version, component) 1.33 feedPath = feedPath(project) 1.34 navigationMenu = activeProjectNavMenu( 1.35 dao.listProjects(), 1.36 @@ -467,7 +479,7 @@ 1.37 project, 1.38 version, 1.39 component, 1.40 - dao.listIssues(project), 1.41 + dao.listIssues(project, true), 1.42 dao.listIssueRelations(issue), 1.43 relationError 1.44 )