86 lines
2.3 KiB
Python
86 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from odoo import api, fields, models, _
|
|
import logging
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class AuthorizerComment(models.Model):
|
|
_name = 'fusion.authorizer.comment'
|
|
_description = 'Authorizer/Sales Rep Comment'
|
|
_order = 'create_date desc'
|
|
_rec_name = 'display_name'
|
|
|
|
sale_order_id = fields.Many2one(
|
|
'sale.order',
|
|
string='Sale Order',
|
|
required=True,
|
|
ondelete='cascade',
|
|
index=True,
|
|
)
|
|
|
|
assessment_id = fields.Many2one(
|
|
'fusion.assessment',
|
|
string='Assessment',
|
|
ondelete='cascade',
|
|
index=True,
|
|
)
|
|
|
|
author_id = fields.Many2one(
|
|
'res.partner',
|
|
string='Author',
|
|
required=True,
|
|
default=lambda self: self.env.user.partner_id,
|
|
index=True,
|
|
)
|
|
|
|
author_user_id = fields.Many2one(
|
|
'res.users',
|
|
string='Author User',
|
|
default=lambda self: self.env.user,
|
|
index=True,
|
|
)
|
|
|
|
comment = fields.Text(
|
|
string='Comment',
|
|
required=True,
|
|
)
|
|
|
|
comment_type = fields.Selection([
|
|
('general', 'General Comment'),
|
|
('question', 'Question'),
|
|
('update', 'Status Update'),
|
|
('internal', 'Internal Note'),
|
|
], string='Type', default='general')
|
|
|
|
is_internal = fields.Boolean(
|
|
string='Internal Only',
|
|
default=False,
|
|
help='If checked, this comment will not be visible to portal users',
|
|
)
|
|
|
|
display_name = fields.Char(
|
|
string='Display Name',
|
|
compute='_compute_display_name',
|
|
store=True,
|
|
)
|
|
|
|
@api.depends('author_id', 'create_date')
|
|
def _compute_display_name(self):
|
|
for comment in self:
|
|
if comment.author_id and comment.create_date:
|
|
comment.display_name = f"{comment.author_id.name} - {comment.create_date.strftime('%Y-%m-%d %H:%M')}"
|
|
else:
|
|
comment.display_name = _('New Comment')
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
"""Override create to set author from current user if not provided"""
|
|
for vals in vals_list:
|
|
if not vals.get('author_id'):
|
|
vals['author_id'] = self.env.user.partner_id.id
|
|
if not vals.get('author_user_id'):
|
|
vals['author_user_id'] = self.env.user.id
|
|
return super().create(vals_list)
|