Initial commit
This commit is contained in:
85
fusion_authorizer_portal/models/authorizer_comment.py
Normal file
85
fusion_authorizer_portal/models/authorizer_comment.py
Normal file
@@ -0,0 +1,85 @@
|
||||
# -*- 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)
|
||||
Reference in New Issue
Block a user