You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/01/16 09:22:09 UTC
svn commit: r496617 - in /ofbiz/trunk/applications/product: config/ data/
entitydef/ src/org/ofbiz/product/product/ webapp/catalog/store/
Author: jonesde
Date: Tue Jan 16 00:22:08 2007
New Revision: 496617
URL: http://svn.apache.org/viewvc?view=rev&rev=496617
Log:
Added ExcludeVariants constraint for the ProductSearch stuff, plus an indicator on the ProductStore to turn it on an off; also made small change in the way the auto-add of the view allow constraint works; did a few brief tests and all seems to be working fine
Modified:
ofbiz/trunk/applications/product/config/ProductUiLabels.properties
ofbiz/trunk/applications/product/data/ProductTypeData.xml
ofbiz/trunk/applications/product/entitydef/entitymodel.xml
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java
ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreForms.xml
Modified: ofbiz/trunk/applications/product/config/ProductUiLabels.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ProductUiLabels.properties?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/config/ProductUiLabels.properties (original)
+++ ofbiz/trunk/applications/product/config/ProductUiLabels.properties Tue Jan 16 00:22:08 2007
@@ -1,7 +1,4 @@
#####################################################################
-#
-# Copyright 2001-2006 The Apache Software Foundation
-#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
@@ -516,6 +513,7 @@
ProductEstimatedStartArrive=Estimated (Start-Arrive)
ProductExcludeGeoMessage=Displays only if ship-to is not in this geo
ProductExcludeGeo=Exclude Geo
+ProductExcludeVariants=Exclude Variants
ProductExcGeo=Exc Geo
ProductExcludeFeatureMessage=Displays only if all items have no features in this group
ProductExcludeFeature=Exclude Feature Group
Modified: ofbiz/trunk/applications/product/data/ProductTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductTypeData.xml?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Tue Jan 16 00:22:08 2007
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
-Copyright 2001-2006 The Apache Software Foundation
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
Modified: ofbiz/trunk/applications/product/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel.xml?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel.xml Tue Jan 16 00:22:08 2007
@@ -3081,6 +3081,7 @@
<field name="vatTaxAuthPartyId" type="id"></field>
<field name="enableAutoSuggestionList" type="indicator"><description>The auto-suggestion list is a special ShoppingList that the addSuggestionsToShoppingList service will maintain for cross-sells of ordered items.</description></field>
<field name="enableDigProdUpload" type="indicator"></field>
+ <field name="prodSearchExcludeVariants" type="indicator"><description>default Y; if set to Y an additional constraint will of isVariant!=Y will be added to all product searches for the store</description></field>
<field name="digProdUploadCategoryId" type="id"></field>
<field name="autoOrderCcTryExp" type="indicator"><description>For auto-orders try other Credit Card expiration dates (if date is wrong or general failure where type not known)?</description></field>
<field name="autoOrderCcTryOtherCards" type="indicator"><description>For auto-orders try other Credit Cards for the customer?</description></field>
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java Tue Jan 16 00:22:08 2007
@@ -1086,6 +1086,34 @@
}
}
+ public static class ExcludeVariantsConstraint extends ProductSearchConstraint {
+ public static final String constraintName = "ExcludeVariants";
+
+ public ExcludeVariantsConstraint() {
+ }
+
+ public void addConstraint(ProductSearchContext productSearchContext) {
+ productSearchContext.dynamicViewEntity.addAlias("PROD", "prodIsVariant", "isVariant", null, null, null, null);
+ productSearchContext.entityConditionList.add(new EntityExpr("prodIsVariant", EntityOperator.NOT_EQUAL, "Y"));
+
+ // add in productSearchConstraint, don't worry about the productSearchResultId or constraintSeqId, those will be fill in later
+ productSearchContext.productSearchConstraintList.add(productSearchContext.getDelegator().makeValue("ProductSearchConstraint", UtilMisc.toMap("constraintName", constraintName, "infoString", "")));
+ }
+
+ public String prettyPrintConstraint(GenericDelegator delegator, boolean detailed, Locale locale) {
+ return UtilProperties.getMessage(resource, "ProductExcludeVariants", locale);
+ }
+
+ public boolean equals(Object obj) {
+ ProductSearchConstraint psc = (ProductSearchConstraint) obj;
+ if (psc instanceof ExcludeVariantsConstraint) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ }
+
// ======================================================================
// Result Sort Classes
// ======================================================================
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java Tue Jan 16 00:22:08 2007
@@ -33,6 +33,8 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javolution.util.FastList;
+
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilHttp;
import org.ofbiz.base.util.UtilMisc;
@@ -89,7 +91,7 @@
public static void addConstraint(ProductSearchConstraint productSearchConstraint, HttpSession session) {
ProductSearchOptions productSearchOptions = getProductSearchOptions(session);
if (productSearchOptions.constraintList == null) {
- productSearchOptions.constraintList = new LinkedList();
+ productSearchOptions.constraintList = FastList.newInstance();
}
if (!productSearchOptions.constraintList.contains(productSearchConstraint)) {
productSearchOptions.constraintList.add(productSearchConstraint);
@@ -152,7 +154,7 @@
public List searchGetConstraintStrings(boolean detailed, GenericDelegator delegator, Locale locale) {
List productSearchConstraintList = this.getConstraintList();
- List constraintStrings = new ArrayList();
+ List constraintStrings = FastList.newInstance();
if (productSearchConstraintList == null) {
return constraintStrings;
}
@@ -331,8 +333,6 @@
return new ArrayList();
}
- // make sure the view allow category is included
- productSearchConstraintList = ensureViewAllowConstraint(productSearchConstraintList, prodCatalogId, delegator);
ResultSortOrder resultSortOrder = productSearchOptions.getResultSortOrder();
// if the search options have changed since the last search, put at the beginning of the options history list
@@ -341,19 +341,6 @@
return ProductSearch.searchProducts(productSearchConstraintList, resultSortOrder, delegator, visitId);
}
- public static List ensureViewAllowConstraint(List productSearchConstraintList, String prodCatalogId, GenericDelegator delegator) {
- String viewProductCategoryId = CatalogWorker.getCatalogViewAllowCategoryId(delegator, prodCatalogId);
- if (UtilValidate.isNotEmpty(viewProductCategoryId)) {
- ProductSearchConstraint viewAllowConstraint = new CategoryConstraint(viewProductCategoryId, true);
- if (!productSearchConstraintList.contains(viewAllowConstraint)) {
- // don't add to same list, will modify the one in the session, create new list
- productSearchConstraintList = new ArrayList(productSearchConstraintList);
- productSearchConstraintList.add(viewAllowConstraint);
- }
- }
- return productSearchConstraintList;
- }
-
public static void searchClear(HttpSession session) {
ProductSearchOptions.clearSearchOptions(session);
}
@@ -403,6 +390,7 @@
}
public static void processSearchParameters(Map parameters, HttpServletRequest request) {
+ GenericDelegator delegator = (GenericDelegator) request.getAttribute("delegator");
Boolean alreadyRun = (Boolean) request.getAttribute("processSearchParametersAlreadyRun");
if (Boolean.TRUE.equals(alreadyRun)) {
return;
@@ -509,7 +497,22 @@
searchAddConstraint(new ProductSearch.SupplierConstraint(supplierPartyId), session);
constraintsChanged = true;
}
+
+ // check the ProductStore to see if we should add the ExcludeVariantsConstraint
+ GenericValue productStore = ProductStoreWorker.getProductStore(request);
+ if (productStore != null && !"N".equals(productStore.getString("prodSearchExcludeVariants"))) {
+ searchAddConstraint(new ProductSearch.ExcludeVariantsConstraint(), session);
+ // not consider this a change for now, shouldn't change often: constraintsChanged = true;
+ }
+ String prodCatalogId = CatalogWorker.getCurrentCatalogId(request);
+ String viewProductCategoryId = CatalogWorker.getCatalogViewAllowCategoryId(delegator, prodCatalogId);
+ if (UtilValidate.isNotEmpty(viewProductCategoryId)) {
+ ProductSearchConstraint viewAllowConstraint = new CategoryConstraint(viewProductCategoryId, true);
+ searchAddConstraint(viewAllowConstraint, session);
+ // not consider this a change for now, shouldn't change often: constraintsChanged = true;
+ }
+
// set the sort order
String sortOrder = (String) parameters.get("sortOrder");
String sortAscending = (String) parameters.get("sortAscending");
@@ -587,7 +590,6 @@
// if the search options have changed since the last search, put at the beginning of the options history list
checkSaveSearchOptionsHistory(session);
- productSearchConstraintList = ensureViewAllowConstraint(productSearchConstraintList, prodCatalogId, delegator);
ResultSortOrder resultSortOrder = ProductSearchOptions.getResultSortOrder(request);
ProductSearchContext productSearchContext = new ProductSearchContext(delegator, visitId);
Modified: ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreForms.xml?view=diff&rev=496617&r1=496616&r2=496617
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreForms.xml (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/store/ProductStoreForms.xml Tue Jan 16 00:22:08 2007
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
-
-Copyright 2001-2006 The Apache Software Foundation
-
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
@@ -202,6 +199,10 @@
</field>
<field name="vatTaxAuthGeoId"><lookup target-form-name="LookupGeo"/></field>
<field name="vatTaxAuthPartyId"><lookup target-form-name="LookupPartyName"/></field>
+ <field name="prodSearchExcludeVariants" widget-style="selectBox">
+ <drop-down allow-empty="false" no-current-selected-key="Y"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
+ </field>
+
<field name="enableDigProdUpload" widget-style="selectBox">
<drop-down allow-empty="false" no-current-selected-key="N"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>