Merge pull request #127 from PaulLuchyn/master

Added non-limiting limits and javadoc
This commit is contained in:
Jeroen Baten 2016-11-23 16:42:29 +01:00 committed by GitHub
commit eceac93df1
7 changed files with 113 additions and 48 deletions

View file

@ -33,7 +33,6 @@ public interface ILimitsDAO extends IGenericDAO<Limits, Long> {
List<Limits> getAll(); List<Limits> getAll();
Limits getUsersType(); Limits getLimitsByType(String type);
Limits getResourcesType();
} }

View file

@ -19,6 +19,7 @@
package org.libreplan.business.common.daos; package org.libreplan.business.common.daos;
import org.hibernate.criterion.Restrictions;
import org.libreplan.business.common.entities.Limits; import org.libreplan.business.common.entities.Limits;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -38,25 +39,14 @@ public class LimitsDAO extends GenericDAOHibernate<Limits, Long> implements ILim
return list(Limits.class); return list(Limits.class);
} }
@Override
public Limits getUsersType() {
List<Limits> list = list(Limits.class);
for (Limits item : list) {
if ("users".equals(item.getType())) {
return item;
}
}
return null;
}
@Override @Override
public Limits getResourcesType() { public Limits getLimitsByType(String type) {
List<Limits> list = list(Limits.class);
for (Limits item : list) { return (Limits) getSession()
if ("workers+machines".equals(item.getType())) { .createCriteria(Limits.class)
return item; .add(Restrictions.eq("type", type))
} .uniqueResult();
}
return null;
} }
} }

View file

@ -224,6 +224,10 @@ public class Order extends OrderLineGroup implements Comparable {
return getCurrentVersionInfo().isUsingTheOwnerScenario(); return getCurrentVersionInfo().isUsingTheOwnerScenario();
} }
/**
* Should be public!
* Used in orders/_edition.zul
*/
public BigDecimal getWorkBudget() { public BigDecimal getWorkBudget() {
if (workBudget == null) { if (workBudget == null) {
return BigDecimal.ZERO; return BigDecimal.ZERO;
@ -238,6 +242,10 @@ public class Order extends OrderLineGroup implements Comparable {
this.workBudget = workBudget; this.workBudget = workBudget;
} }
/**
* Should be public!
* Used in orders/_edition.zul
*/
public BigDecimal getMaterialsBudget() { public BigDecimal getMaterialsBudget() {
if (materialsBudget == null) { if (materialsBudget == null) {
return BigDecimal.ZERO; return BigDecimal.ZERO;
@ -252,6 +260,10 @@ public class Order extends OrderLineGroup implements Comparable {
this.materialsBudget = materialsBudget; this.materialsBudget = materialsBudget;
} }
/**
* Should be public!
* Used in orders/_edition.zul
*/
public BigDecimal getTotalManualBudget() { public BigDecimal getTotalManualBudget() {
return getWorkBudget().add(getMaterialsBudget()); return getWorkBudget().add(getMaterialsBudget());
} }

View file

@ -20,6 +20,7 @@
package org.libreplan.web.common; package org.libreplan.web.common;
import org.libreplan.business.common.daos.ILimitsDAO; import org.libreplan.business.common.daos.ILimitsDAO;
import org.libreplan.business.common.daos.LimitsDAO;
import org.libreplan.business.common.entities.Limits; import org.libreplan.business.common.entities.Limits;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
@ -39,6 +40,10 @@ import java.util.List;
@Scope(BeanDefinition.SCOPE_PROTOTYPE) @Scope(BeanDefinition.SCOPE_PROTOTYPE)
public class LimitsModel implements ILimitsModel { public class LimitsModel implements ILimitsModel {
public static final String USER_LIMITS_TYPE = "users";
public static final String RESOURCES_LIMITS_TYPE = "workers+machines";
@Autowired @Autowired
private ILimitsDAO limitsDAO; private ILimitsDAO limitsDAO;
@ -51,12 +56,13 @@ public class LimitsModel implements ILimitsModel {
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public Limits getUsersType() { public Limits getUsersType() {
return limitsDAO.getUsersType(); return limitsDAO.getLimitsByType(USER_LIMITS_TYPE);
} }
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public Limits getResourcesType() { public Limits getResourcesType() {
return limitsDAO.getResourcesType(); return limitsDAO.getLimitsByType(RESOURCES_LIMITS_TYPE);
} }
} }

View file

@ -584,26 +584,43 @@ public class MachineCRUDController extends BaseCRUDController<Machine> {
return machineModel.getMachine(); return machineModel.getMachine();
} }
public boolean isCreateButtonDisabled(){ /**
* Should be public!
* Used in _listMachines.zul
*/
public boolean isCreateButtonDisabled() {
Limits resourcesTypeLimit = limitsModel.getResourcesType(); Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue(); if (isNullOrZeroValue(resourcesTypeLimit)) {
return false;
if ( resourcesTypeLimit != null ) } else {
if ( resourcesCount >= resourcesTypeLimit.getValue() ) Integer resources = resourceDAO.getRowCount().intValue();
return true; return resources >= resourcesTypeLimit.getValue();
}
return false;
} }
/**
* Should be public!
* Used in _listMachines.zul
*/
public String getShowCreateFormLabel(){ public String getShowCreateFormLabel(){
Limits resourcesTypeLimit = limitsModel.getResourcesType(); Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resourcesCount; if (isNullOrZeroValue(resourcesTypeLimit)) {
if ( resourcesCount >= resourcesTypeLimit.getValue() ) return _("Create");
return _("Machines limit reached"); }
return _("Create") + " ( " + resourcesLeft + " " + _("left") + " )"; Integer resources = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resources;
return resources >= resourcesTypeLimit.getValue()
? _("Machines limit reached")
: _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
}
private boolean isNullOrZeroValue (Limits resourcesTypeLimit) {
return resourcesTypeLimit == null ||
resourcesTypeLimit.getValue() == null ||
resourcesTypeLimit.getValue().equals(0);
} }
} }

View file

@ -1114,22 +1114,43 @@ public class WorkerCRUDController extends GenericForwardComposer implements IWor
: ""; : "";
} }
/**
* Should be public!
* Used in resources/worker/_list.zul
*/
public boolean isCreateButtonDisabled() { public boolean isCreateButtonDisabled() {
Limits resourcesTypeLimit = limitsModel.getResourcesType(); Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue(); if (isNullOrZeroValue(resourcesTypeLimit)) {
return false;
return resourcesTypeLimit != null && resourcesCount >= resourcesTypeLimit.getValue(); } else {
Integer resources = resourceDAO.getRowCount().intValue();
return resources >= resourcesTypeLimit.getValue();
}
} }
/**
* Should be public!
* Used in resources/worker/_list.zul
*/
public String getShowCreateFormLabel() { public String getShowCreateFormLabel() {
Limits resourcesTypeLimit = limitsModel.getResourcesType(); Limits resourcesTypeLimit = limitsModel.getResourcesType();
Integer resourcesCount = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resourcesCount; if (isNullOrZeroValue(resourcesTypeLimit)) {
if (resourcesCount >= resourcesTypeLimit.getValue()) return _("Create");
return _("Workers limit reached"); }
return _("Create") + " ( " + resourcesLeft + " " + _("left") + " )"; Integer resources = resourceDAO.getRowCount().intValue();
int resourcesLeft = resourcesTypeLimit.getValue() - resources;
return resources >= resourcesTypeLimit.getValue()
? _("Workers limit reached")
: _("Create") + " ( " + resourcesLeft + " " + _("left") + " )";
}
private boolean isNullOrZeroValue (Limits resourcesTypeLimit) {
return resourcesTypeLimit == null ||
resourcesTypeLimit.getValue() == null ||
resourcesTypeLimit.getValue().equals(0);
} }
} }

View file

@ -440,10 +440,18 @@ public class UserCRUDController extends BaseCRUDController<User> implements IUse
} }
} }
/**
* Should be public!
* Used in _listUsers.zul
*/
public boolean isCreateButtonDisabled() { public boolean isCreateButtonDisabled() {
Limits usersTypeLimit = limitsModel.getUsersType(); Limits usersTypeLimit = limitsModel.getUsersType();
Integer usersCount = userModel.getRowCount().intValue(); if (isNullOrZeroValue(usersTypeLimit)) {
return usersTypeLimit != null && usersCount >= usersTypeLimit.getValue(); return false;
} else {
Integer users = userModel.getRowCount().intValue();
return users >= usersTypeLimit.getValue();
}
} }
/** /**
@ -452,11 +460,23 @@ public class UserCRUDController extends BaseCRUDController<User> implements IUse
*/ */
public String getShowCreateFormLabel() { public String getShowCreateFormLabel() {
Limits usersTypeLimit = limitsModel.getUsersType(); Limits usersTypeLimit = limitsModel.getUsersType();
Integer usersCount = userModel.getRowCount().intValue();
int usersLeft = usersTypeLimit.getValue() - usersCount;
return usersCount >= usersTypeLimit.getValue() if (isNullOrZeroValue(usersTypeLimit)) {
return _("Create");
}
Integer users = userModel.getRowCount().intValue();
int usersLeft = usersTypeLimit.getValue() - users;
return users >= usersTypeLimit.getValue()
? _("User limit reached") ? _("User limit reached")
: _("Create") + " ( " + usersLeft + " " + _("left") + " )"; : _("Create") + " ( " + usersLeft + " " + _("left") + " )";
} }
private boolean isNullOrZeroValue (Limits usersTypeLimit) {
return usersTypeLimit == null ||
usersTypeLimit.getValue() == null ||
usersTypeLimit.getValue().equals(0);
}
} }