2016-07-21 11 views
0

.py-Datei: ....Soll ich den Benutzernamen aufzeichnen, der ein bestimmtes Feld von Odoo ändert?

Namex = fields.Text()

moifier = fields.Many2one ('res.users', string =“Modifier“)

...

Wenn einige Benutzer ändern ‚Namex‘, sein/ihr Name sollte automatisch auf Feld "Modifikator" aufgezeichnet werden; Welchen Code soll ich machen? Ich versuche "onchange/depends", aber gescheitert; Vielleicht könnte der Modifikator ein "Textfeld/Zeichenfeld" sein?

zusätzlich, soll ich "access_rule" einstellen, um den Benutzern nur die Datensätze anzuzeigen, die von den Mitgliedern in ihrer eigenen Gruppe erstellt wurden?

Antwort

0

Odoo hat das schon für dich. Jedes Modell hat die Felder, die automatisch erstellt werden, und jedes Mal, wenn Sie erstellen aktualisiert oder schreiben:

  • create_date (Datumzeit): wenn Datensatz erstellt wird
  • create_uid (many2one): Benutzer, die diesen Datensatz erstellt
  • write_date (Datumzeit): letztes Mal Datensatz
  • write_uid aktualisiert (many2one): letzter Benutzer aktualisierte diesen Datensatz

Gehen Sie zu Einstellungen> Wissenschaft & Technik> Datenbankstruktur> Modelle für weitere Details.

+0

Vielen Dank für Ihre Informationen; Ich habe viel aus dieser Antwort gelernt. – vx2008

0

Während Odoo eine Spur des letzten Benutzers speichert, der einen Datensatz geändert hat, wird kein Modifikator pro Feld beibehalten. Ich kann das Interesse einer solchen Funktionalität in vielen Fällen sehen.

Um dies für ein bestimmtes Modell zu tun, besteht eine Möglichkeit darin, die write Methode dieses Modells neu zu definieren. In Ihrer .py Datei, die Sie so etwas wie dieses kostenlos in:

@api.model 
def write(self): 
    if self.namex in values: 
     values.update({'modifier': uid}) 
    super().write(cr, uid, ids, values, context) 

Eine weitere Möglichkeit, dass in einer flexibleren Art und Weise zu tun, ist die @onchange Dekorateur zu verwenden:

@onchange('your_sensible_field_name'): 
def set_modifier(self): 
    self.modifer = self.env.user 

Sie auch möchten einen Blick auf den @depends-Dekorator werfen.

+0

Vielen Dank für Ihre Information. – vx2008