summaryrefslogtreecommitdiff
path: root/addons/mail/static/src
diff options
context:
space:
mode:
authorAlexandre Kühn <aku@odoo.com>2017-12-04 11:01:36 +0100
committerAlexandre Kühn <aku@odoo.com>2017-12-05 09:13:31 +0100
commit6cc5a9963b3cce5d6ddf2cd038def5fe21f17af7 (patch)
tree31ec78e726c4965485bfa875c7374678f8f548dc /addons/mail/static/src
parent59729695680b33a1eec8e170777e07ee12cb3925 (diff)
[FIX] web,*: time format from user's language
Before this fix, the chatter always showed dates of messages in military time format. This was not the expected behavior, as the user could have had customize the date and time format in the settings of the current language. Steps to reproduce the issue: 1. Set Odoo in English 2. Settings > Translations > Languages > English 2.1. Set Date Format to %m/%d/%Y 2.2. Set Time Format to %I:%M:%S %p 3. CRM > (Select any opportunity with at least one message) > Mouse hover on elapsed time (e.g. "an hour ago") Expected: - It shows the customized time format (e.g. 11/07/2017 5:33:36 PM) Results: - It shows the military time format (e.g. Tue Nov 07 2017 17:33:36 GMT+0100) opw-781647
Diffstat (limited to 'addons/mail/static/src')
-rw-r--r--addons/mail/static/src/js/activity.js12
-rw-r--r--addons/mail/static/src/js/thread.js2
-rw-r--r--addons/mail/static/src/xml/activity.xml4
-rw-r--r--addons/mail/static/src/xml/thread.xml4
4 files changed, 15 insertions, 7 deletions
diff --git a/addons/mail/static/src/js/activity.js b/addons/mail/static/src/js/activity.js
index a2ae24dff91..4d3d7adee50 100644
--- a/addons/mail/static/src/js/activity.js
+++ b/addons/mail/static/src/js/activity.js
@@ -20,8 +20,7 @@ var setDelayLabel = function(activities){
var today = moment().startOf('day');
_.each(activities, function(activity){
var to_display = '';
- var deadline = moment(activity.date_deadline + ' 00:00:00');
- var diff = deadline.diff(today, 'days', true); // true means no rounding
+ var diff = activity.date_deadline.diff(today, 'days', true); // true means no rounding
if(diff === 0){
to_display = _t('Today');
}else{
@@ -72,10 +71,17 @@ var AbstractActivityField = AbstractField.extend({
});
}
return $.when(fetch_def).then(function (results) {
+ // convert create_date and date_deadline to moments
+ _.each(results, function (activity) {
+ activity.create_date = moment(time.auto_str_to_date(activity.create_date));
+ activity.date_deadline = moment(time.auto_str_to_date(activity.date_deadline));
+ });
+
// filter out activities that are no longer linked to this record
self.activities = _.filter(self.activities.concat(results || []), function (activity) {
return _.contains(self.value.res_ids, activity.id);
});
+
// sort activities by due date
self.activities = _.sortBy(self.activities, 'date_deadline');
});
@@ -122,7 +128,6 @@ var Activity = AbstractActivityField.extend({
var fetch_def = this.dp.add(this._readActivities());
return fetch_def.then(function () {
_.each(self.activities, function (activity) {
- activity.time_ago = moment(time.auto_str_to_date(activity.create_date)).fromNow();
if (activity.note) {
activity.note = utils.parse_and_transform(activity.note, utils.add_link);
}
@@ -135,6 +140,7 @@ var Activity = AbstractActivityField.extend({
nbPlannedActivities: nbActivities.planned,
nbTodayActivities: nbActivities.today,
nbOverdueActivities: nbActivities.overdue,
+ date_format: time.getLangDatetimeFormat(),
}));
} else {
self.$el.empty();
diff --git a/addons/mail/static/src/js/thread.js b/addons/mail/static/src/js/thread.js
index ec5ffdda1a9..68a01df2345 100644
--- a/addons/mail/static/src/js/thread.js
+++ b/addons/mail/static/src/js/thread.js
@@ -2,6 +2,7 @@ odoo.define('mail.ChatThread', function (require) {
"use strict";
var core = require('web.core');
+var time = require('web.time');
var DocumentViewer = require('mail.DocumentViewer');
var Widget = require('web.Widget');
@@ -111,6 +112,7 @@ var Thread = Widget.extend({
messages: msgs,
options: options,
ORDER: ORDER,
+ date_format: time.getLangDatetimeFormat(),
}));
this.attachments = _.uniq(_.flatten(_.map(messages, 'attachment_ids')));
diff --git a/addons/mail/static/src/xml/activity.xml b/addons/mail/static/src/xml/activity.xml
index 2b0316ad59f..83dc4295e73 100644
--- a/addons/mail/static/src/xml/activity.xml
+++ b/addons/mail/static/src/xml/activity.xml
@@ -40,13 +40,13 @@
</dd>
<dt>Created on</dt>
<dd class="mb8">
- <t t-esc="moment(activity.create_date)"/>
+ <t t-esc="activity.create_date.format(date_format)"/>
</dd>
<dt>Assigned to</dt>
<dd class="mb8">
<img t-attf-src="/web/image#{activity.user_id[0] >= 0 ? ('/res.users/' + activity.user_id[0] + '/image_small') : ''}" height="18" width="18" class="img-circle mr4" t-att-title="activity.create_uid[1]"/>
<b><t t-esc="activity.user_id[1]"/></b>
- <em>, due on </em><span t-attf-class="o_activity_color_#{activity.state}"><t t-esc="moment(activity.date_deadline)"/></span>
+ <em>, due on </em><span t-attf-class="o_activity_color_#{activity.state}"><t t-esc="activity.date_deadline.format(date_format)"/></span>
</dd>
</dl>
</div>
diff --git a/addons/mail/static/src/xml/thread.xml b/addons/mail/static/src/xml/thread.xml
index 89f0921a6cc..6f5f5e71cfe 100644
--- a/addons/mail/static/src/xml/thread.xml
+++ b/addons/mail/static/src/xml/thread.xml
@@ -145,7 +145,7 @@
t-att-src="message.avatar_src"
class="o_thread_message_avatar img-circle"/>
</t>
- <span t-if="!message.display_author" t-att-title="message.date" class="o_thread_message_side_date">
+ <span t-if="!message.display_author" t-att-title="message.date.format(date_format)" class="o_thread_message_side_date">
<t t-esc="message.date.format('hh:mm')"/>
</span>
<i t-if="!message.display_author and options.display_stars and message.message_type != 'notification'"
@@ -172,7 +172,7 @@
<t t-esc="message.displayed_author"/>
</strong>
- - <small class="o_mail_timestamp" t-att-title="message.date"><t t-esc="message.hour"/></small>
+ - <small class="o_mail_timestamp" t-att-title="message.date.format(date_format)"><t t-esc="message.hour"/></small>
<t t-if="message.model and (message.model != 'mail.channel') and options.display_document_link">
<a t-att-href="message.url" t-att-data-oe-model="message.model" t-att-data-oe-id="message.res_id" class="o_document_link">on <t t-esc="message.record_name"/></a>
</t>