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;
|
||||
|
||||
import java.util.List;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.util.Pair;
|
||||
|
||||
@ -25,4 +26,6 @@ public interface SplitOrRestartProjectService {
|
||||
Pair<SplittableStatus, Project> getSplittableStatus(long projectId);
|
||||
|
||||
void splitProject(long projectId);
|
||||
|
||||
List<Project> getChildProjects(long parentProjectId);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package se.su.dsv.scipro.project.split;
|
||||
|
||||
import com.querydsl.core.types.dsl.BooleanExpression;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.transaction.Transactional;
|
||||
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.ProjectService;
|
||||
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.util.Pair;
|
||||
|
||||
@ -78,14 +80,20 @@ public class SplitOrRestartProjectServiceImpl implements SplitOrRestartProjectSe
|
||||
project.getRootProjectId() != null ? project.getRootProjectId() : project.getId()
|
||||
);
|
||||
|
||||
// Todo: add RoughDraftApproval if it's 'APPROVED'
|
||||
|
||||
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
|
||||
project.setProjectStatus(ProjectStatus.INACTIVE);
|
||||
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() {
|
||||
Long projectId = getModel().getObject().getId();
|
||||
|
||||
System.out.println("Project ID: " + projectId);
|
||||
|
||||
splitOrRestartProjectService.splitProject(projectId);
|
||||
|
||||
final PageParameters pp = new PageParameters();
|
||||
|
@ -4,14 +4,13 @@
|
||||
<wicket:extend>
|
||||
<div class="row">
|
||||
<div class="col-lg-5">
|
||||
<h4>Hahahaha</h4>
|
||||
<h4 wicket:id="projectTitle"></h4>
|
||||
|
||||
<p>The project has following children projects:</p>
|
||||
|
||||
<div class="mb-3">
|
||||
<ul>
|
||||
<li>Abcd</li>
|
||||
<li>efbud</li>
|
||||
<ul wicket:id="projectList">
|
||||
<li><a wicket:id="editLink"></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@ -1,17 +1,68 @@
|
||||
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.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 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.roles.Roles;
|
||||
import se.su.dsv.scipro.util.PageParameterKeys;
|
||||
|
||||
@Authorization(authorizedRoles = { Roles.SYSADMIN })
|
||||
public class AdminViewParentProjectPage
|
||||
extends AbstractAdminProjectPage
|
||||
implements MenuHighlightAdminProjectManagement {
|
||||
|
||||
@Inject
|
||||
private ProjectService projectService;
|
||||
|
||||
@Inject
|
||||
private SplitOrRestartProjectService splitOrRestartProjectService;
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user