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.ajax.markup.html.AjaxLink;
|
||||||
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
import org.apache.wicket.extensions.markup.html.repeater.data.table.*;
|
||||||
import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvider;
|
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.markup.html.panel.Panel;
|
||||||
import org.apache.wicket.model.IModel;
|
import org.apache.wicket.model.IModel;
|
||||||
import org.apache.wicket.model.Model;
|
import org.apache.wicket.model.Model;
|
||||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.domain.Sort;
|
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.CheckListTemplate;
|
||||||
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
||||||
import se.su.dsv.scipro.reusable.AjaxDropDown;
|
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.reusable.FilterStringPanel;
|
||||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
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.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -119,17 +112,7 @@ public abstract class CheckListTemplateDataPanel extends Panel {
|
|||||||
columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), null) {
|
columns[4] = new ClickableDeleteColumn<CheckListTemplate>(Model.of("Delete"), null) {
|
||||||
@Override
|
@Override
|
||||||
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
|
protected void onClick(IModel<CheckListTemplate> clicked, AjaxRequestTarget target) {
|
||||||
//peer templates can be connected to peer requests and cannot be deleted
|
checklistTemplateService.safeDeleteChecklistTemplate(clicked.getObject());
|
||||||
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());
|
|
||||||
}
|
|
||||||
target.addComponent(table);
|
target.addComponent(table);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
|||||||
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
|
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.data.dataobjects.Project;
|
||||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
||||||
import se.su.dsv.scipro.peer.enums.RequestStatus;
|
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> {
|
public interface PeerRequestRepo extends JpaRepository<PeerRequest, Long>, QueryDslPredicateExecutor<PeerRequest> {
|
||||||
|
|
||||||
List<PeerRequest> findByProjectAndStatus(Project project, RequestStatus status);
|
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.CheckListTemplate;
|
||||||
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
import se.su.dsv.scipro.data.dataobjects.ChecklistCategory;
|
||||||
import se.su.dsv.scipro.data.dataobjects.QCheckListTemplate;
|
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.ChecklistTemplateRepo;
|
||||||
|
import se.su.dsv.scipro.springdata.repos.PeerRequestRepo;
|
||||||
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
import se.su.dsv.scipro.springdata.services.ChecklistTemplateService;
|
||||||
|
|
||||||
|
|
||||||
@ -29,6 +31,8 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ChecklistTemplateRepo checklistTemplateRepo;
|
private ChecklistTemplateRepo checklistTemplateRepo;
|
||||||
|
@Resource
|
||||||
|
private PeerRequestRepo peerRequestRepo;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ChecklistTemplateServiceImpl(
|
public ChecklistTemplateServiceImpl(
|
||||||
@ -110,11 +114,16 @@ public class ChecklistTemplateServiceImpl extends AbstractQueryService<CheckList
|
|||||||
|
|
||||||
@Transactional ( readOnly = false )
|
@Transactional ( readOnly = false )
|
||||||
@Override
|
@Override
|
||||||
public void lowerTemplateNumbersAbove(int templateNumber) {
|
public void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate) {
|
||||||
for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(templateNumber)){
|
for (CheckListTemplate clt : checklistTemplateRepo.findAllByTemplateNumberGreaterThan(checkListTemplate.getTemplateNumber())){
|
||||||
clt.setTemplateNumber(clt.getTemplateNumber() -1);
|
clt.setTemplateNumber(clt.getTemplateNumber() -1);
|
||||||
System.out.println(clt.getName() + " " + clt.getTemplateNumber());
|
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 upChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||||
void downChecklistTemplate(CheckListTemplate checkListTemplate);
|
void downChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||||
CheckListTemplate prepareNewTemplate();
|
CheckListTemplate prepareNewTemplate();
|
||||||
void lowerTemplateNumbersAbove(int templateNumber);
|
void safeDeleteChecklistTemplate(CheckListTemplate checkListTemplate);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user