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 ! 🙂

11 réflexions sur « 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).

  2. Sur le papier ça à l’air de marcher, mais je viens de découvrir que mon hébergeur (Gandi avec Simple hosting) ne prend pas en charge le WebDAV. Donc c’est fichu… il va falloir trouver autre chose.

  3. Bonjour,
    Pour ma part la perte de couleurs qui m’embête avec DAVdroid par rapport à la synchro Google est celle de chaque rendez-vous.
    Par exemple si j’ai un rdv bleu = travail, un vert = loisir, en synchronisant avec DAVdroid ils sont tous les 2 de la couleur par défaut du calendrier.

    Pour le moment je synchronise l’agenda avec le serveur Google, mon but était surtout de désinstaller le Play Store qui (bizarrement) est utile à la synchro du calendrier! Et je ne récupère pas non plus les jours fériés ou les numéros de semaine comme calendriers du serveur, il n’y a qu’un choix possible.
    Un moyen de récupérer les couleurs de chaque évènement et les autres calendriers avec DAVdroid?

    1. Salut,
      Concernant la couleur des évènements, tu peux aller voir cette page :
      https://www.davdroid.com/faq/setting-event-colors-crash/
      On y mentionne une option dans les paramètres du compte à vérifier (« Couleur associée aux événements »), mais aussi des problèmes avec Google Calendar… Le lien vers la discussion est peut-être intéressant pour toi.
      Pour les jours fériés, il existe des calendriers hors Google que tu peux importer.
      Enfin, pour les numéros de semaine, ce serait plutôt dans l’application Calendrier qu’il faudrait chercher une option, ce n’est pas un truc qu’on importe à priori.

      Plus généralement, je ne comprends pas trop ton idée : tu veux toujours synchroniser ton calendrier avec Google, mais tu veux supprimer le Playstore ? En fait tu veux supprimer ton compte Google, c’est ça ? Sinon supprimer uniquement l’application Playstore, je ne vois pas trop l’intérêt ni le but recherché (ni même la faisabilité si tu utilises le système android d’origine de ton tél).

      1. Ce n’est pas vraiment le lien, ça ne plante pas pour moi, juste les couleurs disparaissent.
        Les numéros de semaine sont bien aussi un calendrier chez Google à importer. Enfin tant pis, je crois que je vais rester tel quel….

        Pour la raison, oui, je veux supprimer le Play Store, je l’avais déjà fait depuis 3 mois mais l’agenda ne synchronisait plus! Et j’ai mis un moment à comprendre pourquoi!
        Non, je ne veux pas supprimer mon compte Google. Je veux simplement supprimer l’application Store pour gagner du stockage et de la mémoire vive parce que je suis juste sur les 2. C’est tout à fait faisable, elle est lourde et inutile, les applis sont dispo en .apk facilement sur le Web (sur ApkMirror, ApkPure, Uptodown, etc…).
        En plus maintenant j’ai ce qu’il me faut, je n’ai rien installé depuis des mois. 🙂

  4. Ma tablette est « rootée » depuis toujours, je sais faire cela. Je demandais juste de l’aide pour ces couleurs, c’est en cherchant cela que je suis tombé sur cet article. 😉
    Enfin merci quand même, bientôt une nouvelle tablette donc plus de problème de mémoire, même si c’est toujours bien de se passer de ces applis Google qui nous espionnent!

    1. Oui, j’ai répondu à côté, désolé.
      Moi ce que je ferais, c’est d’essayer une autre appli « CalDAV Sync’ pour voir si le problème persiste. Le problème vient peut-être de Google.
      Ensuite, si cela fonctionne avec une autre appli, je poserai la question sur le forum que je t’ai indiqué (en anglais).
      Personnellement, j’utilise plusieurs calendriers, un pour chaque type d’activité, et chacun a sa couleur.

      1. Alors d’après un sujet (le site marche mal peut-être lui qui est dans mon historique https://forums.bitfire.at/topic/1058/single-event-colors), il semble que Gogole n’indique pas les couleurs des rdv de la manière standard, et donc Davdroid récupère bien les couleurs mais ça ne fonctionne pas avec le stockage de l’agenda Android.

        Je n’ai pas trouvé de réponse bien fiable mais c’est ce que j’ai compris…
        Merci pour ton aide.

Laisser un commentaire

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