Update list_renderer.js to only show hijri dates for hijri_date and hijri_datetime widgets

This commit is contained in:
Mohamed Eltayar 2025-08-29 02:57:22 +03:00
parent 5cc072f2b8
commit 37a44b67bd
1 changed files with 28 additions and 20 deletions

View File

@ -26,6 +26,7 @@ odoo.define('web_hijri_datepicker.ListRenderer', function (require) {
monetary: 'o_list_number',
text: 'o_list_text',
};
String.prototype.fromDigits = function () {
var id = ['۰', '۱', '۲', '۳', '٤', '۵', '٦', '۷', '۸', '۹'];
return this.replace(/[0-9]/g, function (w) {
@ -68,6 +69,7 @@ odoo.define('web_hijri_datepicker.ListRenderer', function (require) {
return _.str.sprintf("%s %s", month, date);
}
},
_renderBodyCell: function (record, node, colIndex, options) {
var tdClassName = 'o_data_cell';
if (node.tag === 'button') {
@ -112,34 +114,39 @@ odoo.define('web_hijri_datepicker.ListRenderer', function (require) {
this._handleAttributes($td, node);
var name = node.attrs.name;
var field = this.state.fields[name];
if (field!== undefined){
var value = record.data[name];
var formatter = field_utils.format[field.type];
var formatOptions = {
escape: true,
data: record.data,
isPassword: 'password' in node.attrs,
};
var formattedValue = formatter(value, field, formatOptions);
if (_.contains(['date', 'datetime'], field.type)) {
if (formattedValue) {
var formattedHijriValue = this._parseDate(value)
formattedValue = this._formateDate(formattedValue, formattedHijriValue);
if (field !== undefined) {
var value = record.data[name];
var formatter = field_utils.format[field.type];
var formatOptions = {
escape: true,
data: record.data,
isPassword: 'password' in node.attrs,
};
var formattedValue = formatter(value, field, formatOptions);
// فقط إضافة التاريخ الهجري إذا كان الـ widget هو hijri_date أو hijri_datetime
if (_.contains(['date', 'datetime'], field.type) &&
(node.attrs.widget === 'hijri_date' || node.attrs.widget === 'hijri_datetime')) {
if (formattedValue) {
var formattedHijriValue = this._parseDate(value);
formattedValue = this._formateDate(formattedValue, formattedHijriValue);
}
}
}
var title = '';
if (field.type !== 'boolean') {
title = formatter(value, field, _.extend(formatOptions, {escape: false}));
}
}
else{
var title = '';
if (field.type !== 'boolean') {
title = formatter(value, field, _.extend(formatOptions, {escape: false}));
}
} else {
return $td.append(this._renderButton(record, node));
}
return $td.html(formattedValue).attr('title', title);
},
_parseDate: function (v) {
return v.clone().locale('en').format('YYYY-MM-DD');
},
_formateDate: function (formattedValue, formattedHijriValue) {
var self = this;
if (formattedHijriValue) {
@ -148,6 +155,7 @@ odoo.define('web_hijri_datepicker.ListRenderer', function (require) {
});
}
},
_onWindowClicked: function (event) {
if ($(event.target).hasClass('calendars-highlight')) {
return;