콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
8268 화면

I created button in partner form to show another models relation with it. It is same button like Opportunities, Meetings, Sales button at partners form showing all its Opportunities, Meetings, Sales etc.

Code looks like this:

Action:

        <record id="action_calendar_service" model="ir.actions.act_window">
            <field name="name">Services</field>
            <field name="res_model">calendar.service</field>
            <field name="view_mode">tree,calendar,form</field>
            <field name="view_id" ref="view_calendar_service_tree"/>
            <field name="search_view_id" ref="view_calendar_service_search"/>
            <field name="help" type="html">
              <p class="oe_view_nocontent_create">
                Click to create new service.
              </p>
            </field>
        </record>   

inherited view:

        <record id="view_partners_form_service1" model="ir.ui.view">
            <field name="name">view.res.partner.form.crm.inherited1</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="crm.view_partners_form_crm1"/>
            <field eval="18" name="priority"/>
            <field name="arch" type="xml">
                    <button name="schedule_meeting" position="after">
                        <button
                            class="oe_inline oe_stat_button"
                            attrs="{'invisible': [('customer', '=', False)]}"
                            name="%(calendar_service.action_calendar_service)d"
                            icon="fa-star"
                            type="action"
                            context="{'search_default_partner_id': active_id}">
                            <field name="service_count" string="Services" widget="statinfo"/>
                        </button>
                    </button>
            </field>
        </record>

code in res.partner model:

 

class res_partner(models.Model):
    _inherit = 'res.partner'

    service_ids = fields.One2many('calendar.service', 'partner_id', 'Calendar Services')
    service_count = fields.Integer('Services', compute='_count_services')

    @api.one
    @api.depends('service_ids')
    def _count_services(self):
        self.service_count = len(self.service_ids)

So everything works, except it always opens all 'calendar.service' records without filtering with 'partner_id' (the one that button was pressed from). Is there something I miss?

아바타
취소
작성자

If I change action id in name attribute for example to opportunity action. Then search_default works and filters it. But if I use it with my view, it does not work for some reason

작성자 베스트 답변

Finally found what was missing. I needed to add this line:

`<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>`

In my model search view. Without that it does not use search_default filter.

아바타
취소
관련 게시물 답글 화면 활동
3
12월 23
3024
2
11월 20
11836
1
4월 17
4162
3
3월 16
4245
2
9월 15
7577