[IMP] turn "Message/datetime" into field

Task-2793280

closes odoo/odoo#86448

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
Alexandre Kühn
2022-03-21 14:00:44 +01:00
parent 71775e32bb
commit d62e7d9af4
3 changed files with 18 additions and 12 deletions
@@ -8,7 +8,6 @@ import { isEventHandled, markEventHandled } from '@mail/utils/utils';
import { _lt } from 'web.core';
import Popover from "web.Popover";
import { getLangDatetimeFormat } from 'web.time';
const { Component, onWillUnmount, useRef, useState } = owl;
@@ -86,15 +85,6 @@ export class Message extends Component {
// Public
//--------------------------------------------------------------------------
/**
* Get the date time of the message at current user locale time.
*
* @returns {string}
*/
get datetime() {
return this.messageView.message.date.format(getLangDatetimeFormat());
}
/**
* Whether the message is "active", ie: hovered or clicked, and should
* display additional things (date in sidebar, message actions, etc.)
@@ -83,7 +83,7 @@
</div>
</t>
<t t-if="messageView.message.date">
<div class="o_Message_date o_Message_headerDate" t-att-class="{ 'o-message-selected': isSelected }" t-att-title="datetime">
<div class="o_Message_date o_Message_headerDate" t-att-class="{ 'o-message-selected': isSelected }" t-att-title="messageView.message.datetime">
- <t t-esc="messageView.message.dateFromNow"/>
</div>
</t>
+17 -1
View File
@@ -9,7 +9,7 @@ import { addLink, htmlToTextContentInline, parseAndTransform, timeFromNow } from
import { session } from '@web/session';
import { format } from 'web.field_utils';
import { str_to_datetime } from 'web.time';
import { getLangDatetimeFormat, str_to_datetime } from 'web.time';
registerModel({
name: 'Message',
@@ -383,6 +383,16 @@ registerModel({
}
return timeFromNow(this.date);
},
/**
* @private
* @returns {string|FieldCommand}
*/
_computeDatetime() {
if (!this.date) {
return clear();
}
return this.date.format(getLangDatetimeFormat());
},
/**
* @returns {boolean}
*/
@@ -717,6 +727,12 @@ registerModel({
dateFromNow: attr({
compute: '_computeDateFromNow',
}),
/**
* The date time of the message at current user locale time.
*/
datetime: attr({
compute: '_computeDatetime',
}),
email_from: attr(),
failureNotifications: many('Notification', {
compute: '_computeFailureNotifications',