Migracja modułów Odoo 18→19→20 z LLM: co mówią Release Notes
Sprawdź, które zmiany w Odoo 20 - usunięcie tracking values, Material Symbols, offline, many2one i push - trzeba sprawdzić przy migracji 18→19→20.

Release Notes Odoo 20 nie zawierają ani słowa o tym, jak używać modeli językowych (Claude, Fable, Opus ani żadnych innych) do migracji własnych modułów. Odoo nie opublikowało workflow, przykładowych promptów ani integracji z narzędziami AI. Kto obiecuje „oficjalną metodę migracji z LLM”, mówi więc od siebie.
Ten tekst ma skromniejszy cel. Zebraliśmy zmiany z Release Notes, które dotkną custom modułów przy przejściu z wersji 18 przez 19 do 20. Przy każdej oceniamy, czy model językowy może tu zaoszczędzić czas, czy jego podpowiedzi trzeba sprawdzać linijka po linijce.
Gdzie LLM ma sens, a gdzie nie
Mechanika tak, semantyka ostrożnie
Model dobrze radzi sobie z pracą powtarzalną, rozrzuconą po wielu plikach. Dobrym przykładem jest wymiana ikon Font Awesome na Material Symbols w widokach: zmian jest dużo, są do siebie podobne i łatwo je sprawdzić wzrokiem. Model przyda się też do wstępnego przejrzenia modułu pod kątem miejsc, które korzystają z tracking values albo z Firebase. Dobrze wypada również przy rozpisywaniu scenariuszy testów.
Gorzej, gdy zmiana dotyczy zachowania, a nie składni. Usunięcie tracking values i tryb offline zmieniają sposób, w jaki dane przepływają przez system. Model może wtedy wygenerować kod, który się uruchamia i przechodzi prosty test, a mimo to psuje raport albo logikę biznesową.
Model nie zna Odoo 20 z automatu
Nie ma gwarancji, że dany model w ogóle wie o zmianach w wersji 20. Bezpieczniej podać mu wprost odpowiednie fragmenty Release Notes razem z kodem modułu, zamiast polegać na tym, co „pamięta”. Wygenerowaną poprawkę traktujemy jak kod od nowej osoby w zespole: najpierw przegląd i testy, dopiero potem merge. Odoo nie zdefiniowało żadnej procedury walidacji takich zmian. Ta odpowiedzialność spoczywa na zespole wdrożeniowym.
Zmiany techniczne, które dotkną kodu
Mail i tracking
Dla wielu modułów to najpoważniejsza zmiana. W Odoo 20 tracking values zostały usunięte, a wiadomość o zmianach generuje się na bieżąco w treści (in-body tracking). Funkcje Odoo, które z nich korzystały, takie jak wykresy burndown czy czas trwania etapów, zostały już zaktualizowane. Własne raporty i automatyzacje trzeba przejrzeć samodzielnie.
Administratorzy, którzy nadal potrzebują tracking values, mogą doinstalować osobny moduł. Release Notes nie wyjaśniają, czy to rozwiązanie docelowe, czy tylko pomost na czas przejścia.
W tym samym obszarze są jeszcze dwie mniejsze zmiany. Rekordy mail.mail określają teraz źródło swojej treści, co ułatwia audyt. Zmiany grup użytkowników trafiają z kolei do chattera użytkownika i do logów konsoli.
Many2one i powiadomienia push
Pola many2one są teraz synchronizowane z backendem, a dodawanie i usuwanie wartości ma działać sprawniej, także przy dużych listach. Opis jest dość ogólny. Z Release Notes nie da się wyczytać, co dokładnie zmieniło się pod spodem, więc moduły z własną logiką na tych polach trzeba po prostu przetestować.
Powiadomienia push nie przechodzą już przez Firebase, tylko przez wewnętrzne narzędzia Odoo. Moduł, który komunikował się z Firebase bezpośrednio, najpewniej będzie wymagał przeróbki.
Interfejs i nowe funkcje
Część opisanych zmian Release Notes oznaczają jako dostępne od 19.0, pojedyncze nawet od 17.0. Przy migracji 18→19→20 część pracy przypada więc na pierwszy krok, a nie na drugi.
Ikony, dialogi i liczby
Font Awesome ustępuje Material Symbols, a dialogi dostały nowy wygląd. Moduły z własnymi widokami wymagają co najmniej przeglądu wizualnego, a często poprawek w referencjach ikon.
Przy wpisywaniu liczb dziesiętnych można teraz używać kropki albo przecinka, niezależnie od lokalizacji ustawionej w profilu użytkownika. Własne walidacje, które zakładały jeden separator, mogą zacząć odrzucać poprawne dane.
Zmienił się też interfejs mobilny. Pojawiły się command palette, wybór daty w bottom sheet, wygodniejsze formularze dotykowe i bottom sheets na tabletach w trybie dotykowym. W listach i w Kanbanie można przeciągać kilka rekordów naraz.
Offline, multi-ID, warianty i tłumaczenia
Tryb offline pozwala tworzyć, edytować, archiwizować, przywracać z archiwum i usuwać rekordy bez połączenia. Można w nim też ponownie uruchamiać wcześniej wykonane wyszukiwania. Z perspektywy custom modułów to największa niewiadoma. W Release Notes brakuje opisu synchronizacji i rozwiązywania konfliktów, a właśnie od tego zależy, jak zachowa się moduł z własną logiką przy zapisie.
Kontrahent może mieć teraz kilka identyfikatorów, np. DUNS albo identyfikatory specyficzne dla danego kraju, walidowanych według typu. Moduły, które przechowywały dodatkowe numery we własnych polach, trzeba porównać z nowym modelem danych.
Import produktów pozwala zdefiniować wariant w każdym wierszu razem z jego danymi, co jest dostępne od 19.0. Przy tłumaczeniach doszedł moduł „Translation Mode” i nowy kreator, który ułatwia tłumaczenie pól tekstowych i HTML. Osobna funkcja pozwala eksportować pola tłumaczalne osobno dla każdego języka z kodami ISO. Dane wielojęzyczne można też importować z Excela lub CSV.
Pakiety branżowe
Release Notes wymieniają między innymi Hospitality, Machine and Tool Rental, Construction i Property Management, a także moduły Deposit Management i Excise. Wiele zmian w nich oznaczono jako dostępne od 19.0. Jeśli Twój moduł integruje się z którymś z tych pakietów, porównaj pola, dane i przepływy, bo mogły się zmienić już przy przejściu na 19.
Lista kontrolna i testy regresyjne
Co przejrzeć w module
- pola many2one: czy własne widżety i logika działają z nową synchronizacją z backendem;
- tracking: każde miejsce, które czyta lub zapisuje tracking values, oraz raporty i wykresy oparte na tych danych;
- powiadomienia push: wywołania Firebase do przepisania na mechanizm Odoo;
- ikony: referencje Font Awesome w widokach i szablonach;
- liczby: walidacje i parsowanie pól dziesiętnych, które zakładają jeden separator;
- warianty produktów: własne importy produktów w zestawieniu z nowym importerem;
- identyfikatory kontrahentów: dodatkowe numery w polach custom w zestawieniu z multi-ID;
- tryb offline: funkcje, które zakładają stałe połączenie;
- tłumaczenia: pola wielojęzyczne, które mogą korzystać z Translation Mode i nowego kreatora.
Testy do uruchomienia
Release Notes nie podają gotowego zestawu testów. Na podstawie opisanych zmian proponujemy takie minimum:
- tworzenie, edycja, archiwizacja i usuwanie rekordów online i offline;
- operacje na many2one z dużymi listami wartości;
- wysyłka maili i zapis źródła wiadomości;
- powiadomienia push po stronie serwera i klienta;
- import i eksport produktów z wariantami;
- odczyt i zapis wielu identyfikatorów kontrahenta;
- widoki z ikonami i dialogami, sprawdzane wizualnie.
Model językowy szybko rozpisze te punkty na konkretne przypadki testowe dla danego modułu. Wynik trzeba jednak porównać z tym, jak klient faktycznie korzysta z systemu, bo tej wiedzy model nie ma. Jeśli przy migracji wyjdzie zachowanie, którego Release Notes nie opisują, traktujemy to jako brak oficjalnych wskazówek, a nie jako ciche potwierdzenie, że wszystko jest w porządku.
Źródła
Chcesz sprawdzić, jak Odoo sprawdziłoby się w Twojej firmie?
Skontaktuj się z nami - przeanalizujemy Twoje obecne procesy i pokażemy, od których 2–3 obszarów warto zacząć, żeby możliwie szybko zobaczyć efekt wdrożenia.