You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.7 KiB
57 lines
1.7 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2019 ACSONE SA/NV
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class TestOnchangeHelperMessage(models.Model):
|
|
|
|
_name = "test_onchange_helper.message"
|
|
_description = "Test Onchange Helper Message"
|
|
|
|
discussion = fields.Many2one(
|
|
"test_onchange_helper.discussion", ondelete="cascade"
|
|
)
|
|
body = fields.Text()
|
|
author = fields.Many2one("res.users", default=lambda self: self.env.user)
|
|
name = fields.Char(string="Title", compute="_compute_name", store=True)
|
|
display_name = fields.Char(
|
|
string="Abstract", compute="_compute_display_name"
|
|
)
|
|
discussion_name = fields.Char(
|
|
related="discussion.name", string="Discussion Name"
|
|
)
|
|
author_partner = fields.Many2one(
|
|
"res.partner",
|
|
compute="_compute_author_partner",
|
|
search="_search_author_partner",
|
|
)
|
|
important = fields.Boolean()
|
|
|
|
@api.one
|
|
@api.depends("author.name", "discussion.name")
|
|
def _compute_name(self):
|
|
self.name = "[%s] %s" % (
|
|
self.discussion.name or "",
|
|
self.author.name or "",
|
|
)
|
|
|
|
@api.one
|
|
@api.depends("author.name", "discussion.name", "body")
|
|
def _compute_display_name(self):
|
|
stuff = "[%s] %s: %s" % (
|
|
self.author.name,
|
|
self.discussion.name or "",
|
|
self.body or "",
|
|
)
|
|
self.display_name = stuff[:80]
|
|
|
|
@api.one
|
|
@api.depends("author", "author.partner_id")
|
|
def _compute_author_partner(self):
|
|
self.author_partner = self.author.partner_id
|
|
|
|
@api.model
|
|
def _search_author_partner(self, operator, value):
|
|
return [("author.partner_id", operator, value)]
|