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:
Ankush Menat 2022-07-13 11:02:56 +05:30 committed by GitHub
parent 572d9cc696
commit 3fdd89a737
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 32 deletions

View file

@ -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()

View file

@ -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 = [

View file

@ -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",