diff --git a/radicale/storage.py b/radicale/storage.py index a2a6a1ca..3c1e51ef 100644 --- a/radicale/storage.py +++ b/radicale/storage.py @@ -963,6 +963,21 @@ class Collection(BaseCollection): cls._sync_directory(to_collection._filesystem_path) if item.collection._filesystem_path != to_collection._filesystem_path: cls._sync_directory(item.collection._filesystem_path) + # Move the item cache entry + cache_folder = os.path.join(item.collection._filesystem_path, + ".Radicale.cache", "item") + to_cache_folder = os.path.join(to_collection._filesystem_path, + ".Radicale.cache", "item") + cls._makedirs_synced(to_cache_folder) + try: + os.replace(os.path.join(cache_folder, item.href), + os.path.join(to_cache_folder, to_href)) + except FileNotFoundError: + pass + else: + cls._makedirs_synced(to_cache_folder) + if cache_folder != to_cache_folder: + cls._makedirs_synced(cache_folder) # Track the change to_collection._update_history_etag(to_href, item) item.collection._update_history_etag(item.href, None)