Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion etesync_dav/radicale/storage.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

import etesync as api
import vobject
import radicale
from packaging.version import Version
from radicale import pathutils
from radicale.item import Item, get_etag
from radicale.storage import (
Expand Down Expand Up @@ -421,7 +423,10 @@ def upload(self, href, vobject_item):
href_mapper = HrefMapper(content=etesync_item._cache_obj, href=href)
href_mapper.save(force_insert=True)

return self._get(href)
uploaded = self._get(href)
if Version(radicale.VERSION) >= Version("3.5.5"):
return (uploaded, item)
return uploaded

def delete(self, href=None):
"""Delete an item.
Expand Down
7 changes: 6 additions & 1 deletion etesync_dav/radicale/storage_etebase_collection.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import re

import vobject
import radicale
from packaging.version import Version
from radicale import pathutils
from radicale.item import Item
from radicale.storage import (
Expand Down Expand Up @@ -294,7 +296,10 @@ def upload(self, href, vobject_item):
href_mapper = HrefMapper(content=etesync_item.cache_item, href=href)
href_mapper.save(force_insert=True)

return self._get(href)
uploaded = self._get(href)
if Version(radicale.VERSION) >= Version("3.5.5"):
return (uploaded, item)
return uploaded

def delete(self, href=None):
"""Delete an item.
Expand Down
8 changes: 6 additions & 2 deletions etesync_dav/radicale/web.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

import radicale
from packaging.version import Version
from radicale import web

from etesync_dav.mac_helpers import has_ssl
Expand All @@ -31,10 +33,12 @@ def start_response(status, headers):
environ["wsgi.url_scheme"] = "https"
body = list(app(environ, start_response))[0]
ret_response.append(body)
if Version(radicale.VERSION) >= Version("3.5.10"):
ret_response.append(None) # xml_request field
return tuple(ret_response)

def get(self, environ, base_prefix, path, user):
def get(self, environ, base_prefix, path, user, *args, **kwargs):
return self._call(environ, base_prefix, path, user)

def post(self, environ, base_prefix, path, user):
def post(self, environ, base_prefix, path, user, *args, **kwargs):
return self._call(environ, base_prefix, path, user)
6 changes: 3 additions & 3 deletions etesync_dav/radicale_main/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@


class MyApplication(Application):
def do_POST(self, environ, base_prefix, path, user, remote_host="", user_agent=""):
def do_POST(self, environ, base_prefix, path, user, *args, **kwargs):
"""Manage POST request."""
# Dispatch .web URL to web module
if path == "/.web" or path.startswith("/.web/"):
return self._web.post(environ, base_prefix, path, user)
return self._web.post(environ, base_prefix, path, user, *args, **kwargs)

return super().do_POST(environ, base_prefix, path, user, remote_host, user_agent)
return super().do_POST(environ, base_prefix, path, user, *args, **kwargs)


def format_address(address):
Expand Down