refactor!: remove old weekly cleanup for route history (#17493)
This is now configurable with log settings. This also fixes circular import issue that occurs when restoring backup
This commit is contained in:
parent
572d9cc696
commit
3fdd89a737
3 changed files with 5 additions and 32 deletions
|
|
@ -5,7 +5,6 @@ from typing import Any, Callable
|
|||
|
||||
import frappe
|
||||
from frappe import _
|
||||
from frappe.boot import get_additional_filters_from_hooks
|
||||
from frappe.model.db_query import get_timespan_date_range
|
||||
from frappe.query_builder import Criterion, Field, Order, Table
|
||||
|
||||
|
|
@ -173,6 +172,8 @@ class Query:
|
|||
|
||||
@cached_property
|
||||
def OPERATOR_MAP(self):
|
||||
from frappe.boot import get_additional_filters_from_hooks
|
||||
|
||||
# default operators
|
||||
all_operators = OPERATOR_MAP.copy()
|
||||
|
||||
|
|
|
|||
|
|
@ -4,45 +4,18 @@
|
|||
import frappe
|
||||
from frappe.deferred_insert import deferred_insert as _deferred_insert
|
||||
from frappe.model.document import Document
|
||||
from frappe.query_builder import DocType, Interval
|
||||
from frappe.query_builder.functions import Count, Now
|
||||
|
||||
|
||||
class RouteHistory(Document):
|
||||
@staticmethod
|
||||
def clear_old_logs(days=30):
|
||||
from frappe.query_builder import Interval
|
||||
from frappe.query_builder.functions import Now
|
||||
|
||||
table = frappe.qb.DocType("Route History")
|
||||
frappe.db.delete(table, filters=(table.modified < (Now() - Interval(days=days))))
|
||||
|
||||
|
||||
def flush_old_route_records():
|
||||
"""Deletes all route records except last 500 records per user"""
|
||||
records_to_keep_limit = 500
|
||||
RouteHistory = DocType("Route History")
|
||||
|
||||
users = (
|
||||
frappe.qb.from_(RouteHistory)
|
||||
.select(RouteHistory.user)
|
||||
.groupby(RouteHistory.user)
|
||||
.having(Count(RouteHistory.name) > records_to_keep_limit)
|
||||
).run(pluck=True)
|
||||
|
||||
for user in users:
|
||||
last_record_to_keep = frappe.get_all(
|
||||
"Route History",
|
||||
filters={"user": user},
|
||||
limit_start=500,
|
||||
fields=["modified"],
|
||||
order_by="modified desc",
|
||||
limit=1,
|
||||
)
|
||||
|
||||
frappe.db.delete(
|
||||
"Route History",
|
||||
{"modified": ("<=", last_record_to_keep[0].modified), "user": user},
|
||||
)
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def deferred_insert(routes):
|
||||
routes = [
|
||||
|
|
|
|||
|
|
@ -242,7 +242,6 @@ scheduler_events = {
|
|||
"weekly_long": [
|
||||
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_weekly",
|
||||
"frappe.integrations.doctype.s3_backup_settings.s3_backup_settings.take_backups_weekly",
|
||||
"frappe.desk.doctype.route_history.route_history.flush_old_route_records",
|
||||
"frappe.desk.form.document_follow.send_weekly_updates",
|
||||
"frappe.social.doctype.energy_point_log.energy_point_log.send_weekly_summary",
|
||||
"frappe.integrations.doctype.google_drive.google_drive.weekly_backup",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue