ItEr09S09AdministracionGrupos: Shows the resources for a criterion
This commit is contained in:
parent
e797f6e350
commit
906c9763d9
5 changed files with 93 additions and 20 deletions
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||||
import org.navalplanner.business.resources.entities.Criterion;
|
import org.navalplanner.business.resources.entities.Criterion;
|
||||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||||
|
import org.navalplanner.business.resources.entities.Worker;
|
||||||
import org.navalplanner.web.common.IMessagesForUser;
|
import org.navalplanner.web.common.IMessagesForUser;
|
||||||
import org.navalplanner.web.common.MessagesForUser;
|
import org.navalplanner.web.common.MessagesForUser;
|
||||||
import org.navalplanner.web.common.OnlyOneVisible;
|
import org.navalplanner.web.common.OnlyOneVisible;
|
||||||
|
|
@ -116,6 +117,15 @@ public class CriterionAdminController extends GenericForwardComposer {
|
||||||
return criterionsModel.isEditing();
|
return criterionsModel.isEditing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isApplyableToWorkers() {
|
||||||
|
return criterionsModel.isApplyableToWorkers();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Worker> getWorkersForCurrentCriterion() {
|
||||||
|
return criterionsModel
|
||||||
|
.getResourcesSatisfyingCurrentCriterionOfType(Worker.class);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isCriterionActive() {
|
public boolean isCriterionActive() {
|
||||||
return criterionsModel.isCriterionActive();
|
return criterionsModel.isCriterionActive();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.navalplanner.web.resources;
|
package org.navalplanner.web.resources;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -10,6 +11,8 @@ import org.navalplanner.business.common.exceptions.ValidationException;
|
||||||
import org.navalplanner.business.resources.bootstrap.ICriterionsBootstrap;
|
import org.navalplanner.business.resources.bootstrap.ICriterionsBootstrap;
|
||||||
import org.navalplanner.business.resources.entities.Criterion;
|
import org.navalplanner.business.resources.entities.Criterion;
|
||||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||||
|
import org.navalplanner.business.resources.entities.Resource;
|
||||||
|
import org.navalplanner.business.resources.entities.Worker;
|
||||||
import org.navalplanner.business.resources.services.CriterionService;
|
import org.navalplanner.business.resources.services.CriterionService;
|
||||||
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;
|
||||||
|
|
@ -34,7 +37,7 @@ public class CriterionsModel implements ICriterionsModel {
|
||||||
@Autowired
|
@Autowired
|
||||||
private CriterionService criterionService;
|
private CriterionService criterionService;
|
||||||
|
|
||||||
private ICriterionType<Criterion> criterionType;
|
private ICriterionType<?> criterionType;
|
||||||
|
|
||||||
private Criterion criterion;
|
private Criterion criterion;
|
||||||
|
|
||||||
|
|
@ -63,7 +66,7 @@ public class CriterionsModel implements ICriterionsModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void prepareForCreate(ICriterionType<Criterion> criterionType) {
|
public void prepareForCreate(ICriterionType<?> criterionType) {
|
||||||
this.criterionType = criterionType;
|
this.criterionType = criterionType;
|
||||||
this.criterion = null;
|
this.criterion = null;
|
||||||
}
|
}
|
||||||
|
|
@ -72,7 +75,7 @@ public class CriterionsModel implements ICriterionsModel {
|
||||||
public void prepareForEdit(Criterion criterion) {
|
public void prepareForEdit(Criterion criterion) {
|
||||||
Validate.notNull(criterion);
|
Validate.notNull(criterion);
|
||||||
this.criterion = criterion;
|
this.criterion = criterion;
|
||||||
this.criterionType = null;
|
this.criterionType = getTypeFor(criterion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -101,7 +104,8 @@ public class CriterionsModel implements ICriterionsModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void create() throws ValidationException {
|
private void create() throws ValidationException {
|
||||||
Criterion criterion = criterionType.createCriterion(nameForCriterion);
|
Criterion criterion = (Criterion) criterionType
|
||||||
|
.createCriterion(nameForCriterion);
|
||||||
InvalidValue[] invalidValues = criterionValidator
|
InvalidValue[] invalidValues = criterionValidator
|
||||||
.getInvalidValues(criterion);
|
.getInvalidValues(criterion);
|
||||||
if (invalidValues.length > 0)
|
if (invalidValues.length > 0)
|
||||||
|
|
@ -133,4 +137,18 @@ public class CriterionsModel implements ICriterionsModel {
|
||||||
public void setCriterionActive(boolean active) {
|
public void setCriterionActive(boolean active) {
|
||||||
criterion.setActive(active);
|
criterion.setActive(active);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isApplyableToWorkers() {
|
||||||
|
return criterionType != null
|
||||||
|
&& criterionType.criterionCanBeRelatedTo(Worker.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends Resource> List<T> getResourcesSatisfyingCurrentCriterionOfType(
|
||||||
|
Class<T> klass) {
|
||||||
|
if (criterion == null)
|
||||||
|
return new ArrayList<T>();
|
||||||
|
return criterionService.getResourcesSatisfying(klass, criterion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import java.util.List;
|
||||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||||
import org.navalplanner.business.resources.entities.Criterion;
|
import org.navalplanner.business.resources.entities.Criterion;
|
||||||
import org.navalplanner.business.resources.entities.ICriterionType;
|
import org.navalplanner.business.resources.entities.ICriterionType;
|
||||||
|
import org.navalplanner.business.resources.entities.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CriterionsModel contract <br />
|
* CriterionsModel contract <br />
|
||||||
|
|
@ -19,7 +20,7 @@ public interface ICriterionsModel {
|
||||||
|
|
||||||
Criterion getCriterion();
|
Criterion getCriterion();
|
||||||
|
|
||||||
void prepareForCreate(ICriterionType<Criterion> criterionType);
|
void prepareForCreate(ICriterionType<?> criterionType);
|
||||||
|
|
||||||
void prepareForEdit(Criterion criterion);
|
void prepareForEdit(Criterion criterion);
|
||||||
|
|
||||||
|
|
@ -37,4 +38,9 @@ public interface ICriterionsModel {
|
||||||
|
|
||||||
void setCriterionActive(boolean active);
|
void setCriterionActive(boolean active);
|
||||||
|
|
||||||
|
boolean isApplyableToWorkers();
|
||||||
|
|
||||||
|
<T extends Resource> List<T> getResourcesSatisfyingCurrentCriterionOfType(
|
||||||
|
Class<T> klass);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,55 @@
|
||||||
<zk>
|
<zk>
|
||||||
<vbox id="${arg.top_id}">
|
<tabbox id="${arg.top_id}">
|
||||||
<hbox>
|
<tabs>
|
||||||
<label value="name" />
|
<tab label="Edición" closable="false" />
|
||||||
<textbox value="@{controller.criterionName}" />
|
<tab label="Trabajadores" closable="false"
|
||||||
<checkbox checked="@{controller.criterionActive}" visible="@{controller.editing}"></checkbox>
|
visible="@{controller.isApplyableToWorkers}" />
|
||||||
</hbox>
|
</tabs>
|
||||||
<hbox>
|
<tabpanels>
|
||||||
<button onClick="controller.save();"
|
<tabpanel>
|
||||||
label="${arg.save_button_label}" />
|
<vbox>
|
||||||
<button onClick="controller.cancel();"
|
<hbox>
|
||||||
label="${arg.cancel_button_label}" />
|
<label value="name" />
|
||||||
</hbox>
|
<textbox value="@{controller.criterionName}" />
|
||||||
</vbox>
|
<checkbox
|
||||||
|
checked="@{controller.criterionActive}"
|
||||||
|
visible="@{controller.editing}">
|
||||||
|
</checkbox>
|
||||||
|
</hbox>
|
||||||
|
<hbox>
|
||||||
|
<button onClick="controller.save();"
|
||||||
|
label="${arg.save_button_label}" />
|
||||||
|
<button onClick="controller.cancel();"
|
||||||
|
label="${arg.cancel_button_label}" />
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
|
</tabpanel>
|
||||||
|
<tabpanel>
|
||||||
|
<grid
|
||||||
|
model="@{controller.workersForCurrentCriterion}"
|
||||||
|
mold="paging" pageSize="5">
|
||||||
|
<columns>
|
||||||
|
<column label="operations" />
|
||||||
|
<column label="First Name"
|
||||||
|
sort="auto(firstName)" />
|
||||||
|
<column label="Surname" sort="auto(surname)" />
|
||||||
|
<column label="nif" sort="auto(nif)" />
|
||||||
|
</columns>
|
||||||
|
<rows>
|
||||||
|
<row self="@{each='worker'}"
|
||||||
|
value="@{worker}">
|
||||||
|
<label value="@{worker.firstName}" />
|
||||||
|
<label value="@{worker.surname}" />
|
||||||
|
<label value="@{worker.nif}" />
|
||||||
|
<hbox>
|
||||||
|
<button label="Edit">
|
||||||
|
</button>
|
||||||
|
</hbox>
|
||||||
|
</row>
|
||||||
|
</rows>
|
||||||
|
</grid>
|
||||||
|
</tabpanel>
|
||||||
|
</tabpanels>
|
||||||
|
</tabbox>
|
||||||
|
|
||||||
</zk>
|
</zk>
|
||||||
|
|
@ -20,8 +20,7 @@
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<label value="daily_hours" />
|
<label value="daily_hours" />
|
||||||
<textbox value="@{controller.worker.dailyHours}"
|
<textbox value="@{controller.worker.dailyHours}"/>
|
||||||
/>
|
|
||||||
</row>
|
</row>
|
||||||
</rows>
|
</rows>
|
||||||
</grid>
|
</grid>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue