src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java

changeset 128
947d0f6a6a83
parent 124
ed2e7aef2a3e
child 129
a09d5c59351a
--- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Thu Oct 15 12:27:05 2020 +0200
+++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Thu Oct 15 13:31:52 2020 +0200
@@ -238,13 +238,7 @@
             return ResponseType.NONE;
         }
 
-        if (viewModel.getVersionFilter() == null) {
-            final var version = new Version(-1);
-            version.setProject(viewModel.getProjectInfo().getProject());
-            viewModel.setVersion(version);
-        } else {
-            viewModel.setVersion(viewModel.getVersionFilter());
-        }
+        viewModel.setVersion(Optional.ofNullable(viewModel.getVersionFilter()).orElse(new Version(-1)));
 
         return forwardView(req, viewModel, "version-form");
     }
@@ -254,15 +248,14 @@
 
         var version = new Version(-1);
         try {
+            final var project = new Project(getParameter(req, Integer.class, "pid").orElseThrow());
             version = new Version(getParameter(req, Integer.class, "id").orElseThrow());
-            version.setProject(new Project(getParameter(req, Integer.class, "pid").orElseThrow()));
             version.setName(getParameter(req, String.class, "name").orElseThrow());
             getParameter(req, Integer.class, "ordinal").ifPresent(version::setOrdinal);
             version.setStatus(VersionStatus.valueOf(getParameter(req, String.class, "status").orElseThrow()));
-            dao.getVersionDao().saveOrUpdate(version);
+            dao.getVersionDao().saveOrUpdate(version, project);
 
-            // specifying the pid parameter will purposely reset the session selected version!
-            setRedirectLocation(req, "./projects/versions?pid=" + version.getProject().getId());
+            setRedirectLocation(req, "./projects/versions?pid=" + project.getId());
             setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL);
         } catch (NoSuchElementException | IllegalArgumentException | SQLException ex) {
             LOG.warn("Form validation failure: {}", ex.getMessage());
@@ -332,7 +325,7 @@
                             stream.map(Version::new).collect(Collectors.toList())
                     ).ifPresent(issue::setResolvedVersions);
 
-            dao.getIssueDao().saveOrUpdate(issue);
+            dao.getIssueDao().saveOrUpdate(issue, issue.getProject());
 
             // specifying the issue parameter keeps the edited issue as menu item
             setRedirectLocation(req, "./projects/view?pid=" + issue.getProject().getId());

mercurial