2017-03-29 2 views
0

Was ich passieren soll:Odoo Rekord Regel Einschränkungen

Wenn die boolean no_edit Falsch ist und die user_id ist falsch oder der aktuelle Benutzer, sollte der Benutzer in der Lage sein, den Datensatz zu bearbeiten.

Was tatsächlich passiert:

Die Aufzeichnungen immer für editting beschränkt ist.

Python-Code der Felder:

user_id = fields.Many2one(
     comodel_name = 'res.users', 
     string = 'User ID', 
     readonly = True, 
    ) 
no_edit = fields.Boolean(
     string = "No Edit", 
     copy = False, 
     default = False 
    ) 

Domain:

['&', '|', ('no_edit', '=', False), ('user_id', '=', False), ('user_id', '=', user.id)] 

Vielen Dank im Voraus

+1

Wo setzen Sie diese Domain? Was ist der Benutzer dort ?, haben Sie versucht mit [('no_edit', '=', False), '|', ('Benutzer_ID', '=', False), ('user_id', '=', user. id)] – dccdany

+0

Setzen Sie die Domain in eine Record-Regel, die nur für den Schreibvorgang des Datensatzes gilt – JordyRitzen

+0

@dccdany nur Ihren Vorschlag versucht und es scheint zu funktionieren. Ich weiß nicht, warum meine Ursache nicht so ist, am Ende ist es das gleiche, oder? – JordyRitzen

Antwort

1

Die Domain sein sollte:

[('no_edit', '=', False), '|', ('user_id', '=', False), ('user_id', '=', user.id)] 

Die eine, die Sie wertet als & Operator den ersten Teil tat

('user_id', '=', False) & ('user_id', '=', user.id) 

Weil es mit „Reverse Polish Notation“ bewertet wird, für weitere Informationen, die Sie auf diesen Link suchen oder eingeben:

https://en.wikipedia.org/wiki/Reverse_Polish_notation