Jelajahi Sumber

Add etag property to items

Related to #380.
Guillaume Ayoub 10 tahun lalu
induk
melakukan
3a9bcc7555
2 mengubah file dengan 5 tambahan dan 1 penghapusan
  1. 4 0
      radicale/storage.py
  2. 1 1
      radicale/xmlutils.py

+ 4 - 0
radicale/storage.py

@@ -127,6 +127,10 @@ class Item:
     def content_length(self):
         return len(self.serialize().encode(config.get("encoding", "request")))
 
+    @property
+    def etag(self):
+        return get_etag(self.serialize())
+
 
 class Collection:
     """Collection stored in several files per calendar."""

+ 1 - 1
radicale/xmlutils.py

@@ -271,7 +271,7 @@ def _propfind_response(path, item, props, user, write=False):
         element = ET.Element(tag)
         is404 = False
         if tag == _tag("D", "getetag"):
-            element.text = storage.get_etag(item.serialize())
+            element.text = item.etag
         elif tag == _tag("D", "principal-URL"):
             tag = ET.Element(_tag("D", "href"))
             tag.text = _href(path)