Merged creation of new projects from templates into main creation window
FEA: ItEr75S04BugFixing
This commit is contained in:
parent
1e335b19b3
commit
6f2204bcbe
4 changed files with 43 additions and 11 deletions
|
|
@ -105,7 +105,9 @@ import org.zkoss.zul.api.Window;
|
|||
|
||||
/**
|
||||
* Controller for CRUD actions <br />
|
||||
*
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
* @author Lorenzo Tilve Álvaro <ltilve@igalia.com>
|
||||
*/
|
||||
@org.springframework.stereotype.Component
|
||||
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
|
||||
|
|
@ -944,6 +946,10 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
orderTemplates.goToCreateTemplateFrom(order);
|
||||
}
|
||||
|
||||
public void createFromTemplate(OrderTemplate template) {
|
||||
orderModel.prepareCreationFrom(template, getDesktop());
|
||||
}
|
||||
|
||||
private Runnable onUp;
|
||||
|
||||
public void goToEditForm(Order order) {
|
||||
|
|
@ -1088,18 +1094,14 @@ public class OrderCRUDController extends GenericForwardComposer {
|
|||
orderModel.prepareForCreate(desktop);
|
||||
}
|
||||
|
||||
private void editNewCreatedOrder() {
|
||||
public void editNewCreatedOrder(Window detailsWindow) {
|
||||
showOrderElementFilter();
|
||||
hideCreateButtons();
|
||||
prepareEditWindow();
|
||||
showEditWindow(_("Create project"));
|
||||
}
|
||||
|
||||
public void editNewCreatedOrder(Window detailsWindow) {
|
||||
editNewCreatedOrder();
|
||||
// close project details window
|
||||
detailsWindow.setVisible(false);
|
||||
setupOrderAuthorizationController();
|
||||
detailsWindow.getAttributes();
|
||||
saveAndContinue(false);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
* This file is part of LibrePlan
|
||||
*
|
||||
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
* Desenvolvemento Tecnolóxico de Galicia
|
||||
* Copyright (C) 2011 Igalia, S.L.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify it under
|
||||
* the terms of the GNU Affero General Public License as published by the Free
|
||||
|
|
@ -396,9 +397,18 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel {
|
|||
@Transactional(readOnly = true)
|
||||
public void prepareCreationFrom(OrderTemplate template, Desktop desktop) {
|
||||
loadNeededDataForConversation();
|
||||
Order order = createOrderFrom((OrderTemplate) templateDAO
|
||||
Order newOrder = createOrderFrom((OrderTemplate) templateDAO
|
||||
.findExistingEntity(template.getId()));
|
||||
planningState = planningStateCreator.createOn(desktop, order);
|
||||
newOrder.setName(getOrder().getName());
|
||||
if (!getOrder().isCodeAutogenerated()) {
|
||||
newOrder.setCodeAutogenerated();
|
||||
newOrder.setCode(getOrder().getCode());
|
||||
}
|
||||
|
||||
newOrder.setCustomer(((Order) getOrder()).getCustomer());
|
||||
newOrder.setCalendar(getCalendar());
|
||||
|
||||
planningState = planningStateCreator.createOn(desktop, newOrder);
|
||||
forceLoadAdvanceAssignmentsAndMeasurements(planningState.getOrder());
|
||||
initializeOrder();
|
||||
}
|
||||
|
|
@ -455,7 +465,7 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel {
|
|||
this.planningState.getSaveCommand().save(beforeSaveActions, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void reattachCalendar() {
|
||||
if (planningState.getOrder().getCalendar() == null) {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
* This file is part of LibrePlan
|
||||
*
|
||||
* Copyright (C) 2010-2011 Wireless Galicia, S.L.
|
||||
* Copyright (C) 2011 Igalia, S.L.
|
||||
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
|
|
@ -30,6 +32,7 @@ import org.apache.commons.logging.LogFactory;
|
|||
import org.libreplan.business.calendars.entities.BaseCalendar;
|
||||
import org.libreplan.business.externalcompanies.entities.ExternalCompany;
|
||||
import org.libreplan.business.orders.entities.Order;
|
||||
import org.libreplan.business.templates.entities.OrderTemplate;
|
||||
import org.libreplan.web.common.ConstraintChecker;
|
||||
import org.libreplan.web.common.Util;
|
||||
import org.libreplan.web.common.components.bandboxsearch.BandboxSearch;
|
||||
|
|
@ -53,7 +56,9 @@ import org.zkoss.zul.Window;
|
|||
/**
|
||||
* Controller for the creation of an {@link order} with its principal
|
||||
* properties.
|
||||
*
|
||||
* @author Susana Montes Pedreira <smontes@wirelessgailicia.com>
|
||||
* @author Lorenzo Tilve Álvaro <ltilve@igalia.com>
|
||||
*/
|
||||
|
||||
public class ProjectDetailsController extends GenericForwardComposer {
|
||||
|
|
@ -79,6 +84,8 @@ public class ProjectDetailsController extends GenericForwardComposer {
|
|||
|
||||
private BandboxSearch bdExternalCompanies;
|
||||
|
||||
private BandboxSearch bdProjectTemplate;
|
||||
|
||||
private Textbox txtName;
|
||||
|
||||
private Datebox deadline;
|
||||
|
|
@ -131,6 +138,13 @@ public class ProjectDetailsController extends GenericForwardComposer {
|
|||
if (tabs != null) {
|
||||
tabs.goToOrdersList();
|
||||
}
|
||||
|
||||
if (bdProjectTemplate.getSelectedElement() != null) {
|
||||
OrderTemplate template = (OrderTemplate) bdProjectTemplate
|
||||
.getSelectedElement();
|
||||
|
||||
orderController.createFromTemplate(template);
|
||||
}
|
||||
orderController.editNewCreatedOrder(window);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<?taglib uri="/WEB-INF/tld/i18n.tld" prefix="i18n" ?>
|
||||
|
||||
<window id="projectCreationWindow"
|
||||
title="${i18n:_('Create project')}"
|
||||
title="${i18n:_('Create new project')}"
|
||||
width="650px"
|
||||
closable="true"
|
||||
onClose="self.visible = false; event.stopPropagation();">
|
||||
|
|
@ -46,6 +46,11 @@
|
|||
checked="@{projectController.codeAutogenerated}"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Template')}" />
|
||||
<bandboxSearch id="bdProjectTemplate" finder="templatesEligibleForOrder"
|
||||
widthBandbox="300px" widthListbox="500px" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="${i18n:_('Starting date')}" />
|
||||
<datebox id="initDate"
|
||||
|
|
@ -71,6 +76,7 @@
|
|||
itemRenderer="@{projectController.baseCalendarsComboitemRenderer}"
|
||||
onSelect="projectController.setBaseCalendar(self.selectedItem.value);" />
|
||||
</row>
|
||||
|
||||
</rows>
|
||||
</grid>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue