如何为某些用户显示表单Odoo 10

时间:2018-07-24 07:42:20

标签: python odoo

我与Odoo 10合作。

在前端开发中,我今天为所有类型的用户提供了不同的表格。我只想发布某些表格。在后端开发中,我创建一个布尔类型字段,该字段将允许我告诉公众或已验证用户是否可以看到此表单。问题是我不知道如何创建一个Python函数来用此布尔值区分两种类型的用户。我必须使用控制器吗?还是在我的对应类中做一个函数?这是代码:

class:

# -*- coding: utf-8 -*-
from odoo import models, fields, api, http, exceptions


class InheritedWebsiteApplicationTemplate(models.Model):

    # region Private attributes
    _inherit = 'website.application.template'
    # endregion

    # region Fields declaration
    user_not_connected = fields.Boolean(string="Formulaire pour utilisateur non connecté")

控制器:

@http.route(['/my/web-demarche'], type='http', auth="public", method=['GET'], website=True)
# @http.route(['/my/web-demarche'], type='http', auth='user', method=['GET'], website=True)
def get_demarche(self, date_begin=None, date_end=None, **post):
    """Display all requests owned by the current user."""
    template_name = 'grc.demarche'
    context = self._prepare_portal_layout_values()

    # On va chercher les demandes de l'utilisateur, le filtre se fait par un ir.rule
    domain = []
    archive_groups = self._get_archive_groups('website.application', domain)
    if date_begin and date_end:
        domain += [('create_date', '>=', date_begin), ('create_date', '<', date_end)]

    domain += [('applicant_id', '=', request.env.uid)]
    user_requests = request.env['website.application'].sudo().search(domain)

    # On va chercher les modèles de demandes actifs (mais pas ceux sans demande multiple si déjà demandés)
    request_templates = get_available_requests(request.env.user, user_requests)

    if request.httprequest.method == 'POST':
        if post.get('suivi', False):
            record_ticket = request.env['website.application'].search([('name','=',str(post.get('suivi', False)))], limit=1)
            if record_ticket:
                return request.redirect('/my/web-demarche/' + str(record_ticket.name))
            else:
                context.update({'error_not_found': True})

    context.update({
        'website_requests': user_requests,
        'request_templates': request_templates,
        'archive_groups': archive_groups,
        'date': date_begin
    })

    return request.render(template_name, context)

结果(模板):

enter image description here

0 个答案:

没有答案