[FIX] point_of_sale: translation issue in the ticket screen

The terms in the search bar of the ticket screen are not translated.
This commit fixes this issue by passing the translated form of the
terms to the search bar component.

closes odoo/odoo#66959

X-original-commit: 11d7daa481c05e56228e5b1bbf1ed1c0fe57e774
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This commit is contained in:
Joseph Caburnay
2021-02-26 18:16:03 +00:00
parent 22b0142d4e
commit 3d36ee40c2
6 changed files with 99 additions and 16 deletions
@@ -383,6 +383,13 @@ msgstr ""
msgid "All"
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#, python-format
msgid "All Tickets"
msgstr ""
#. module: point_of_sale
#: code:addons/point_of_sale/models/pos_config.py:0
#, python-format
@@ -715,6 +722,7 @@ msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#: code:addons/point_of_sale/static/src/xml/Screens/TicketScreen/TicketScreen.xml:0
#: model:ir.model.fields,field_description:point_of_sale.field_pos_payment__cardholder_name
#, python-format
@@ -1213,6 +1221,7 @@ msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#: code:addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderList.xml:0
#: code:addons/point_of_sale/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml:0
#: code:addons/point_of_sale/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml:0
@@ -1258,6 +1267,7 @@ msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#: code:addons/point_of_sale/static/src/xml/Screens/OrderManagementScreen/OrderList.xml:0
#: code:addons/point_of_sale/static/src/xml/Screens/TicketScreen/TicketScreen.xml:0
#: model:ir.model.fields,field_description:point_of_sale.field_pos_order__date_order
@@ -2640,6 +2650,13 @@ msgstr ""
msgid "Ok"
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#, python-format
msgid "Ongoing"
msgstr ""
#. module: point_of_sale
#: model:ir.model.fields,field_description:point_of_sale.field_pos_config__only_round_cash_method
msgid "Only apply rounding on cash"
@@ -2936,6 +2953,7 @@ msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#: code:addons/point_of_sale/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml:0
#: code:addons/point_of_sale/static/src/xml/Screens/ProductScreen/ActionpadWidget.xml:0
#: code:addons/point_of_sale/wizard/pos_payment.py:0
@@ -3687,6 +3705,13 @@ msgstr ""
msgid "Ready to launch your <b>point of sale</b>?"
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#, python-format
msgid "Receipt"
msgstr ""
#. module: point_of_sale
#: code:addons/point_of_sale/models/pos_order.py:0
#, python-format
@@ -3705,6 +3730,7 @@ msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js:0
#: code:addons/point_of_sale/static/src/xml/Screens/TicketScreen/TicketScreen.xml:0
#: model:ir.model.fields,field_description:point_of_sale.field_pos_order__pos_reference
#, python-format
@@ -3974,6 +4000,20 @@ msgstr ""
msgid "Search Sales Order"
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/xml/Screens/TicketScreen/TicketScreen.xml:0
#, python-format
msgid "Search Tickets..."
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Misc/SearchBar.js:0
#, python-format
msgid "Select"
msgstr ""
#. module: point_of_sale
#. openerp-web
#: code:addons/point_of_sale/static/src/js/Screens/ProductScreen/ControlButtons/SetFiscalPositionButton.js:0
@@ -37,7 +37,7 @@ odoo.define('point_of_sale.SearchBar', function (require) {
selectedFieldId: this.config.searchFields.length ? 0 : null,
showSearchFields: false,
showFilterOptions: false,
selectedFilter: this.config.filter.options[0] || 'Select',
selectedFilter: this.config.filter.options[0] || this.env._t('Select'),
});
useExternalListener(window, 'click', this._hideOptions);
}
@@ -45,8 +45,9 @@ odoo.define('point_of_sale.TicketScreen', function (require) {
return this.env.pos.get_order_list();
}
get filteredOrderList() {
const { AllTickets } = this.getOrderStates();
const filterCheck = (order) => {
if (this.filter && this.filter !== 'All Tickets') {
if (this.filter && this.filter !== AllTickets) {
const screen = order.get_screen_data();
return this.filter === this.constants.screenToStatusMap[screen.name];
}
@@ -131,7 +132,8 @@ odoo.define('point_of_sale.TicketScreen', function (require) {
};
}
get filterOptions() {
return ['All Tickets', 'Ongoing', 'Payment', 'Receipt'];
const { AllTickets, Ongoing, Payment, Receipt } = this.getOrderStates();
return [AllTickets, Ongoing, Payment, Receipt];
}
/**
* An object with keys containing the search field names which map to functions.
@@ -158,14 +160,15 @@ odoo.define('point_of_sale.TicketScreen', function (require) {
* @returns Record<string, (models.Order) => string>
*/
get _searchFields() {
const { ReceiptNumber, Date, Customer, CardholderName } = this.getSearchFieldNames();
var fields = {
'Receipt Number': (order) => order.name,
Date: (order) => moment(order.creation_date).format('YYYY-MM-DD hh:mm A'),
Customer: (order) => order.get_client_name(),
[ReceiptNumber]: (order) => order.name,
[Date]: (order) => moment(order.creation_date).format('YYYY-MM-DD hh:mm A'),
[Customer]: (order) => order.get_client_name(),
};
if (this.showCardholderName()) {
fields['Cardholder Name'] = (order) => order.get_cardholder_name();
fields[CardholderName] = (order) => order.get_cardholder_name();
}
return fields;
@@ -174,10 +177,11 @@ odoo.define('point_of_sale.TicketScreen', function (require) {
* Maps the order screen params to order status.
*/
get _screenToStatusMap() {
const { Ongoing, Payment, Receipt } = this.getOrderStates();
return {
ProductScreen: 'Ongoing',
PaymentScreen: 'Payment',
ReceiptScreen: 'Receipt',
ProductScreen: Ongoing,
PaymentScreen: Payment,
ReceiptScreen: Receipt,
};
}
_initializeSearchFieldConstants() {
@@ -187,6 +191,22 @@ odoo.define('point_of_sale.TicketScreen', function (require) {
screenToStatusMap: this._screenToStatusMap,
});
}
getOrderStates() {
return {
AllTickets: this.env._t('All Tickets'),
Ongoing: this.env._t('Ongoing'),
Payment: this.env._t('Payment'),
Receipt: this.env._t('Receipt'),
};
}
getSearchFieldNames() {
return {
ReceiptNumber: this.env._t('Receipt Number'),
Date: this.env._t('Date'),
Customer: this.env._t('Customer'),
CardholderName: this.env._t('Cardholder Name'),
};
}
}
TicketScreen.template = 'TicketScreen';
@@ -9,7 +9,8 @@
<button t-if="showNewTicketButton" class="highlight" t-on-click="createNewOrder">New Order</button>
<button class="discard" t-on-click="trigger('close-screen')">Discard</button>
</div>
<SearchBar config="searchBarConfig" placeholder="'Search Tickets...'" />
<t t-set="placeholder">Search Tickets...</t>
<SearchBar config="searchBarConfig" placeholder="placeholder" />
</div>
<div class="orders">
<div class="header-row">
@@ -585,6 +585,13 @@ msgstr ""
msgid "Ok"
msgstr ""
#. module: pos_restaurant
#. openerp-web
#: code:addons/pos_restaurant/static/src/js/Screens/TicketScreen.js:0
#, python-format
msgid "Open"
msgstr ""
#. module: pos_restaurant
#. openerp-web
#: code:addons/pos_restaurant/static/src/xml/Screens/FloorScreen/EditBar.xml:0
@@ -1035,6 +1042,13 @@ msgstr ""
msgid "Tip:"
msgstr ""
#. module: pos_restaurant
#. openerp-web
#: code:addons/pos_restaurant/static/src/js/Screens/TicketScreen.js:0
#, python-format
msgid "Tipping"
msgstr ""
#. module: pos_restaurant
#. openerp-web
#: code:addons/pos_restaurant/static/src/xml/TipReceipt.xml:0
@@ -20,17 +20,19 @@ odoo.define('pos_restaurant.TicketScreen', function (require) {
}
}
get filterOptions() {
const { Payment, Open, Tipping } = this.getOrderStates();
var filterOptions = super.filterOptions;
if (this.env.pos.config.set_tip_after_payment) {
var idx = filterOptions.indexOf('Payment');
filterOptions[idx] = 'Open';
var idx = filterOptions.indexOf(Payment);
filterOptions[idx] = Open;
}
return [...filterOptions, 'Tipping'];
return [...filterOptions, Tipping];
}
get _screenToStatusMap() {
const { Open, Tipping } = this.getOrderStates();
return Object.assign(super._screenToStatusMap, {
PaymentScreen: this.env.pos.config.set_tip_after_payment ? 'Open' : super._screenToStatusMap.PaymentScreen,
TipScreen: 'Tipping',
PaymentScreen: this.env.pos.config.set_tip_after_payment ? Open : super._screenToStatusMap.PaymentScreen,
TipScreen: Tipping,
});
}
getTable(order) {
@@ -116,6 +118,12 @@ odoo.define('pos_restaurant.TicketScreen', function (require) {
args: [serverId],
});
}
getOrderStates() {
return Object.assign(super.getOrderStates(), {
Tipping: this.env._t('Tipping'),
Open: this.env._t('Open'),
});
}
};
Registries.Component.extend(TicketScreen, PosResTicketScreen);