Closed kkoyung closed 1 month ago
This looks great! Will test it further before creating a new release but overall great work! Please keep the contributions coming @kkoyung :) :)
This looks great! Will test it further before creating a new release but overall great work! Please keep the contributions coming @kkoyung :) :)
@bergercookie Look forward to the new release
Description
TL;DR
Old mappings:
annotations
,uuid
<->DESCRIPTION
New mappings:
uuid
<->X-SYNCALL-TW-UUID
annotations
<->DESCRIPTION
(each annotation <-> a line in description)Old mappings
If I understand the code correctly, the previous implementation uses the field
DESCRIPTION
of caldav to store meta-data of TW items.When a TW item is converted to caldav item, the
annotations
anduuid
of TW item are encoded into the following format, and stored inDESCRIPTION
of caldav.When a caldav item is converted to TW item, syncall will try to parse the
DESCRIPTION
field of caldav item from the above format to get back theannotation
anduuid
. If lines not starting with* Annotation
or* uuid
will be ignored.Problems of the old mappings
It makes the
DESCRIPTION
field of caldav unusable.When user creates a task with description on caldav side, the description will be ignored by syncall and never reached taskwarrior. (Related issue: #72)
Some caldav application like Apple Reminder shows the description right below the task summary. The meta-data in
DESCRIPTION
takes up a lot of screen space, and make the task list bloat.New mappings
In this new mappings, the
uuid
of TW item will be mapped to a non-standard iCalendar fieldX-SYNCALL-TW-UUID
, allowed by RFC 5545. Theannotation
of TW item will be mapped toDESCRIPTION
of caldav item. Each line inDESCRIPTION
is corresponding to an annotation.Remark
DESCRIPTION
in caldav may be re-ordered after modifying the text and synchonizing. It is because the annotations in TW are sorted by the modified timestamp.Type of change
Please delete options that are not relevant.
How Has This Been Tested?
test/test_data/sample_items.yaml
, and ran the tests.Checklist:
Edit: forgot to embed the screenshot