Ich benutze odoo 10e. Was ich tun möchte, ist i-Domäne Kriterien innerhalb fields_view_get
MethodeOdoo - Wie setze ich einen Domain Filter vom Backend
@api.model
def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False):
res = super(Customer, self).fields_view_get(
view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu)
doc = etree.XML(res['arch'])
if view_type == 'tree':
if self.env.user.partner_id.parent_id.id is False:
id = self.env.user.id
else:
id = self.env.user.partner_id.parent_id.id
doc.attrib['domain'] = "[('custodians','='," + str(id) + ")]"
for node_form in doc.xpath("//tree"):
node_form.attrib['duplicate'] = '0'
res['arch'] = etree.tostring(doc)
for node_form in doc.xpath("//form"):
node_form.attrib['duplicate'] = '0'
res['arch'] = etree.tostring(doc)
return res
dies einstellen wollen, was ich versucht habe. Aber es funktioniert nicht. Sie können sehen, warum ich Domäne vom Backend einstellen möchte, weil ich user_id basierend auf Bedingung setzen muss.
Bitte lassen Sie mich wissen, wenn ich falsch mache oder gibt es einen besseren Weg.
bearbeiten
Ich habe Custodians definierten Felder als
custodians = fields.Many2one('res.users', string="Custodian", domain=[('groups_id', 'in', [12])],
readonly=[('readonly_custodian', '=', True)])
tatsächlich folgen, wann immer ein loggedin Benutzer eine Customer
Datensätze erstellen wir ihn als Depot gesetzt für diesen Customer
und alles, was ich tun möchte, Wenn der Benutzer sich erneut anmeldet, sollte er in der Lage sein, seine und seine Eltern zu sehen.
Sie sollten nur selten brauchen 'fields_get' außer Kraft zu setzen. Was genau willst du erreichen? – travisw
Ich möchte Domänenfilter in der Strukturansicht dynamisch vom Back-End hinzufügen. So dass ich Condition-basierte Domain-Filter – Ancient
haben kann alles unter diesem Check sehen "if view_type == 'tree".Dies ist die Bedingung, die ich in der Domäne – Ancient