Sun, 21 Jun 2020 11:38:16 +0200
simplifies version overviews by removing "scheduled issues"
1.1 --- a/setup/postgres/psql_create_tables.sql Sun Jun 21 11:10:30 2020 +0200 1.2 +++ b/setup/postgres/psql_create_tables.sql Sun Jun 21 11:38:16 2020 +0200 1.3 @@ -77,12 +77,6 @@ 1.4 primary key (issueid, versionid) 1.5 ); 1.6 1.7 -create table lpit_issue_scheduled_version ( 1.8 - issueid integer references lpit_issue(issueid), 1.9 - versionid integer references lpit_version(versionid), 1.10 - primary key (issueid, versionid) 1.11 -); 1.12 - 1.13 create table lpit_issue_resolved_version ( 1.14 issueid integer references lpit_issue(issueid), 1.15 versionid integer references lpit_version(versionid),
2.1 --- a/src/main/java/de/uapcore/lightpit/dao/postgres/PGIssueDao.java Sun Jun 21 11:10:30 2020 +0200 2.2 +++ b/src/main/java/de/uapcore/lightpit/dao/postgres/PGIssueDao.java Sun Jun 21 11:38:16 2020 +0200 2.3 @@ -44,9 +44,9 @@ 2.4 public final class PGIssueDao implements IssueDao { 2.5 2.6 private final PreparedStatement insert, update, list, listForVersion, find; 2.7 - private final PreparedStatement affectedVersions, scheduledVersions, resolvedVersions; 2.8 - private final PreparedStatement clearAffected, clearScheduled, clearResolved; 2.9 - private final PreparedStatement insertAffected, insertScheduled, insertResolved; 2.10 + private final PreparedStatement affectedVersions, resolvedVersions; 2.11 + private final PreparedStatement clearAffected, clearResolved; 2.12 + private final PreparedStatement insertAffected, insertResolved; 2.13 2.14 public PGIssueDao(Connection connection) throws SQLException { 2.15 list = connection.prepareStatement( 2.16 @@ -62,7 +62,6 @@ 2.17 listForVersion = connection.prepareStatement( 2.18 "with issue_version as ( "+ 2.19 "select issueid, versionid from lpit_issue_affected_version union "+ 2.20 - "select issueid, versionid from lpit_issue_scheduled_version union "+ 2.21 "select issueid, versionid from lpit_issue_resolved_version) "+ 2.22 "select issueid, project, p.name as projectname, status, category, subject, i.description, " + 2.23 "userid, username, givenname, lastname, mail, " + 2.24 @@ -102,15 +101,6 @@ 2.25 clearAffected = connection.prepareStatement("delete from lpit_issue_affected_version where issueid = ?"); 2.26 insertAffected = connection.prepareStatement("insert into lpit_issue_affected_version (issueid, versionid) values (?,?)"); 2.27 2.28 - scheduledVersions = connection.prepareStatement( 2.29 - "select versionid, name, status, ordinal " + 2.30 - "from lpit_version join lpit_issue_scheduled_version using (versionid) " + 2.31 - "where issueid = ? " + 2.32 - "order by ordinal, name" 2.33 - ); 2.34 - clearScheduled = connection.prepareStatement("delete from lpit_issue_scheduled_version where issueid = ?"); 2.35 - insertScheduled = connection.prepareStatement("insert into lpit_issue_scheduled_version (issueid, versionid) values (?,?)"); 2.36 - 2.37 resolvedVersions = connection.prepareStatement( 2.38 "select versionid, name, status, ordinal " + 2.39 "from lpit_version v join lpit_issue_resolved_version using (versionid) " + 2.40 @@ -161,22 +151,15 @@ 2.41 2.42 private void updateVersionLists(Issue instance) throws SQLException { 2.43 clearAffected.setInt(1, instance.getId()); 2.44 - clearScheduled.setInt(1, instance.getId()); 2.45 clearResolved.setInt(1, instance.getId()); 2.46 insertAffected.setInt(1, instance.getId()); 2.47 - insertScheduled.setInt(1, instance.getId()); 2.48 insertResolved.setInt(1, instance.getId()); 2.49 clearAffected.executeUpdate(); 2.50 - clearScheduled.executeUpdate(); 2.51 clearResolved.executeUpdate(); 2.52 for (Version v : instance.getAffectedVersions()) { 2.53 insertAffected.setInt(2, v.getId()); 2.54 insertAffected.executeUpdate(); 2.55 } 2.56 - for (Version v : instance.getScheduledVersions()) { 2.57 - insertScheduled.setInt(2, v.getId()); 2.58 - insertScheduled.executeUpdate(); 2.59 - } 2.60 for (Version v : instance.getResolvedVersions()) { 2.61 insertResolved.setInt(2, v.getId()); 2.62 insertResolved.executeUpdate(); 2.63 @@ -269,7 +252,6 @@ 2.64 public void joinVersionInformation(Issue issue) throws SQLException { 2.65 Objects.requireNonNull(issue.getProject()); 2.66 issue.setAffectedVersions(listVersions(affectedVersions, issue)); 2.67 - issue.setScheduledVersions(listVersions(scheduledVersions, issue)); 2.68 issue.setResolvedVersions(listVersions(resolvedVersions, issue)); 2.69 } 2.70 }
3.1 --- a/src/main/java/de/uapcore/lightpit/entities/Issue.java Sun Jun 21 11:10:30 2020 +0200 3.2 +++ b/src/main/java/de/uapcore/lightpit/entities/Issue.java Sun Jun 21 11:38:16 2020 +0200 3.3 @@ -48,7 +48,6 @@ 3.4 private User assignee; 3.5 3.6 private List<Version> affectedVersions = Collections.emptyList(); 3.7 - private List<Version> scheduledVersions = Collections.emptyList(); 3.8 private List<Version> resolvedVersions = Collections.emptyList(); 3.9 3.10 private Timestamp created = Timestamp.from(Instant.now()); 3.11 @@ -131,14 +130,6 @@ 3.12 this.affectedVersions = affectedVersions; 3.13 } 3.14 3.15 - public List<Version> getScheduledVersions() { 3.16 - return scheduledVersions; 3.17 - } 3.18 - 3.19 - public void setScheduledVersions(List<Version> scheduledVersions) { 3.20 - this.scheduledVersions = scheduledVersions; 3.21 - } 3.22 - 3.23 public List<Version> getResolvedVersions() { 3.24 return resolvedVersions; 3.25 }
4.1 --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Sun Jun 21 11:10:30 2020 +0200 4.2 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Sun Jun 21 11:38:16 2020 +0200 4.3 @@ -127,7 +127,7 @@ 4.4 } 4.5 // our object contains more details 4.6 issue.setProject(project); 4.7 - if (!issue.getResolvedVersions().contains(version) && !issue.getScheduledVersions().contains(version) 4.8 + if (!issue.getResolvedVersions().contains(version) 4.9 && !issue.getAffectedVersions().contains(version)) { 4.10 version = null; 4.11 } 4.12 @@ -536,11 +536,6 @@ 4.13 .map(stream -> 4.14 stream.map(Version::new).collect(Collectors.toList()) 4.15 ).ifPresent(issue::setAffectedVersions); 4.16 - getParameter(req, Integer[].class, "scheduled") 4.17 - .map(Stream::of) 4.18 - .map(stream -> 4.19 - stream.map(Version::new).collect(Collectors.toList()) 4.20 - ).ifPresent(issue::setScheduledVersions); 4.21 getParameter(req, Integer[].class, "resolved") 4.22 .map(Stream::of) 4.23 .map(stream ->
5.1 --- a/src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java Sun Jun 21 11:10:30 2020 +0200 5.2 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java Sun Jun 21 11:38:16 2020 +0200 5.3 @@ -39,7 +39,8 @@ 5.4 issuesWithoutVersionTotal = new IssueSummary(); 5.5 for (Issue issue : issues) { 5.6 issuesTotal.add(issue); 5.7 - if (issue.getResolvedVersions().isEmpty() && issue.getScheduledVersions().isEmpty() && issue.getResolvedVersions().isEmpty()) { 5.8 + // we want to list all issues that do not have a target version 5.9 + if (issue.getResolvedVersions().isEmpty()) { 5.10 issuesWithoutVersion.add(issue); 5.11 issuesWithoutVersionTotal.add(issue); 5.12 }
6.1 --- a/src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java Sun Jun 21 11:10:30 2020 +0200 6.2 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java Sun Jun 21 11:38:16 2020 +0200 6.3 @@ -12,11 +12,9 @@ 6.4 private final Version version; 6.5 6.6 private final IssueSummary reportedTotal = new IssueSummary(); 6.7 - private final IssueSummary scheduledTotal = new IssueSummary(); 6.8 private final IssueSummary resolvedTotal = new IssueSummary(); 6.9 6.10 private final List<Issue> reported = new ArrayList<>(); 6.11 - private final List<Issue> scheduled = new ArrayList<>(); 6.12 private final List<Issue> resolved = new ArrayList<>(); 6.13 6.14 public VersionInfo(Version version) { 6.15 @@ -32,11 +30,6 @@ 6.16 reported.add(issue); 6.17 } 6.18 6.19 - public void addScheduled(Issue issue) { 6.20 - scheduledTotal.add(issue); 6.21 - scheduled.add(issue); 6.22 - } 6.23 - 6.24 public void addResolved(Issue issue) { 6.25 resolvedTotal.add(issue); 6.26 resolved.add(issue); 6.27 @@ -46,10 +39,6 @@ 6.28 return reportedTotal; 6.29 } 6.30 6.31 - public IssueSummary getScheduledTotal() { 6.32 - return scheduledTotal; 6.33 - } 6.34 - 6.35 public IssueSummary getResolvedTotal() { 6.36 return resolvedTotal; 6.37 } 6.38 @@ -58,10 +47,6 @@ 6.39 return reported; 6.40 } 6.41 6.42 - public List<Issue> getScheduled() { 6.43 - return scheduled; 6.44 - } 6.45 - 6.46 public List<Issue> getResolved() { 6.47 return resolved; 6.48 } 6.49 @@ -71,9 +56,6 @@ 6.50 if (issue.getAffectedVersions().contains(version)) { 6.51 addReported(issue); 6.52 } 6.53 - if (issue.getScheduledVersions().contains(version)) { 6.54 - addScheduled(issue); 6.55 - } 6.56 if (issue.getResolvedVersions().contains(version)) { 6.57 addResolved(issue); 6.58 }
7.1 --- a/src/main/resources/localization/projects.properties Sun Jun 21 11:10:30 2020 +0200 7.2 +++ b/src/main/resources/localization/projects.properties Sun Jun 21 11:38:16 2020 +0200 7.3 @@ -28,9 +28,6 @@ 7.4 button.issue.create=New Issue 7.5 button.issue.all=All Issues 7.6 7.7 -button.stats.hidezeros=Reduced View 7.8 -button.stats.showzeros=Full View 7.9 - 7.10 no-projects=Welcome to LightPIT. Start off by creating a new project! 7.11 7.12 menu.issues=Issues 7.13 @@ -49,8 +46,7 @@ 7.14 issues.done=Done 7.15 issues.total=Total 7.16 issues.reported=Reported Issues 7.17 -issues.scheduled=Scheduled Issues 7.18 -issues.resolved=Resolved Issues 7.19 +issues.resolved=Issues 7.20 7.21 version.project=Project 7.22 version.name=Version 7.23 @@ -61,6 +57,7 @@ 7.24 placeholder.null-owner=Unassigned 7.25 placeholder.null-assignee=Unassigned 7.26 7.27 +version.open=open 7.28 version.label=Version 7.29 version.status.Future=Future 7.30 version.status.Unreleased=Unreleased 7.31 @@ -75,8 +72,7 @@ 7.32 issue.description=Description 7.33 issue.assignee=Assignee 7.34 issue.affected-versions=Affected Versions 7.35 -issue.scheduled-versions=Scheduled for Versions 7.36 -issue.resolved-versions=Resolved in Versions 7.37 +issue.resolved-versions=Target Versions 7.38 issue.category=Category 7.39 issue.status=Status 7.40 issue.created=Created
8.1 --- a/src/main/resources/localization/projects_de.properties Sun Jun 21 11:10:30 2020 +0200 8.2 +++ b/src/main/resources/localization/projects_de.properties Sun Jun 21 11:38:16 2020 +0200 8.3 @@ -28,9 +28,6 @@ 8.4 button.issue.create=Neuer Vorgang 8.5 button.issue.all=Alle Vorg\u00e4nge 8.6 8.7 -button.stats.hidezeros=Reduzierte Ansicht 8.8 -button.stats.showzeros=Komplettansicht 8.9 - 8.10 no-projects=Wilkommen bei LightPIT. Beginnen Sie mit der Erstellung eines Projektes! 8.11 8.12 menu.issues=Vorg\u00e4nge 8.13 @@ -48,8 +45,7 @@ 8.14 issues.active=In Arbeit 8.15 issues.done=Erledigt 8.16 issues.reported=Er\u00f6ffnete Vorg\u00e4nge 8.17 -issues.scheduled=Geplante Vorg\u00e4nge 8.18 -issues.resolved=Gel\u00f6ste Vorg\u00e4nge 8.19 +issues.resolved=Vorg\u00e4nge 8.20 issues.total=Summe 8.21 8.22 version.project=Projekt 8.23 @@ -61,6 +57,7 @@ 8.24 placeholder.null-owner=Nicht Zugewiesen 8.25 placeholder.null-assignee=Niemandem 8.26 8.27 +version.open=ansehen 8.28 version.label=Version 8.29 version.status.Future=Geplant 8.30 version.status.Unreleased=Unver\u00f6ffentlicht 8.31 @@ -74,8 +71,7 @@ 8.32 issue.description=Beschreibung 8.33 issue.assignee=Zugewiesen 8.34 issue.affected-versions=Betroffene Versionen 8.35 -issue.scheduled-versions=Zielversionen 8.36 -issue.resolved-versions=Gel\u00f6st in Versionen 8.37 +issue.resolved-versions=Zielversionen 8.38 issue.category=Kategorie 8.39 issue.status=Status 8.40 issue.created=Erstellt
9.1 --- a/src/main/webapp/WEB-INF/jsp/issue-form.jsp Sun Jun 21 11:10:30 2020 +0200 9.2 +++ b/src/main/webapp/WEB-INF/jsp/issue-form.jsp Sun Jun 21 11:38:16 2020 +0200 9.3 @@ -120,14 +120,6 @@ 9.4 </td> 9.5 </tr> 9.6 <tr> 9.7 - <th class="vtop"><fmt:message key="issue.scheduled-versions"/></th> 9.8 - <td> 9.9 - <c:set var="fieldname" value="scheduled"/> 9.10 - <c:set var="data" value="${issue.scheduledVersions}" /> 9.11 - <%@include file="../jspf/version-list.jsp"%> 9.12 - </td> 9.13 - </tr> 9.14 - <tr> 9.15 <th class="vtop"><fmt:message key="issue.resolved-versions"/></th> 9.16 <td> 9.17 <c:set var="fieldname" value="resolved"/>
10.1 --- a/src/main/webapp/WEB-INF/jsp/project-details.jsp Sun Jun 21 11:10:30 2020 +0200 10.2 +++ b/src/main/webapp/WEB-INF/jsp/project-details.jsp Sun Jun 21 11:38:16 2020 +0200 10.3 @@ -53,21 +53,14 @@ 10.4 <c:forEach var="versionInfo" items="${viewmodel.versionInfos}"> 10.5 <h2> 10.6 <fmt:message key="version.label" /> <c:out value="${versionInfo.version.name}" /> - <fmt:message key="version.status.${versionInfo.version.status}"/> 10.7 - (<a href="./projects/versions/view?vid=${versionInfo.version.id}">open</a>) 10.8 + (<a href="./projects/versions/view?vid=${versionInfo.version.id}"><fmt:message key="version.open" /></a>) 10.9 </h2> 10.10 10.11 - <h3><fmt:message key="issues.reported"/> </h3> 10.12 - <c:set var="summary" value="${versionInfo.reportedTotal}"/> 10.13 - <c:set var="issues" value="${versionInfo.reported}"/> 10.14 - <%@include file="../jspf/issue-summary.jsp"%> 10.15 - 10.16 - <h3><fmt:message key="issues.scheduled"/> </h3> 10.17 - <c:set var="summary" value="${versionInfo.scheduledTotal}"/> 10.18 - <c:set var="issues" value="${versionInfo.scheduled}"/> 10.19 - <%@include file="../jspf/issue-summary.jsp"%> 10.20 - 10.21 <h3><fmt:message key="issues.resolved"/> </h3> 10.22 <c:set var="summary" value="${versionInfo.resolvedTotal}"/> 10.23 <c:set var="issues" value="${versionInfo.resolved}"/> 10.24 <%@include file="../jspf/issue-summary.jsp"%> 10.25 + <c:if test="${not empty issues}"> 10.26 + <%@include file="../jspf/issue-list.jsp"%> 10.27 + </c:if> 10.28 </c:forEach> 10.29 \ No newline at end of file
11.1 --- a/src/main/webapp/WEB-INF/jsp/version.jsp Sun Jun 21 11:10:30 2020 +0200 11.2 +++ b/src/main/webapp/WEB-INF/jsp/version.jsp Sun Jun 21 11:38:16 2020 +0200 11.3 @@ -44,22 +44,19 @@ 11.4 <a href="./projects/versions/edit?vid=${version.id}">✎</a> 11.5 </h2> 11.6 11.7 -<h3><fmt:message key="issues.reported"/> </h3> 11.8 +<c:if test="${not empty viewmodel.versionInfo.resolved}"> 11.9 + <h3><fmt:message key="issues.resolved"/> </h3> 11.10 + <c:set var="summary" value="${viewmodel.versionInfo.resolvedTotal}"/> 11.11 + <c:set var="issues" value="${viewmodel.versionInfo.resolved}"/> 11.12 + <%@include file="../jspf/issue-summary.jsp"%> 11.13 + <%@include file="../jspf/issue-list.jsp"%> 11.14 +</c:if> 11.15 11.16 -<c:set var="summary" value="${viewmodel.versionInfo.reportedTotal}"/> 11.17 -<c:set var="issues" value="${viewmodel.versionInfo.reported}"/> 11.18 -<%@include file="../jspf/issue-summary.jsp"%> 11.19 -<%@include file="../jspf/issue-list.jsp"%> 11.20 +<c:if test="${not empty viewmodel.versionInfo.reported}"> 11.21 + <h3><fmt:message key="issues.reported"/> </h3> 11.22 + <c:set var="summary" value="${viewmodel.versionInfo.reportedTotal}"/> 11.23 + <c:set var="issues" value="${viewmodel.versionInfo.reported}"/> 11.24 + <%@include file="../jspf/issue-summary.jsp"%> 11.25 + <%@include file="../jspf/issue-list.jsp"%> 11.26 +</c:if> 11.27 11.28 -<h3><fmt:message key="issues.scheduled"/> </h3> 11.29 -<c:set var="summary" value="${viewmodel.versionInfo.scheduledTotal}"/> 11.30 -<c:set var="issues" value="${viewmodel.versionInfo.scheduled}"/> 11.31 -<%@include file="../jspf/issue-summary.jsp"%> 11.32 -<%@include file="../jspf/issue-list.jsp"%> 11.33 - 11.34 -<h3><fmt:message key="issues.resolved"/> </h3> 11.35 -<c:set var="summary" value="${viewmodel.versionInfo.resolvedTotal}"/> 11.36 -<c:set var="issues" value="${viewmodel.versionInfo.resolved}"/> 11.37 -<%@include file="../jspf/issue-summary.jsp"%> 11.38 -<%@include file="../jspf/issue-list.jsp"%> 11.39 -