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("");
>>> +    }
>>> +
>>> +}
>>> 
> 

Reply via email to