Hi, could this be related to the PostalAddress fix for the area specific Address Templates we did?
I guess the issue is OFBIZ-4715. R, Markus Am 02.04.2012 um 19:54 schrieb Jacopo Cappellato <[email protected]>: > Hi Jacques, > > could you please send me the url? > > Jacopo > > On Apr 2, 2012, at 7:37 PM, Jacques Le Roux wrote: > >> I did not look into details but we get this on trunk demo >> >> Expression setContextField is undefined on line 62, column 27 in >> component://party/webapp/partymgr/party/profileblocks/Contact.ftl. The >> problematic instruction: ---------- ==> ${setContextField("postalAddress", >> postalAddress)} [on line 62, column 25 in >> >> I don't locally with trunk HEAD >> >> Jacques >> >> From: <[email protected]> >>> Author: jacopoc >>> Date: Fri Mar 30 07:28:39 2012 >>> New Revision: 1307288 >>> >>> URL: http://svn.apache.org/viewvc?rev=1307288&view=rev >>> Log: >>> Implemented new Freemarker transform to set a context variable. >>> The transform is now used to pass the "postalAddress" to the context of the >>> postal address formatter screen. >>> This should fix the issue, reported by Chatree, that prevented to render >>> the localized address when the screen was rendered from the send mail >>> service (no request object was available). >>> >>> Added: >>> >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java >>> Modified: >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl >>> >>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl >>> >>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy >>> >>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> >>> Modified: >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl >>> (original) >>> +++ >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl >>> Fri Mar 30 07:28:39 2012 >>> @@ -26,7 +26,7 @@ under the License. >>> <fo:block>${companyName}</fo:block> >>> <#if postalAddress?exists> >>> <#if postalAddress?has_content> >>> - ${setRequestAttribute("postalAddress", postalAddress)} >>> + ${setContextField("postalAddress", postalAddress)} >>> >>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")} >>> </#if> >>> <#else> >>> >>> Modified: >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl >>> (original) >>> +++ >>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl >>> Fri Mar 30 07:28:39 2012 >>> @@ -117,7 +117,7 @@ under the License. >>> <#assign postalAddress = >>> orderContactMechValueMap.postalAddress> >>> <#if postalAddress?has_content> >>> <div> >>> - ${setRequestAttribute("postalAddress", postalAddress)} >>> + ${setContextField("postalAddress", postalAddress)} >>> >>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressHtmlFormatter")} >>> </div> >>> <@updateOrderContactMech orderHeader=orderHeader?if_exists >>> contactMechTypeId=contactMech.contactMechTypeId >>> contactMechList=postalContactMechList?if_exists >>> contactMechPurposeTypeId=contactMechPurpose.contactMechPurposeTypeId?if_exists >>> contactMechAddress=postalAddress?if_exists /> >>> >>> Modified: >>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl >>> (original) >>> +++ >>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl >>> Fri Mar 30 07:28:39 2012 >>> @@ -39,8 +39,8 @@ under the License. >>> <fo:table-cell> >>> <fo:block> >>> <#if toPostalAddress?exists> >>> - ${setRequestAttribute("postalAddress", >>> toPostalAddress)} >>> - >>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")} >>> + ${setContextField("postalAddress", >>> toPostalAddress)} >>> + >>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")} >>> </#if> >>> </fo:block> >>> </fo:table-cell> >>> >>> Modified: >>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy >>> (original) >>> +++ >>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy >>> Fri Mar 30 07:28:39 2012 >>> @@ -17,7 +17,7 @@ >>> * under the License. >>> */ >>> >>> -postalAddressForTemplate = request.getAttribute("postalAddress"); >>> +postalAddressForTemplate = context.postalAddress; >>> postalAddressTemplateSuffix = context.postalAddressTemplateSuffix; >>> >>> if (!postalAddressTemplateSuffix) { >>> >>> Modified: >>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl >>> (original) >>> +++ >>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl >>> Fri Mar 30 07:28:39 2012 >>> @@ -59,7 +59,7 @@ under the License. >>> <#if "POSTAL_ADDRESS" = contactMech.contactMechTypeId> >>> <#if contactMechMap.postalAddress?has_content> >>> <#assign postalAddress = contactMechMap.postalAddress> >>> - ${setRequestAttribute("postalAddress", postalAddress)} >>> + ${setContextField("postalAddress", postalAddress)} >>> >>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressHtmlFormatter")} >>> <#if postalAddress.geoPointId?has_content> >>> <#if contactMechPurposeType?has_content> >>> >>> Modified: >>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=1307288&r1=1307287&r2=1307288&view=diff >>> ============================================================================== >>> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties >>> (original) >>> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Fri >>> Mar 30 07:28:39 2012 >>> @@ -27,3 +27,4 @@ ofbizCurrency=org.ofbiz.webapp.ftl.Ofbiz >>> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform >>> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod >>> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform >>> +setContextField=org.ofbiz.webapp.ftl.SetContextFieldTransform >>> >>> Added: >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java?rev=1307288&view=auto >>> ============================================================================== >>> --- >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java >>> (added) >>> +++ >>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java >>> Fri Mar 30 07:28:39 2012 >>> @@ -0,0 +1,64 @@ >>> +/******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you 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 >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.webapp.ftl; >>> + >>> +import freemarker.core.Environment; >>> +import freemarker.ext.beans.BeanModel; >>> +import freemarker.template.*; >>> + >>> +import java.util.List; >>> +import java.util.Map; >>> + >>> +/** >>> + * SetRequestAttributeMethod - Freemarker Method for setting context fields >>> + */ >>> +public class SetContextFieldTransform implements TemplateMethodModelEx { >>> + >>> + public static final String module = >>> SetContextFieldTransform.class.getName(); >>> + >>> + /* >>> + * @see freemarker.template.TemplateMethodModel#exec(java.util.List) >>> + */ >>> + @SuppressWarnings("unchecked") >>> + public Object exec(List args) throws TemplateModelException { >>> + if (args == null || args.size() != 2) >>> + throw new TemplateModelException("Invalid number of >>> arguements"); >>> + if (!(args.get(0) instanceof TemplateScalarModel)) >>> + throw new TemplateModelException("First argument not an >>> instance of TemplateScalarModel"); >>> + if (!(args.get(1) instanceof BeanModel) && !(args.get(1) >>> instanceof TemplateNumberModel) && !(args.get(1) instanceof >>> TemplateScalarModel)) >>> + throw new TemplateModelException("Second argument not an >>> instance of BeanModel nor TemplateNumberModel nor TemplateScalarModel"); >>> + >>> + Environment env = Environment.getCurrentEnvironment(); >>> + BeanModel req = (BeanModel)env.getVariable("context"); >>> + Map context = (Map) req.getWrappedObject(); >>> + >>> + String name = ((TemplateScalarModel) args.get(0)).getAsString(); >>> + Object value = null; >>> + if (args.get(1) instanceof TemplateScalarModel) >>> + value = ((TemplateScalarModel) args.get(1)).getAsString(); >>> + if (args.get(1) instanceof TemplateNumberModel) >>> + value = ((TemplateNumberModel) args.get(1)).getAsNumber(); >>> + if (args.get(1) instanceof BeanModel) >>> + value = ((BeanModel) args.get(1)).getWrappedObject(); >>> + >>> + context.put(name, value); >>> + return new SimpleScalar(""); >>> + } >>> + >>> +} >>> >
