2017-07-19 3 views
2

Ich habe ein Feld zu meinen Produkten in Odoo x_low_inventory_level hinzugefügt. Ich möchte einen Filter zur Suchansicht für den Produktbaum hinzufügen, der nur Produkte anzeigt, die qty_available < x_low_inventory_level haben. Ist das möglich? Ich habe versucht, diese zu der Suchansicht:Odoo Suchansicht Filter mit Wert von Modell

<filter string="Low Inventory" name="low_inventory" domain="[('qty_available', '&lt;', x_low_inventory_level)]"/> 

Aber ich erhalte eine Fehlermeldung:

https://my-instance.odoo.com/web/content/525-9a23e87/web.assets_backend.js:1715 
Traceback: 
Error: Failed to evaluate search criterions: 
{"code":400,"message":"Evaluation Error","data":{"type":"local_exception","debug":"Local evaluation failure\nNameError: name 'x_low_inventory_level' is not defined\n\n{\"domains\":[[],\"[('qty_available', '<', x_low_inventory_level)]\"],\"contexts\":[{\"lang\":\"en_US\",\"tz\":false,\"uid\":1,\"params\":{\"action\":418,\"min\":1,\"limit\":80,\"view_type\":\"list\",\"model\":\"product.product\",\"menu_id\":84,\"_push_me\":false}},{}],\"group_by_seq\":[]}"}} 
    at Object.<anonymous> (https://my-instance.odoo.com/web/content/525-9a23e87/web.assets_backend.js:1715:1192) 
    at fire (https://my-instance.odoo.com/web/content/528-59c08d4/web.assets_common.js:541:299) 
    at Object.fireWith [as resolveWith] (https://my-instance.odoo.com/web/content/528-59c08d4/web.assets_common.js:546:198) 
    at Object.deferred.(anonymous function) [as resolve] (https://my-instance.odoo.com/web/content/528-59c08d4/web.assets_common.js:548:56) 
    at https://my-instance.odoo.com/web/content/525-9a23e87/web.assets_backend.js:1625:3 

Antwort

2

Ich glaube, Sie nicht tun können, anstatt mit store = true ein Rechenfeld erstellen.

Dieses Feld ist zum Beispiel ein boolesches Feld. Und verwenden Sie es in der Suchansicht, aber stellen Sie sicher, dass "true" auf "true" gesetzt wird.

Hoffe, Sie bekommen die Idee.

+0

Leider ich nicht den Kommentar gelesen habe Brüllen ich denke, Sie alle bereit, es herauszufinden – Cherif

+0

Sie brauchen nicht 'speichern = True' technisch, aber ja wird es sein viel einfacher damit ;-) – CZoellner

1

erstellen Boolean Feld

is_low_inventory_level = fields.Boolean('qty_available is_low_inventory_level', default=False) 

Dann Funktion Verwendung für die Rückkehr Wahr oder Falsch

@api.onchange('qty_available','x_low_inventory_level') 
def _onchange_qty_available(self): 
    if self.qty_available < x_low_inventory_level: 
     self.is_low_inventory_level = True 
    else: 
     elf.is_low_inventory_level = False 

und in XML tun so etwas wie dieses

<filter string="Low Inventory" name="low_inventory" domain="[('is_low_inventory_level', '!=', False)]"/> 
Verwandte Themen