87: Improve result page (AdminViewParentProjectPage) after split
This commit is contained in:
parent
d193663590
commit
8266b1f1fe
core/src/main/java/se/su/dsv/scipro/project/split
view/src/main/java/se/su/dsv/scipro/admin/pages
@ -1,5 +1,6 @@
|
|||||||
package se.su.dsv.scipro.project.split;
|
package se.su.dsv.scipro.project.split;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import se.su.dsv.scipro.project.Project;
|
import se.su.dsv.scipro.project.Project;
|
||||||
import se.su.dsv.scipro.util.Pair;
|
import se.su.dsv.scipro.util.Pair;
|
||||||
|
|
||||||
@ -25,4 +26,6 @@ public interface SplitOrRestartProjectService {
|
|||||||
Pair<SplittableStatus, Project> getSplittableStatus(long projectId);
|
Pair<SplittableStatus, Project> getSplittableStatus(long projectId);
|
||||||
|
|
||||||
void splitProject(long projectId);
|
void splitProject(long projectId);
|
||||||
|
|
||||||
|
List<Project> getChildProjects(long parentProjectId);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package se.su.dsv.scipro.project.split;
|
package se.su.dsv.scipro.project.split;
|
||||||
|
|
||||||
|
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.transaction.Transactional;
|
import jakarta.transaction.Transactional;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -7,6 +8,7 @@ import se.su.dsv.scipro.finalseminar.FinalSeminarService;
|
|||||||
import se.su.dsv.scipro.project.Project;
|
import se.su.dsv.scipro.project.Project;
|
||||||
import se.su.dsv.scipro.project.ProjectService;
|
import se.su.dsv.scipro.project.ProjectService;
|
||||||
import se.su.dsv.scipro.project.ProjectStatus;
|
import se.su.dsv.scipro.project.ProjectStatus;
|
||||||
|
import se.su.dsv.scipro.project.QProject;
|
||||||
import se.su.dsv.scipro.system.User;
|
import se.su.dsv.scipro.system.User;
|
||||||
import se.su.dsv.scipro.util.Pair;
|
import se.su.dsv.scipro.util.Pair;
|
||||||
|
|
||||||
@ -78,14 +80,20 @@ public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectSe
|
|||||||
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Todo: add RoughDraftApproval if it's 'APPROVED'
|
||||||
|
|
||||||
childProject = projectService.save(childProject);
|
childProject = projectService.save(childProject);
|
||||||
// Todo: Send event to eventBus to synchronize eventual Phase Two Approval
|
// Todo: Send event to eventBus to synchronize eventual Phase Two Approval with MileStone
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parent project will set as inactive
|
// Parent project will set as inactive
|
||||||
project.setProjectStatus(ProjectStatus.INACTIVE);
|
project.setProjectStatus(ProjectStatus.INACTIVE);
|
||||||
projectService.save(project);
|
projectService.save(project);
|
||||||
|
}
|
||||||
|
|
||||||
System.out.println("Hello, split project -> " + projectId);
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public List<Project> getChildProjects(long parentProjectId) {
|
||||||
|
return projectService.findAll(QProject.project.rootProjectId.eq(parentProjectId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,8 +73,6 @@ public class AdminSplitProjectPage extends AbstractAdminProjectPage implements M
|
|||||||
protected void onSubmit() {
|
protected void onSubmit() {
|
||||||
Long projectId = getModel().getObject().getId();
|
Long projectId = getModel().getObject().getId();
|
||||||
|
|
||||||
System.out.println("Project ID: " + projectId);
|
|
||||||
|
|
||||||
splitOrRestartProjectService.splitProject(projectId);
|
splitOrRestartProjectService.splitProject(projectId);
|
||||||
|
|
||||||
final PageParameters pp = new PageParameters();
|
final PageParameters pp = new PageParameters();
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
<wicket:extend>
|
<wicket:extend>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-5">
|
<div class="col-lg-5">
|
||||||
<h4>Hahahaha</h4>
|
<h4 wicket:id="projectTitle"></h4>
|
||||||
|
|
||||||
<p>The project has following children projects:</p>
|
<p>The project has following children projects:</p>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<ul>
|
<ul wicket:id="projectList">
|
||||||
<li>Abcd</li>
|
<li><a wicket:id="editLink"></a></li>
|
||||||
<li>efbud</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,17 +1,68 @@
|
|||||||
package se.su.dsv.scipro.admin.pages;
|
package se.su.dsv.scipro.admin.pages;
|
||||||
|
|
||||||
|
import jakarta.inject.Inject;
|
||||||
|
import java.util.List;
|
||||||
|
import org.apache.wicket.RestartResponseException;
|
||||||
|
import org.apache.wicket.markup.html.basic.Label;
|
||||||
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
||||||
|
import org.apache.wicket.markup.html.list.ListItem;
|
||||||
|
import org.apache.wicket.markup.html.list.ListView;
|
||||||
|
import org.apache.wicket.model.LoadableDetachableModel;
|
||||||
|
import org.apache.wicket.model.Model;
|
||||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||||
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightAdminProjectManagement;
|
import se.su.dsv.scipro.components.menuhighlighting.MenuHighlightAdminProjectManagement;
|
||||||
|
import se.su.dsv.scipro.project.Project;
|
||||||
|
import se.su.dsv.scipro.project.ProjectService;
|
||||||
|
import se.su.dsv.scipro.project.split.SplitOrRestartProjectService;
|
||||||
import se.su.dsv.scipro.security.auth.Authorization;
|
import se.su.dsv.scipro.security.auth.Authorization;
|
||||||
import se.su.dsv.scipro.security.auth.roles.Roles;
|
import se.su.dsv.scipro.security.auth.roles.Roles;
|
||||||
|
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||||
|
|
||||||
@Authorization(authorizedRoles = { Roles.SYSADMIN })
|
@Authorization(authorizedRoles = { Roles.SYSADMIN })
|
||||||
public class AdminViewParentProjectPage
|
public class AdminViewParentProjectPage
|
||||||
extends AbstractAdminProjectPage
|
extends AbstractAdminProjectPage
|
||||||
implements MenuHighlightAdminProjectManagement {
|
implements MenuHighlightAdminProjectManagement {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ProjectService projectService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private SplitOrRestartProjectService splitOrRestartProjectService;
|
||||||
|
|
||||||
public AdminViewParentProjectPage(PageParameters pp) {
|
public AdminViewParentProjectPage(PageParameters pp) {
|
||||||
|
final long id = pp.get(PageParameterKeys.MAP.get(Project.class)).toLong(0);
|
||||||
|
final Project project = projectService.findOne(id);
|
||||||
|
if (project == null) {
|
||||||
|
throw new RestartResponseException(AdminCreateProjectPage.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
add(new Label("projectTitle", Model.of(project.getTitle())));
|
||||||
|
|
||||||
|
LoadableDetachableModel<List<Project>> ldModel = LoadableDetachableModel.of(() ->
|
||||||
|
splitOrRestartProjectService.getChildProjects(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
add(
|
||||||
|
new ListView<>("projectList", ldModel) {
|
||||||
|
@Override
|
||||||
|
protected void populateItem(ListItem<Project> item) {
|
||||||
|
Project project = item.getModelObject();
|
||||||
|
|
||||||
|
final PageParameters pp = new PageParameters();
|
||||||
|
pp.set(PageParameterKeys.MAP.get(Project.class), project.getId());
|
||||||
|
|
||||||
|
BookmarkablePageLink<Void> link = new BookmarkablePageLink<Void>(
|
||||||
|
"editLink",
|
||||||
|
AdminEditProjectPage.class,
|
||||||
|
pp
|
||||||
|
);
|
||||||
|
link.setBody(Model.of(project.getTitle() + " - " + project.getAuthorNames()));
|
||||||
|
|
||||||
|
item.add(link);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
add(new BookmarkablePageLink<Void>("link", ProjectManagementPage.class));
|
add(new BookmarkablePageLink<Void>("link", ProjectManagementPage.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user