ItEr41S20CUGravacionModelosUnidadesTraballoItEr40S25: When saving all templates are marked as not transient to avoid problem when hitting save&continue several times

This commit is contained in:
Óscar González Fernández 2010-01-03 17:18:34 +01:00
parent 75df67ebdd
commit a307b549e1
4 changed files with 39 additions and 2 deletions

View file

@ -20,6 +20,7 @@
package org.navalplanner.business.templates.entities;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.Min;
@ -103,6 +104,8 @@ public abstract class OrderElementTemplate extends BaseEntity {
return infoComponent;
}
public abstract List<OrderElementTemplate> getChildrenTemplates();
@Min(0)
public Integer getDeadlineAsDaysFromBeginning() {
return deadlineAsDaysFromBeginning;

View file

@ -20,6 +20,7 @@
package org.navalplanner.business.templates.entities;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.navalplanner.business.orders.entities.OrderElement;
@ -56,4 +57,9 @@ public class OrderLineGroupTemplate extends OrderElementTemplate {
private List<OrderElementTemplate> children = new ArrayList<OrderElementTemplate>();
@Override
public List<OrderElementTemplate> getChildrenTemplates() {
return Collections.unmodifiableList(children);
}
}

View file

@ -19,6 +19,9 @@
*/
package org.navalplanner.business.templates.entities;
import java.util.Collections;
import java.util.List;
import org.navalplanner.business.orders.entities.OrderLine;
/**
@ -31,4 +34,9 @@ public class OrderLineTemplate extends OrderElementTemplate {
return create(new OrderLineTemplate(), orderLine);
}
@Override
public List<OrderElementTemplate> getChildrenTemplates() {
return Collections.emptyList();
}
}

View file

@ -21,6 +21,8 @@ package org.navalplanner.web.templates;
import java.util.List;
import org.navalplanner.business.common.IAdHocTransactionService;
import org.navalplanner.business.common.IOnTransaction;
import org.navalplanner.business.orders.daos.IOrderElementDAO;
import org.navalplanner.business.orders.entities.OrderElement;
import org.navalplanner.business.templates.daos.IOrderElementTemplateDAO;
@ -45,6 +47,9 @@ public class OrderTemplatesModel implements IOrderTemplatesModel {
@Autowired
private IOrderElementTemplateDAO dao;
@Autowired
private IAdHocTransactionService transaction;
private OrderElementTemplate template;
@Override
@ -58,9 +63,24 @@ public class OrderTemplatesModel implements IOrderTemplatesModel {
}
@Override
@Transactional
public void confirmSave() {
dao.save(template);
transaction.runOnTransaction(new IOnTransaction<Void>() {
@Override
public Void execute() {
dao.save(template);
return null;
}
});
dontPoseAsTransient(template);
}
private void dontPoseAsTransient(OrderElementTemplate template) {
template.dontPoseAsTransientObjectAnymore();
List<OrderElementTemplate> childrenTemplates = template
.getChildrenTemplates();
for (OrderElementTemplate each : childrenTemplates) {
dontPoseAsTransient(each);
}
}
@Override