fix: stale report indicator (#37647)

* fix: stale report indicator that is not specific to prepared report

* fix: some padding left

* fix: for prepared report, check should happen on refresh too
This commit is contained in:
Aditya Patil 2026-02-27 17:07:22 +05:30 committed by GitHub
parent d43ff42a3b
commit d7f7618039
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -762,9 +762,39 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
let data = r.message;
this.hide_status();
clearInterval(this.interval);
clearInterval(this.stale_report_interval);
this.refreshed_at = frappe.datetime.now_datetime();
this.execution_time = data.execution_time || 0.1;
const check_if_report_is_stale = () => {
let generated_at = this.prepared_report
? this.prepared_report_document.report_end_time
: this.refreshed_at;
let pretty_diff = frappe.datetime.comment_when(generated_at);
const days_old = frappe.datetime.get_day_diff(
frappe.datetime.now_datetime(),
generated_at
);
const minutes_old = frappe.datetime.get_minute_diff(
frappe.datetime.now_datetime(),
generated_at
);
if (days_old > 1) {
pretty_diff = `<span style="color:var(--red-600)">${pretty_diff}</span>`;
}
if (minutes_old >= 1) {
this.show_status(`
<div class="indicator orange pl-1">
<span>
${__("This report was generated {0}.", [pretty_diff])}
</span>
</div>
`);
}
};
this.stale_report_interval = setInterval(check_if_report_is_stale, 60000);
if (data.custom_filters) {
this.set_filters(data.custom_filters);
this.previous_filters = data.custom_filters;
@ -787,6 +817,7 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
});
}
this.add_prepared_report_buttons(data.doc);
check_if_report_is_stale();
}
if (data.report_summary) {
@ -865,28 +896,6 @@ frappe.views.QueryReport = class QueryReport extends frappe.views.BaseList {
},
__("Actions")
);
let pretty_diff = frappe.datetime.comment_when(doc.report_end_time);
const days_old = frappe.datetime.get_day_diff(
frappe.datetime.now_datetime(),
doc.report_end_time
);
if (days_old > 1) {
pretty_diff = `<span style="color:var(--red-600)">${pretty_diff}</span>`;
}
const part1 = __("This report was generated {0}.", [pretty_diff]);
const part2 = __("To get the updated report, click on {0}.", [__("Rebuild")]);
const part3 = __("See all past reports.");
this.show_status(`
<div class="indicator orange">
<span>
${part1}
${part2}
<a href="/desk/List/Prepared%20Report?report_name=${this.report_name}"> ${part3}</a>
</span>
</div>
`);
}
// Three cases