Přejít na obsah
Odoo Menu
  • Přihlásit se
  • Vyzkoušejte zdarma
  • Aplikace
    Finance
    • Účetnictví
    • Fakturace
    • Výdaje
    • Spreadsheet (BI)
    • Dokumenty
    • Podpisy
    Prodej
    • CRM
    • Prodej
    • POS Obchod
    • POS Restaurace
    • Předplatné
    • Pronájem
    Webové stránky
    • Webové stránky
    • E-shop
    • Blog
    • Fórum
    • Živý chat
    • eLearning
    Dodavatelský řetězec
    • Sklad
    • Výroba
    • PLM
    • Nákup
    • Údržba
    • Kvalita
    Lidské zdroje
    • Zaměstnanci
    • Nábor
    • Volno
    • Hodnocení zaměstnanců
    • Doporučení
    • Vozový park
    Marketing
    • Marketing sociálních sítí
    • Emailový marketing
    • SMS Marketing
    • Události
    • Marketingová automatizace
    • Dotazníky
    Služby
    • Projekt
    • Časové výkazy
    • Práce v terénu
    • Helpdesk
    • Plánování
    • Schůzky
    Produktivita
    • Diskuze
    • Schvalování
    • IoT
    • VoIP
    • Znalosti
    • WhatsApp
    Aplikace třetích stran Odoo Studio Odoo cloudová platforma
  • Branže
    Maloobchod
    • Knihkupectví
    • Obchod s oblečením
    • Obchod s nábytkem
    • Potraviny
    • Obchod s hardwarem
    • Hračkářství
    Jídlo a pohostinství
    • Bar a Pub
    • Restaurace
    • Fast Food
    • Penzion
    • Distributor nápojů
    • Hotel
    Nemovitost
    • Realitní kancelář
    • Architektonická firma
    • Stavba
    • Správa nemovitostí
    • Zahradnictví
    • Asociace vlastníků nemovitosti
    Poradenství
    • Účetní firma
    • Odoo Partner
    • Marketingová agentura
    • Právník
    • Akvizice talentů
    • Audit a certifikace
    Výroba
    • Textil
    • Kov
    • Nábytek
    • Jídlo
    • Pivovar
    • Korporátní dárky
    Zdraví a fitness
    • Sportovní klub
    • Prodejna brýli
    • Fitness Centrum
    • Wellness praktikové
    • Lékárna
    • Kadeřnictví
    Transakce
    • Údržbář
    • Podpora IT & hardware
    • Systémy solární energie
    • Výrobce obuvi
    • Úklidové služby
    • Služby HVAC
    Ostatní
    • Nezisková organizace
    • Agentura pro životní prostředí
    • Pronájem billboardů
    • Fotografování
    • Leasing jízdních kol
    • Prodejce softwaru
    Procházet všechna odvětví
  • Komunita
    Edukační program
    • Tutoriály
    • Dokumentace
    • Certifikace
    • Vzdělávání
    • Blog
    • Podcast
    Podpora vzdělávání
    • Vzdělávací program
    • Scale Up! Hra na firmu
    • Navštivte Odoo
    Získat software
    • Stáhnout
    • Porovnejte edice
    • Verze
    Spolupráce
    • Github
    • Fórum
    • Události
    • Překlady
    • Stát se partnerem
    • Služby pro partnery
    • Registrujte svou účetní firmu
    Získat služby
    • Najít partnera
    • Najít účetní
    • Setkejte se s poradcem
    • Implementační služby
    • Zákaznické reference
    • Podpora
    • Upgrady
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Dohodnout demo
  • Ceník
  • Pomoc

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

  • CRM
  • e-Commerce
  • Účetnictví
  • Sklad
  • PoS
  • Projekty
  • MRP
All apps
You need to be registered to interact with the community.
All Posts Lidé Odznaky
Štítky (View all)
odoo accounting v14 pos v15
O tomto fóru
You need to be registered to interact with the community.
All Posts Lidé Odznaky
Štítky (View all)
odoo accounting v14 pos v15
O tomto fóru
Pomoc

[Odoo 12] How to perform a search on a One2many field through a wizard?

Odebírat

Get notified when there's activity on this post

This question has been flagged
wizardone2manysearch12.0
2 Odpovědi
16001 Zobrazení
Avatar
Willem Datema

Hello all,

I am trying to perform a filter/search through a wizard for a One2manyfield. The One2manyfield connects to the model stock.picking. I created a TransientModel in which a user can pick a Sale Order and the wizard should return a form with a filtered one2many field. The form will then only show the pickings which have the Sale Order that the user selected as Origin. The TransientModel looks like this:

class SearchPacking(models.TransientModel):
    _name = 'search.packing'
_description = 'Search a packing'

sale_order_id = fields.Many2one('sale.order',string="Sale Order")

def search_filtered_packing(self):
return {
'type':'ir.actions.act_window',
'view_type':'form',
'view_mode':'form',
'src_model':'search.packing',
'res_model':'pickpack.packview',
'target':'new',
'res_id':self.env.context.get('active_id'),
'domain':[('origin','=',self.sale_order_id)]
}


The model pickpack.packview is a model that shows all the pickings with picking type "Pack" in a batch. It has a one2many field that looks like this:

class PackView(models.Model):
    // OTHER DEFINITIONS ​   ​    ​   ​     ​   ​    ​   ​
    pickings = fields.One2many('stock.picking','packviews',string='Operations to pack',readonly=False,store=True, compute='_compute_operations_to_pack')
@api.one
@api.depends('batch_id')
def _compute_operations_to_pack(self):
self.ensure_one()
res = self.env['stock.picking']
for picking in res.search([('batch_id','=',self.batch_id.id),('picking_type_id.name','=','Pack')]):
res += picking
self.pickings = res

What happens now if I click the button in the wizard that calls search_filtered_packing (after selecting a Sales Order) is that I just get the same model back, without any filters. 
The One2Many field is searchable on Sales Order in the tree view. Can anyone see what is going wrong here?


Thanks in advance.

0
Avatar
Zrušit
Avatar
Ryan Tran
Nejlepší odpověď

Hi,

There are some problems in your solution:

  • If you really mean to compute the One2many field, you should not define it with the inverse_name. By doing this, there are no real connection between these 2 models, and you cannot store this o2m field. If the relation already exist between 2 model with the m2o relation defined in the corresponding model, then you can only apply domain to decide what to be shown.

  • You cannot domain a form view, but you can domain a field shown as tree in the form view, if you return correct value to domain that field in particular.

Then the solution now is depends on what you want to achieve:

  • You can add a sale_order_origin to stock.picking form view to apply domain dynamically to the related one2many field, with an onchange function.

  • If you want to use the wizard, then from that wizard, you select the reference Sale Order, then assign the result recordset to an m2m field on the wizard, and then finally write those m2m ids to the o2m field in stock.picking.

I think you would want to domain what to be picked base on the Sale Order (delivery operation) rather than automatically creating o2m record from the wizard. Then returning domain for a selected field using onchange function is your best friend. Try :

return {'domain':{'picking_ids': [('origin', '=', self.sale_order_id.name)]}}
1
Avatar
Zrušit
Avatar
faOtools
Nejlepší odpověď

You return a form view and, moreover, you return res_id in your method. So, you say to Odoo - 'show me a form of this object in a new window'. The param domain is applied to tree, kanban, calendar views: so to any where there are a few items.

A few other comments:

  • How might origin (char) be equal to sale_order_id (recordset)?

  • What for do you need 'src_model'?

Thus, you should re-develop your action to return, for example a list. Something like:

@api.multi
def search_filtered_packing(self):
self.ensure_one()
return {
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'pickpack.packview',
'type': 'ir.actions.act_window',
'domain':[('origin', '=', self.sale_order_id.name)],
}
0
Avatar
Zrušit
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Přihlásit se
Related Posts Odpovědi Zobrazení Aktivita
How to open wizard from "Add a line" link of One2many field?
wizard one2many
Avatar
Avatar
1
čvn 24
443
Smart search of phone numbers. Vyřešeno
search 12.0
Avatar
Avatar
2
pro 20
5677
Read values from one2many relation
one2many search
Avatar
Avatar
1
lis 18
3543
One2many through wizard, (without errors, but no add to the record)
wizard one2many
Avatar
Avatar
1
úno 16
5756
One2many field on wizard opens by itself
wizard one2many print
Avatar
Avatar
1
zář 23
2880
Komunita
  • Tutoriály
  • Dokumentace
  • Fórum
Open Source
  • Stáhnout
  • Github
  • Runbot
  • Překlady
Služby
  • Odoo.sh hostování
  • Podpora
  • Upgrade
  • Nestandardní vývoj
  • Edukační program
  • Najít účetní
  • Najít partnera
  • Stát se partnerem
O nás
  • Naše společnost
  • Podklady značky
  • Kontakujte nás
  • Práce
  • Události
  • Podcast
  • Blog
  • Zákazníci
  • Právní dokumenty • Soukromí
  • Zabezpečení
الْعَرَبيّة 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 je balíček open-source aplikací, které pokrývají všechny potřeby vaší společnosti: CRM, e-shop, účetnictví, sklady, kasy, projektové řízení a další.

Unikátní nabídka od Odoo poskytuje velmi jednoduché uživatelské rozhraní a vše je integrované na jednom místě.

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