Guillaume Ayoub 14 лет назад
Родитель
Сommit
224d0d47e8
2 измененных файлов с 6 добавлено и 5 удалено
  1. 5 4
      radicale/storage/filesystem.py
  2. 1 1
      radicale/xmlutils.py

+ 5 - 4
radicale/storage/filesystem.py

@@ -23,6 +23,7 @@ Filesystem storage backend.
 
 import codecs
 import os
+import posixpath
 import json
 import time
 from contextlib import contextmanager
@@ -76,10 +77,10 @@ class Collection(ical.Collection):
 
     @classmethod
     def children(cls, path):
-        rel_path = path.replace("/", os.sep)
-        abs_path = os.path.join(FOLDER, rel_path)
-        for filename in next(os.walk(abs_path))[2]:
-            rel_filename = os.path.join(rel_path, filename)
+        abs_path = os.path.join(FOLDER, path.replace("/", os.sep))
+        _, directories, files = next(os.walk(abs_path))
+        for filename in directories + files:
+            rel_filename = posixpath.join(path, filename)
             if cls.is_collection(rel_filename) or cls.is_item(rel_filename):
                 yield cls(rel_filename)
 

+ 1 - 1
radicale/xmlutils.py

@@ -279,7 +279,7 @@ def _propfind_response(path, item, props, user):
                 if item.is_principal:
                     tag = ET.Element(_tag("D", "principal"))
                     element.append(tag)
-                else:
+                if item.is_item(item.path):
                     tag = ET.Element(_tag("C", item.resource_type))
                     element.append(tag)
                 tag = ET.Element(_tag("D", "collection"))