safe deletion of checklist templates implemented
This commit is contained in:
parent
dafed310d3
commit
90c8ffbd6d
src/main/java/se/su/dsv/scipro
datatables/checklist
springdata
repos
serviceimpls
services
@ -4,24 +4,17 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
import org.apache.wicket.ajax.markup.html.AjaxLink;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
||||
import org.apache.wicket.markup.html.form.Form;
|
||||
import org.apache.wicket.markup.html.form.RequiredTextField;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.checklists.panels.ChecklistCategoryPanel;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
||||
import se.su.dsv.scipro.reusable.AjaxDropDown;
|
||||
import se.su.dsv.scipro.reusable.FilterBooleanPanel;
|
||||
import se.su.dsv.scipro.reusable.FilterStringPanel;
|
||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
||||
import se.su.dsv.scipro.util.JavascriptEventConfirmation;
|
||||
import sun.plugin2.message.JavaScriptBaseMessage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@ -119,17 +112,7 @@ public abstract class CheckListTemplateDataPanel extends Panel {
|
||||
columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), null) {
|
||||
@Override
|
||||
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
|
||||
//peer templates can be connected to peer requests and cannot be deleted
|
||||
boolean isPeer = false;
|
||||
for (ChecklistCategory clc : clicked.getObject().getCategories()){
|
||||
if (clc.getCategoryName().equalsIgnoreCase("peer")){
|
||||
isPeer = true;
|
||||
}
|
||||
}
|
||||
if (!isPeer){
|
||||
checklistTemplateService.lowerTemplateNumbersAbove(clicked.getObject().getTemplateNumber());
|
||||
checklistTemplateService.delete(clicked.getObject().getId());
|
||||
}
|
||||
checklistTemplateService.safeDeleteChecklistTemplate(clicked.getObject());
|
||||
target.addComponent(table);
|
||||
}
|
||||
};
|
||||
|
@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
||||
import se.su.dsv.scipro.peer.enums.RequestStatus;
|
||||
@ -14,6 +15,7 @@ import se.su.dsv.scipro.peer.enums.RequestStatus;
|
||||
public interface PeerRequestRepo extends JpaRepository<PeerRequest, Long>, QueryDslPredicateExecutor<PeerRequest> {
|
||||
|
||||
List<PeerRequest> findByProjectAndStatus(Project project, RequestStatus status);
|
||||
List<PeerRequest> findByCheckListTemplate(CheckListTemplate checkListTemplate);
|
||||
}
|
||||
|
||||
|
||||
|
@ -11,7 +11,9 @@ import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.data.dataobjects.CheckListTemplate;
|
||||
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
||||
import se.su.dsv.scipro.data.dataobjects.QCheckListTemplate;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
||||
import se.su.dsv.scipro.springdata.repos.ChecklistTemplateRepo;
|
||||
import se.su.dsv.scipro.springdata.repos.PeerRequestRepo;
|
||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
||||
|
||||
|
||||
@ -29,6 +31,8 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
|
||||
|
||||
@Resource
|
||||
private ChecklistTemplateRepo checklistTemplateRepo;
|
||||
@Resource
|
||||
private PeerRequestRepo peerRequestRepo;
|
||||
|
||||
@Autowired
|
||||
public ChecklistTemplateServiceImpl(
|
||||
@ -110,11 +114,16 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
|
||||
|
||||
@Transactional ( readOnly = false )
|
||||
@Override
|
||||
public void lowerTemplateNumbersAbove(int templateNumber) {
|
||||
for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){
|
||||
public void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate) {
|
||||
for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(checkListTemplate.getTemplateNumber())){
|
||||
clt.setTemplateNumber(clt.getTemplateNumber() -1);
|
||||
System.out.println(clt.getName() + " " + clt.getTemplateNumber());
|
||||
}
|
||||
for (PeerRequest pr : peerRequestRepo.findByCheckListTemplate(checkListTemplate)){
|
||||
pr.setCheckListTemplate(null);
|
||||
peerRequestRepo.save(pr);
|
||||
}
|
||||
checklistTemplateRepo.delete(checkListTemplate);
|
||||
}
|
||||
|
||||
|
||||
|
@ -16,5 +16,5 @@ public interface ChecklistTemplateService extends CrudService<CheckListTemplate,
|
||||
void upChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||
void downChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||
CheckListTemplate prepareNewTemplate();
|
||||
void lowerTemplateNumbersAbove(int templateNumber);
|
||||
void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user