Bug #1592: Save Order before showing it
Otherwise the MutableTreeModel associated is initialized with a Order that is not saved yet. When it's used, e.g., when adding a subtask, it fails. The MutableTreeModel#nodesByDomainObject map wouldn't find the node associated to the Order, because the hashCode is different. At first the Order is a new object so it returns a different hashCode, once saved another. With these changes, when initializing the MutableTreeModel it has already been saved.
This commit is contained in:
parent
cc7f0388b9
commit
787916b50d
2 changed files with 14 additions and 5 deletions
|
|
@ -940,6 +940,10 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
prepareEditWindow(_("Edit project"));
|
||||
}
|
||||
|
||||
public IOrderModel getOrderModel() {
|
||||
return orderModel;
|
||||
}
|
||||
|
||||
private Desktop getDesktop() {
|
||||
return listWindow.getDesktop();
|
||||
}
|
||||
|
|
@ -1068,7 +1072,6 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
detailsWindow.setVisible(false);
|
||||
setupOrderAuthorizationController();
|
||||
detailsWindow.getAttributes();
|
||||
saveAndContinue(false);
|
||||
}
|
||||
|
||||
public ProjectDetailsController getCreationPopup() {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import org.libreplan.web.planner.consolidations.AdvanceConsolidationController;
|
|||
import org.libreplan.web.planner.tabs.MultipleTabsPlannerController;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.zkoss.zk.ui.Component;
|
||||
import org.zkoss.zk.ui.Desktop;
|
||||
import org.zkoss.zk.ui.Executions;
|
||||
import org.zkoss.zk.ui.SuspendNotAllowedException;
|
||||
import org.zkoss.zk.ui.WrongValueException;
|
||||
|
|
@ -138,13 +139,18 @@ public class ProjectDetailsController extends GenericForwardComposer {
|
|||
|
||||
public void accept() {
|
||||
if (validate()) {
|
||||
if (tabs != null) {
|
||||
tabs.goToOrderDetails(orderController.getOrder());
|
||||
}
|
||||
Desktop desktop = window.getDesktop();
|
||||
IOrderModel orderModel = orderController.getOrderModel();
|
||||
if (bdProjectTemplate.getSelectedElement() != null) {
|
||||
OrderTemplate template = (OrderTemplate) bdProjectTemplate
|
||||
.getSelectedElement();
|
||||
orderController.createFromTemplate(template);
|
||||
orderModel.prepareCreationFrom(template, desktop);
|
||||
} else {
|
||||
orderModel.initEdit(orderController.getOrder(), desktop);
|
||||
}
|
||||
orderModel.save();
|
||||
if (tabs != null) {
|
||||
tabs.goToOrderDetails(orderController.getOrder());
|
||||
}
|
||||
orderController.editNewCreatedOrder(window);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue