From 9a0b005c45e7856e4f1563d034bb5f9453bcd746 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 18 Nov 2011 14:24:51 +0100 Subject: [PATCH 01/65] Fix work hours types functional test FEA: ItEr75S04BugFixing --- .../functional-tests/data-types/work_hours_test.sah | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/functional-tests/data-types/work_hours_test.sah b/scripts/functional-tests/data-types/work_hours_test.sah index b8badef46..6f58580c0 100644 --- a/scripts/functional-tests/data-types/work_hours_test.sah +++ b/scripts/functional-tests/data-types/work_hours_test.sah @@ -81,7 +81,7 @@ function workHourAssign($hWorkNewName, $ModelName, $materialName, $materialDescr commonWorkReportModelCreate($ModelName); commonCreateProject("new project"); commonMachineCreate($materialName, $materialDescription); - workReportCreate($materialName, "new project", $hWorkNewName); + workReportCreate($materialName, "new project", $hWorkNewName, $ModelName); workHourTryDelete($hWorkNewName, "work report line"); reportModelTryDelete($ModelName); commonTryDeleteProject("new project"); @@ -131,19 +131,20 @@ function reportModelTryDelete($ModelName){ * Functions of Work Report * */ -function workReportCreate($wReport, $project, $workHour) { +function workReportCreate($wReport, $project, $workHour, $modelName) { _click(_link("Work Reports")); - workReportForm($wReport, $project, $workHour); + workReportForm($wReport, $project, $workHour, $modelName); _log("Create a Work Report", "custom1"); } -function workReportForm($machine, $project, $workHour) { +function workReportForm($machine, $project, $workHour, $modelName) { + _setSelected(_select(0, _near(_span("Select type:"))), $modelName); _click(_cell("New work report")); _click(_cell("Add new row")); _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"); + _setValue(_textbox("z-textbox[1]"), "8"); _setSelected(_select(2), $workHour); _click(_cell("Save")); _assertExists(_div("Work report saved")); From a330cb0a8e6834c234dfc662eeba31976e3861a4 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 18 Nov 2011 16:51:07 +0100 Subject: [PATCH 02/65] Fix work reports functional test FEA: ItEr75S04BugFixing --- scripts/functional-tests/resources/work_report_test.sah | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/functional-tests/resources/work_report_test.sah b/scripts/functional-tests/resources/work_report_test.sah index d3ad67cea..c65f4cae1 100644 --- a/scripts/functional-tests/resources/work_report_test.sah +++ b/scripts/functional-tests/resources/work_report_test.sah @@ -41,7 +41,7 @@ _include("../common_functions.sah"); function workReportCreateLineModel($modelName){ workReportModelLineCreate($modelName); _click(_link("Work Reports")); - _setSelected(_select(0, _near(_span("Select type :"))), $modelName); + _setSelected(_select(0, _near(_span("Select type:"))), $modelName); _click(_cell("New work report")); _click(_cell("Save")); workReportAcctionValidation("saved"); @@ -67,7 +67,7 @@ function workReportModelLineForm($name){ function workReportCreateHeadingModel($modelName){ workReportModelHeadingCreate($modelName); _click(_link("Work Reports")); - _setSelected(_select(0, _near(_span("Select type :"))), $modelName); + _setSelected(_select(0, _near(_span("Select type:"))), $modelName); _click(_cell("New work report")); _click(_cell("Save")); workReportHeadingCodeValidation(); From 866a52e1e9d88de6a3f2f7998438862a12c81ad3 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 18 Nov 2011 16:57:38 +0100 Subject: [PATCH 03/65] Fix materials functional test FEA: ItEr75S04BugFixing --- .../administration-management/material_test.sah | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/functional-tests/administration-management/material_test.sah b/scripts/functional-tests/administration-management/material_test.sah index 011f35e4a..4d0d790e1 100644 --- a/scripts/functional-tests/administration-management/material_test.sah +++ b/scripts/functional-tests/administration-management/material_test.sah @@ -41,7 +41,7 @@ function materialCreate($name) { function materialCreateWithoutCategory(){ _click(_link("Materials")); - _click(_cell("z-button-cm[3]")); + _click(_cell("New")); materialWithoutCategoryValidation(); } @@ -54,7 +54,7 @@ function materialCreateEmpty(){ function materialForm($description) { _click(_link("Materials")); _click(_span("z-dottree-ico z-dottree-firstspacer")); - _click(_cell("z-button-cm[3]")); + _click(_cell("New")); _setValue(_textbox("z-textbox[2]"), $description); _click(_cell("Save")); } From 514de41fa3a9c34b40f70d73e178dc9c20ce66b3 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 18 Nov 2011 17:47:47 +0100 Subject: [PATCH 04/65] Fix several functional tests due to problems with accept button in resource allocation pop-up FEA: ItEr75S04BugFixing --- scripts/functional-tests/resources/machines_test.sah | 2 +- scripts/functional-tests/resources/subcontracting_test.sah | 2 +- scripts/functional-tests/resources/virtual_worker_test.sah | 2 +- scripts/functional-tests/resources/worker_test.sah | 2 +- .../functional-tests/scheduling/planning_criteria_test.sah | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/functional-tests/resources/machines_test.sah b/scripts/functional-tests/resources/machines_test.sah index 4a675c77d..449897691 100644 --- a/scripts/functional-tests/resources/machines_test.sah +++ b/scripts/functional-tests/resources/machines_test.sah @@ -133,7 +133,7 @@ function machineAssignProjectForm($machine){ _click(_cell($machine)); _click(_cell("Add")); _setValue(_textbox(0, _near(_span("Sum of all rows"))), "1"); - _click(_cell("z-button-cm[40]")); + _click(_row("Accept[2]")); _assertExists(_div("box standard-task assigned")); _log("Task assigned", "custom1"); _click(_image("ico_save.png")); diff --git a/scripts/functional-tests/resources/subcontracting_test.sah b/scripts/functional-tests/resources/subcontracting_test.sah index 6efa33e09..88855df62 100644 --- a/scripts/functional-tests/resources/subcontracting_test.sah +++ b/scripts/functional-tests/resources/subcontracting_test.sah @@ -52,7 +52,7 @@ function subcontractingTaskForSubcontractForm($company, $subProjectName){ _setValue(_textbox(0, _near(_span("Subcontract price"))), "6000"); _setValue(_textbox(0, _near(_span("Subcontracted code"))), $companyId); _click(_checkbox(0, _near(_span("Hours groups")))); - _click(_cell("z-button-cm[39]")); + _click(_row("Accept[2]")); _click(_image("ico_save.png")); _click(_cell("OK")); } diff --git a/scripts/functional-tests/resources/virtual_worker_test.sah b/scripts/functional-tests/resources/virtual_worker_test.sah index 7c0aa67e8..769d9e630 100644 --- a/scripts/functional-tests/resources/virtual_worker_test.sah +++ b/scripts/functional-tests/resources/virtual_worker_test.sah @@ -137,7 +137,7 @@ function virtualWorkerAssignProjectForm($workerName){ _click(_div($workerName)); _click(_cell($workerName)); _click(_cell("Add")); - _click(_cell("z-button-cm[40]")); + _click(_row("Accept[2]")); _assertExists(_div("box standard-task assigned")); _log("Task assigned", "custom1"); _click(_image("ico_save.png")); diff --git a/scripts/functional-tests/resources/worker_test.sah b/scripts/functional-tests/resources/worker_test.sah index 9fa5ffc7b..41ad9dcc0 100644 --- a/scripts/functional-tests/resources/worker_test.sah +++ b/scripts/functional-tests/resources/worker_test.sah @@ -149,7 +149,7 @@ function workerAssignProjectForm($workerName, $workerSurName){ _click(_div($workerSurName+", "+$workerName)); _click(_cell($workerSurName+", "+$workerName)); _click(_cell("Add")); - _click(_cell("z-button-cm[40]")); + _click(_row("Accept[2]")); _assertExists(_div("box standard-task assigned")); _log("Task assigned", "custom1"); _click(_image("ico_save.png")); diff --git a/scripts/functional-tests/scheduling/planning_criteria_test.sah b/scripts/functional-tests/scheduling/planning_criteria_test.sah index 81ec6b6e1..2c4d5b446 100644 --- a/scripts/functional-tests/scheduling/planning_criteria_test.sah +++ b/scripts/functional-tests/scheduling/planning_criteria_test.sah @@ -73,7 +73,7 @@ function planningAssignWorker($workerName){ _click(_div($workerName+", "+$workerName)); _click(_cell($workerName+", "+$workerName)); _click(_cell("Add")); - _click(_cell("z-button-cm[40]")); + _click(_row("Accept[2]")); planningCheckIncorrectWorkerValidation() _log("try to assign calendar", "custom1"); } @@ -86,7 +86,7 @@ function planningAssignCriterion($criterion){ _click(_div($criterion+" ( "+$criterion+" )[1]")); _click(_cell($criterion+" ( "+$criterion+" )[1]")); _click(_cell("Add")); - _click(_cell("z-button-cm[40]")); + _click(_row("Accept[2]")); planningCheckIncorrectCriterionValidation() _log("Try to assign criterion", "custom1"); } From c48fd3ddd344bdb42b85e5a0e1a749b5138bdcb0 Mon Sep 17 00:00:00 2001 From: Ignacio Diaz Teijido Date: Sat, 19 Nov 2011 10:03:29 +0100 Subject: [PATCH 05/65] Inserted empty conditions for default data This should be fixed in the future, since it has a workaround for unit tests which bypasses the new behaviour of default data inserting. Those sections to be fixed are in commented lines with //FIXME label. FEA: ItEr75S29DefaultData --- .../calendars/entities/CalendarBootstrap.java | 8 ++++---- .../entities/TypeOfWorkHoursBootstrap.java | 10 +++++----- .../labels/entities/LabelBootstrap.java | 2 +- .../bootstrap/CriterionsBootstrap.java | 18 ++++++++++++++---- .../bootstrap/ICriterionsBootstrap.java | 2 ++ .../entities/WorkReportTypeBootstrap.java | 11 +++++------ .../bootstrap/CriterionsBootstrapTest.java | 2 +- .../web/orders/OrderElementTreeModelTest.java | 5 +++-- 8 files changed, 35 insertions(+), 23 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarBootstrap.java index ef5a2db86..9ae2ca494 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/calendars/entities/CalendarBootstrap.java @@ -47,11 +47,11 @@ public class CalendarBootstrap implements ICalendarBootstrap { @Override @Transactional public void loadRequiredData() { - for (PredefinedCalendarExceptionTypes type : PredefinedCalendarExceptionTypes - .values()) { + if (calendarExceptionTypeDAO.getAll().size() == 0) { + for (PredefinedCalendarExceptionTypes type : PredefinedCalendarExceptionTypes + .values()) { CalendarExceptionType calendarExceptionType = type - .getCalendarExceptionType(); - if (!calendarExceptionTypeDAO.existsByName(calendarExceptionType)) { + .getCalendarExceptionType(); calendarExceptionType .setCode(entitySequenceDAO .getNextEntityCodeWithoutTransaction(EntityNameEnum.CALENDAR_EXCEPTION_TYPE)); diff --git a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/TypeOfWorkHoursBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/TypeOfWorkHoursBootstrap.java index 7fd2685e4..61b671624 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/TypeOfWorkHoursBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/costcategories/entities/TypeOfWorkHoursBootstrap.java @@ -45,11 +45,11 @@ public class TypeOfWorkHoursBootstrap implements ITypeOfWorkHoursBootstrap { @Override @Transactional public void loadRequiredData() { - for (PredefinedTypeOfWorkHours predefinedTypeOfWorkHours : PredefinedTypeOfWorkHours - .values()) { - TypeOfWorkHours typeOfWorkHours = predefinedTypeOfWorkHours - .getTypeOfWorkHours(); - if (!typeOfWorkHoursDAO.existsByName(typeOfWorkHours)) { + if (typeOfWorkHoursDAO.findAll().size() == 0) { + for (PredefinedTypeOfWorkHours predefinedTypeOfWorkHours : PredefinedTypeOfWorkHours + .values()) { + TypeOfWorkHours typeOfWorkHours = predefinedTypeOfWorkHours + .getTypeOfWorkHours(); typeOfWorkHours.setCodeAutogenerated(true); typeOfWorkHours .setCode(entitySequenceDAO diff --git a/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java index b9cebe14a..31c6251dd 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java @@ -46,7 +46,7 @@ public class LabelBootstrap implements ILabelBootstrap { @Transactional public void loadRequiredData() { LabelType priorityType = LabelType.create("Priority"); - if (!labelTypeDAO.existsByName(priorityType)) { + if (labelTypeDAO.getAll().size() == 0) { priorityType.setCodeAutogenerated(true); priorityType.setCode(entitySequenceDAO .getNextEntityCodeWithoutTransaction(EntityNameEnum.LABEL)); diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java index d4ccb85f8..53379e24b 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java @@ -64,6 +64,8 @@ public class CriterionsBootstrap implements ICriterionsBootstrap { @Autowired private List providers; + private boolean isTest = false; + public CriterionsBootstrap() { } @@ -71,18 +73,26 @@ public class CriterionsBootstrap implements ICriterionsBootstrap { @Transactional public void loadRequiredData() { Map> typesWithCriterions = getTypesWithCriterions(); - // Insert predefined criterions for (Entry> entry : typesWithCriterions .entrySet()) { CriterionType criterionType = retrieveOrCreate(entry.getKey()); - // Create predefined criterions for criterionType - for (String criterionName : entry.getValue()) { - ensureCriterionExists(criterionName, criterionType); + // FIXME when tests are fixed isTest has no sense + if (isTest || criterionDAO.getAll().size() == 0) { + // Create predefined criterions for criterionType + for (String criterionName : entry.getValue()) { + ensureCriterionExists(criterionName, criterionType); + } } } } + // FIXME this method is not needed when tests are fixed + public void loadRequiredData(boolean test) { + isTest = test; + loadRequiredData(); + } + private void ensureCriterionExists(String criterionName, CriterionType criterionType) { Criterion criterion = Criterion.createPredefined(criterionName, diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java index 348a49ec3..4a6aa0d8f 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java @@ -31,4 +31,6 @@ public interface ICriterionsBootstrap extends IDataBootstrap { public abstract void loadRequiredData(); + public void loadRequiredData(boolean test); + } \ No newline at end of file diff --git a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java index 991001704..7f366ecb6 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/workreports/entities/WorkReportTypeBootstrap.java @@ -45,12 +45,11 @@ public class WorkReportTypeBootstrap implements IWorkReportTypeBootstrap { @Override @Transactional public void loadRequiredData() { - for (PredefinedWorkReportTypes predefinedWorkReportType : PredefinedWorkReportTypes - .values()) { - WorkReportType workReportType = predefinedWorkReportType - .getWorkReportType(); - if (!workReportTypeDAO - .existsOtherWorkReportTypeByName(workReportType)) { + if (workReportTypeDAO.getWorkReportTypes().size() == 0) { + for (PredefinedWorkReportTypes predefinedWorkReportType : PredefinedWorkReportTypes + .values()) { + WorkReportType workReportType = predefinedWorkReportType + .getWorkReportType(); workReportType.setCodeAutogenerated(true); workReportType .setCode(entitySequenceDAO diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java index b9d113e01..6da277e00 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java @@ -68,7 +68,7 @@ public class CriterionsBootstrapTest { @Test public void testBootstrap() { givenNoSomePredefinedCriterionExists(); - criterionsBootstrap.loadRequiredData(); + criterionsBootstrap.loadRequiredData(true); thenAllSomePredefinedCriterionsExist(); } diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java index b156dc236..8035fe6e8 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java @@ -63,6 +63,7 @@ import org.libreplan.business.qualityforms.entities.QualityForm; import org.libreplan.business.requirements.entities.CriterionRequirement; import org.libreplan.business.requirements.entities.DirectCriterionRequirement; import org.libreplan.business.requirements.entities.IndirectCriterionRequirement; +import org.libreplan.business.resources.bootstrap.ICriterionsBootstrap; import org.libreplan.business.resources.daos.ICriterionDAO; import org.libreplan.business.resources.entities.Criterion; import org.libreplan.business.scenarios.bootstrap.PredefinedScenarios; @@ -96,7 +97,7 @@ public class OrderElementTreeModelTest { private IDataBootstrap scenariosBootstrap; @Resource - private IDataBootstrap criterionsBootstrap; + private ICriterionsBootstrap criterionsBootstrap; @Resource private IDataBootstrap configurationBootstrap; @@ -130,7 +131,7 @@ public class OrderElementTreeModelTest { configurationBootstrap.loadRequiredData(); defaultAdvanceTypesBootstrapListener.loadRequiredData(); scenariosBootstrap.loadRequiredData(); - criterionsBootstrap.loadRequiredData(); + criterionsBootstrap.loadRequiredData(true); givenOrder(); givenModel(); From c364192df6f8134f9ba3b8f8e8e940d64c5c69a6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 21 Nov 2011 10:12:01 +0100 Subject: [PATCH 06/65] Fix pending issues in previous commit FEA: ItEr75S29DefaultData --- .../labels/entities/LabelBootstrap.java | 2 +- .../bootstrap/CriterionsBootstrap.java | 21 +++------ .../bootstrap/ICriterionsBootstrap.java | 2 - .../bootstrap/CriterionsBootstrapTest.java | 45 ++++++++++++++++++- .../web/orders/OrderElementTreeModelTest.java | 44 +++++++++++++++++- .../ws/orders/OrderElementServiceTest.java | 21 +++++++++ 6 files changed, 115 insertions(+), 20 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java index 31c6251dd..616126d3c 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/labels/entities/LabelBootstrap.java @@ -45,8 +45,8 @@ public class LabelBootstrap implements ILabelBootstrap { @Override @Transactional public void loadRequiredData() { - LabelType priorityType = LabelType.create("Priority"); if (labelTypeDAO.getAll().size() == 0) { + LabelType priorityType = LabelType.create("Priority"); priorityType.setCodeAutogenerated(true); priorityType.setCode(entitySequenceDAO .getNextEntityCodeWithoutTransaction(EntityNameEnum.LABEL)); diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java index 53379e24b..03fcf00ae 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/CriterionsBootstrap.java @@ -64,21 +64,18 @@ public class CriterionsBootstrap implements ICriterionsBootstrap { @Autowired private List providers; - private boolean isTest = false; - public CriterionsBootstrap() { } @Override @Transactional public void loadRequiredData() { - Map> typesWithCriterions = getTypesWithCriterions(); - // Insert predefined criterions - for (Entry> entry : typesWithCriterions - .entrySet()) { - CriterionType criterionType = retrieveOrCreate(entry.getKey()); - // FIXME when tests are fixed isTest has no sense - if (isTest || criterionDAO.getAll().size() == 0) { + if (criterionTypeDAO.findAll().isEmpty()) { + Map> typesWithCriterions = getTypesWithCriterions(); + // Insert predefined criterions + for (Entry> entry : typesWithCriterions + .entrySet()) { + CriterionType criterionType = retrieveOrCreate(entry.getKey()); // Create predefined criterions for criterionType for (String criterionName : entry.getValue()) { ensureCriterionExists(criterionName, criterionType); @@ -87,12 +84,6 @@ public class CriterionsBootstrap implements ICriterionsBootstrap { } } - // FIXME this method is not needed when tests are fixed - public void loadRequiredData(boolean test) { - isTest = test; - loadRequiredData(); - } - private void ensureCriterionExists(String criterionName, CriterionType criterionType) { Criterion criterion = Criterion.createPredefined(criterionName, diff --git a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java index 4a6aa0d8f..348a49ec3 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java +++ b/libreplan-business/src/main/java/org/libreplan/business/resources/bootstrap/ICriterionsBootstrap.java @@ -31,6 +31,4 @@ public interface ICriterionsBootstrap extends IDataBootstrap { public abstract void loadRequiredData(); - public void loadRequiredData(boolean test); - } \ No newline at end of file diff --git a/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java b/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java index 6da277e00..fd7262a66 100644 --- a/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java +++ b/libreplan-business/src/test/java/org/libreplan/business/test/resources/bootstrap/CriterionsBootstrapTest.java @@ -28,12 +28,20 @@ import static org.libreplan.business.test.BusinessGlobalNames.BUSINESS_SPRING_CO import java.util.ArrayList; import java.util.List; +import javax.annotation.Resource; + +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.libreplan.business.IDataBootstrap; +import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.resources.bootstrap.ICriterionsBootstrap; import org.libreplan.business.resources.daos.ICriterionDAO; +import org.libreplan.business.resources.daos.ICriterionTypeDAO; +import org.libreplan.business.resources.daos.IResourceDAO; import org.libreplan.business.resources.entities.CategoryCriteria; import org.libreplan.business.resources.entities.Criterion; +import org.libreplan.business.resources.entities.CriterionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -45,14 +53,49 @@ import org.springframework.transaction.annotation.Transactional; @Transactional public class CriterionsBootstrapTest { + @Resource + private IDataBootstrap configurationBootstrap; + @Autowired private ICriterionsBootstrap criterionsBootstrap; @Autowired private ICriterionDAO criterionDAO; + @Autowired + private IResourceDAO resourceDAO; + + @Autowired + private ICriterionTypeDAO criterionTypeDAO; + private List somePredefinedCriterions; + @Before + public void loadRequiredaData() { + // Load data + configurationBootstrap.loadRequiredData(); + cleanCriteria(); + } + + private void cleanCriteria() { + try { + + List resources = resourceDAO + .findAll(); + for (org.libreplan.business.resources.entities.Resource resource : resources) { + resourceDAO.remove(resource.getId()); + } + + List types = criterionTypeDAO.findAll(); + for (CriterionType type : types) { + criterionTypeDAO.remove(type.getId()); + } + + } catch (InstanceNotFoundException e) { + throw new RuntimeException(e); + } + } + public CriterionsBootstrapTest() { somePredefinedCriterions = getSomePredefinedCriterions(); } @@ -68,7 +111,7 @@ public class CriterionsBootstrapTest { @Test public void testBootstrap() { givenNoSomePredefinedCriterionExists(); - criterionsBootstrap.loadRequiredData(true); + criterionsBootstrap.loadRequiredData(); thenAllSomePredefinedCriterionsExist(); } diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java index 8035fe6e8..a124ebc5e 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/orders/OrderElementTreeModelTest.java @@ -39,6 +39,7 @@ import static org.libreplan.web.test.WebappGlobalNames.WEBAPP_SPRING_SECURITY_CO import java.math.BigDecimal; import java.util.Date; +import java.util.List; import javax.annotation.Resource; @@ -51,6 +52,7 @@ import org.libreplan.business.advance.entities.AdvanceType; import org.libreplan.business.advance.entities.DirectAdvanceAssignment; import org.libreplan.business.advance.exceptions.DuplicateAdvanceAssignmentForOrderElementException; import org.libreplan.business.advance.exceptions.DuplicateValueTrueReportGlobalAdvanceException; +import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.labels.entities.Label; import org.libreplan.business.labels.entities.LabelType; import org.libreplan.business.materials.entities.Material; @@ -65,11 +67,16 @@ import org.libreplan.business.requirements.entities.DirectCriterionRequirement; import org.libreplan.business.requirements.entities.IndirectCriterionRequirement; import org.libreplan.business.resources.bootstrap.ICriterionsBootstrap; import org.libreplan.business.resources.daos.ICriterionDAO; +import org.libreplan.business.resources.daos.ICriterionTypeDAO; +import org.libreplan.business.resources.daos.IResourceDAO; import org.libreplan.business.resources.entities.Criterion; +import org.libreplan.business.resources.entities.CriterionType; import org.libreplan.business.scenarios.bootstrap.PredefinedScenarios; import org.libreplan.business.scenarios.entities.OrderVersion; import org.libreplan.business.scenarios.entities.Scenario; import org.libreplan.business.templates.entities.OrderElementTemplate; +import org.libreplan.business.workreports.daos.IWorkReportDAO; +import org.libreplan.business.workreports.entities.WorkReport; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -105,6 +112,15 @@ public class OrderElementTreeModelTest { @Autowired private ICriterionDAO criterionDAO; + @Autowired + private IWorkReportDAO workReportDAO; + + @Autowired + private IResourceDAO resourceDAO; + + @Autowired + private ICriterionTypeDAO criterionTypeDAO; + private Order order; private OrderElementTreeModel model; @@ -127,16 +143,42 @@ public class OrderElementTreeModelTest { @Before public void loadRequiredaData() { + cleanCriteria(workReportDAO, resourceDAO, criterionTypeDAO); + // Load data configurationBootstrap.loadRequiredData(); defaultAdvanceTypesBootstrapListener.loadRequiredData(); scenariosBootstrap.loadRequiredData(); - criterionsBootstrap.loadRequiredData(true); + criterionsBootstrap.loadRequiredData(); givenOrder(); givenModel(); } + public static void cleanCriteria(IWorkReportDAO workReportDAO, + IResourceDAO resourceDAO, ICriterionTypeDAO criterionTypeDAO) { + try { + List reports = workReportDAO.findAll(); + for (WorkReport each : reports) { + workReportDAO.remove(each.getId()); + } + + List resources = resourceDAO + .findAll(); + for (org.libreplan.business.resources.entities.Resource each : resources) { + resourceDAO.remove(each.getId()); + } + + List types = criterionTypeDAO.findAll(); + for (CriterionType each : types) { + criterionTypeDAO.remove(each.getId()); + } + + } catch (InstanceNotFoundException e) { + throw new RuntimeException(e); + } + } + private void givenOrder() { order = Order.create(); order.setName("order"); diff --git a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/orders/OrderElementServiceTest.java b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/orders/OrderElementServiceTest.java index b5e3c2c60..0b23b9a15 100644 --- a/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/orders/OrderElementServiceTest.java +++ b/libreplan-webapp/src/test/java/org/libreplan/web/test/ws/orders/OrderElementServiceTest.java @@ -69,9 +69,13 @@ import org.libreplan.business.orders.entities.OrderLine; import org.libreplan.business.requirements.entities.CriterionRequirement; import org.libreplan.business.requirements.entities.DirectCriterionRequirement; import org.libreplan.business.requirements.entities.IndirectCriterionRequirement; +import org.libreplan.business.resources.daos.ICriterionTypeDAO; +import org.libreplan.business.resources.daos.IResourceDAO; import org.libreplan.business.resources.entities.PredefinedCriterionTypes; import org.libreplan.business.resources.entities.ResourceEnum; import org.libreplan.business.scenarios.bootstrap.IScenariosBootstrap; +import org.libreplan.business.workreports.daos.IWorkReportDAO; +import org.libreplan.web.orders.OrderElementTreeModelTest; import org.libreplan.ws.common.api.AdvanceMeasurementDTO; import org.libreplan.ws.common.api.ConstraintViolationDTO; import org.libreplan.ws.common.api.CriterionRequirementDTO; @@ -129,8 +133,25 @@ public class OrderElementServiceTest { @Autowired private IAdHocTransactionService transactionService; + @Autowired + private IWorkReportDAO workReportDAO; + + @Autowired + private IResourceDAO resourceDAO; + + @Autowired + private ICriterionTypeDAO criterionTypeDAO; + @Before public void loadRequiredaData() { + transactionService.runOnTransaction(new IOnTransaction() { + @Override + public Void execute() { + OrderElementTreeModelTest.cleanCriteria(workReportDAO, + resourceDAO, criterionTypeDAO); + return null; + } + }); transactionService.runOnAnotherTransaction(new IOnTransaction() { @Override public Void execute() { From 13a8be679b55cfce8c3cd2be1da9a7a1d72eea0e Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 21 Nov 2011 17:02:47 +0100 Subject: [PATCH 07/65] Removed jsession parameter in EntryPoints matching conditions The ;jsession URI parameter is interfering EntryPointsHandler behaviour, causing that redirects when this variable is set don't work. FEA: ItEr75S04BugFixing --- .../libreplan/web/common/entrypoints/MatrixParameters.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/MatrixParameters.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/MatrixParameters.java index 85e0c978d..65c2e886e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/MatrixParameters.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/entrypoints/MatrixParameters.java @@ -45,11 +45,16 @@ public class MatrixParameters { return extract(request.getRequestURI()); } + /** + * Extracts matrix parameters but skipping "jsessionid" + */ public static Map extract(String string) { Map result = new HashMap(); Matcher matcher = matrixParamPattern.matcher(string); while (matcher.find()) { - result.put(matcher.group(1), matcher.group(2)); + if (!matcher.group(1).equals("jsessionid")) { + result.put(matcher.group(1), matcher.group(2)); + } } return result; } From 4795697263a2422255820b5e0b5c69c38d31082c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Thu, 17 Nov 2011 00:42:45 +0100 Subject: [PATCH 08/65] Fixed Sahi test data-types/exception_days_test.sah in chromium FEA: ItEr75S04BugFixing --- scripts/functional-tests/data-types/exception_days_test.sah | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/functional-tests/data-types/exception_days_test.sah b/scripts/functional-tests/data-types/exception_days_test.sah index e384c2a84..e9a13e1bb 100644 --- a/scripts/functional-tests/data-types/exception_days_test.sah +++ b/scripts/functional-tests/data-types/exception_days_test.sah @@ -94,7 +94,7 @@ function exceptDayCheckCode($exceptDayName){ function exceptDayCreateWithoutCode($name){ commonCreate("Exception Days"); - exceptDayForm($name); + exceptDayForm($name,"",""); commonEmptyCodeValidation(); } @@ -110,7 +110,7 @@ commonLogin("admin", "admin"); exceptDayCreate($exceptDayName, $exceptDaystandar, 2); exceptDayCreateDuplicateName($exceptDayName, $exceptDaystandar, 1); -exceptDayCreateEmpty("", $exceptDaystandar); +exceptDayCreateEmpty("", $exceptDaystandar,""); exceptDayEdit($exceptDayName, $exceptDayNewName, 5); From f5d30b8fe627902952ff032b56274c2cb1ce8caa Mon Sep 17 00:00:00 2001 From: Ignacio Diaz Teijido Date: Mon, 21 Nov 2011 19:08:54 +0100 Subject: [PATCH 09/65] [Bug #1253] Constraint for EffortDuration in advanced allocation FEA: ItEr75S04BugFixing --- .../java/org/libreplan/web/common/EffortDurationBox.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java index 99a42b731..3ea7fc69a 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/EffortDurationBox.java @@ -38,12 +38,7 @@ public class EffortDurationBox extends Textbox { @Override protected Object unmarshall(Object value) { - EffortDuration result = EffortDuration - .parseFromFormattedString((String) value); - if (result == null) { - return EffortDuration.zero(); - } - return result; + return coerceFromString((String) value); } @Override From 7a169087d4daf15c71602374682dfbd24204d34c Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 21 Nov 2011 20:02:34 +0100 Subject: [PATCH 10/65] Add link to first subpage in "My account" menu entry FEA: ItEr75S04BugFixing --- .../java/org/libreplan/web/common/CustomMenuController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java index af9ad7954..85877a9e8 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java @@ -339,7 +339,7 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { subItem(_("Task Scheduling Status In Project"),"/reports/workingArrangementsPerOrderReport.zul","15-informes.html"), subItem(_("Materials Needs At Date"),"/reports/timeLineMaterialReport.zul","15-informes.html")); - topItem(_("My account"), "", "", + topItem(_("My account"), "/settings/settings.zul", "", subItem(_("Settings"), "/settings/settings.zul", ""), subItem(_("Change Password"), "/settings/changePassword.zul", "")); } From 65112077d7bc8eb6ee372537e96d075b1de21a14 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 21 Nov 2011 20:08:40 +0100 Subject: [PATCH 11/65] Mark first menu entry as active when user goes to / The problem is only happening on Tomcat. FEA: ItEr75S04BugFixing --- .../libreplan/web/common/CustomMenuController.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java index 85877a9e8..d85c839d0 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/common/CustomMenuController.java @@ -201,15 +201,21 @@ public class CustomMenuController extends Div implements IMenuItemsRegister { for (CustomMenuItem c : child.children) { if (c.contains(requestPath)) { c.setActive(true); - break; + return; } } - break; + return; } } - break; + return; } } + + if (requestPath.isEmpty()) { + CustomMenuItem item = this.firstLevel.get(0); + item.setActive(true); + item.children.get(0).setActive(true); + } } private OnZKDesktopRegistry getLocator() { From 1d170cc1ae8198cc940c5bb4cd9447197a7609cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Fri, 18 Nov 2011 11:58:23 +0100 Subject: [PATCH 12/65] [Bug #1235] Changed height calculations affecting project edition scollbar FEA: ItEr75S04BugFixing --- libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css b/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css index 4b7d14691..16ef83781 100644 --- a/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css +++ b/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css @@ -1134,6 +1134,10 @@ span.perspective, span.perspective-active { border-bottom:1px solid #9ECAD8; } +.orderslayout-area > .z-center-body { + height: auto !important; +} + .orderelements-tab { overflow-x: auto; } From fb69b2a73d85c16e3994c18f96aa75698ee2bc90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Fri, 18 Nov 2011 14:39:36 +0100 Subject: [PATCH 13/65] [Bug #1235] Added scrollbar to perspective icons area when needed FEA: ItEr75S04BugFixing --- .../src/main/webapp/common/css/libreplan_zk.css | 5 +++++ libreplan-webapp/src/main/webapp/common/layout/template.zul | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css b/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css index 16ef83781..475ced781 100644 --- a/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css +++ b/libreplan-webapp/src/main/webapp/common/css/libreplan_zk.css @@ -100,6 +100,11 @@ body .advancedallocationlayout .icono .z-button-cm { border-right:0; } + +.perspectives-column .global-commands { + margin-bottom: 0; +} + .toolbar-box { border:0; } diff --git a/libreplan-webapp/src/main/webapp/common/layout/template.zul b/libreplan-webapp/src/main/webapp/common/layout/template.zul index e737e91c2..4ac6728b2 100644 --- a/libreplan-webapp/src/main/webapp/common/layout/template.zul +++ b/libreplan-webapp/src/main/webapp/common/layout/template.zul @@ -112,13 +112,13 @@ signature="java.lang.Boolean isDefaultPasswordsControl()"?>
- - + +