<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
  -->

<trees xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-tree.xsd">
    <tree name="ResponseTree" root-node-name="node-root" default-render-style="simple" default-wrap-style="responseTreeWrapper">
        <node name="node-root" entry-name="rsp">
            <entity-one entity-name="Content" use-cache="false" value-field="rsp">
                <field-map field-name="contentId" from-field="rootEntityId"/>
            </entity-one>
            <include-screen name="blogTreeLine" location="component://ecommerce/widget/blog/BlogScreens.xml"/>
            <sub-node node-name="node-body">
                <entity-condition entity-name="ContentAssocViewTo" use-cache="false">
                    <condition-list combine="and">
                        <condition-expr field-name="caContentId" operator="equals" from-field="rootEntityId"/>
                        <condition-expr field-name="caContentAssocTypeId" operator="equals" value="RESPONSE"/>
                        <condition-expr field-name="caThruDate" operator="equals" value=""/>
                    </condition-list>
                    <order-by field-name="caFromDate DESC"/>
                </entity-condition>
            </sub-node>
        </node>
        <node name="node-body" entry-name="rsp">
            <include-screen name="responseTreeLine" location="component://ecommerce/widget/blog/BlogScreens.xml"/>
            <sub-node node-name="node-body">
                <entity-condition entity-name="ContentAssocViewTo" use-cache="true">
                    <condition-list combine="and">
                        <condition-expr field-name="caContentId" operator="equals" from-field="rsp.contentId"/>
                        <condition-expr field-name="caContentAssocTypeId" operator="equals" value="RESPONSE"/>
                        <condition-expr field-name="caThruDate" operator="equals" value=""/>
                    </condition-list>
                    <order-by field-name="caFromDate DESC"/>
                </entity-condition>
            </sub-node>
        </node>
    </tree>
</trees>
