feat(alert/reports): adding logic to handle downstream reports when tab is deleted from dashboard (#29333)

This commit is contained in:
Jack
2024-08-23 15:26:26 -05:00
committed by GitHub
parent 9249facaf5
commit 2fda221b7c
5 changed files with 318 additions and 12 deletions

View File

@@ -170,15 +170,19 @@ def create_report_notification(
return report_schedule
def cleanup_report_schedule(report_schedule: ReportSchedule) -> None:
db.session.query(ReportExecutionLog).filter(
ReportExecutionLog.report_schedule == report_schedule
).delete()
db.session.query(ReportRecipients).filter(
ReportRecipients.report_schedule == report_schedule
).delete()
db.session.delete(report_schedule)
def cleanup_report_schedule(report_schedule: Optional[ReportSchedule] = None) -> None:
if report_schedule:
db.session.query(ReportExecutionLog).filter(
ReportExecutionLog.report_schedule == report_schedule
).delete()
db.session.query(ReportRecipients).filter(
ReportRecipients.report_schedule == report_schedule
).delete()
db.session.delete(report_schedule)
else:
db.session.query(ReportExecutionLog).delete()
db.session.query(ReportRecipients).delete()
db.session.query(ReportSchedule).delete()
db.session.commit()