我与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)
结果(模板):