Disable change of scheduling state point in WBS for tasks updated from timesheets

FEA: ItEr77S12AdaptPlanningAccordingTimesheets
This commit is contained in:
Manuel Rego Casasnovas 2012-11-07 15:25:10 +01:00
parent 4397d43133
commit f25897a6a4
4 changed files with 29 additions and 1 deletions

View file

@ -1012,6 +1012,14 @@ public abstract class OrderElement extends IntegrationEntity implements
return getCurrentSchedulingData().getTaskSource();
}
public TaskElement getTaskElement() {
TaskSource taskSource = getTaskSource();
if (taskSource == null) {
return null;
}
return taskSource.getTask();
}
public Set<TaskElement> getTaskElements() {
if (getTaskSource() == null) {
return Collections.emptySet();

View file

@ -41,6 +41,7 @@ import org.libreplan.business.orders.entities.OrderElement;
import org.libreplan.business.orders.entities.OrderLine;
import org.libreplan.business.orders.entities.OrderLineGroup;
import org.libreplan.business.orders.entities.SchedulingState;
import org.libreplan.business.planner.entities.TaskElement;
import org.libreplan.business.requirements.entities.CriterionRequirement;
import org.libreplan.business.templates.entities.OrderElementTemplate;
import org.libreplan.business.users.entities.UserRole;
@ -518,6 +519,15 @@ public class OrderElementTreeController extends TreeController<OrderElement> {
super.removeCodeTextbox(key);
}
@Override
protected boolean isUpdatedFromTimesheets(OrderElement currentElement) {
TaskElement taskElement = currentElement.getTaskElement();
if (taskElement != null) {
return taskElement.isUpdatedFromTimesheets();
}
return false;
}
}
@Override

View file

@ -169,6 +169,12 @@ public class TemplatesTreeController extends
return currentElement.getSchedulingState();
}
@Override
protected boolean isUpdatedFromTimesheets(
OrderElementTemplate currentElement) {
return false;
}
}
public TemplatesTreeController(IOrderTemplatesModel model,

View file

@ -762,7 +762,8 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
final SchedulingState schedulingState = getSchedulingStateFrom(currentElement);
SchedulingStateToggler schedulingStateToggler = new SchedulingStateToggler(
schedulingState);
schedulingStateToggler.setReadOnly(readOnly);
schedulingStateToggler.setReadOnly(readOnly
|| isUpdatedFromTimesheets(currentElement));
final Treecell cell = addCell(
getDecorationFromState(getSchedulingStateFrom(currentElement)),
schedulingStateToggler);
@ -1227,6 +1228,9 @@ public abstract class TreeController<T extends ITreeNode<T>> extends
public void doTry() {
}
protected abstract boolean isUpdatedFromTimesheets(T currentElement);
}
public void setColumns(List<Column> columns) {