Files
Odoo-Wiki/Contacts Actions.md

5.9 KiB

title, description, kind, section, prev, partner
title description kind section prev partner
Kontakte Aktionen Arbeitsflüsse mit Kontakte automatisieren. howto true ./contacts Mint System

Kontakte Aktionen

icons_odoo_website_sale_options

{{ $frontmatter.description }}

Aktionen

Kontakt als Privat festlegen

Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:

  • Name: Kontakt als Privat festlegen

  • Modell: res.partner

  • Folgeaktion: Den Datensatz aktualiseren Im Tab Zu schreibende Daten:

  • Feld: Adresstyp

  • Bewertungstyp: Wert

  • Wert: private

Im Tab Zu schreibende Daten:

  • Gruppenname: Technisch / Zugriff auf private Adressen

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen.

Kontakt als Kontakt festlegen

Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:

  • Name: Kontakt als Kontakt festlegen

  • Modell: res.partner

  • Folgeaktion: Den Datensatz aktualiseren Im Tab Zu schreibende Daten:

  • Feld: Adresstyp

  • Bewertungstyp: Wert

  • Wert: contact

Im Tab Zu schreibende Daten:

  • Gruppenname: Technisch / Zugriff auf private Adressen

Die Aktion mit dem Knopf Kontextuelle Aktion erstellen bestätigen.

Stichwort hinzufügen

Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:

  • Name: Stichwort hinzufügen
  • Modell: res.partner
  • Typ: Code ausführen
  • Code:
invite_category = env.ref("smartme_portal_mass_invite.portal_mass_invite_partner_category")
records.write({
    "category_id": [Command.link(invite_category.id)],
})

Dieser Eintrag mit Aktion Kontextuelle Aktion erstellen bestätigen.

Stichwort entfernen

Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:

  • Name: Stichwort entfernen
  • Modell: res.partner
  • Typ: Code ausführen
  • Code:
category1 = env.ref("smartme_portal_mass_invite.portal_mass_invite_partner_category")
category2 = env.ref("__custom__.tag_shopify")

records.write({
    "category_id": [
        Command.unlink(category1.id),
        Command.unlink(category2.id)
    ],
})

Dieser Eintrag mit Aktion Kontextuelle Aktion erstellen bestätigen.

Massen-Einladungen für Portal-Zugriff versenden

Mit dieser Server-Aktion können Sie Massen-Einladungen für den Portal-Zugriff versenden. Erstellen Sie ein Stichwort mit der XML-ID portal_mass_invite.portal_mass_invite_partner_category. Die Aktion berücksichtigt nur Kontakte mit diesem Stichwort.

Navigieren Sie nach Einstellungen > Technisch > Serveraktionen und erstellen Sie einen neuen Eintrag:

  • Name: Massen-Einladungen für Portal-Zugriff versenden
  • Modell: res.partner
  • Typ: Code ausführen
  • Code:
invite_category = env.ref("portal_mass_invite.portal_mass_invite_partner_category")
partners_to_invite = records.filtered_domain([("category_id", "in", invite_category.id)])

wizard = env["portal.wizard"].create({"partner_ids": partners_to_invite.ids})
users_already_granted = wizard.user_ids.filtered(lambda user: user.is_portal or user.is_internal)
users_to_grant = wizard.user_ids.filtered(lambda user: not user.is_portal and not user.is_internal and user.email_state == "ok")
for user in users_to_grant:
    user.action_grant_access()

(users_to_grant + users_already_granted).partner_id.write({
    "category_id": [Command.unlink(invite_category.id)],
})

nb_granted = len(users_to_grant.partner_id)
nb_already_granted = len(users_already_granted.partner_id)
nb_skipped = len(partners_to_invite) - nb_granted - nb_already_granted
action = {
    "type": "ir.actions.client",
    "tag": "display_notification",
    "params": {
        "message": env._("Granted portal access to %d contacts. %d contacts skipped because they already have portal access. %d contacts skipped because their email is not valid.", nb_granted, nb_already_granted, nb_skipped),
        "type": "success",
        "sticky": True,
        "next": {"type": "ir.actions.act_window_close"},
    },
}

Dieser Eintrag mit Aktion Kontextuelle Aktion erstellen bestätigen.

Geplante Aktionen

Kontakte mit geplanter Aktivität archivieren

Erfassen Sie einen neuen Aktivitätstyp. Mit dieser geplanten Aktion können Sie Kontakte, welche diese Aktivität haben archivieren lassen.

Navigieren Sie nach Einstellungen > Technisch > Automatisierungsregeln und erstellen Sie einen neuen Eintrag:

  • Name: Kontakte mit geplanter Aktivität archivieren
  • Modell: ir.actions.server
  • Ausführen alle: 1 Tage
  • Nächstes Ausführungsdatum: DD.MM.YYYY 06:00:00
  • Anzahl der Anrufe: -1
  • Typ: Code ausführen
  • Code:
name = 'Zur Archivierung und Requalifikation'

type_id = env['mail.activity.type'].search( [('name', '=', name)], limit=1)

activity_ids = env['mail.activity'].search( [('activity_type_id', '=', type_id.id), ('date_deadline', '<=', datetime.date.today())] )

partner_ids = env['res.partner'].search( [('id', 'in', activity_ids.mapped('res_id'))] )

# raise UserError(partner_ids)

partner_ids.write({'active': False})
if partner_ids:
  log('Archived partners with planned activity: %s' % ', '.join(partner_ids.mapped('display_name')))

::: tip Die Aktivität auf dem Kontakt wird im Archivierungsvorgang gelöscht. :::

Automatisierungsregeln

 Unternehmen (company_id) bei neuem Kontakt entfernen

Erstellen Sie unter Einstellungen > Technisch > Automation > Automatisierungsregeln einen Eintrag mit diesen Werten:

  • Name: Unternehmen (company_id) bei neuem Kontakt entfernen
  • Modell: Kontakt
  • Auslöser: Bei Erstellung
  • Domain: [("company_id", "!=", False)]
  • Folgeaktion: Datensatz aktualisieren
  • Feld: Unternehmen (company_id)
  • Wert: False