src/main/kotlin/de/uapcore/lightpit/servlet/ProjectServlet.kt

changeset 268
ca5501d851fa
parent 267
d8ec2d8ffa82
child 271
f8f5e82944fa
equal deleted inserted replaced
267:d8ec2d8ffa82 268:ca5501d851fa
182 } 182 }
183 183
184 private fun project(http: HttpRequest, dao: DataAccessObject) { 184 private fun project(http: HttpRequest, dao: DataAccessObject) {
185 withPathInfo(http, dao)?.run { 185 withPathInfo(http, dao)?.run {
186 186
187 val issues = dao.listIssues(project, version, component) 187 val filter = IssueFilter(http)
188
189 val needRelationsMap = filter.onlyBlocker
190
191 val relationsMap = if (needRelationsMap) dao.getIssueRelationMap(project, filter.includeDone) else emptyMap()
192
193 val issues = dao.listIssues(project, filter.includeDone, version, component)
188 .sortedWith( 194 .sortedWith(
189 IssueSorter( 195 IssueSorter(
190 IssueSorter.Criteria(IssueSorter.Field.DONE), 196 IssueSorter.Criteria(IssueSorter.Field.DONE),
191 IssueSorter.Criteria(IssueSorter.Field.ETA), 197 IssueSorter.Criteria(IssueSorter.Field.ETA),
192 IssueSorter.Criteria(IssueSorter.Field.UPDATED, false) 198 IssueSorter.Criteria(IssueSorter.Field.UPDATED, false)
193 ) 199 )
194 ) 200 )
201 .filter {
202 (!filter.onlyMine || (it.assignee?.username ?: "") == (http.remoteUser ?: "<Anonymous>")) &&
203 (!filter.onlyBlocker || (relationsMap[it.id]?.any { (_,type) -> type.blocking }?:false)) &&
204 (filter.status.isEmpty() || filter.status.contains(it.status)) &&
205 (filter.category.isEmpty() || filter.category.contains(it.category))
206 }
195 207
196 with(http) { 208 with(http) {
197 pageTitle = project.name 209 pageTitle = project.name
198 view = ProjectDetails(projectInfo, issues, version, component) 210 view = ProjectDetails(projectInfo, issues, filter, version, component)
199 feedPath = feedPath(project) 211 feedPath = feedPath(project)
200 navigationMenu = activeProjectNavMenu( 212 navigationMenu = activeProjectNavMenu(
201 dao.listProjects(), 213 dao.listProjects(),
202 projectInfo, 214 projectInfo,
203 version, 215 version,
465 issue, 477 issue,
466 comments, 478 comments,
467 project, 479 project,
468 version, 480 version,
469 component, 481 component,
470 dao.listIssues(project), 482 dao.listIssues(project, true),
471 dao.listIssueRelations(issue), 483 dao.listIssueRelations(issue),
472 relationError 484 relationError
473 ) 485 )
474 feedPath = feedPath(projectInfo.project) 486 feedPath = feedPath(projectInfo.project)
475 navigationMenu = activeProjectNavMenu( 487 navigationMenu = activeProjectNavMenu(

mercurial