[IMP] im_livechat, mail: replace _.str.sprintf to web sprintf

Before this commit:

_.str.sprintf was being used

After this commit:

replaced _.str.sprintf with sprintf

Task-2810721

closes odoo/odoo#89217

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
This commit is contained in:
Rahul Prajapati
2022-04-27 07:51:43 +02:00
committed by Hiral Bhavsar
parent f6f4ed7bc9
commit 588cffa967
17 changed files with 62 additions and 49 deletions
@@ -6,6 +6,7 @@ var Timer = require('im_livechat.legacy.mail.model.Timer');
var Timers = require('im_livechat.legacy.mail.model.Timers');
var core = require('web.core');
const { sprintf } = require('web.utils');
var _t = core._t;
@@ -128,13 +129,13 @@ var ThreadTypingMixin = {
if (displayableTypingMembers.length === 0) {
return '';
} else if (displayableTypingMembers.length === 1) {
return _.str.sprintf(_t("%s is typing..."), displayableTypingMembers[0].name);
return sprintf(_t("%s is typing..."), displayableTypingMembers[0].name);
} else if (displayableTypingMembers.length === 2) {
return _.str.sprintf(_t("%s and %s are typing..."),
return sprintf(_t("%s and %s are typing..."),
displayableTypingMembers[0].name,
displayableTypingMembers[1].name);
} else {
return _.str.sprintf(_t("%s, %s and more are typing..."),
return sprintf(_t("%s, %s and more are typing..."),
displayableTypingMembers[0].name,
displayableTypingMembers[1].name);
}
@@ -57,7 +57,7 @@ var Feedback = Widget.extend({
this.dp.add(session.rpc('/im_livechat/feedback', args)).then(function (response) {
var emoji = RATING_TO_EMOJI[self.rating] || "??";
if (!reason) {
var content = _.str.sprintf(_t("Rating: %s"), emoji);
var content = utils.sprintf(_t("Rating: %s"), emoji);
}
else {
var content = "Rating reason: \n" + reason;
@@ -1,6 +1,7 @@
/** @odoo-module **/
import { registerMessagingComponent } from '@mail/utils/messaging_component';
import { sprintf } from '@web/core/utils/strings';
const { Component } = owl;
@@ -14,7 +15,7 @@ export class NotificationRequest extends Component {
* @returns {string}
*/
getHeaderText() {
return _.str.sprintf(
return sprintf(
this.env._t("%s has a request"),
this.messaging.partnerRoot.nameOrDisplayName
);
+3 -2
View File
@@ -6,6 +6,7 @@ import config from 'web.config';
import core from 'web.core';
import field_registry from 'web.field_registry';
import session from 'web.session';
import { sprintf } from '@web/core/utils/strings';
import framework from 'web.framework';
import time from 'web.time';
@@ -91,13 +92,13 @@ var setDelayLabel = function (activities) {
if (diff === -1) {
toDisplay = _t("Yesterday");
} else {
toDisplay = _.str.sprintf(_t("%d days overdue"), Math.abs(diff));
toDisplay = sprintf(_t("%s days overdue"), Math.round(Math.abs(diff)));
}
} else { // due
if (diff === 1) {
toDisplay = _t("Tomorrow");
} else {
toDisplay = _.str.sprintf(_t("Due in %d days"), Math.abs(diff));
toDisplay = sprintf(_t("Due in %s days"), Math.round(Math.abs(diff)));
}
}
}
@@ -5,6 +5,7 @@ import '@mail/js/activity';
import BasicController from 'web.BasicController';
import core from 'web.core';
import field_registry from 'web.field_registry';
import { sprintf } from '@web/core/utils/strings';
import ViewDialogs from 'web.view_dialogs';
var KanbanActivity = field_registry.get('kanban_activity');
@@ -62,7 +63,7 @@ var ActivityController = BasicController.extend({
res_model: state.model,
searchViewId: this.searchViewId,
domain: this.model.originalDomain,
title: _.str.sprintf(_t("Search: %s"), this.title),
title: sprintf(_t("Search: %s"), this.title),
no_create: !this.activeActions.create,
disable_multiple_selection: true,
context: state.context,
@@ -5,6 +5,7 @@ import { attr, many, one } from '@mail/model/model_field';
import { clear, insertAndReplace, replace } from '@mail/model/model_field_command';
import { auto_str_to_date, getLangDateFormat, getLangDatetimeFormat } from 'web.time';
import { sprintf } from '@web/core/utils/strings';
registerModel({
name: 'ActivityView',
@@ -64,7 +65,7 @@ registerModel({
if (!this.activity.assignee) {
return clear();
}
return _.str.sprintf(this.env._t("for %s"), this.activity.assignee.nameOrDisplayName);
return sprintf(this.env._t("for %s"), this.activity.assignee.nameOrDisplayName);
},
/**
* @private
@@ -83,11 +84,11 @@ registerModel({
} else if (diff === -1) {
return this.env._t("Yesterday:");
} else if (diff < 0) {
return _.str.sprintf(this.env._t("%d days overdue:"), Math.abs(diff));
return sprintf(this.env._t("%s days overdue:"), Math.round(Math.abs(diff)));
} else if (diff === 1) {
return this.env._t("Tomorrow:");
} else {
return _.str.sprintf(this.env._t("Due in %d days:"), Math.abs(diff));
return sprintf(this.env._t("Due in %s days:"), Math.round(Math.abs(diff)));
}
},
/**
@@ -150,7 +151,7 @@ registerModel({
if (!this.activity.summary) {
return clear();
}
return _.str.sprintf(this.env._t("“%s”"), this.activity.summary);
return sprintf(this.env._t("“%s”"), this.activity.summary);
},
},
fields: {
@@ -3,6 +3,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, one } from '@mail/model/model_field';
import { clear, replace } from '@mail/model/model_field_command';
import { sprintf } from '@web/core/utils/strings';
registerModel({
name: 'AttachmentDeleteConfirmView',
@@ -45,7 +46,7 @@ registerModel({
* @returns {string}
*/
_computeBody() {
return _.str.sprintf(this.env._t(`Do you really want to delete "%s"?`), this.attachment.displayName);
return sprintf(this.env._t(`Do you really want to delete "%s"?`), this.attachment.displayName);
},
/**
* @private
+3 -2
View File
@@ -3,6 +3,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, many, one } from '@mail/model/model_field';
import { clear, replace, unlink } from '@mail/model/model_field_command';
import { sprintf } from '@web/core/utils/strings';
registerModel({
name: 'Composer',
@@ -98,9 +99,9 @@ registerModel({
}
if (this.thread.model === 'mail.channel') {
if (this.thread.correspondent) {
return _.str.sprintf(this.env._t("Message %s..."), this.thread.correspondent.nameOrDisplayName);
return sprintf(this.env._t("Message %s..."), this.thread.correspondent.nameOrDisplayName);
}
return _.str.sprintf(this.env._t("Message #%s..."), this.thread.displayName);
return sprintf(this.env._t("Message #%s..."), this.thread.displayName);
}
if (this.isLog) {
return this.env._t("Log an internal note...");
@@ -3,6 +3,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, one } from '@mail/model/model_field';
import { clear, replace } from '@mail/model/model_field_command';
import { sprintf } from '@web/core/utils/strings';
/**
* Models a suggestion in the composer suggestion.
@@ -90,17 +91,17 @@ registerModel({
*/
_computeTitle() {
if (this.cannedResponse) {
return _.str.sprintf("%s: %s", this.record.source, this.record.substitution);
return sprintf("%s: %s", this.record.source, this.record.substitution);
}
if (this.thread) {
return this.record.name;
}
if (this.channelCommand) {
return _.str.sprintf("%s: %s", this.record.name, this.record.help);
return sprintf("%s: %s", this.record.name, this.record.help);
}
if (this.partner) {
if (this.record.email) {
return _.str.sprintf("%s (%s)", this.record.nameOrDisplayName, this.record.email);
return sprintf("%s (%s)", this.record.nameOrDisplayName, this.record.email);
}
return this.record.nameOrDisplayName;
}
@@ -8,7 +8,7 @@ import { OnChange } from '@mail/model/model_onchange';
import { addLink, escapeAndCompactTextContent, parseAndTransform } from '@mail/js/utils';
import { isEventHandled, markEventHandled } from '@mail/utils/utils';
import { escape } from '@web/core/utils/strings';
import { escape, sprintf } from '@web/core/utils/strings';
registerModel({
name: 'ComposerView',
@@ -635,7 +635,7 @@ registerModel({
this.delete();
}
this.env.services['notification'].notify({
message: _.str.sprintf(this.env._t(`Message posted on "%s"`), message.originThread.displayName),
message: sprintf(this.env._t(`Message posted on "%s"`), message.originThread.displayName),
type: 'info',
});
}
+3 -3
View File
@@ -3,7 +3,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, many, one } from '@mail/model/model_field';
import { clear, insertAndReplace, link, replace, unlink } from '@mail/model/model_field_command';
import { escape } from '@web/core/utils/strings';
import { escape, sprintf } from '@web/core/utils/strings';
registerModel({
name: 'Discuss',
@@ -79,14 +79,14 @@ registerModel({
// XDU FIXME could use a component but be careful with owl's
// renderToString https://github.com/odoo/owl/issues/708
items.push({
label: _.str.sprintf(
label: sprintf(
`<strong>${this.env._t('Create %s')}</strong>`,
`<em><span class="fa fa-hashtag"/>${escapedValue}</em>`,
),
escapedValue,
special: 'public'
}, {
label: _.str.sprintf(
label: sprintf(
`<strong>${this.env._t('Create %s')}</strong>`,
`<em><span class="fa fa-lock"/>${escapedValue}</em>`,
),
+2 -1
View File
@@ -7,6 +7,7 @@ import emojis from '@mail/js/emojis';
import { addLink, htmlToTextContentInline, parseAndTransform, timeFromNow } from '@mail/js/utils';
import { session } from '@web/session';
import { sprintf } from '@web/core/utils/strings';
import { format } from 'web.field_utils';
import { getLangDatetimeFormat, str_to_datetime } from 'web.time';
@@ -610,7 +611,7 @@ registerModel({
_computeTrackingValues() {
return this.tracking_value_ids.map(trackingValue => {
const value = Object.assign({}, trackingValue);
value.changed_field = _.str.sprintf(this.env._t("%s:"), value.changed_field);
value.changed_field = sprintf(this.env._t("%s:"), value.changed_field);
/**
* Maps tracked field type to a JS formatter. Tracking values are
* not always stored in the same field type as their origin type.
@@ -4,6 +4,7 @@ import { registerModel } from '@mail/model/model_core';
import { attr, many, one } from '@mail/model/model_field';
import { insertAndReplace } from '@mail/model/model_field_command';
import { markEventHandled } from '@mail/utils/utils';
import { sprintf } from '@web/core/utils/strings';
registerModel({
name: 'MessageReactionGroup',
@@ -60,15 +61,15 @@ registerModel({
];
switch (length) {
case 1:
return _.str.sprintf(this.env._t('%s has reacted with %s'), firstUser, this.content);
return sprintf(this.env._t('%s has reacted with %s'), firstUser, this.content);
case 2:
return _.str.sprintf(this.env._t('%s and %s have reacted with %s'), firstUser, secondUser, this.content);
return sprintf(this.env._t('%s and %s have reacted with %s'), firstUser, secondUser, this.content);
case 3:
return _.str.sprintf(this.env._t('%s, %s, %s have reacted with %s'), firstUser, secondUser, thirdUser, this.content);
return sprintf(this.env._t('%s, %s, %s have reacted with %s'), firstUser, secondUser, thirdUser, this.content);
case 4:
return _.str.sprintf(this.env._t('%s, %s, %s and 1 other person have reacted with %s'), firstUser, secondUser, thirdUser, this.content);
return sprintf(this.env._t('%s, %s, %s and 1 other person have reacted with %s'), firstUser, secondUser, thirdUser, this.content);
default:
return _.str.sprintf(this.env._t('%s, %s, %s and %s other persons have reacted with %s'), firstUser, secondUser, thirdUser, length - 3, this.content);
return sprintf(this.env._t('%s, %s, %s and %s other persons have reacted with %s'), firstUser, secondUser, thirdUser, length - 3, this.content);
}
},
},
@@ -3,6 +3,7 @@
import { registerModel } from '@mail/model/model_core';
import { attr, many, one } from '@mail/model/model_field';
import { clear, replace, unlinkAll } from '@mail/model/model_field_command';
import { sprintf } from '@web/core/utils/strings';
registerModel({
name: 'MessageSeenIndicator',
@@ -181,19 +182,19 @@ registerModel({
return partner.nameOrDisplayName;
});
if (partnersThatHaveSeen.length === 1) {
return _.str.sprintf(
return sprintf(
this.env._t("Seen by %s"),
partnersThatHaveSeen[0]
);
}
if (partnersThatHaveSeen.length === 2) {
return _.str.sprintf(
return sprintf(
this.env._t("Seen by %s and %s"),
partnersThatHaveSeen[0],
partnersThatHaveSeen[1]
);
}
return _.str.sprintf(
return sprintf(
this.env._t("Seen by %s, %s and more"),
partnersThatHaveSeen[0],
partnersThatHaveSeen[1]
@@ -210,19 +211,19 @@ registerModel({
return partner.nameOrDisplayName;
});
if (partnersThatHaveFetched.length === 1) {
return _.str.sprintf(
return sprintf(
this.env._t("Received by %s"),
partnersThatHaveFetched[0]
);
}
if (partnersThatHaveFetched.length === 2) {
return _.str.sprintf(
return sprintf(
this.env._t("Received by %s and %s"),
partnersThatHaveFetched[0],
partnersThatHaveFetched[1]
);
}
return _.str.sprintf(
return sprintf(
this.env._t("Received by %s, %s and more"),
partnersThatHaveFetched[0],
partnersThatHaveFetched[1]
@@ -4,7 +4,7 @@ import { registerModel } from '@mail/model/model_core';
import { decrement, increment, insert, insertAndReplace, link, replace, unlink } from '@mail/model/model_field_command';
import { htmlToTextContentInline } from '@mail/js/utils';
import { escape } from '@web/core/utils/strings';
import { escape, sprintf } from '@web/core/utils/strings';
import { str_to_datetime } from 'web.time';
import { Markup } from 'web.utils';
import { renderToString } from "@web/core/utils/render";
@@ -190,7 +190,7 @@ registerModel({
if (this.messaging.currentUser && invitedByUserId !== this.messaging.currentUser.id) {
// Current user was invited by someone else.
this.env.services['notification'].notify({
message: _.str.sprintf(
message: sprintf(
this.env._t("You have been invited to #%s"),
channel.displayName
),
@@ -612,7 +612,7 @@ registerModel({
if (!channel) {
return;
}
const message = _.str.sprintf(this.env._t("You unsubscribed from %s."), channel.displayName);
const message = sprintf(this.env._t("You unsubscribed from %s."), channel.displayName);
this.env.services['notification'].notify({ message, type: 'info' });
// We assume that arriving here the server has effectively
// unpinned the channel
@@ -634,7 +634,7 @@ registerModel({
if (!channel) {
return;
}
const message = _.str.sprintf(this.env._t("You unpinned your conversation with %s."), channel.displayName);
const message = sprintf(this.env._t("You unpinned your conversation with %s."), channel.displayName);
this.env.services['notification'].notify({ message, type: 'info' });
// We assume that arriving here the server has effectively
// unpinned the channel
@@ -653,7 +653,7 @@ registerModel({
// If the current user invited a new user, and the new user is
// connecting for the first time while the current user is present
// then open a chat for the current user with the new user.
const message = _.str.sprintf(this.env._t('%s connected'), username);
const message = sprintf(this.env._t('%s connected'), username);
const title = this.env._t("This is their first connection. Wish them luck.");
this.env.services['bus_service'].sendNotification({ message, title, type: 'info' });
const chat = await this.async(() => this.messaging.getChat({ partnerId }));
@@ -685,7 +685,7 @@ registerModel({
});
const channelName = channel.displayName;
const channelNameWithIcon = channelIcon + channelName;
notificationTitle = _.str.sprintf(
notificationTitle = sprintf(
this.env._t("%s from %s"),
author.nameOrDisplayName,
channelNameWithIcon
@@ -704,11 +704,11 @@ registerModel({
});
messaging.update({ outOfFocusUnreadMessageCounter: increment() });
const titlePattern = messaging.outOfFocusUnreadMessageCounter === 1
? this.env._t("%d Message")
: this.env._t("%d Messages");
? this.env._t("%s Message")
: this.env._t("%s Messages");
this.env.bus.trigger('set_title_part', {
part: '_chat',
title: _.str.sprintf(titlePattern, messaging.outOfFocusUnreadMessageCounter),
title: sprintf(titlePattern, messaging.outOfFocusUnreadMessageCounter),
});
},
/**
+3 -2
View File
@@ -6,6 +6,7 @@ import { registerModel } from '@mail/model/model_core';
import { attr, many, one } from '@mail/model/model_field';
import { clear, insert, insertAndReplace, replace, unlink } from '@mail/model/model_field_command';
import { monitorAudio } from '@mail/utils/media_monitoring';
import { sprintf } from '@web/core/utils/strings';
/**
* The order in which transceivers are added, relevant for RTCPeerConnection.getTransceivers which returns
@@ -243,7 +244,7 @@ registerModel({
audioTrack = audioStream.getAudioTracks()[0];
} catch (_e) {
this.env.services.notification.notify({
message: _.str.sprintf(
message: sprintf(
this.env._t(`"%s" requires microphone access`),
window.location.host,
),
@@ -1001,7 +1002,7 @@ registerModel({
}
} catch (_e) {
this.env.services.notification.notify({
message: _.str.sprintf(
message: sprintf(
this.env._t(`"%s" requires "%s" access`),
window.location.host,
type === 'user-video' ? 'camera' : 'display',
+4 -3
View File
@@ -9,6 +9,7 @@ import Timer from '@mail/utils/timer';
import { cleanSearchTerm } from '@mail/utils/utils';
import * as mailUtils from '@mail/js/utils';
import { sprintf } from '@web/core/utils/strings';
import { str_to_datetime } from 'web.time';
const getSuggestedRecipientInfoNextTemporaryId = (function () {
@@ -1636,19 +1637,19 @@ registerModel({
return this.constructor.fields.typingStatusText.default;
}
if (this.orderedOtherTypingMembers.length === 1) {
return _.str.sprintf(
return sprintf(
this.env._t("%s is typing..."),
this.getMemberName(this.orderedOtherTypingMembers[0])
);
}
if (this.orderedOtherTypingMembers.length === 2) {
return _.str.sprintf(
return sprintf(
this.env._t("%s and %s are typing..."),
this.getMemberName(this.orderedOtherTypingMembers[0]),
this.getMemberName(this.orderedOtherTypingMembers[1])
);
}
return _.str.sprintf(
return sprintf(
this.env._t("%s, %s and more are typing..."),
this.getMemberName(this.orderedOtherTypingMembers[0]),
this.getMemberName(this.orderedOtherTypingMembers[1])