simplifies version overviews by removing "scheduled issues"

Sun, 21 Jun 2020 11:38:16 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 21 Jun 2020 11:38:16 +0200
changeset 88
1438e5a22c55
parent 87
501addad452b
child 89
c69d5cb11d6c

simplifies version overviews by removing "scheduled issues"

setup/postgres/psql_create_tables.sql file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/dao/postgres/PGIssueDao.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/entities/Issue.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java file | annotate | diff | comparison | revisions
src/main/resources/localization/projects.properties file | annotate | diff | comparison | revisions
src/main/resources/localization/projects_de.properties file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/issue-form.jsp file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/project-details.jsp file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/version.jsp file | annotate | diff | comparison | revisions
     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}">&#x270e;</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 -

mercurial