Merged creation of new projects from templates into main creation window

FEA: ItEr75S04BugFixing
This commit is contained in:
Lorenzo Tilve Álvaro 2011-11-04 19:54:54 +01:00
parent 1e335b19b3
commit 6f2204bcbe
4 changed files with 43 additions and 11 deletions

View file

@ -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);
}

View file

@ -3,6 +3,7 @@
*
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
* 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();
}

View file

@ -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);
}
}

View file

@ -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>