Wed, 25 Apr 2018 09:40:58 +0200
Cédric Krier <
cedric...@b2ck.com>:
>On 2018-04-24 17:53, Udo Spallek wrote:
>It can not work because clients build first the view before bind it
>with record values.
Thank you for the explanation.
>I think it will be better to have a configuration option that defines
>if the company is working with variants or not. This configuration
>will be used to set a proper mode.
I thought about a configuration, too. IMHO a configuration has
limitations, as it is company-wide and not product specific:
* Even when using variants in a setup, there can also be other
products which are not variants.
* When using variants it can be useful to have the product (variant)
form view shown on new product templates, just for quick encoding.
But I found another solution. I put two products fields in the
view. There is one for mode="tree,form" and another for
mode="form,tree", each of them surrounded by a group with a separate
id::
<xpath
expr="/form/notebook/page[@id='general']/field[@name='products']"
position="replace">
<group id="products" colspan="2" col="1" yexpand="1" yfill="1">
<group id="products-tree" yexpand="1" yfill="1">
<field name="products" mode="tree,form"
view_ids="product.product_view_tree_simple,product.product_view_form_simple"/>
</group>
<group id="products-form" yexpand="1" yfill="1">
<field name="products" mode="form,tree"
view_ids="product.product_view_form_simple,product.product_view_tree_simple"/>
</group>
</group>
</xpath>
(Maybe it can be done simpler with less use of groups)
And now each group can be switched by view attributes::
class Template:
__metaclass__ = PoolMeta
__name__ = "product.template"
@classmethod
def view_attributes(cls):
res = super(Template, cls).view_attributes()
res.append((
"//group[@id='products-form']",
'states',
{'invisible': Greater(Len(Eval('products')), 1)},
))
res.append((
"//group[@id='products-tree']",
'states',
{'invisible': Less(Len(Eval('products')), 2)},
))
return res
For me it is the perfect solution:
if the Variants have more than one record, it is shown as a list
if the Variants have less than two records, it is shown as a form
Is it an interesting enhancement of the product module?
Regards Udo