Skip to Content
Odoo Menu
  • Prihlásiť sa
  • Vyskúšajte zadarmo
  • Aplikácie
    Financie
    • Účtovníctvo
    • Fakturácia
    • Výdavky
    • Tabuľka (BI)
    • Dokumenty
    • Podpis
    Predaj
    • CRM
    • Predaj
    • POS Shop
    • POS Restaurant
    • Manažment odberu
    • Požičovňa
    Webstránky
    • Tvorca webstránok
    • eShop
    • Blog
    • Fórum
    • Živý chat
    • eLearning
    Supply Chain
    • Sklad
    • Výroba
    • Správa životného cyklu produktu
    • Nákup
    • Údržba
    • Manažment kvality
    Ľudské zdroje
    • Zamestnanci
    • Nábor zamestnancov
    • Voľné dni
    • Hodnotenia
    • Odporúčania
    • Vozový park
    Marketing
    • Marketing sociálnych sietí
    • Email marketing
    • SMS marketing
    • Eventy
    • Marketingová automatizácia
    • Prieskumy
    Služby
    • Projektové riadenie
    • Pracovné výkazy
    • Práca v teréne
    • Helpdesk
    • Plánovanie
    • Schôdzky
    Produktivita
    • Tímová komunikácia
    • Schvalovania
    • IoT
    • VoIP
    • Znalosti
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Priemyselné odvetvia
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Reštaurácia
    • Fast Food
    • Guest House
    • Beverage distributor
    • Hotel
    Reality
    • Real Estate Agency
    • Architecture Firm
    • Konštrukcia
    • Estate Managament
    • Gardening
    • Property Owner Association
    Poradenstvo
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Výroba
    • Textile
    • Metal
    • Furnitures
    • Jedlo
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware and Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Iní
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Komunita
    Vzdelávanie
    • Tutoriály
    • Dokumentácia
    • Certifikácie
    • Školenie
    • Blog
    • Podcast
    Empower Education
    • Vzdelávací program
    • Scale Up! Business Game
    • Visit Odoo
    Softvér
    • Stiahnuť
    • Porovnanie Community a Enterprise vierzie
    • Releases
    Spolupráca
    • Github
    • Fórum
    • Eventy
    • Preklady
    • Staň sa partnerom
    • Services for Partners
    • Register your Accounting Firm
    Služby
    • Nájdite partnera
    • Nájdite účtovníka
    • Meet an advisor
    • Implementation Services
    • Zákaznícke referencie
    • Podpora
    • Upgrades
    ​Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Získajte demo
  • Cenník
  • Pomoc

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

  • CRM
  • e-Commerce
  • Účtovníctvo
  • Sklady
  • PoS
  • Projektové riadenie
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Tagy (View all)
odoo accounting v14 pos v15
About this forum
Pomoc

How do you define specific (not default) views for each view mode type (form, tree, etc.) in act_window xml?

Odoberať

Get notified when there's activity on this post

This question has been flagged
10 Replies
64021 Zobrazenia
Avatar
John Baldwin

I can't understand how to define specific views for each view mode... This is what I want to do:

in my act_window record I have "<field name="view_mode">tree,form</field>" defining that tree and form views are needed. I want to use "my_custom_tree_view" and "my_custom_form_view" for those types respectively. I've tried using a filed called "views" with (name, type) pairs. I've tried using "view_ids" the same way. I've tried using multiple "view_id" with ref's and that doesn't work.... Can someone please show me an example of assigning custom views to multiple view modes please?

<record model="ir.actions.act_window" id="test_action"> 
<field name="name">A Test Action</field> 
<field name="res_model">some.model</field>
<field name="view_mode">tree, form</field>
<!-- a field to describe my specific tree view and form view -->          <<<<<---- HELP ME HERE! 
</record>

1
Avatar
Zrušiť
Avatar
Temur
Best Answer

You can specify view to use as follows:

<field name="view_id" ref="the_xml_id_of_view"/> -just xml id if the view is in the same module

<field name="view_id" ref="module_name.the_xml_id_of_view"/> -external xml id if the view is in another model (pay attention to the dot notation)

You can also specify custom search view:

<field name="search_view_id" ref="xml_id_or_external_xml_id_as_needed"/>

Also you can manipulate default views using sequence="N" property, by setting lower N than it is in the active default view.

4
Avatar
Zrušiť
Ankit H Gandhi(AHG)

Big Thanks @ Temur

+1

Avatar
Reem Elobeid
Best Answer

This worked for me:

Add view_ids to your action, as follows

<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('xml.id.of.tree.view')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('xml.id.of.form.view')})]"/>
5
Avatar
Zrušiť
Avatar
james_p
Best Answer

Please check this code from product module. This should answer the question.


<record id="product_variant_action" model="ir.actions.act_window">            
    <field name="name">Product Variants</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">product.product</field>
    <field name="context">
        {'search_default_product_tmpl_id': [active_id],
        'default_product_tmpl_id': active_id}
    </field>
    <field name="search_view_id" ref="product_search_form_view"/>
    <field name="view_ids" eval="[(5, 0, 0),
        (0, 0, {'view_mode': 'tree'}),
        (0, 0, {'view_mode': 'form', 'view_id': ref('product_variant_easy_edit_view')}),
        (0, 0, {'view_mode': 'kanban'})]"/>
    <field name="help" type="html">
        <p class="oe_view_nocontent_create">
            Click to define a new product.
        </p>
    </field>
</record>
2
Avatar
Zrušiť
Sanjay Jamod (sja)

Thanks.. it's works for me

Avatar
Vladimir
Best Answer

You can in the action specify search_view_id, form_view_id and so on

<record id="action_res_usuarios" model="ir.actions.act_window">
            <field name="name">Usuarios</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">res.users</field>
            <field name="view_type">form</field>
            <field name="view_id" ref="view_usuarios_tree"/>
            <field name="search_view_id" ref="view_usuarios_search"/>
            <field name="form_view_id" ref="view_users_simple_form"/>
            <field name="help">Create and manage users that will connect to the system. Users can be deactivated should
                there be a period of time during which they will/should not connect to the system. You can assign them
                groups in order to give them specific access to the applications they need to use in the system.
    </field>
        </record>

1
Avatar
Zrušiť
Avatar
Zbik
Best Answer

The easiest way is if you define additional ir.ui.view, separate for tree and form, like this (in effect three records):

     <record model="ir.actions.act_window" id="test_action"> 
       <field name="name">A Test Action</field> 
       <field name="res_model">some.model</field>
       <field name="view_type">form</field>
       <field name="view_mode">tree, form</field>
    </record>

    <record model="ir.ui.view" id="some_name_form">
      <field name="name">some_name_form</field>
      <field name="model">some.model</field>
      <field name="arch" type="xml">
        <form>
            <field name="name"/>
        </form>
      </field>
    </record>

    <record model="ir.ui.view" id="some_name_tree">
      <field name="name">some_name_tree</field>
      <field name="model">some.model</field>
      <field name="arch" type="xml">
        <tree>
            <field name="name"/>
        </tree>
      </field>
    </record>

 

0
Avatar
Zrušiť
John Baldwin
Autor

Thanks for the answer, but it does not solve the problem of multiple form/tree views and selecting the proper one.

Zbik

Why not solve? views not wroks? error? you have a menu which call test_action?

Avatar
Arsenty Karamurza
Best Answer

I'll explain with an example:

This is a menuitem with an action associated to it.

<menuitem name="Measurement Sheets" id="cirem_measurements" parent="cirem_proposition" action="action_measurements" sequence="540"/>

..but it's not a simple xml-defined action:

    <record id="action_measurements" model="ir.actions.server">
<field name="name">Measurement Sheets</field>
<field name="model_id" ref="sale.model_sale_order"/>
<field name="state">code</field>
<field name="code">action = self.my_measurements(cr, uid, context=context)</field>
<field eval="True" name="condition"/>
</record>

you see, it refers to code, which uses another action as a template for creating a custom action that has specific views assigned to each particular view type (kanban, tree, form)

so, firstly, here goes an action used as a template:

        <record id="action_measurements_base" model="ir.actions.act_window">
<field name="name">Measurement Sheets</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state', 'in', ('sent', 'draft', 'sale'))]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to fill in a new measurement sheet based on the measurement template.
</p><p>
Odoo will help you efficiently handle the complete sales flow:
quotation, sales order, delivery, invoicing and payment.
</p>
</field>
</record>


The most interesting part is the code that sets different view ids to each view type (based on the template-action):

(notice how one can redefine other action's properties too)

    def my_measurements(self, cr, uid, context=None):
IrModelData = self.pool['ir.model.data']
actionObject = IrModelData.xmlid_to_object(cr, uid, 'cirem.action_measurements_base', context=context)
action = actionObject.read(['name', 'help', 'res_model', 'target', 'domain', 'context', 'type', 'search_view_id'])
if not action:
action = {}
else:
action = action[0]
# action['name'] = 'Measurements' SET OTHER PROPERTIES LIKE THIS
tree_view_id = IrModelData.xmlid_to_res_id(cr, uid, 'sale.view_order_tree')
form_view_id = IrModelData.xmlid_to_res_id(cr, uid, 'cirem.measurements_view')
action.update({
'views': [
[tree_view_id, 'tree'],
[form_view_id, 'form'],
[False, 'graph'],
[False, 'calendar'],
[False, 'pivot']
],
})
return action

Ta-Da! Please let me know if I can be of any more help to you :)

0
Avatar
Zrušiť
Enjoying the discussion? Don't just read, join in!

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

Registrácia
Komunita
  • Tutoriály
  • Dokumentácia
  • Fórum
Open Source
  • Stiahnuť
  • Github
  • Runbot
  • Preklady
Služby
  • Odoo.sh hosting
  • Podpora
  • Vyššia verzia
  • Custom Developments
  • Vzdelávanie
  • Nájdite účtovníka
  • Nájdite partnera
  • Staň sa partnerom
O nás
  • Naša spoločnosť
  • Majetok značky
  • Kontaktujte nás
  • Pracovné ponuky
  • Eventy
  • Podcast
  • Blog
  • Zákazníci
  • Právne dokumenty • Súkromie
  • Bezpečnosť
الْعَرَبيّة 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 sada podnikových aplikácií s otvoreným zdrojovým kódom, ktoré pokrývajú všetky potreby vašej spoločnosti: CRM, e-shop, účtovníctvo, skladové hospodárstvo, miesto predaja, projektový manažment atď.

Odoo prináša vysokú pridanú hodnotu v jednoduchom použití a súčasne plne integrovanými biznis aplikáciami.

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