Merge pull request #127 from PaulLuchyn/master
Added non-limiting limits and javadoc
This commit is contained in:
commit
eceac93df1
7 changed files with 113 additions and 48 deletions
|
|
@ -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();
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue