Templates 搜索筛选器在网站Odoo 12中不起作用

Templates 搜索筛选器在网站Odoo 12中不起作用,templates,controller,odoo,portal,odoo-12,Templates,Controller,Odoo,Portal,Odoo 12,我正在尝试为网站(门户)用户添加诸如groupby、排序和搜索选项之类的过滤器,但这些都不能正常工作。以下是我的控制器方法: @http.route(['/my/tickets', '/my/tickets/page/<int:page>'], type='http', auth="user", website=True) def portal_my_ticket(self, page=1, date_begin=None, date_end=None, sortby=None, f

我正在尝试为网站(门户)用户添加诸如groupby、排序和搜索选项之类的过滤器,但这些都不能正常工作。以下是我的控制器方法:

@http.route(['/my/tickets', '/my/tickets/page/<int:page>'], type='http', auth="user", website=True)
def portal_my_ticket(self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, search=None,
                     search_in='content', **kw):
    response = super(CustomerPortal, self)
    values = self._prepare_portal_layout_values()
    partner = request.env.user.partner_id
    support_obj = http.request.env['helpdesk.custom']
    domain = []
    # count for pager
    ticket_count = support_obj.sudo().search_count(domain)
    # pager
    pager = request.website.pager(
        url="/my/tickets",
        total=ticket_count,
        page=page,
        step=self._items_per_page
    )
    searchbar_sortings = {
        'date': {'label': _('Newest'), 'order': 'create_date desc'},
        'name': {'label': _('Title'), 'order': 'subject'},
        'stage': {'label': _('Stage'), 'order': 'stage_id'},
    }
    searchbar_filters = {
        'all': {'label': _('All'), 'domain': []},
    }

    searchbar_inputs = {
        'content': {'input': 'content', 'label': _('Search <span class="nolabel"> (in Content)</span>')},
        'message': {'input': 'message', 'label': _('Search in Messages')},
        'customer': {'input': 'customer', 'label': _('Search in Customer')},
        'stage': {'input': 'stage', 'label': _('Search in Stages')},
        'all': {'input': 'all', 'label': _('Search in All')},
    }
    # default sort by value
    if not sortby:
        sortby = 'date'
    order = searchbar_sortings[sortby]['order']
    # default filter by value
    if not filterby:
        filterby = 'all'
    domain += searchbar_filters[filterby]['domain']

    # archive groups - Default Group By 'create_date'
    if date_begin and date_end:
        domain += [('create_date', '>', date_begin), ('create_date', '<=', date_end)]

    # search
    if search and search_in:
        search_domain = []
        if search_in in ('content', 'all'):
            search_domain = OR([search_domain, ['|', ('name', 'ilike', search), ('description', 'ilike', search)]])
        if search_in in ('customer', 'all'):
            search_domain = OR([search_domain, [('partner_id', 'ilike', search)]])
        if search_in in ('message', 'all'):
            search_domain = OR([search_domain, [('message_ids.body', 'ilike', search)]])
        if search_in in ('stage', 'all'):
            search_domain = OR([search_domain, [('stage_id', 'ilike', search)]])
        domain += search_domain

    if request.session.uid and request.env['res.users'].browse(request.session.uid).user_has_groups(
            'base.group_portal'):
    # content according to pager and archive selected
        tickets = support_obj.sudo().search([('partner_id', '=', partner.id)])

    else:
        tickets = support_obj.sudo().search([])
        print("tickets",tickets)
    values.update({
        'tickets': tickets.sudo(),
        'page_name': 'ticket_page',
        'pager': pager,
        'default_url': '/my/tickets',
        'searchbar_sortings': searchbar_sortings,
        'searchbar_inputs': searchbar_inputs,
        'search_in': search_in,
        'sortby': sortby,
        'searchbar_filters': OrderedDict(sorted(searchbar_filters.items())),
        'filterby': filterby,

    })
    return request.render("website_helpdesk_support_ticket.display_tickets", values)
@http.route(['/my/tickets','/my/tickets/page/'],type='http',auth='user',website=True)
def portal_my_ticket(self,page=1,date_begin=None,date_end=None,sortby=None,filterby=None,search=None,
在class='content',**kw中搜索:
响应=超级(CustomerPortal、self)
值=自身。\准备\门户\布局\值()
partner=request.env.user.partner\u id
support_obj=http.request.env['helpdesk.custom']
域=[]
#寻呼机计数
票证计数=支持对象sudo().搜索计数(域)
#传呼机
寻呼机=request.website.pager(
url=“/my/tickets”,
总计=车票数量,
第页,
步骤=每页的自我项目
)
搜索栏\排序={
“日期”:{“标签”:(“最新”),“订单”:“创建日期说明”},
'name':{'label':(('Title'),'order':'subject'},
'stage':{'label':(('stage'),'order':'stage_id'},
}
搜索栏\u过滤器={
'all':{'label':(('all'),'domain':[]},
}
搜索栏输入={
'content':{'input':'content','label':(('Search(in content)')},
'message':{'input':'message','label':(('Search in Messages')},
'customer':{'input':'customer','label':(('Search in customer')},
'stage':{'input':'stage','label':(('Search in Stages')},
'all':{'input':'all','label':(('Search in all')},
}
#默认按值排序
如果不是这样:
sortby='date'
订单=搜索栏\u排序[排序]['order']
#默认按值筛选
如果未通过过滤:
filterby='all'
域+=搜索栏_过滤器[filterby]['domain']
#存档组-按“创建\u日期”设置的默认组
如果开始日期和结束日期:

域+=[('create_date','>',date_begin),('create_date',“您能用当前输出和预期输出或任何追溯更新您的问题吗?您好@BhaveshOdedra,我已经用添加的描述更新了我的问题。