This question has been flagged
9 Replies
24274 Views

I want to add a button and a field on the header of "tree" view at "create" and "import" button; 

how shall I do / set for this? or shall I to do this?

Avatar
Discard

hi, did you manage to fix this ? I am using Odoo 11 and having the same problem.

i am sorry. i dont resolve this problem until now.

------------------ 原始邮件 ------------------
发件人: "peter"<hoth.peter@gmail.com>
发送时间: 2018年5月5日(星期六) 凌晨0:16
收件人: "vx2008"<caofa@foxmail.com>;
主题: Re: how to add a button/field on the header of "tree" view?

hi, did you manage to fix this ? I am using Odoo 11 and having the same problem.

--
peter


Sent by Odoo S.A. using Odoo.

Best Answer


Create an xml file for qweb and also add in __openerp__.py

Example:

 'qweb':  ['static/src/xml/qweb.xml'],



In qweb.xml


<?xml version="1.0" encoding="UTF-8"?> 

<templates id="template" xml:space="preserve">

 <T t-extend = "ListView.buttons">


     <T t-jquery = "button.oe_list_add" t-operation = "after">
        <T t if = "widget.model == 'YOUR.MODEL'">
             <Button class = "oe_button" type = "button"> YOU BUTTON </ button>
         </ T>
     </ T>
</ T>
Avatar
Discard
Author

there something eroro:

ERROR MeiTek openerp.http: Exception during JSON request handling.

ParseError: not well-formed (invalid token): line 10, column 67

<T t if = "widget.model == 'YOUR.MODEL'"> modified into <T t-if = "widget.model == 'Detection'">, <Button class = "oe_button" type = "button"> YOU BUTTON </ button> modified into <Button class = "oe_button" type = "button"> register</ button>

When I delete the "qweb" file, all is ok;

Maybe shall I add a common "field" instead of "button"?

Author

I have modified a little about your code as below:

<?xml version="1.0" encoding="UTF-8"?>

<templates id="template" xml:space="preserve">

<T t-extend = "ListView.buttons">

<T t-jquery = "button.oe_list_add" t-operation = "after">

<T t-if = "widget.model == 'Detection'">

<button class = "oe_button" type = "button" string="Test"> register</button>

</T>

</T>

</T>

</templates>

in .py file:

@api.multi

def register(self):

print 'just a test!'

return True

my this module name: "Detection"; and I also created an qweb file as your request in "../addons/Detection/static/src/xml/qweb.xml";

when I modified the file and restart Odoo and update the "Detection" module; there is no error, but when I open the "tree", nothing changed.

You add your model name here .(Not module name)

Example :

<T t if = "widget.model == 'sale.order'">

The button will be appear in the tree view of sale.order

Author

Thank you for you constant support; I have a try for that, but I still can;t see the button in tree view; now I will show all files here:

__init__.py : from . import meeting_model

__openerp__.py:

'name': 'Meeting Application',

'description': 'Publish a meeting',

'author': 'Odoo',

'application': True,

'qweb': ['qweb.xml'],

'data': ['meeting_view.xml']

}

meeting_model.py:

# -*- coding: utf-8 -*-

from openerp import models, fields,api

class MeetingTask(models.Model):

_name = 'meeting.task'

_description = 'Meeting task'

Theme = fields.Char('theme')

@api.multi

def register(self):

self.Theme='Just a test!'

qweb.xml:

<?xml version="1.0" encoding="utf-8"?>

<templates id="template" xml:space="preserve">

<T t-extend = "ListView.buttons">

<T t-jquery = "button.oe_list_add" t-operation = "after">

<T t-if = "widget.model == 'meeting.task'">

<button class = "oe_button" type = "button" >register</button>

</T>

</T>

</T>

</templates>

meeting_view.xml:

<?xml version="1.0"?>

<openerp>

<data>

<!-- Action to open To-Do Task list -->

<act_window id="action_meeting_task"

name="Meeting Tasks"

res_model="meeting.task"

view_mode="tree,form" />

<!-- Menu Item to open To-Do Task list -->

<menuitem id="menu_meeting_task"

name="Meeting"

sequence="20"

action="action_meeting_task" />

<!-- To-Do Task Form view -->

<record id="view_form_meeting_task" model="ir.ui.view">

<field name="name">Meeting Task Form</field>

<field name="model">meeting.task</field>

<field name="arch" type="xml">

<form>

<button name="register" type="object" string="Participate" />

<group name="group_top">

<field name="Theme"/>

</group>

</form>

</field>

</record>

<!-- To-Do Task List view -->

<record id="view_tree_meeting_task" model="ir.ui.view">

<field name="name">Meeting Task Tree</field>

<field name="model">meeting.task</field>

<field name="arch" type="xml">

<tree>

<field name="Theme"/>

</tree>

</field>

</record>

</data>

</openerp>

in addition, could you give me an example which add button/fields at create/import buttons on "tree" view? my email: 116599778@qq.com; thank you again!

I created the following module in odoo v9 and it works.

==================================================

◰ button_tree

-|___◰static

-|-----|___◰description

-|-----|___◰src

-|---------|___◰xml

-|--------------|___☐qweb.xml

-|___☐__init__.py

-|___☐__openerp__.py

==================================================

1) __init__.py : <empty>

2) __openerp__.py:

{

'name': 'Button at top of Tree',

'version': '1.0',

'author': 'Shameem',

'category': '',

'description': """ """,

'depends': ['sale'],

'data': [],

'qweb': ['static/src/xml/qweb.xml'],

'demo': [],

'installable': True,

'auto_install': False,

}

3) qweb.xml

<?xml version="1.0" encoding="UTF-8"?>

<templates id="template" xml:space="preserve">

<t t-extend="ListView.buttons">

<t t-jquery="button.o_list_button_add" t-operation="after">

<t t-if="widget.model=='sale.order'">

<button class="oe_button oe_highlight"

type="button">Custom Button</button>

</t>

</t>

</t>

</templates>

Best Answer

Probably im late but i will post it if someone need it in the future.

on Odoo 12 is modelName NOT model 

<t t-if="widget.modelName == 'stock.quant'">
 <button id="custom_print_btn" class="btn btn-primary o_list_button_custom_print" type="button" >Print</button> 
</t>
Avatar
Discard

where on the tree view code did you put this sir?