diff --git a/apps/media_library/tasks.py b/apps/media_library/tasks.py index 21273088..5ec5b108 100644 --- a/apps/media_library/tasks.py +++ b/apps/media_library/tasks.py @@ -440,6 +440,17 @@ def _maybe_mark_scan_completed(scan: LibraryScan) -> None: if discovery_done and metadata_done and artwork_done: summary = scan.summary or "" scan.mark_completed(summary=summary) + if scan.library_id: + now = timezone.now() + Library.objects.filter(pk=scan.library_id).update( + last_scan_at=now, + last_successful_scan_at=now, + updated_at=now, + ) + if getattr(scan, "library", None): + scan.library.last_scan_at = now + scan.library.last_successful_scan_at = now + scan.library.updated_at = now _emit_scan_update(scan, status="completed") diff --git a/apps/media_library/utils.py b/apps/media_library/utils.py index 6e118885..fb6ef13e 100644 --- a/apps/media_library/utils.py +++ b/apps/media_library/utils.py @@ -200,26 +200,16 @@ class LibraryScanner: if summary: self.scan.summary = summary self.scan.log = "\n".join(self.log_messages) - self.scan.finished_at = timezone.now() - self.scan.status = LibraryScan.STATUS_COMPLETED - self.scan.processed_files = self.scan.total_files self.scan.save( update_fields=[ "matched_items", "unmatched_files", "summary", "log", - "finished_at", - "status", - "processed_files", "updated_at", ] ) - self.library.last_scan_at = timezone.now() - self.library.last_successful_scan_at = timezone.now() - self.library.save(update_fields=["last_scan_at", "last_successful_scan_at", "updated_at"]) - def _ensure_file_record( self, location: LibraryLocation, file_path: Path ) -> Optional[tuple[MediaFile, bool]]: