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

Create e list from records on many2many relational field

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
filtermany2many
1 Odpowiedz
7823 Widoki
Awatar
Paulo Matos

Good day everyone,
I am working on a report for Odoo v12.
I have a related many2many field on my model, which collects information from res.users.
When I browse and print records from this field, i get results like:

[[res.users(2,)]]
[[res.users(39,)]]
[[res.users(2,37,)]]
[[res.users(37,39)]]
[[res.users(37,7,2)]]
[[res.users(39,7)]]

From the list above, I can see that I have several duplicated values which is expactable and are correct.
Everytime I try to use the append() method on the loop, all new records are replacing the old ones, but I am sure I am not using it correctly.

My problems:
1. I need to browse through the records and collect all values, creating a new list and remove all duplicates.
2. After that, I will need to browse through the list and compare with the record on the relational field (for instance [[res.users(37,39)]]) and check if any of the list values exists on the relational field.
Doing that, I will be able to process my report, since it is sorted by users on "res.users".

How can I achieve that?

Thank you all once again in advance

Best regards

Paulo

0
Awatar
Odrzuć
Awatar
faOtools
Najlepsza odpowiedź

Odoo let you work directly with recordsets (extend, union, intersect, difference), so my suggestion is to avoid browsing over your many2many lists. Let me make a few assumptions to make clear examples:

  • You have 'records' over you iterate

  • Each record has 'user_ids' field (res.users, many2many)

  • You want to compare aggregation of those users to another  field (let assume 'mymodel.user_ids', also res.users, many2many).

Then, to aggregate all users over all records into a single recordset you need just:

final_user_ids = records.mapped("user_ids")

It will return res.users(2,7,37,39,) - so, a recordset without duplicates.

Then, you can simply compare this set to your custom field set as:

intersected_user_ids = final_user_ids & mymodel.user_ids

It will return all the elements which are in both recordsets. To check whether it is empty:

if intersected_user_ids:
print ("The same users", intersected_user_ids)
# >> res.users(2,7)

So, the goal is achieved in 4 lines. 




1
Awatar
Odrzuć
Paulo Matos
Autor

Dear @Odoo Tools,

Thank you very much for your help.

Using your approach I have successfully reached my initial goal.

With it, I have browsed to all records and finished my report for all users.

Now for the part: intersected_user_ids = final_user_ids & mymodel.user_ids

I am not comparing to a model recordset.

I am trying to compare with a variable and try to see if "variable_value is in final_user_ids" but I am unable to do it.

So, until now I have (based on you example):

my_recordset : which contains all records to be filtered and shown on report, based on final_user_ids

final_user_ids : which lists all desired users from my recordset with no duplicates;

report data : I have successfully browsed from all desired records on my_recordset and collect data for every record on final_user_ids.

At this stage I am able to print the report for all users, but I am unable to filter the records on final_user_ids based on a variable in order to collect the data just for that particular user.

PS: I will mark your answer as correct because it is correct and working as expected.

Thank you once again

Best regards

Paulo

faOtools

In order to check whether a specific user is inside a recordset you can check "if user_id in final_user_ids". If user_id is an ID - integer (not record) then "if user_id in final_user_ids.ids". If you rely upon a current user (who prints): "if self.env.user in final_user_ids"

Paulo Matos
Autor

@Odoo Tools,

Thank you very much once again.

The problem was on "if user_id in final_user_ids.ids". I was using "final_user_ids.ID" instead of "final_user_ids.IDS"

Best regards

Paulo

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ść
Remove a value from many2many related field. How to do that? Rozwiązane
filter many2many
Awatar
Awatar
Awatar
2
lip 19
12169
How to Use Domain Filter with Many2Many field
filter domain many2many
Awatar
Awatar
1
sie 24
8800
Filter and group_by for many2many fields. How to do that? Rozwiązane
filter many2many group_by
Awatar
Awatar
1
lut 25
22148
cbbbbggf
filter
Awatar
0
lis 25
2
Factura en estado "EN PROCESO DE PAGO"
filter
Awatar
0
lis 25
2
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