Я хотел бы отобразить мои продукты в таблицах в зависимости от того, какие варианты у них есть. Если продукт имеет два атрибута, я хотел бы, чтобы он отображался в таблице со значениями (атрибутов с наименьшими значениями) в качестве заголовков столбцов, а других значений атрибутов - в качестве заголовков строк. Если у продукта есть один или нет атрибутов, то значения атрибутов должны быть заголовками строк. Если продукт имеет более двух атрибутов, остальные атрибуты должны образовывать отдельную таблицу рядом с исходной таблицей.
Мне удалось заставить работать заголовки строк, но я не смог заставить работать заголовки столбцов и цены для каждого варианта продукта. Вот мой код:
<?xml version="1.0"?>
<t t-name="product.report_menu">
<t t-call="web.html_container">
<t t-call="web.internal_layout">
<div class="page" style="height: 28cm; width: 21cm; font-family: Patrick Hand;">
<table style="width: 100%; padding-top: 30px">
<tbody>
<tr>
<td valign="top" style="width: 75%; border: solid 2px orange;padding-left: 20px;padding-right: 20px;">
<div style="min-height: 29.5cm;">
<!-- setting default groupings to nil-->
<t t-set="product_category" t-value="[]" />
<t t-set="attribute_category" t-value="[]" />
<t t-set="name_category" t-value="[]" />
<t t-set="attribute_value_name_category" t-value="[]" />
<t t-set="price" t-value="[]" />
<t t-set="pricf" t-value="[]" />
<!-- setting default groupings to nil-->
<t t-foreach="docs" t-as="mpl">
<!-- setting grouping to the value of the product-->
<t t-set="product_category" t-value="product_category+[mpl.categ_id]" />
</t>
<!-- lines associated for grouping individual products based on category, i.e Cookies and all its variants -->
<t t-foreach="set(product_category)" t-as="category">
<!-- product category name -->
<strong>
<h3 t-esc="category.name" /> </strong>
<!-- setting grouping to the value of the product-->
<t t-foreach="docs" t-as="mpl">
<t t-set="name_category" t-value="name_category+[mpl.name]" />
<t t-set="price" t-value="price+[mpl.lst_price]" />
<t t-foreach="mpl.attribute_value_ids" t-as="attrib_value">
<t t-set="pricf" t-value="pricf+[mpl.lst_price]" />
<t t-set="attribute_category" t-value="attribute_category+[attrib_value.attribute_id]" />
<t t-set="attribute_value_name_category" t-value="attribute_value_name_category+[attrib_value]" />
</t>
<!-- <t t-foreach="mpl.attribute_value_ids" t-as="attrib_value"> -->
</t>
<t t-foreach="set(name_category)" t-as="namecate">
<strong>
<h4 t-esc="namecate" /></strong>
<!-- if the products have attributes such as Size, create a size layout table -->
<table style="width: 50%; margin-bottom: 15px;">
<thead>
<th>Whatever...</th>
<th>att 1</th>
<th>att 2</th>
<th>att 4</th>
</thead>
<tbody>
<!-- setting grouping to the value of the product-->
<t t-foreach="set(attribute_category)" t-as="attric">
<t t-set="attribute_category" t-value="[]" />
<t t-if="not attric.name == 'Size'">
<strong>
<h5 style="color: gray;" t-esc="'Comes in %ss of:' % (attric.name)" />
</strong>
<t t-foreach="set(attribute_value_name_category)" t-as="avnc">
<t t-if="avnc.attribute_id.name == attric.name">
<t t-set="attribute_category" t-value="[]" />
<tr>
<td>
<p t-esc="avnc.name" />
</td>
<t t-foreach="set(price)" t-as="pricee">
<t t-if="not pricee == 0">
<td>
<span t-esc="'%s' % (pricee)" />
</td>
</t>
</t>
</tr>
</t>
</t>
</t>
</t>
</tbody>
</table>
</t>
</t>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</t>
</t>
</t>
Это список товаров и их атрибутов:
товаров и их атрибутов
И вот сгенерированный отчет: какой отчет я сейчас получаю
Это моя цель: что я пытаюсь сделать
Могу ли я получить помощь, я не знаю, как поступить.
Спасибо