Add calendar-description, addressbook-description to the meta data

When a CalDAV collection has calendar-description set and vdirsyncer
synchronizes the “meta” data, synchronize also the calendar description.

-- likewise for addressbook-description and calendar-order
This commit is contained in:
Дилян Палаузов 2020-06-27 17:00:08 +00:00
parent 68ff37e677
commit 50cb2def73
4 changed files with 21 additions and 4 deletions

View file

@ -9,6 +9,10 @@ Package maintainers and users who have to manually update their installation
may want to subscribe to `GitHub's tag feed
<https://github.com/pimutils/vdirsyncer/tags.atom>`_.
- Add "description" and "order" as metadata. These fetch the CalDAV:
calendar-description, CardDAV:addressbook-description and apple-ns:calendar-order
properties.
Version 0.16.8
==============

View file

@ -116,9 +116,12 @@ Pair Section
- ``metadata``: Metadata keys that should be synchronized when ``vdirsyncer
metasync`` is executed. Example::
metadata = ["color", "displayname"]
metadata = ["color", "displayname", "description", "order"]
This synchronizes the ``color`` and the ``displayname`` properties. The
This synchronizes the ``http://apple.com/ns/ical/:calendar-color``,
``DAV:displayname``, ``CalDAV:calendar-description``,
``CardDAV:addressbook-description`` and
``http://apple.com/ns/ical/:calendar-order`` properties. The
``conflict_resolution`` parameter applies here as well.
.. _storage_config:

View file

@ -56,8 +56,11 @@ have any file extensions.
known from CSS, for example) are allowed. The prefixing ``#`` must be
present.
- A file called ``displayname`` contains a UTF-8 encoded label that may be used
to represent the vdir in UIs.
- A file called ``order`` inside the vdir includes the relative order
of the calendar, a property that is only relevant in UI design.
- Files called ``displayname`` and ``description`` contain a UTF-8 encoded label/
description, that may be used to represent the vdir in UIs.
Writing to vdirs
================

View file

@ -728,6 +728,8 @@ class CalDAVStorage(DAVStorage):
_property_table = dict(DAVStorage._property_table)
_property_table.update({
'color': ('calendar-color', 'http://apple.com/ns/ical/'),
'description': ('calendar-description', 'urn:ietf:params:xml:ns:caldav'),
'order': ('calendar-order', 'http://apple.com/ns/ical/'),
})
def __init__(self, start_date=None, end_date=None,
@ -843,3 +845,8 @@ class CardDAVStorage(DAVStorage):
</C:addressbook-multiget>'''
get_multi_data_query = '{urn:ietf:params:xml:ns:carddav}address-data'
_property_table = dict(DAVStorage._property_table)
_property_table.update({
'description': ('addressbook-description', 'urn:ietf:params:xml:ns:carddav'),
})