From 6de5eb8b0ee2c05dbe20ca7b7705cbf17ce3476c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Wed, 16 Nov 2011 16:43:00 +0100 Subject: [PATCH] [Bug #1247] Fixed issue with checkbox validation in Quality Form edition FEA: ItEr75S04BugFixing --- .../qualityforms/entities/QualityForm.java | 4 ++++ .../QualityFormCRUDController.java | 20 +++++++++---------- .../web/qualityforms/QualityFormModel.java | 2 +- .../webapp/qualityforms/_editQualityForm.zul | 5 ++--- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityForm.java b/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityForm.java index 235e0f5db..d4bf06599 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityForm.java +++ b/libreplan-business/src/main/java/org/libreplan/business/qualityforms/entities/QualityForm.java @@ -394,6 +394,10 @@ public class QualityForm extends BaseEntity implements IHumanIdentifiable{ this.reportAdvance = BooleanUtils.toBoolean(reportAdvance); } + public boolean getReportAdvance() { + return this.reportAdvance; + } + public AdvanceType getAdvanceType() { return advanceType; } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java index c9410d06b..604f31c7e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormCRUDController.java @@ -135,6 +135,8 @@ public class QualityFormCRUDController extends BaseCRUDController { .getFellowIfAny("qualityFormName"); validate(boxName, boxName.getValue()); + validateReportProgress(); + List rows = gridQualityFormItems.getRows().getChildren(); for (Row row : rows) { validate(row); @@ -410,16 +412,14 @@ public class QualityFormCRUDController extends BaseCRUDController { predicate = getSelectedName(); } - public void validateReportProgress(Component comp) { - Checkbox checkbox = (Checkbox) comp; - if (checkbox != null) { - if ((checkbox.isChecked()) && (!hasItemWithTotalPercentage())) { - disabledCheckbocReportProgress(checkbox); - messagesForUser - .showMessage( - Level.ERROR, - _("The quality form must have an item with 100% value to report progress")); - } + public void validateReportProgress() { + if ((getQualityForm().getReportAdvance()) + && (!hasItemWithTotalPercentage())) { + Checkbox checkBoxReportProgress = (Checkbox) editWindow + .getFellowIfAny("checkBoxReportProgress"); + throw new WrongValueException( + checkBoxReportProgress, + _("The quality form must have an item with 100% value to report progress")); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormModel.java index 622827bd3..234e3d91e 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/qualityforms/QualityFormModel.java @@ -215,7 +215,7 @@ public class QualityFormModel implements IQualityFormModel { @Override public Boolean isTotalPercentage(QualityFormItem item) { return (item.getPercentage() != null) ? (item.getPercentage() - .equals(totalPercentage)) : false; + .compareTo(totalPercentage) == 0) : false; } @Override diff --git a/libreplan-webapp/src/main/webapp/qualityforms/_editQualityForm.zul b/libreplan-webapp/src/main/webapp/qualityforms/_editQualityForm.zul index bf4b9a0be..b8b1ca6c0 100644 --- a/libreplan-webapp/src/main/webapp/qualityforms/_editQualityForm.zul +++ b/libreplan-webapp/src/main/webapp/qualityforms/_editQualityForm.zul @@ -64,8 +64,7 @@ @@ -78,7 +77,7 @@