Use ResourcesSearchModel instead of IResourceDAO

FEA: ItEr74S04BugFixing
This commit is contained in:
Óscar González Fernández 2011-04-11 15:54:24 +02:00
parent c76f134914
commit d6636ec78c
2 changed files with 17 additions and 13 deletions

View file

@ -35,13 +35,13 @@ import org.apache.commons.lang.math.Fraction;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.navalplanner.business.planner.entities.ResourceAllocation;
import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionCompounder;
import org.navalplanner.business.resources.entities.ICriterion;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.workingday.EffortDuration;
import org.navalplanner.business.workingday.IntraDayDate;
import org.navalplanner.web.resources.search.IResourceSearchModel;
import org.zkoss.ganttz.data.resourceload.LoadLevel;
import org.zkoss.ganttz.data.resourceload.LoadPeriod;
@ -91,12 +91,12 @@ abstract class LoadPeriodGenerator {
}
public static LoadPeriodGeneratorFactory onCriterion(
final Criterion criterion, final IResourceDAO resourcesDAO) {
final List<Resource> potentialResources = resourcesDAO
.findSatisfyingAllCriterionsAtSomePoint(Collections
.singletonList(criterion));
return new LoadPeriodGeneratorFactory() {
final Criterion criterion, final IResourceSearchModel resourceSearch) {
final List<Resource> potentialResources = resourceSearch.searchBoth()
.byCriteria(Collections.singletonList(criterion)).execute();
return new LoadPeriodGeneratorFactory() {
@Override
public LoadPeriodGenerator create(ResourceAllocation<?> allocation) {
return new LoadPeriodGeneratorOnCriterion(criterion,

View file

@ -65,6 +65,7 @@ import org.navalplanner.business.users.entities.OrderAuthorizationType;
import org.navalplanner.business.users.entities.User;
import org.navalplanner.business.users.entities.UserRole;
import org.navalplanner.web.calendars.BaseCalendarModel;
import org.navalplanner.web.resources.search.IResourceSearchModel;
import org.navalplanner.web.security.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
@ -84,6 +85,9 @@ public class ResourceLoadModel implements IResourceLoadModel {
@Autowired
private IResourceDAO resourcesDAO;
@Autowired
private IResourceSearchModel resourcesSearchModel;
@Autowired
private ICriterionDAO criterionDAO;
@ -614,13 +618,12 @@ public class ResourceLoadModel implements IResourceLoadModel {
private List<LoadPeriod> createPeriods(Criterion criterion,
List<? extends ResourceAllocation<?>> value) {
if (initDateFilter != null || endDateFilter != null) {
return PeriodsBuilder.build(
LoadPeriodGenerator.onCriterion(criterion, resourcesDAO),
return PeriodsBuilder.build(LoadPeriodGenerator.onCriterion(
criterion, resourcesSearchModel),
value, asDate(initDateFilter), asDate(endDateFilter));
}
return PeriodsBuilder
.build(LoadPeriodGenerator.onCriterion(criterion,
resourcesDAO), value);
return PeriodsBuilder.build(LoadPeriodGenerator.onCriterion(criterion,
resourcesSearchModel), value);
}
private List<LoadTimeLine> groupsFor(List<Resource> allResources) {
@ -982,8 +985,9 @@ public class ResourceLoadModel implements IResourceLoadModel {
resources = resourcesToShow();
}
else {
resources =resourcesDAO
.findSatisfyingAllCriterionsAtSomePoint(criteriaToShow());
resources = resourcesSearchModel.searchBoth()
.byCriteria(criteriaToShow())
.execute();
}
for (Resource resource : resources) {
resourcesDAO.reattach(resource);