From be132bf21da1ed14752d573bc25779852c366a39 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 25 May 2026 12:34:31 +0000 Subject: [PATCH] Remove obsolete task --- src/backend/InvenTree/InvenTree/apps.py | 5 +- src/backend/InvenTree/common/tasks.py | 67 ------------------------- 2 files changed, 3 insertions(+), 69 deletions(-) diff --git a/src/backend/InvenTree/InvenTree/apps.py b/src/backend/InvenTree/InvenTree/apps.py index 50d5b6ae5d..b2aeec080b 100644 --- a/src/backend/InvenTree/InvenTree/apps.py +++ b/src/backend/InvenTree/InvenTree/apps.py @@ -89,11 +89,12 @@ class InvenTreeConfig(AppConfig): def remove_obsolete_tasks(self): """Delete any obsolete scheduled tasks in the database.""" obsolete = [ + 'common.tasks.delete_old_notes_images', + 'data_exporter.tasks.cleanup_old_export_outputs', 'InvenTree.tasks.delete_expired_sessions', - 'stock.tasks.delete_old_stock_items', 'label.tasks.cleanup_old_label_outputs', 'report.tasks.cleanup_old_report_outputs', - 'data_exporter.tasks.cleanup_old_export_outputs', + 'stock.tasks.delete_old_stock_items', ] try: diff --git a/src/backend/InvenTree/common/tasks.py b/src/backend/InvenTree/common/tasks.py index 43afef5245..4ea1b84932 100644 --- a/src/backend/InvenTree/common/tasks.py +++ b/src/backend/InvenTree/common/tasks.py @@ -1,6 +1,5 @@ """Tasks (processes that get offloaded) for common app.""" -import os from datetime import timedelta from django.conf import settings @@ -15,8 +14,6 @@ from opentelemetry import trace import common.models import InvenTree.helpers -from InvenTree.helpers_model import getModelsWithMixin -from InvenTree.models import InvenTreeNotesMixin from InvenTree.tasks import ScheduledTask, scheduled_task tracer = trace.get_tracer(__name__) @@ -110,70 +107,6 @@ def update_news_feed(): logger.info('update_news_feed: Sync done') -@tracer.start_as_current_span('delete_old_notes_images') -@scheduled_task(ScheduledTask.DAILY) -def delete_old_notes_images(): - """Remove old notes images from the database. - - Anything older than ~3 months is removed, unless it is linked to a note - """ - try: - from common.models import NotesImage - except AppRegistryNotReady: - logger.info( - "Could not perform 'delete_old_notes_images' - App registry not ready" - ) - return - - # Remove any notes which point to non-existent image files - for note in NotesImage.objects.all(): - if not os.path.exists(note.image.path): - logger.info('Deleting note %s - image file does not exist', note.image.path) - note.delete() - - note_classes = getModelsWithMixin(InvenTreeNotesMixin) - before = InvenTree.helpers.current_date() - timedelta(days=90) - - for note in NotesImage.objects.filter(date__lte=before): - # Find any images which are no longer referenced by a note - - found = False - - img = note.image.name - - for model in note_classes: - if model.objects.filter(notes__icontains=img).exists(): - found = True - break - - if not found: - logger.info('Deleting note %s - image file not linked to a note', img) - note.delete() - - # Finally, remove any images in the notes dir which are not linked to a note - notes_dir = os.path.join(settings.MEDIA_ROOT, 'notes') - - try: - images = os.listdir(notes_dir) - except FileNotFoundError: - # Thrown if the directory does not exist - images = [] - - all_notes = NotesImage.objects.all() - - for image in images: - found = False - for note in all_notes: - img_path = os.path.basename(note.image.path) - if img_path == image: - found = True - break - - if not found: - logger.info('Deleting note %s - image file not linked to a note', image) - os.remove(os.path.join(notes_dir, image)) - - @tracer.start_as_current_span('rebuild_parameters') def rebuild_parameters(template_id): """Rebuild all parameters for a given template.