details: https://code.openbravo.com/erp/devel/pi/rev/20388faf6420
changeset: 20471:20388faf6420
user: Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date: Mon May 27 15:59:41 2013 +0530
summary: Fixes Issue 0023883 : At least one field should be visible in grid
view
Export fails now if there is a tab with no fields visible in grid view.
Also an error in log is raised when the tab is opened.
diffstat:
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java
| 11 ++++
src/org/openbravo/service/system/DatabaseValidator.java
| 25 ++++++++++
src/org/openbravo/service/system/SystemValidationResult.java
| 2 +-
3 files changed, 37 insertions(+), 1 deletions(-)
diffs (94 lines):
diff -r 7c61b34d581b -r 20388faf6420
modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java
---
a/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java
Fri May 24 12:39:17 2013 +0200
+++
b/modules/org.openbravo.client.application/src/org/openbravo/client/application/window/OBViewTab.java
Mon May 27 15:59:41 2013 +0530
@@ -31,6 +31,7 @@
import org.apache.log4j.Logger;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
+import org.hibernate.criterion.Restrictions;
import org.openbravo.base.model.Entity;
import org.openbravo.base.model.ModelProvider;
import org.openbravo.base.model.Property;
@@ -46,6 +47,7 @@
import org.openbravo.client.kernel.reference.UIDefinitionController;
import org.openbravo.dal.core.DalUtil;
import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBCriteria;
import org.openbravo.dal.service.OBDal;
import org.openbravo.data.Sqlc;
import org.openbravo.erpCommon.obps.ActivationKey;
@@ -282,6 +284,15 @@
// force a load all the columns of the table
getTab().getTable().getADColumnList().size();
+ // check at least one field is visible in grid view, does not stop the
execution
+ OBCriteria<Field> fieldCriteria =
OBDal.getInstance().createCriteria(Field.class);
+ fieldCriteria.add(Restrictions.eq(Field.PROPERTY_TAB, getTab()));
+ fieldCriteria.add(Restrictions.eq(Field.PROPERTY_SHOWINGRIDVIEW, true));
+ if (fieldCriteria.count() == 0) {
+ log.error("No Fields are visible in grid view for Tab " +
tab.getWindow().getName() + " - "
+ + tab.getName());
+ }
+
final OBViewGridComponent viewGridComponent =
createComponent(OBViewGridComponent.class);
viewGridComponent.setParameters(getParameters());
viewGridComponent.setTab(tab);
diff -r 7c61b34d581b -r 20388faf6420
src/org/openbravo/service/system/DatabaseValidator.java
--- a/src/org/openbravo/service/system/DatabaseValidator.java Fri May 24
12:39:17 2013 +0200
+++ b/src/org/openbravo/service/system/DatabaseValidator.java Mon May 27
15:59:41 2013 +0530
@@ -49,6 +49,8 @@
import org.openbravo.model.ad.module.Module;
import org.openbravo.model.ad.module.ModuleDBPrefix;
import org.openbravo.model.ad.system.Client;
+import org.openbravo.model.ad.ui.Field;
+import org.openbravo.model.ad.ui.Tab;
import org.openbravo.model.ad.utility.DataSet;
import org.openbravo.model.common.enterprise.Organization;
import
org.openbravo.service.system.SystemValidationResult.SystemValidationType;
@@ -221,6 +223,7 @@
}
matchColumns(adTable, dbTable, result);
tmpDBTablesByName.remove(dbTable.getName().toUpperCase());
+ checkFieldsInGridView(adTable, result);
}
}
for (int i = 0; i < database.getTableCount(); i++) {
@@ -850,4 +853,26 @@
this.dbsmExecution = dbsmExecution;
}
+ /*
+ * Check at least one field is visible in grid view
+ */
+ public void checkFieldsInGridView(Table adTable, SystemValidationResult
result) {
+ OBCriteria<Tab> tabCriteria =
OBDal.getInstance().createCriteria(Tab.class);
+ tabCriteria.add(Restrictions.eq(Tab.PROPERTY_TABLE, adTable));
+ for (Tab tab : tabCriteria.list()) {
+ if ("Field Sequence".equals(tab.getName()) || ("Grid
Sequence".equals(tab.getName()))) {
+ continue;
+ }
+ OBCriteria<Field> fieldCriteria =
OBDal.getInstance().createCriteria(Field.class);
+ fieldCriteria.add(Restrictions.eq(Field.PROPERTY_TAB, tab));
+ fieldCriteria.add(Restrictions.eq(Field.PROPERTY_SHOWINGRIDVIEW, true));
+ if (fieldCriteria.count() == 0) {
+ result.addError(
+ SystemValidationType.NOFIELDSINGRIDVIEW,
+ "No Fields are visible in grid view for Tab " +
tab.getWindow().getName() + " - "
+ + tab.getName());
+ }
+ }
+
+ }
}
diff -r 7c61b34d581b -r 20388faf6420
src/org/openbravo/service/system/SystemValidationResult.java
--- a/src/org/openbravo/service/system/SystemValidationResult.java Fri May
24 12:39:17 2013 +0200
+++ b/src/org/openbravo/service/system/SystemValidationResult.java Mon May
27 15:59:41 2013 +0530
@@ -32,7 +32,7 @@
public class SystemValidationResult {
public enum SystemValidationType {
- NAME_TOO_LONG, MODULE_ERROR, CUSTOMIZATION_ID, INCORRECT_DEFAULT_VALUE,
WRONG_NAME, WRONG_LENGTH, NO_PRIMARY_KEY_COLUMNS,
NOT_NULL_IN_DB_NOT_MANDATORY_IN_AD, MANDATORY_IN_AD_NULLABLE_IN_DB,
NOT_EXIST_IN_AD, NOT_EXIST_IN_DB, NOT_PART_OF_FOREIGN_KEY, WRONG_TYPE,
INCORRECT_CLIENT_ORG_PROPERTY_NAME, UNEQUAL_DEFAULTVALUE, INCORRECT_PK_NAME,
INCORRECT_FK_NAME, INCORRECT_CHECK_NAME, INCORRECT_UNIQUE_NAME,
INCORRECT_INDEX_NAME, INCORRECT_NAME_LENGTH, INCORRECT_DATASET_NAME,
DEPENDENCY_PROBLEM, HAS_PROPERTY_CONFIGURATION, OLDSTYLE_PASSWORD_COLUMNS,
DUPLICATED_INCLUSION;
+ NAME_TOO_LONG, MODULE_ERROR, CUSTOMIZATION_ID, INCORRECT_DEFAULT_VALUE,
WRONG_NAME, WRONG_LENGTH, NO_PRIMARY_KEY_COLUMNS,
NOT_NULL_IN_DB_NOT_MANDATORY_IN_AD, MANDATORY_IN_AD_NULLABLE_IN_DB,
NOT_EXIST_IN_AD, NOT_EXIST_IN_DB, NOT_PART_OF_FOREIGN_KEY, WRONG_TYPE,
INCORRECT_CLIENT_ORG_PROPERTY_NAME, UNEQUAL_DEFAULTVALUE, INCORRECT_PK_NAME,
INCORRECT_FK_NAME, INCORRECT_CHECK_NAME, INCORRECT_UNIQUE_NAME,
INCORRECT_INDEX_NAME, INCORRECT_NAME_LENGTH, INCORRECT_DATASET_NAME,
DEPENDENCY_PROBLEM, HAS_PROPERTY_CONFIGURATION, OLDSTYLE_PASSWORD_COLUMNS,
DUPLICATED_INCLUSION, NOFIELDSINGRIDVIEW;
public String getName() {
return this.getClass().getSimpleName();
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits