Fix interoperability issue with kolab server which uppercases all properties
ClosedPublic

Authored by dfaure on Feb 22 2019, 11:33 PM.

Details

Summary

iCal says property names are case insensitive, but kcalcore doesn't
implement that. 99% of kdepim uses uppercase property names for custom
properties, which is actually consistent with other iCal properties.

Creating a project or a context and then syncing with the kolab server
would lose the fact that it was a project or context, forcing the user
to change the type of the item again (easy for a project, impossible for a context).

I looked a bit into fixing kcalcore's CustomProperties but calling .toUpper()
everywhere sounds slow, uppercasing the keys could in theory break users of
the QMap accessor, and more importantly, is there anyone to review such a change? ;)
OTOH this commit is how the code should have been in the first place, to
be consistent with the rest of kdepim.

This commit includes automatic migration from "Project" to "ISPROJECT"

so that the change is transparent to users.
Test Plan

Newly created contexts (by the migrator or by hand) no longer disappear
after a caldav sync.

Diff Detail

Repository
R4 Zanshin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
dfaure requested review of this revision.Feb 22 2019, 11:33 PM
dfaure created this revision.
dfaure updated this revision to Diff 52371.Feb 23 2019, 11:13 AM

Heh actually we have a migrator for automating such things ;)

dfaure edited the summary of this revision. (Show Details)Feb 23 2019, 11:48 AM
ervin accepted this revision.Mar 2 2019, 10:33 AM
This revision is now accepted and ready to land.Mar 2 2019, 10:33 AM
dfaure updated this revision to Diff 52972.Mar 2 2019, 12:31 PM
dfaure edited the summary of this revision. (Show Details)

push v2 (scripted)

ervin accepted this revision.Mar 2 2019, 3:29 PM
This revision was automatically updated to reflect the committed changes.