From 7021e868b3141a0bd4ac679e6363141ac1fffc83 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 10:28:12 +0200 Subject: [PATCH 001/261] Rename pending file to libreplan FEA: ItEr75S03CommunityMaterial --- ...lapp-all-keys-generator.sh => libreplan-all-keys-generator.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/{navalapp-all-keys-generator.sh => libreplan-all-keys-generator.sh} (100%) diff --git a/scripts/navalapp-all-keys-generator.sh b/scripts/libreplan-all-keys-generator.sh similarity index 100% rename from scripts/navalapp-all-keys-generator.sh rename to scripts/libreplan-all-keys-generator.sh From e1c235057d2b606f1760b1c8f47c59f6a44c6b7f Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 10:02:39 +0200 Subject: [PATCH 002/261] Fix BaseCalendarModelTest needed to load configuration FEA: ItEr75S04BugFixing --- .../web/calendars/BaseCalendarModelTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/calendars/BaseCalendarModelTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/calendars/BaseCalendarModelTest.java index c6d3804e1..dbe923523 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/calendars/BaseCalendarModelTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/calendars/BaseCalendarModelTest.java @@ -33,9 +33,13 @@ import static org.libreplan.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CO import java.util.List; import java.util.UUID; +import javax.annotation.Resource; + import org.joda.time.LocalDate; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.libreplan.business.IDataBootstrap; import org.libreplan.business.calendars.daos.IBaseCalendarDAO; import org.libreplan.business.calendars.entities.BaseCalendar; import org.libreplan.business.calendars.entities.CalendarData.Days; @@ -74,6 +78,21 @@ public class BaseCalendarModelTest { @Autowired private IAdHocTransactionService transactionService; + @Resource + private IDataBootstrap configurationBootstrap; + + @Before + public void loadRequiredaData() { + transactionService.runOnAnotherTransaction(new IOnTransaction() { + + @Override + public Void execute() { + configurationBootstrap.loadRequiredData(); + return null; + } + }); + } + @Test public void testCreateAndSave() { int previous = baseCalendarModel.getBaseCalendars().size(); From fdd864a35fe75951440aec84ec887ab8e06e8894 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 11:39:59 +0200 Subject: [PATCH 003/261] Unskip tests in ScenariosBootstrapTest FEA: ItEr75S04BugFixing --- .../bootstrap/ScenariosBootstrapTest.java | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java index 994e536a4..6b483a194 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java @@ -32,7 +32,6 @@ import java.util.Set; import javax.annotation.Resource; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.libreplan.business.IDataBootstrap; @@ -44,11 +43,12 @@ import org.libreplan.business.orders.daos.IOrderDAO; import org.libreplan.business.orders.entities.Order; import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap; import org.libreplan.business.scenarios.bootstrap.PredefinedScenarios; +import org.libreplan.business.scenarios.daos.IOrderVersionDAO; import org.libreplan.business.scenarios.daos.IScenarioDAO; +import org.libreplan.business.scenarios.entities.OrderVersion; import org.libreplan.business.scenarios.entities.Scenario; import org.libreplan.business.test.scenarios.daos.ScenarioDAOTest; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.NotTransactional; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; @@ -74,6 +74,9 @@ public class ScenariosBootstrapTest { @Autowired private IConfigurationDAO configurationDAO; + @Autowired + private IOrderVersionDAO orderVersionDAO; + @Resource private IDataBootstrap defaultAdvanceTypesBootstrapListener; @@ -87,13 +90,27 @@ public class ScenariosBootstrapTest { } private void removeCurrentScenarios() { - for (Scenario scenario : scenarioDAO.getAll()) { - try { - scenarioDAO.remove(scenario.getId()); - } catch (InstanceNotFoundException e) { - throw new RuntimeException(e); + transactionService.runOnAnotherTransaction(new IOnTransaction() { + + @Override + public Void execute() { + try { + for (Order order : orderDAO.findAll()) { + orderDAO.remove(order.getId()); + } + for (OrderVersion orderVersion : orderVersionDAO + .list(OrderVersion.class)) { + orderVersionDAO.remove(orderVersion.getId()); + } + for (Scenario scenario : scenarioDAO.getAll()) { + scenarioDAO.remove(scenario.getId()); + } + } catch (InstanceNotFoundException e) { + throw new RuntimeException(e); + } + return null; } - } + }); } private Order givenOrderStored() { @@ -101,7 +118,6 @@ public class ScenariosBootstrapTest { } @Test - @Ignore("FIXME pending review after rename to libreplan") public void loadBasicData() throws InstanceNotFoundException { removeCurrentScenarios(); scenariosBootstrap.loadRequiredData(); @@ -112,41 +128,29 @@ public class ScenariosBootstrapTest { } @Test - @NotTransactional - @Ignore("FIXME pending review after rename to libreplan") public void loadBasicDataAssociatedWithCurrentOrders() throws InstanceNotFoundException { - final Order orderAssociated = transactionService - .runOnAnotherTransaction(new IOnTransaction() { + removeCurrentScenarios(); + scenariosBootstrap.loadRequiredData(); - @Override - public Order execute() { - removeCurrentScenarios(); - Order order = givenOrderStored(); - scenariosBootstrap.loadRequiredData(); - return order; - } - }); - transactionService.runOnAnotherTransaction(new IOnTransaction() { + assertFalse(scenarioDAO.getAll().isEmpty()); + Scenario scenario = PredefinedScenarios.MASTER.getScenario(); + assertNotNull(scenario); - @Override - public Void execute() { - assertFalse(scenarioDAO.getAll().isEmpty()); - Scenario scenario = PredefinedScenarios.MASTER.getScenario(); - assertNotNull(scenario); - assertTrue(isAt(orderAssociated, scenario.getTrackedOrders())); - return null; - } + Order orderAssociated = givenOrderStored(); + scenario.addOrder(orderAssociated); + scenarioDAO.save(scenario); - private boolean isAt(Order orderAssociated, Set trackedOrders) { - for (Order each : trackedOrders) { - if (each.getId().equals(orderAssociated.getId())) { - return true; - } - } - return false; + assertTrue(isAt(orderAssociated, scenario.getTrackedOrders())); + } + + private boolean isAt(Order orderAssociated, Set trackedOrders) { + for (Order each : trackedOrders) { + if (each.getId().equals(orderAssociated.getId())) { + return true; } - }); + } + return false; } } From 6811c10af433f17430b7f927a76aa3dd2cc76d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Fri, 28 Oct 2011 14:05:29 +0200 Subject: [PATCH 004/261] Corrected .gitignore to match the new directory names. FEA: ItEr75S04BugFixing --- .gitignore | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 8a0349b94..2bdd3421a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ # ignore build output directory -navalplanner-webapp/target -navalplanner-business/target -navalplanner-gantt-zk/target +libreplan-webapp/target +libreplan-business/target +libreplan-gantt-zk/target ganttzk-demo-webapp/target ganttzk/target @@ -14,8 +14,8 @@ ganttzk/target *.patch #ignore logs -navalplanner-webapp/*.log -navalplanner-webapp/*.log.????-??-?? +libreplan-webapp/*.log +libreplan-webapp/*.log.????-??-?? #ignore backup files *~ From 2e26bc7c307b178d0987c1355f965adef0cfdc6e Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 17:44:21 +0200 Subject: [PATCH 005/261] [Bug #1232] Fix problem in load chart filtering all assignments taking into account order resources The problem was that it was using all the assignments to calculate external load and overload. However, for capability line it was using just the resources assigned each day. Then I've added a new method to filter all the assignments taking into account the order resources assigned each day. FEA: ItEr75S04BugFixing --- .../web/planner/order/OrderPlanningModel.java | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index 55bbabae6..c4ea06937 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -34,6 +34,7 @@ import java.util.Date; import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -58,6 +59,7 @@ import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.OrderStatusEnum; import org.libreplan.business.planner.chart.ContiguousDaysLine; +import org.libreplan.business.planner.chart.ContiguousDaysLine.ONDay; import org.libreplan.business.planner.chart.ResourceLoadChartData; import org.libreplan.business.planner.entities.DayAssignment; import org.libreplan.business.planner.entities.ICostCalculator; @@ -1143,17 +1145,19 @@ public class OrderPlanningModel implements IOrderPlanningModel { ContiguousDaysLine> orderAssignments = ContiguousDaysLine .byDay(orderDayAssignments); ContiguousDaysLine> allAssignments = allAssignments(orderAssignments); + ContiguousDaysLine> filteredAssignments = filterAllAssignmentsByOrderResources( + allAssignments, orderAssignments); ContiguousDaysLine maxCapacityOnResources = orderAssignments .transform(ResourceLoadChartData .extractAvailabilityOnAssignedResources()); ContiguousDaysLine orderLoad = orderAssignments .transform(ResourceLoadChartData.extractLoad()); - ContiguousDaysLine allLoad = allAssignments + ContiguousDaysLine allLoad = filteredAssignments .transform(ResourceLoadChartData.extractLoad()); ContiguousDaysLine orderOverload = orderAssignments .transform(ResourceLoadChartData.extractOverload()); - ContiguousDaysLine allOverload = allAssignments + ContiguousDaysLine allOverload = filteredAssignments .transform(ResourceLoadChartData.extractOverload()); Plotinfo plotOrderLoad = createPlotinfoFromDurations( @@ -1196,6 +1200,41 @@ public class OrderPlanningModel implements IOrderPlanningModel { plotMaxCapacity, plotOtherLoad, plotOrderLoad }; } + private ContiguousDaysLine> filterAllAssignmentsByOrderResources( + ContiguousDaysLine> allAssignments, + ContiguousDaysLine> orderAssignments) { + List filteredAssignments = new ArrayList(); + + Iterator>> iterator = orderAssignments + .iterator(); + while (iterator.hasNext()) { + ONDay> onDay = iterator.next(); + Set resources = getResources(onDay.getValue()); + filteredAssignments.addAll(filterAssignmentsByResource( + allAssignments.get(onDay.getDay()), resources)); + } + return ContiguousDaysLine.byDay(filteredAssignments); + } + + private List filterAssignmentsByResource( + List list, Set resources) { + List result = new ArrayList(); + for (DayAssignment each : list) { + if (resources.contains(each.getResource())) { + result.add(each); + } + } + return result; + } + + private Set getResources(List dayAssignments) { + Set resources = new HashSet(); + for (DayAssignment each : dayAssignments) { + resources.add(each.getResource()); + } + return resources; + } + private ContiguousDaysLine> allAssignments( ContiguousDaysLine> orderAssignments) { if (orderAssignments.isNotValid()) { From e8ef76ea59d39af201590993659de72013484368 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 18:34:40 +0200 Subject: [PATCH 006/261] Fix name of OnDay class inside ContiguousDaysLine --- .../planner/chart/ContiguousDaysLine.java | 22 +++++++++---------- .../planner/chart/ContiguousDaysLineTest.java | 10 ++++----- .../web/planner/order/OrderPlanningModel.java | 6 ++--- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/chart/ContiguousDaysLine.java b/libreplan-business/src/main/java/org/libreplan/business/planner/chart/ContiguousDaysLine.java index d615d35bc..5e37116c2 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/chart/ContiguousDaysLine.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/chart/ContiguousDaysLine.java @@ -33,7 +33,7 @@ import java.util.TreeMap; import org.apache.commons.lang.Validate; import org.joda.time.Days; import org.joda.time.LocalDate; -import org.libreplan.business.planner.chart.ContiguousDaysLine.ONDay; +import org.libreplan.business.planner.chart.ContiguousDaysLine.OnDay; import org.libreplan.business.planner.entities.DayAssignment; import org.libreplan.business.workingday.EffortDuration; @@ -45,15 +45,15 @@ import org.libreplan.business.workingday.EffortDuration; * @author Óscar González Fernández * */ -public class ContiguousDaysLine implements Iterable> { +public class ContiguousDaysLine implements Iterable> { - public static class ONDay { + public static class OnDay { private final LocalDate day; private final T value; - private ONDay(LocalDate day, T value) { + private OnDay(LocalDate day, T value) { Validate.notNull(day); this.day = day; this.value = value; @@ -175,7 +175,7 @@ public class ContiguousDaysLine implements Iterable> { public static SortedMap toSortedMap( ContiguousDaysLine line) { SortedMap result = new TreeMap(); - for (ONDay each : line) { + for (OnDay each : line) { result.put(each.getDay(), each.getValue()); } return result; @@ -266,7 +266,7 @@ public class ContiguousDaysLine implements Iterable> { min(getEndExclusive(), endExclusive)); ContiguousDaysLine result = new ContiguousDaysLine(newStart, days.getDays()); - for (ONDay each : result) { + for (OnDay each : result) { result.set(each.getDay(), this.get(each.getDay())); } return result; @@ -332,7 +332,7 @@ public class ContiguousDaysLine implements Iterable> { } ContiguousDaysLine result = ContiguousDaysLine.create( startInclusive, getEndExclusive()); - for (ONDay onDay : this) { + for (OnDay onDay : this) { LocalDate day = onDay.getDay(); result.set(day, doubleTransformer.transform(day, onDay.getValue())); } @@ -368,9 +368,9 @@ public class ContiguousDaysLine implements Iterable> { } @Override - public Iterator> iterator() { + public Iterator> iterator() { final Iterator iterator = values.iterator(); - return new Iterator>() { + return new Iterator>() { private LocalDate current = startInclusive; @@ -380,9 +380,9 @@ public class ContiguousDaysLine implements Iterable> { } @Override - public ONDay next() { + public OnDay next() { T next = iterator.next(); - ONDay result = new ONDay(current, next); + OnDay result = new OnDay(current, next); current = current.plusDays(1); return result; } diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/planner/chart/ContiguousDaysLineTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/planner/chart/ContiguousDaysLineTest.java index df477e497..f0a6c9ee0 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/planner/chart/ContiguousDaysLineTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/planner/chart/ContiguousDaysLineTest.java @@ -17,7 +17,7 @@ import org.joda.time.LocalDate; import org.junit.Test; import org.libreplan.business.planner.chart.ContiguousDaysLine; import org.libreplan.business.planner.chart.ContiguousDaysLine.IValueTransformer; -import org.libreplan.business.planner.chart.ContiguousDaysLine.ONDay; +import org.libreplan.business.planner.chart.ContiguousDaysLine.OnDay; public class ContiguousDaysLineTest { @@ -50,7 +50,7 @@ public class ContiguousDaysLineTest { @Test public void initiallyTheValuesAreNull() { - for (ONDay onDay : ContiguousDaysLine.create(someDate, + for (OnDay onDay : ContiguousDaysLine.create(someDate, someDate.plusDays(2), String.class)) { assertThat(onDay.getValue(), nullValue()); } @@ -71,7 +71,7 @@ public class ContiguousDaysLineTest { public boolean matches(Object object) { if (object instanceof ContiguousDaysLine) { ContiguousDaysLine line = (ContiguousDaysLine) object; - for (ONDay each : line) { + for (OnDay each : line) { if(! ObjectUtils.equals(value, each.getValue())){ return false; } @@ -178,7 +178,7 @@ public class ContiguousDaysLineTest { public boolean matches(Object object) { if (object instanceof ContiguousDaysLine) { ContiguousDaysLine another = (ContiguousDaysLine) object; - for (ONDay each : line) { + for (OnDay each : line) { if (!ObjectUtils.equals(each.getValue(), another.get(each.getDay()))) { return false; @@ -192,7 +192,7 @@ public class ContiguousDaysLineTest { @Override public void describeTo(Description description) { List values = new ArrayList(); - for (ONDay each : line) { + for (OnDay each : line) { values.add(each.getValue()); } description.appendText("the line has values: " + values); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java index c4ea06937..921da84f9 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/OrderPlanningModel.java @@ -59,7 +59,7 @@ import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.OrderStatusEnum; import org.libreplan.business.planner.chart.ContiguousDaysLine; -import org.libreplan.business.planner.chart.ContiguousDaysLine.ONDay; +import org.libreplan.business.planner.chart.ContiguousDaysLine.OnDay; import org.libreplan.business.planner.chart.ResourceLoadChartData; import org.libreplan.business.planner.entities.DayAssignment; import org.libreplan.business.planner.entities.ICostCalculator; @@ -1205,10 +1205,10 @@ public class OrderPlanningModel implements IOrderPlanningModel { ContiguousDaysLine> orderAssignments) { List filteredAssignments = new ArrayList(); - Iterator>> iterator = orderAssignments + Iterator>> iterator = orderAssignments .iterator(); while (iterator.hasNext()) { - ONDay> onDay = iterator.next(); + OnDay> onDay = iterator.next(); Set resources = getResources(onDay.getValue()); filteredAssignments.addAll(filterAssignmentsByResource( allAssignments.get(onDay.getDay()), resources)); From df4a5a517959e922bffc29ded6f4d9a521f6aac0 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 19:17:10 +0200 Subject: [PATCH 007/261] Skipping some tests in ScenariosBootstrapTest failing in MySQL FEA: ItEr75S04BugFixing --- .../test/scenarios/bootstrap/ScenariosBootstrapTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java index 6b483a194..ed4403804 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/scenarios/bootstrap/ScenariosBootstrapTest.java @@ -32,6 +32,7 @@ import java.util.Set; import javax.annotation.Resource; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.libreplan.business.IDataBootstrap; @@ -118,6 +119,7 @@ public class ScenariosBootstrapTest { } @Test + @Ignore("FIXME failing in MySQL") public void loadBasicData() throws InstanceNotFoundException { removeCurrentScenarios(); scenariosBootstrap.loadRequiredData(); @@ -128,6 +130,7 @@ public class ScenariosBootstrapTest { } @Test + @Ignore("FIXME failing in MySQL") public void loadBasicDataAssociatedWithCurrentOrders() throws InstanceNotFoundException { removeCurrentScenarios(); From 470aaa7ab0a09f78ccb52433da0aa53102c674c6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 28 Oct 2011 19:28:17 +0200 Subject: [PATCH 008/261] [Bug #1231] Fix issue avoiding call EffortDuration.sum with null values FEA: ItEr75S04BugFixing --- .../reports/HoursWorkedPerWorkerInAMonthScriptlet.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerInAMonthScriptlet.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerInAMonthScriptlet.java index 7101640f2..31e057655 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerInAMonthScriptlet.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/HoursWorkedPerWorkerInAMonthScriptlet.java @@ -59,10 +59,12 @@ public class HoursWorkedPerWorkerInAMonthScriptlet extends JRAbstractScriptlet { HoursWorkedPerWorkerInAMonthDTO dto = (HoursWorkedPerWorkerInAMonthDTO) this .getFieldValue("self"); if (!dtos.contains(dto)) { - EffortDuration effort = EffortDuration.sum(EffortDuration - .parseFromFormattedString((String) this - .getVariableValue("sumNumHours")), current); - this.setVariableValue("sumNumHours", effort.toFormattedString()); + if (current != null) { + EffortDuration effort = EffortDuration.sum(EffortDuration + .parseFromFormattedString((String) this + .getVariableValue("sumNumHours")), current); + this.setVariableValue("sumNumHours", effort.toFormattedString()); + } dtos.add(dto); } } From 75bc0ffd4a6c492025ed59c513f29728badba15b Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 31 Oct 2011 08:41:57 +0100 Subject: [PATCH 009/261] Set mold paging in criteria tree to show the pager FEA: ItEr75S04BugFixing --- .../src/main/webapp/resources/criterions/_criterionsTree.zul | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/webapp/resources/criterions/_criterionsTree.zul b/libreplan-webapp/src/main/webapp/resources/criterions/_criterionsTree.zul index 2e3024a18..d84e011d7 100644 --- a/libreplan-webapp/src/main/webapp/resources/criterions/_criterionsTree.zul +++ b/libreplan-webapp/src/main/webapp/resources/criterions/_criterionsTree.zul @@ -36,7 +36,7 @@ onDrop="criterionTreeController.move(self, event.dragged)" model="@{criterionTreeController.criterionTreeModel}" treeitemRenderer="@{criterionTreeController.renderer}" pageSize="10" - sclass="orderTree" fixedLayout="true"> + sclass="orderTree" fixedLayout="true" mold="paging"> From ad511c51d3e23a006b4f6371a180436789035be8 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 31 Oct 2011 13:19:27 +0100 Subject: [PATCH 010/261] [Bug #1228] Fix issue creating default write authorization When user closes the project creation pop-up with accept, before saving the default write authorization is created now re-using the previous code. FEA: ItEr75S04BugFixing --- .../java/org/libreplan/web/orders/OrderCRUDController.java | 1 + .../libreplan/web/planner/order/PlanningStateCreator.java | 6 ++++++ .../org/libreplan/web/planner/order/SaveCommandBuilder.java | 1 + 3 files changed, 8 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index 61af83208..e66763d7b 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -1103,6 +1103,7 @@ public class OrderCRUDController extends GenericForwardComposer { editNewCreatedOrder(); // close project details window detailsWindow.setVisible(false); + setupOrderAuthorizationController(); saveAndContinue(false); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java index 792eb5d46..2556c5972 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java @@ -1044,6 +1044,12 @@ public class PlanningStateCreator { orderAuthorizationsRemoval.add(orderAuthorization); } } + + public void cleanOrderAuthorizationsAdditionAndRemoval() { + orderAuthorizationsAddition.clear(); + orderAuthorizationsRemoval.clear(); + } + } public interface IAllocationCriteria { diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java index 22b2a5db2..f4f8acc49 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java @@ -366,6 +366,7 @@ public class SaveCommandBuilder { throw new RuntimeException(e); } } + state.cleanOrderAuthorizationsAdditionAndRemoval(); } private void createAdvancePercentagesIfRequired(Order order) { From ad3e033ed8c0478b366a052e9e9fa4627a06bcf6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 31 Oct 2011 16:46:25 +0100 Subject: [PATCH 011/261] Make simple code to remove perspective buttons FEA: ItEr75S04BugFixing --- .../java/org/libreplan/web/orders/OrderCRUDController.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java index e66763d7b..da048bde0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderCRUDController.java @@ -257,13 +257,9 @@ public class OrderCRUDController extends GenericForwardComposer { } private void setupGlobalButtons() { - Hbox perspectiveButtonsInsertionPoint = (Hbox) page .getFellow("perspectiveButtonsInsertionPoint"); - - List children = perspectiveButtonsInsertionPoint - .getChildren(); - perspectiveButtonsInsertionPoint.getChildren().removeAll(children); + perspectiveButtonsInsertionPoint.getChildren().clear(); createOrderButton.setParent(perspectiveButtonsInsertionPoint); createOrderButton.addEventListener(Events.ON_CLICK, From e3fe3f1a2726a56e8880da74d625aa3de8a47399 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 31 Oct 2011 17:37:26 +0100 Subject: [PATCH 012/261] [Bug #1162] Fix issues in stretches function dedication chart Chart was wrong calculated, as for each stretch it takes into account the day after to calculate the non workable days, so if a stretch ends in Friday it showed wrong values. FEA: ItEr75S04BugFixing --- .../allocation/streches/GraphicForStreches.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/streches/GraphicForStreches.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/streches/GraphicForStreches.java index b43b7ae80..1ee7294ce 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/streches/GraphicForStreches.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/allocation/streches/GraphicForStreches.java @@ -129,12 +129,13 @@ public abstract class GraphicForStreches implements IGraphicGenerator { for (Stretch stretch : stretches) { BigDecimal amountWork = stretch.getAmountWorkPercentage() .subtract(previousPercentage).multiply(taskHours); - Integer days = Days.daysBetween(previousDate, - stretch.getDateIn(allocation)).getDays(); + LocalDate endDate = stretch.getDateIn(allocation); + Integer days = Days.daysBetween(previousDate, endDate) + .getDays(); if (calendar != null) { days -= calendar.getNonWorkableDays(previousDate, - stretch.getDateIn(allocation)).size(); + endDate.minusDays(1)).size(); } BigDecimal hoursPerDay = BigDecimal.ZERO; @@ -144,11 +145,13 @@ public abstract class GraphicForStreches implements IGraphicGenerator { } xymodel.addValue(title, previousDate.toDateTimeAtStartOfDay() - .getMillis() + 1, hoursPerDay); - xymodel.addValue(title, stretch.getDateIn(allocation) - .toDateTimeAtStartOfDay().getMillis(), hoursPerDay); + .getMillis(), hoursPerDay); + if (days > 0) { + xymodel.addValue(title, endDate.toDateTimeAtStartOfDay() + .getMillis() - 1, hoursPerDay); + } - previousDate = stretch.getDateIn(allocation); + previousDate = endDate; previousPercentage = stretch.getAmountWorkPercentage(); } From 25b367cccb286f635361d5ecd5051b2b03c0c0e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Mon, 31 Oct 2011 17:04:58 +0100 Subject: [PATCH 013/261] [Bug #1215] Store the labels hidden/shown state in the TaskRow widget and use that state when redrawing the TaskComponents. FEA: ItEr75S04BugFixing --- .../src/main/resources/web/js/ganttz/TaskComponent.js | 6 ++++++ ganttzk/src/main/resources/web/js/ganttz/TaskList.js | 3 ++- ganttzk/src/main/resources/web/js/ganttz/TaskRow.js | 9 +++++++++ .../main/resources/web/js/ganttz/mold/task-component.js | 4 +++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ganttzk/src/main/resources/web/js/ganttz/TaskComponent.js b/ganttzk/src/main/resources/web/js/ganttz/TaskComponent.js index 9f17a5116..533654b37 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/TaskComponent.js +++ b/ganttzk/src/main/resources/web/js/ganttz/TaskComponent.js @@ -213,6 +213,12 @@ ganttz.TaskComponent = zk.$extends(zul.Widget, { hideResourceTooltip : function(){ jq('#'+ this.uuid + ' .task-resources').hide(); }, + showLabels : function(){ + jq('.task-labels',this.$n()).show(); + }, + hideLabels : function(){ + jq('.task-labels',this.$n()).hide(); + }, setClass : function(cssClass){ jq(this.$n()).addClass(cssClass); } diff --git a/ganttzk/src/main/resources/web/js/ganttz/TaskList.js b/ganttzk/src/main/resources/web/js/ganttz/TaskList.js index 69b9abd35..309afa191 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/TaskList.js +++ b/ganttzk/src/main/resources/web/js/ganttz/TaskList.js @@ -6,7 +6,8 @@ ganttz.TaskList = zk.$extends(zk.Widget, { this.$class.setInstance(this); }, showAllTaskLabels : function(){ - jq('.task-labels').css('display','inline'); + for(var child = this.firstChild; child; child = child.nextSibling) + child.showLabels(); }, hideAllTaskLabels : function(){ jq('.task-labels').css('display','none'); diff --git a/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js b/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js index b4a9dc9aa..c4a85ac6f 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js +++ b/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js @@ -1,6 +1,15 @@ zk.$package("ganttz"); ganttz.TaskRow = zk.$extends(zk.Widget, { + _labelsHidden : true, + showLabels : function(){ + this._labelsHidden = false; + this.firstChild.showLabels(); + }, + hideLabels : function(){ + this._labelsHidden = true; + this.firstChild.hideLabels(); + }, hideResourceTooltip : function(){ this.firstChild.hideResourceTooltip(); }, diff --git a/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js b/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js index ac015b1bf..1c71cbab7 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js +++ b/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js @@ -3,7 +3,9 @@ function(out){ ' z.type="ganttz.task.Task" idTask="', this.id,'"', ' class="box" >'); - out.push('
', this.getLabelsText(),'
'); + out.push('
':'style="display:block;">', + this.getLabelsText(),'
'); out.push('
'); out.push('
', this.getResourcesText(),'
'); out.push('
'); From 0633c104b5e32080329bcd3409d47fa56febdacd Mon Sep 17 00:00:00 2001 From: Ignacio Diaz Teijido Date: Wed, 2 Nov 2011 11:51:59 +0100 Subject: [PATCH 014/261] [Bug #1221] Shows orders sorted in project finder FEA: ItEr75S04BugFixing --- .../web/reports/WorkingArrangementsPerOrderModel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java index a25e6df63..c241e9d10 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingArrangementsPerOrderModel.java @@ -25,6 +25,7 @@ import static org.libreplan.web.I18nHelper._; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.Iterator; @@ -42,10 +43,10 @@ import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.planner.daos.ITaskElementDAO; import org.libreplan.business.planner.entities.Dependency; +import org.libreplan.business.planner.entities.Dependency.Type; import org.libreplan.business.planner.entities.Task; import org.libreplan.business.planner.entities.TaskElement; import org.libreplan.business.planner.entities.TaskStatusEnum; -import org.libreplan.business.planner.entities.Dependency.Type; import org.libreplan.business.reports.dtos.WorkingArrangementPerOrderDTO; import org.libreplan.business.reports.dtos.WorkingArrangementPerOrderDTO.DependencyWorkingArrangementDTO; import org.libreplan.business.resources.daos.ICriterionTypeDAO; @@ -136,6 +137,7 @@ public class WorkingArrangementsPerOrderModel implements initializeOrderElements(each.getOrderElements()); each.useSchedulingDataFor(currentScenario); } + Collections.sort(orders); return orders; } From 2cc9fb63710098a7c8dd939e80fc7ed812d5613e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Wed, 2 Nov 2011 13:38:02 +0100 Subject: [PATCH 015/261] [Bug #1215] Store the resources tooltip hidden/shown state in the TaskRow widget and use that state when redrawing the TaskComponents. FEA: ItEr75S04BugFixing --- ganttzk/src/main/resources/web/js/ganttz/TaskRow.js | 3 +++ .../src/main/resources/web/js/ganttz/mold/task-component.js | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js b/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js index c4a85ac6f..1b723f8e4 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js +++ b/ganttzk/src/main/resources/web/js/ganttz/TaskRow.js @@ -10,10 +10,13 @@ ganttz.TaskRow = zk.$extends(zk.Widget, { this._labelsHidden = true; this.firstChild.hideLabels(); }, + _resourcesHidden : true, hideResourceTooltip : function(){ + this._resourcesHidden = true; this.firstChild.hideResourceTooltip(); }, showResourceTooltip : function(){ + this._resourcesHidden = false; this.firstChild.showResourceTooltip(); } }); \ No newline at end of file diff --git a/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js b/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js index 1c71cbab7..bf8a90ede 100644 --- a/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js +++ b/ganttzk/src/main/resources/web/js/ganttz/mold/task-component.js @@ -6,7 +6,8 @@ function(out){ out.push('
':'style="display:block;">', this.getLabelsText(),'
'); - out.push('
'); + out.push('
':'style="display:block;">'); out.push('
', this.getResourcesText(),'
'); out.push('
'); From 25007873dd495b04d82395eba11f267b71c39158 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 2 Nov 2011 14:07:43 +0100 Subject: [PATCH 016/261] Fix work report model functional test FEA: ItEr75S04BugFixing --- .../data-types/work_report_model.sah | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/scripts/functional-tests/data-types/work_report_model.sah b/scripts/functional-tests/data-types/work_report_model.sah index 7756bbf0d..86a3ec9b4 100644 --- a/scripts/functional-tests/data-types/work_report_model.sah +++ b/scripts/functional-tests/data-types/work_report_model.sah @@ -62,12 +62,12 @@ function workReportModelCreateEmpty(){ } function workReportModelForm($name){ - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _removeFocus(_textbox(0, _near(_div("Name:")))); - _setSelected(_select(0, _near(_span("Task:"))),"heading"); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _removeFocus(_textbox(0, _near(_div("Name")))); + _setSelected(_select(0, _near(_span("Task"))),"heading"); _click(_cell("Add New Complementary Field")); - _setValue(_textbox(0, _near(_div("Complementary text fields"))), $name); - _setValue(_textbox(1, _near(_div("Complementary text fields"))), "12"); + _setValue(_textbox(0, _near(_span("Complementary text fields"))), $name); + _setValue(_textbox(1, _near(_span("Complementary text fields"))), "12"); _click(_cell("Save")); } @@ -85,8 +85,8 @@ function workReportModelEdit($oldName, $newName, $cell){ } function workReportModelEditForm($name){ - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _removeFocus(_textbox(0, _near(_div("Name:")))); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _removeFocus(_textbox(0, _near(_div("Name")))); _click(_cell("Save & Continue")); } @@ -117,15 +117,15 @@ function workReportModelEmptyCodeValidation(){ function workReportModelCheckComplementaryTextFields($name){ commonCreate("Work Report Models"); - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _removeFocus(_textbox(0, _near(_div("Name:")))); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _removeFocus(_textbox(0, _near(_div("Name")))); _click(_cell("Add New Complementary Field")); _click(_cell("Save")); workReportModelCheckComplementaryTextFieldsValidationName(); - _setValue(_textbox(0, _near(_div("Complementary text fields"))), $name); + _setValue(_textbox(0, _near(_span("Complementary text fields"))), $name); _click(_cell("Save")); workReportModelCheckComplementaryTextFieldsValidationLength(); - _setValue(_textbox(1, _near(_div("Complementary text fields"))), "12"); + _setValue(_textbox(1, _near(_span("Complementary text fields"))), "12"); _click(_cell("Save")); } @@ -142,12 +142,12 @@ function workReportModelCheckComplementaryTextFieldsValidationLength(){ function workReportModelCheckLabelTypeFields($name){ commonLabelCreate("labelforModel",["New"]); commonCreate("Work Report Models"); - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _removeFocus(_textbox(0, _near(_div("Name:")))); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _removeFocus(_textbox(0, _near(_div("Name")))); _click(_cell("Add New Label Type Field")); _click(_cell("Save")); workReportModelCheckLabelTypeFieldsValidationName(); - _click(_italic(0, _near(_div("Label Type fields")))); + _click(_italic(0, _near(_span("Label Type fields")))); _click(_cell("labelforModel")); _click(_cell("Save")); workReportModelCheckLabelTypeFieldsValidationLabel(); From 1945bbe34df69ca7c9291b834ac7eab912ba1799 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 2 Nov 2011 17:16:01 +0100 Subject: [PATCH 017/261] Fix work hours functional test FEA: ItEr75S04BugFixing --- scripts/functional-tests/common_functions.sah | 10 +++++----- .../functional-tests/data-types/work_hours_test.sah | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/functional-tests/common_functions.sah b/scripts/functional-tests/common_functions.sah index 3e4cfcb12..f9455d3a4 100644 --- a/scripts/functional-tests/common_functions.sah +++ b/scripts/functional-tests/common_functions.sah @@ -533,12 +533,12 @@ function commonWorkReportModelCreate($name, $type){ } function commonWorkReportModelForm($name, $type){ - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _removeFocus(_textbox(0, _near(_div("Name:")))); - _setSelected(_select(0, _near(_span("Task:"))), $type); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _removeFocus(_textbox(0, _near(_div("Name")))); + _setSelected(_select(0, _near(_span("Task"))), $type); _click(_cell("Add New Complementary Field")); - _setValue(_textbox(0, _near(_div("Complementary text fields"))), $name); - _setValue(_textbox(1, _near(_div("Complementary text fields"))), "12"); + _setValue(_textbox(0, _near(_span("Complementary text fields"))), $name); + _setValue(_textbox(1, _near(_span("Complementary text fields"))), "12"); _click(_cell("Save")); } diff --git a/scripts/functional-tests/data-types/work_hours_test.sah b/scripts/functional-tests/data-types/work_hours_test.sah index 5c5728aab..b8badef46 100644 --- a/scripts/functional-tests/data-types/work_hours_test.sah +++ b/scripts/functional-tests/data-types/work_hours_test.sah @@ -140,8 +140,8 @@ function workReportCreate($wReport, $project, $workHour) { function workReportForm($machine, $project, $workHour) { _click(_cell("New work report")); _click(_cell("Add new row")); - _setValue(_textbox(2, _near(_parentTable(_div("Date")))),$machine); - _click(_italic(0, _near(_textbox(3, _near(_parentTable(_div("Date"))))))); + _setValue(_textbox(2, _near(_span("Work report lines"))), $machine); + _click(_italic(0, _near(_textbox(3, _near(_span("Work report lines")))))); _click(_div($project+"[2]", _parentTable(_div("Project code[1]")))); _setValue(_textbox("z-textbox[1]"),"8"); _setSelected(_select(2), $workHour); From 3c3c4c74511c1743febc5de9ed609face34f34f2 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 3 Nov 2011 09:39:37 +0100 Subject: [PATCH 018/261] Fix users and profiles functional tests Taking advantage to update profiles edit view accordingly to the rest of edit windows. FEA: ItEr75S04BugFixing --- .../src/main/webapp/users/_editProfile.zul | 55 +++++++++---------- .../functional-tests/users/profile_test.sah | 12 ++-- scripts/functional-tests/users/user_test.sah | 18 +++--- 3 files changed, 42 insertions(+), 43 deletions(-) diff --git a/libreplan-webapp/src/main/webapp/users/_editProfile.zul b/libreplan-webapp/src/main/webapp/users/_editProfile.zul index 8777eff7c..f87bdfba5 100644 --- a/libreplan-webapp/src/main/webapp/users/_editProfile.zul +++ b/libreplan-webapp/src/main/webapp/users/_editProfile.zul @@ -37,7 +37,7 @@ - - - - - + + + + + + + + + + diff --git a/scripts/functional-tests/users/profile_test.sah b/scripts/functional-tests/users/profile_test.sah index e99ddd046..07f847129 100644 --- a/scripts/functional-tests/users/profile_test.sah +++ b/scripts/functional-tests/users/profile_test.sah @@ -38,8 +38,8 @@ function profileCreateEmpty() { } function profileForm($name) { - _setValue(_textbox(0, _near(_span("Name:"))), $name); - _click(_italic(0, _near(_div("Association with roles")))); + _setValue(_textbox(0, _near(_span("Name"))), $name); + _click(_italic(0, _near(_span("Association with roles")))); _click(_cell("Administration")); _click(_cell("Save")); } @@ -58,7 +58,7 @@ function profileEdit($oldName, $newName, $cell) { } function profileEditForm($name) { - _setValue(_textbox(0, _near(_span("Name:"))), $name); + _setValue(_textbox(0, _near(_span("Name"))), $name); _click(_cell("Save & Continue")); } @@ -71,9 +71,9 @@ function profileAssign($account, $password, $profile){ } function accountsForm($name, $password, $profile) { - _setValue(_textbox(0, _near(_span("Login name:"))), $name); - _setValue(_password(0, _near(_span("Password:"))), $password); - _setValue(_password(0, _near(_span("Password confirmation:"))), $password); + _setValue(_textbox(0, _near(_span("Login name"))), $name); + _setValue(_password(0, _near(_span("Password"))), $password); + _setValue(_password(0, _near(_span("Password confirmation"))), $password); _click(_textbox(0, _near(_cell("Add role")))); _click(_cell("Administration")); _click(_cell("Add role")); diff --git a/scripts/functional-tests/users/user_test.sah b/scripts/functional-tests/users/user_test.sah index a0ff9e752..125ea4d1b 100644 --- a/scripts/functional-tests/users/user_test.sah +++ b/scripts/functional-tests/users/user_test.sah @@ -76,9 +76,9 @@ function accountsCreateTwoUserSamePass($name, $password) { function accountsCreateTwoPass($name, $password, $newPassword){ commonCreate("Accounts"); - _setValue(_textbox(0, _near(_span("Login name:"))), $name); - _setValue(_password(0, _near(_span("Password:"))), $password); - _setValue(_password(0, _near(_span("Password confirmation:"))), $newPassword); + _setValue(_textbox(0, _near(_span("Login name"))), $name); + _setValue(_password(0, _near(_span("Password"))), $password); + _setValue(_password(0, _near(_span("Password confirmation"))), $newPassword); _click(_cell("Save")); _assertExists(_div("passwords don't match")); _assert(_isVisible(_div("passwords don't match"))); @@ -86,9 +86,9 @@ function accountsCreateTwoPass($name, $password, $newPassword){ } function accountsForm($name, $password) { - _setValue(_textbox(0, _near(_span("Login name:"))), $name); - _setValue(_password(0, _near(_span("Password:"))), $password); - _setValue(_password(0, _near(_span("Password confirmation:"))), $password); + _setValue(_textbox(0, _near(_span("Login name"))), $name); + _setValue(_password(0, _near(_span("Password"))), $password); + _setValue(_password(0, _near(_span("Password confirmation"))), $password); _click(_cell("Save")); } @@ -106,9 +106,9 @@ function accountsComprobateUser($name, $Password) { function accountsEdit($oldName, $newName, $newPassword, $cell) { _click(_link("Accounts")); commonEdit($oldName, $cell); - _setValue(_textbox(0, _near(_span("Login name:"))), $newName); - _setValue(_password(0, _near(_span("Password:"))), $newPassword); - _setValue(_password(0, _near(_span("Password confirmation:"))), $newPassword); + _setValue(_textbox(0, _near(_span("Login name"))), $newName); + _setValue(_password(0, _near(_span("Password"))), $newPassword); + _setValue(_password(0, _near(_span("Password confirmation"))), $newPassword); _click(_textbox(0, _near(_cell("Add role")))); _click(_cell("Administration")); _click(_cell("Add role")); From b7d4ff8622f170e98a800d04361e82302c402bc5 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Thu, 3 Nov 2011 11:18:26 +0100 Subject: [PATCH 019/261] Fix configuration functional test FEA: ItEr75S04BugFixing --- .../administration-management/configuration_test.sah | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/functional-tests/administration-management/configuration_test.sah b/scripts/functional-tests/administration-management/configuration_test.sah index 99257acde..f32a57e0c 100644 --- a/scripts/functional-tests/administration-management/configuration_test.sah +++ b/scripts/functional-tests/administration-management/configuration_test.sah @@ -142,7 +142,7 @@ function configCheckWorkReportCreate(){ var $code; _click(_cell("New work report")); _click(_cell("Add new row")); - _set($code, _textbox(0, _near(_span("Code:"))).value); + _setValue(_textbox(6, _near(_span("Work report lines"))), $code); if ($code == ""){ _log("Work report code is empty", "custom1"); } From 3aaa1a12585c1ef48091e678cc68236b6f4f722f Mon Sep 17 00:00:00 2001 From: Ignacio Diaz Teijido Date: Wed, 2 Nov 2011 18:13:22 +0100 Subject: [PATCH 020/261] [Bug #1236] Sorting orders in some combos of reports * Order costs per resource * Materials needed at date * Working progress per task FEA: ItEr75S04BugFixing --- .../org/libreplan/web/reports/OrderCostsPerResourceModel.java | 1 + .../libreplan/web/reports/TimeLineRequiredMaterialModel.java | 2 ++ .../org/libreplan/web/reports/WorkingProgressPerTaskModel.java | 2 ++ 3 files changed, 5 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java index fdc605d40..65787f719 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/OrderCostsPerResourceModel.java @@ -156,6 +156,7 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { private void loadAllOrders() { this.allOrders = orderDAO.getOrders(); + Collections.sort(this.allOrders); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialModel.java index 1fccfe673..f3fa22552 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/TimeLineRequiredMaterialModel.java @@ -23,6 +23,7 @@ package org.libreplan.web.reports; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; @@ -106,6 +107,7 @@ public class TimeLineRequiredMaterialModel implements private void loadAllOrders() { allOrders = orderDAO.getOrdersByScenario(scenarioManager.getCurrent()); + Collections.sort(allOrders); } @Override diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskModel.java index e5be5d995..0f724c66a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/reports/WorkingProgressPerTaskModel.java @@ -22,6 +22,7 @@ package org.libreplan.web.reports; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashSet; import java.util.Iterator; @@ -105,6 +106,7 @@ public class WorkingProgressPerTaskModel implements IWorkingProgressPerTaskModel public List getOrders() { List result = orderDAO.getOrdersByScenario(scenarioManager .getCurrent()); + Collections.sort(result); return result; } From d5a397351e3f8b9483b030d27a5682198714418f Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 4 Nov 2011 10:21:49 +0100 Subject: [PATCH 021/261] Change wrong string "Extra Effort" for "Overtime Effort" --- libreplan-webapp/src/main/webapp/calendars/_edition.zul | 2 +- .../src/main/webapp/excetiondays/_listExceptionDayTypes.zul | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libreplan-webapp/src/main/webapp/calendars/_edition.zul b/libreplan-webapp/src/main/webapp/calendars/_edition.zul index 800f1dc4f..082bd7d91 100644 --- a/libreplan-webapp/src/main/webapp/calendars/_edition.zul +++ b/libreplan-webapp/src/main/webapp/calendars/_edition.zul @@ -148,7 +148,7 @@