跳至内容
菜单
此问题已终结
6 回复
15439 查看

Hi guys,

I usually have no problems at all with inheritance but I can't inherit the popup dialog which is on the calendar view.
The code is in the module calender, which you can find here: https://github.com/odoo/odoo/blob/8.0/addons/web_calendar/static/src/xml/web_fullcalendar.xml#L57-70

It has the following code:

 <div t-name="CalendarView.quick_create" class="oe_calendar_quick_create openerp">
    
    <div class="form-group">
        <label for='name' class='control-label'>Event summary:</label>
        <input name='name' class="form-control"/>
    </div>     
    
    <t t-if="widget._buttons">
      <div class="oe_calendar_quick_create_buttons">
        <button class="openerp oe_button oe_highlight oe_calendar_quick_create_add ">Create event</button>
        <button class="oe_button oe_form_button oe_link oe_calendar_quick_create_edit" ><span>Edit Event <![CDATA[]]></span></button>
      </div>
    </t>
  </div>

A simple question: what is the correct way to inherit this? it has no template id and/or name so how can I inherit that div t-name and add a field after this line with xpath?

<input name='name' class="form-control"/> 

Thanks,
Yenthe

形象
丢弃

"Template inheritance is performed via the t-extend directive which takes the name of the template to alter as parameter." src : https://www.odoo.com/documentation/8.0/reference/qweb.html

@yenthe, I noted down your issue. Definitely I will keep you updated after trying at my side. Since so many days I am facing this problem ( in some of web templates ) Before me if you have got the answer then don't hesitate to post here, otherwise I will give you answer surely within short time. I have marked this question as important.

and yes, +1 from me !

编写者

@david I'm aware of the t-extend but they do not seem to work on templates in another module without name/ID. @Emipro thanks! If I find a solution I will post it here too!

+1, Me too I'm trying to change the behavior of the popup ...

编写者

@Emipro and @Ahmed I've posted the solution to inherit these views.

编写者 最佳答案

Hi guys,

The solution is to create a (new) XML file under /static/src/xml and to include this file in your __openerp__.py. For inheriting this view you need to work with <templates> in place of <openerp><data>.
With a t-extend you can extend the view. For example for the calendar popup:

 <?xml version="1.0" encoding="utf-8"?>
<templates>
    <tr t-extend="CalendarView.quick_create">
        <t t-jquery=".form-group" t-operation="after">
            <div class="form-group">
                <h3>Example - put fields here </h3>
            </div>
        </t>
    </tr>
</templates>

Thats it!
Yenthe

形象
丢弃

+1, Thanks I will test and let you know Yenthe. You're a star !

@yenthe, I am so sorry that I couldn't got a time to give you solution.

编写者

Thanks Emipro! It doesn't matter that you didn't have a solution yet, I have one now and I hope it saves you some time too :)

@Yenthe: I would like to add custom many2one field in calendar pop up after inheriting the template CalendarView.quick_create. Is it possible?. And override Create Event button to save many2one field in the form (project.task). Thanks

Impressive, Thank you so much !

NOTE: While this works, you also have to modify the widget JS code to get it to pick up any new fields you add.

In my case it was simpler to override the calendar view and set the quick_add attribute to False, so when you create a new appointment it goes straight to the full calendar appointment form.

相关帖文 回复 查看 活动
1
11月 21
7221
1
6月 16
3418
20
5月 19
17761
1
4月 15
13518
2
7月 25
6570