Mise à jour DAVdroid et perte des couleurs des calendriers

DAVdroid Récemment, F-Droid m’a proposé plusieurs mises à jour, dont DAVdroid, l’application qui me permet de synchroniser mes contacts et mes agendas entre le PC et le smartphone (via un serveur Baikal, voir cet article).

C’était la version 1.0, toujours un grand moment dans la ‘release’ de logiciels, surtout dans le monde open-source : c’est le signe que la version a atteint une certaine maturité. Bref, la mise à jour se passe bien, et je note que l’interface a été grandement revue : material design,  etc… Super !

Mais un petit tour dans mon agenda me montre que la couleur spécifique de chaque agenda a été perdue : tous les agendas ont désormais la même couleur. Rien de très grave, mais c’est quand même bien pratique visuellement de pouvoir différencier les différents agenda (perso, jours fériés, vacances, etc…).

J’utilisais une application Calendar Color pour définir une couleur spécifique à chaque agenda. J’ouvre cette application, remets les couleurs, mais en retournant dans l’agenda, je me rends compte qu’à la première synchronisation, les couleurs sont à nouveau perdues ! 🙁 Il va falloir investiguer…

Après quelques recherches sur la FAQ de DAVdroid, la situation se complique un peu : DAVdroid utilise en fait les couleurs envoyées par le serveur, et si ce n’est pas le cas, il affiche une couleur par défaut (vert). Dans ce cas, ils conseillent d’utiliser Calendar Color ! Hélas, il semble bien qu’avec cette dernière version, cela ne fonctionne plus. Et on peut difficilement faire passer cela pour un bug…

Je me retourne alors vers le serveur Baikal : j’utilisais la version 0.2.7 (celle qui est disponible sur la page officielle), et qui ne permet pas de définir une couleur pour les agendas. Par contre, sur la page Github, on peut voir d’autres version plus récentes, en l’occurrence la v0.4.4 à ce jour. Et en regardant le Change Log, je vois que depuis la version v0.3, Baikal permet de définir une couleur pour chaque calendrier.

C’est parti, il faut donc faire la mise à jour de mon serveur, c’est la meilleure décision à prendre : cette page explique comment faire, et c’est assez simple, du même genre qu’un mise à jour WordPress. Après les instructions de sauvegarde habituelles (répertoire, base SQL), il faut télécharger la nouvelle version (précédemment localement dézippée) sur le serveur, en prenant soin de ne pas toucher au répertoire Specific. J’ai fait ça en FTP, et j’ai  tout simplement supprimé le répertoire Specific de la nouvelle version avant de lancer le transfert.

Ensuite, il y a une petite erreur dans les instructions : il est demandé d’aller sur la page d’administration du serveur et de suivre les instructions :

Open the administration panel on the server. Usually this is something like http://dav.example.org/baikal/admin/.

En réalité, le bon chemin est celui-ci : http://dav.example.org/baikal/html/admin/

Comme vous pouvez le voir, un répertoire ‘html’ a été ajouté dans l’URL. À ceci près, tout se passe de manière transparente, la nouvelle version est installée automatiquement, et l’on peut désormais définir une couleur pour chaque calendrier :

Définir une couleur pour le calendrier

Mais comme également indiqué,  il faudra aussi modifier les clients (que ce soit TH/Lightning sur le PC, ou DAVdroid sur le smartphone), car les chemins ont également été modifiés de la même façon…

Autre information : si auparavant on utilisait cal.php pour les calendriers et card.php pour les contacts, il existe maintenant dav.php, qui gère à la fois les calendriers et les contacts. De plus, cal.php et card.php sont appelés à disparaître dans les futures versions. Autant passer à dav.php dès maintenant.

Côté serveur,  c’est donc terminé, passons côté clients :

DAVdroid : il faut supprimer le ou les comptes existants (j’en avais un pour les contacts, un autre pour les calendriers), et en récréer un seul en utilisant dav.php ; penser à décocher la case « Authentification préventive », car Baikal utilise l’authentification Digest.

Créer un compte DAVdroid

Et voilà, après la connexion, tout a été retrouvé et est élégamment affiché : c’est beaucoup plus simple qu’avec les versions précédentes, où fallait créer deux comptes, un pour les agendas, un autre pour les contacts.

Détail du compte DAVdroid

Thunderbrid : Côté Thunderbird/Lightning, il va falloir aussi recréer les agendas, car on ne peut pas modifier (il y a peut-être un fichier à éditer, mais je ne le connais pas, et l’interface graphique ne l’autorise pas).

Commencer par exporter les agendas existants au format .ics sur le PC (au cas où, mais je n’ai pas eu à m’en servir). Puis créer les nouveaux agendas en utilisant la syntaxe suivante :

Créer un nouvel agenda

pascal est le nom du compte côté serveur Baikal, et vacances est le ‘Calendar token ID’ de l’agenda (et pas le Display name, voir la capture Baikal plus haut : sensibilité à la casse oblige).

À priori, rien n’a été perdu, vous retrouvez rapidement toutes vos entrées. Le seul problème que j’ai eu est pour les événements récurrents : je n’en ai qu’un seul, mais il avait disparu côté smartphone. Le problème est connu (côté Baikal), et apparemment compliqué à corriger. Le plus simple est donc de le supprimer dans TH/Lightning, et de le recréer.

Et voilà, j’ai maintenant une version récente de Baikal, et une version DAVdroid grandement améliorée. C’est bien quand tout se passe bien comme ça ! 🙂

2 réflexions au sujet de « Mise à jour DAVdroid et perte des couleurs des calendriers »

  1. Bonjour,
    Mon cas est plus triste car après suppression et réinstallation de DAVDroid quand je vais dans le carnet d’adresse pour afficher le bon répertoire… il ne m’est pas possible d’ajouter mon carnet d’adresse !
    Avez-vous déjà rencontré ce phénomène et quelle solution avez-vous pour le résoudre ?
    Bien cordialement,
    Madiwas

    1. Désolé, je ne comprends pas ton problème : quelle est la configuration (serveur baikal ?), et de quel répertoire parles-tu ? (on parle plutôt d’URL ou adresse pour la configuration).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *