Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

Prevent Lead/CRM Duplicates

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
pythonleadsduplicatesodoo16
3 Odpowiedzi
1645 Widoki
Awatar
Jacqueline Gleason

I found an older post related to Odoo 13: https://www.odoo.com/forum/help-1/prevent-leads-duplicate-172132


This is similar to what I'm looking to do (but on a custom field) but in Odoo 16. The python script referenced in the answer isn't working for me in my DEV environment using the example given. I'm curious if it needs to be updated for Odoo 16.  

Here's the script I'm testing in 16:

leads = model.search([('email_from', '=', record.email_from)])

if leads:

  raise Warning("Email Already Exists")


And here's the error I get:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 1658, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 152, in retrying
    result = func()
  File "/home/odoo/src/odoo/odoo/http.py", line 1686, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/home/odoo/src/odoo/odoo/http.py", line 1890, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 734, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 43, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 34, in _call_kw
    return call_kw(Model, method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 482, in call_kw
    result = _call_kw_model_create(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 460, in _call_kw_model_create
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-315>", line 2, in create
  File "/home/odoo/src/odoo/odoo/api.py", line 430, in _model_create_multi
    return create(self, [arg])
  File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 390, in create
    action._process(action._filter_post(records))
  File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 340, in _process
    raise e
  File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 337, in _process
    action_server.sudo().with_context(**ctx).run()
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
    res = runner(run_self, eval_context=eval_context)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
    safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self))  # nocopy allows to return 'action'
  File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 399, in safe_eval
    return unsafe_eval(c, globals_dict, locals_dict)
  File "ir.actions.server(934,)", line 3, in <module>
odoo.exceptions.Warning: Email Already Exists

The above server error caused the following client error:
null





0
Awatar
Odrzuć
Jacqueline Gleason
Autor

Ugh, looks scarier than I'd want to present to my users. Anyway to present a smaller, more clear message so the user knows "oh, it's already exists"?

Christoph Farnleitner

see below

faOtools

Probably, this app - https://apps.odoo.com/apps/modules/16.0/crm_duplicates - might be helpful. It lets both warn of duplicates or restrict duplciates' creation based on flexible field rules.

Awatar
Chris TRINGHAM
Najlepsza odpowiedź

You need to change the Python code

  1. To use the updated command for raising a user error in v14 onwards 
  2. To ignore the current record (not needed if only triggered on creation)
for record in records:
    if record.email_from:
        leads = env['crm.lead'].search([('id','!=',record.id),('email_from', '=', record.email_from)])
        if leads:
            raise UserError("Duplicate email address")

https://odootricks.tips/automated-action-to-prevent-duplicates/


0
Awatar
Odrzuć
Jacqueline Gleason
Autor

works perfectly in Odoo 16. Thanks so much.

Awatar
Cybrosys Techno Solutions Pvt.Ltd
Najlepsza odpowiedź

Hi,

Refer the app:

https://apps.odoo.com/apps/modules/16.0/crm_duplicates_real_time_search


This Module helps to prevent and alert when creating duplicated datas in the leads module.


Hope it helps

0
Awatar
Odrzuć
Jacqueline Gleason
Autor

Does this work for custom fields in CRM too?

Awatar
Christoph Farnleitner
Najlepsza odpowiedź

The three lines of code you've posted do exactly what is in your "error".

 raise Warning("Email Already Exists")

opens a pop-up showing a traceback and the message "Email Already Exists". The fact that you raise it prevents any further action.


~ About the looks:

from odoo.exceptions import UserError  # you should do this above the initial class() definition
raise UserError('Email Already Exists')
0
Awatar
Odrzuć
Jacqueline Gleason
Autor

I did a test and when the automated action is active, no new leads can be created at all. The error message pops up with or without the email populated. So not sure if the script is doing what's intended, which is checking for dupes in the email field.

Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
How to fix this in odoo
python odoo16
Awatar
Awatar
Awatar
2
gru 24
3513
how can I know the current view id? Rozwiązane
python odoo16
Awatar
Awatar
1
wrz 24
2444
problem in confirm button in select product in stock_barcode module
python odoo16
Awatar
0
wrz 24
1069
Problem with User access ValidationError
python ValidationError odoo16
Awatar
0
maj 24
2396
Record does not exist or has been deleted
python importing duplicates v14
Awatar
Awatar
1
paź 23
7110
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now