Einstellungen Aktionen
Odoo-Einstellungen automatisieren.
Aktionen
Sofort senden
Navigieren Sie nach Einstellungen > Technisch > Server Aktionen und erstellen Sie einen neuen Eintrag:
Name der Aktion: Sofort senden
Modell: mail.mail
Folgeaktion: Python-Code ausführen
Kopieren Sie die folgenden Zeilen in das Feld Python Code:
for record in records:
record.send()
Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen und dann speichern.
Geplante Aktionen
Abteilungsgruppen synchronisieren
Diese Aktion erstellt eine Berechtigungsgruppe für jede Abteilungsgruppe und synchronisiert die Benutzer der Abteilungsmitglieder.
Navigieren Sie nach Einstellungen > Technisch > Geplante Aktionen und erstellen Sie einen neuen Eintrag:
Name der Aktion: Abteilungsgruppen synchronisieren
Modell: ir.actions.server
Ausführen alle: 15
Minuten
Nächstes Ausführungsdatum: DD.MM.YYYY 06:00:00
Anzahl der Anrufe: -1
Folgeaktion: Python-Code ausführen
Kopieren Sie die folgenden Zeilen in das Feld Python Code:
department_ids = env['hr.department'].search([])
group_ids = env['res.groups'].search([])
messages = []
## Create and update the permission group for every department
for department in department_ids:
# Define permission group name
name = 'Department ' + department.display_name
# Get user ids for department and subdepartments
department_users = department.member_ids.user_id
if department.child_ids:
department_users += department.child_ids.member_ids.user_id
if department.child_ids.child_ids:
department_users += department.child_ids.child_ids.member_ids.user_id
# Search group
group = group_ids.filtered(lambda g: g.name == name)
# Create group if it does not exist
if not group:
messages.append("Create permission group: %s." % (name))
group = env['res.groups'].create({
'name': name
})
# Ensure group is unique
group.ensure_one()
# Get group users
group_users = group.users
# raise Warning([group.name, group_users, department_users, set(group_users) == set(department_users)])
# Set members for the group
if set(group_users) != set(department_users):
messages.append("Set users for group: %s." % (group.name))
group.write({
'users': department_users
})
if messages:
log('\n'.join(messages))
Ablaufdatum Datenbank erneuern
Diese geplante Aktion aktualisiert das Ablaufdatum der Datenbank in regelmässigen Abständen.
WARNING
Verwenden Sie diese Aktion nur in Testsystemen! Produktive System müssen vor Ablauf des echten Datums lizenziert werden!
Navigieren Sie nach Einstellungen > Technisch > Geplante Aktionen und erstellen Sie einen neuen Eintrag:
Name der Aktion: Ablaufdatum Datenbank erneuern
Modell: ir.actions.server
Ausführen alle: 1
Tage
Nächstes Ausführungsdatum: DD.MM.YYYY 06:00:00
Anzahl der Anrufe: -1
Folgeaktion: Python-Code ausführen
Kopieren Sie die folgenden Zeilen in das Feld Python Code:
now = datetime.datetime.now()
expiration_date = now + datetime.timedelta(days=35)
expiration_date = expiration_date.strftime('%Y-%m-%d %H:%M:%S')
env['ir.config_parameter'].sudo().set_param('database.expiration_date', expiration_date)
env['ir.config_parameter'].sudo().set_param('database.expiration_reason', 'renewal')