Skip to content
Snippets Groups Projects
Commit 5dc1aeb7 authored by srosse's avatar srosse
Browse files

OO-1907: implement the function delete license

parent 7c577f6c
No related branches found
No related tags found
No related merge requests found
...@@ -202,5 +202,7 @@ public interface QPoolService { ...@@ -202,5 +202,7 @@ public interface QPoolService {
public QLicense updateLicense(QLicense license); public QLicense updateLicense(QLicense license);
public boolean deleteLicense(QLicense license);
} }
...@@ -121,13 +121,28 @@ public class QLicenseDAO implements ApplicationListener<ContextRefreshedEvent> { ...@@ -121,13 +121,28 @@ public class QLicenseDAO implements ApplicationListener<ContextRefreshedEvent> {
public boolean delete(QLicense license) { public boolean delete(QLicense license) {
QLicense reloadLicense = loadById(license.getKey()); QLicense reloadLicense = loadById(license.getKey());
if(reloadLicense.isDeletable()) { if(reloadLicense != null && reloadLicense.isDeletable()) {
dbInstance.getCurrentEntityManager().remove(reloadLicense); int used = countItemUsing(reloadLicense);
return true; if(used == 0) {
dbInstance.getCurrentEntityManager().remove(reloadLicense);
return true;
}
return false;
} }
return false; return false;
} }
public int countItemUsing(QLicense license) {
StringBuilder sb = new StringBuilder();
sb.append("select count(item) from questionitem item where item.license.key=:licenseKey");
List<Number> count = dbInstance.getCurrentEntityManager()
.createQuery(sb.toString(), Number.class)
.setParameter("licenseKey", license.getKey())
.getResultList();
return count == null || count.isEmpty() || count.get(0) == null ? 0 : count.get(0).intValue();
}
public List<QLicense> getLicenses() { public List<QLicense> getLicenses() {
return dbInstance.getCurrentEntityManager() return dbInstance.getCurrentEntityManager()
.createNamedQuery("loadQLicenses", QLicense.class) .createNamedQuery("loadQLicenses", QLicense.class)
......
...@@ -760,6 +760,11 @@ public class QuestionPoolServiceImpl implements QPoolService { ...@@ -760,6 +760,11 @@ public class QuestionPoolServiceImpl implements QPoolService {
return qpoolLicenseDao.update(license); return qpoolLicenseDao.update(license);
} }
@Override
public boolean deleteLicense(QLicense license) {
return qpoolLicenseDao.delete(license);
}
@Override @Override
public List<TaxonomyLevel> getTaxonomyLevels() { public List<TaxonomyLevel> getTaxonomyLevels() {
return taxonomyLevelDao.loadAllLevels(); return taxonomyLevelDao.loadAllLevels();
......
...@@ -136,8 +136,8 @@ public class QLicensesAdminController extends FormBasicController { ...@@ -136,8 +136,8 @@ public class QLicensesAdminController extends FormBasicController {
cleanUp(); cleanUp();
} else if(source == confirmDeleteCtrl) { } else if(source == confirmDeleteCtrl) {
if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) { if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
QLicense type = (QLicense)confirmDeleteCtrl.getUserObject(); QLicense license = (QLicense)confirmDeleteCtrl.getUserObject();
doDelete(ureq, type); doDelete(license);
} }
} else if(source == cmc) { } else if(source == cmc) {
cleanUp(); cleanUp();
...@@ -164,9 +164,13 @@ public class QLicensesAdminController extends FormBasicController { ...@@ -164,9 +164,13 @@ public class QLicensesAdminController extends FormBasicController {
confirmDeleteCtrl.setUserObject(type); confirmDeleteCtrl.setUserObject(type);
} }
private void doDelete(UserRequest ureq, QLicense type) { private void doDelete(QLicense license) {
//qpoolService.deldeletePool(pool); if(qpoolService.deleteLicense(license)) {
reloadModel(); reloadModel();
showInfo("item.license.deleted");
} else {
showError("item.license.notdeleted");
}
} }
private void doEdit(UserRequest ureq, QLicense license) { private void doEdit(UserRequest ureq, QLicense license) {
......
...@@ -19,6 +19,8 @@ delete.type.confirm=Wollen Sie wirklich diesen Typ l\u00F6schen? ...@@ -19,6 +19,8 @@ delete.type.confirm=Wollen Sie wirklich diesen Typ l\u00F6schen?
edit.taxonomyLevel=Fachbereich bearbeiten edit.taxonomyLevel=Fachbereich bearbeiten
educational.context.deleted=Fachbereich wurde erfolgreich gel\u00F6scht educational.context.deleted=Fachbereich wurde erfolgreich gel\u00F6scht
educational.context.notdeleted=Fachbereich konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet educational.context.notdeleted=Fachbereich konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
item.license.deleted=Lizenz wurde erfolgreich gel\u00F6scht
item.license.notdeleted=Lizenz konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
error.item.type.unique=Ein Fragetyp mit diesem Name existiert schon. error.item.type.unique=Ein Fragetyp mit diesem Name existiert schon.
item.type.deleted=Fragetyp wurde erfolgreich gel\u00F6scht item.type.deleted=Fragetyp wurde erfolgreich gel\u00F6scht
item.type.notdeleted=Fragetyp konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet item.type.notdeleted=Fragetyp konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
......
...@@ -20,6 +20,8 @@ edit.taxonomyLevel=Edit subject ...@@ -20,6 +20,8 @@ edit.taxonomyLevel=Edit subject
educational.context.deleted=Subject has been successfully deleted. educational.context.deleted=Subject has been successfully deleted.
educational.context.notdeleted=Subject cannot be deleted, it is probably in use. educational.context.notdeleted=Subject cannot be deleted, it is probably in use.
error.item.type.unique=A question type with this name already exists. error.item.type.unique=A question type with this name already exists.
item.license.deleted=License has been successfully deleted.
item.license.notdeleted=License cannot be deleted, it is probably in use.
item.type.deleted=Type has been successfully deleted. item.type.deleted=Type has been successfully deleted.
item.type.notdeleted=Type cannot be deleted, it is probably in use. item.type.notdeleted=Type cannot be deleted, it is probably in use.
level.key=ID level.key=ID
......
...@@ -20,6 +20,8 @@ edit.taxonomyLevel=Editer le sujet ...@@ -20,6 +20,8 @@ edit.taxonomyLevel=Editer le sujet
educational.context.deleted=Le sujet a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s. educational.context.deleted=Le sujet a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
educational.context.notdeleted=Le sujet n'a pas pu \u00EAtre effac\u00E9, il est probablement utilis\u00E9. educational.context.notdeleted=Le sujet n'a pas pu \u00EAtre effac\u00E9, il est probablement utilis\u00E9.
error.item.type.unique=Un type de question avec ce nom existe déjà. error.item.type.unique=Un type de question avec ce nom existe déjà.
item.license.deleted=Le license a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
item.license.notdeleted=Le license n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9.
item.type.deleted=Le type a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s. item.type.deleted=Le type a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
item.type.notdeleted=Le type n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9. item.type.notdeleted=Le type n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9.
level.key=ID level.key=ID
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment