Nous sommes le Lun 23 Juin, 2025 16:35
Supprimer les cookies

Ubuntu : calendrier synchro PDA avec affichage des détails

Pour une tâche précise, pour remplacer un logiciel propriétaire donné...

Sam 23 Sep, 2006 13:33

Pour remplacer Palm Desktop (qui n'est disponible que sous Windows et Mac OS) je cherche un calendrier/gestionnaire de contacts qui me permette la synchro avec un Treo 650 (Palm OS) sous Ubuntu (plus précisément Xubuntu).

J'ai essayé JPilot, KPilot, Evolution... JPilot marche du tonnerre, Evolution est plutôt bien aussi.

Mais j'ai un gros problème avec l'interface :
* j'ai besoin d'afficher les détails des rendez-vous (lieu, notes...)
* il faut impérativement que je puisse les imprimer.

-> Question :
* existe-t-il un logiciel qui satisfasse mon très haut niveau d'exigence ? ;-)
* sinon, quelle solution préconiser (bricolages d'installation - scripts etc - acceptés ; bricolages d'utilisation proscrits) ?
Alix Cazenave

Messages : 412
Géo : Paris

Mer 27 Sep, 2006 10:22

Après avoir fait un rapide tour de la question, je crois qu'il y a trois solutions possibles.


1. Solution "lourde" : utiliser un serveur groupware et SyncML.

Je n'y connais pas grand-chose. J'avais testé OpenGroupware il y a quelques années, ça m'avait l'air sérieux. Il y a certainement un client SyncML pour Palm, mais je n'en connais pas de libre. Quoiqu'il en soit, ça me parait largement disproportionné pour l'usage décrit.

Si quelqu'un de plus compétent que moi pouvait recommander une solution simple de groupware qui se synchronise proprement avec PalmOS...


2. Solution "propre" : Evolution + Gnome-Pilot ne suffisent pas, la faute à Gnome-Pilot qui ne synchronise pas le calendrier Palm (je ne sais pas pourquoi, peut-être une question de formats de date). De plus, Evolution est encore (amha) largement buggé : par exemple, sur mon poste Ubuntu, un clic droit sur une liste détaillée suffit à planter Evolution.
Multisync offre l'avantage d'être beaucoup plus modulaire, et son plug-in Evolution permet d'extraire des fichiers iCalendar du Palm. Le défaut, c'est que ça impose de fermer Evolution avant la synchro (pourquoi diable Evolution n'est-il pas capable de voir que les fichiers *.ics sont modifiés par une application externe ???). L'avantage, c'est que ça permet d'utiliser n'importe quel logiciel de PIM, je pense notamment à Sunbird... dès qu'il sera enfin stable !

Comme ni Evolution, ni Sunbird ne savent imprimer les détails des RdV dans l'agenda, il faudra recourir à un autre logiciel pour imprimer l'agenda. PhpIcalendar est simple à mettre en oeuvre, il suffit d'installer Apache + PHP sur le poste (aucune base de donnée n'est requise), mais il est un peu lourd : lors de mes tests il a fallu que je configure 64 MO de RAM pour PHP au lieu des 8 MO habituels. L'autre défaut, c'est que l'impression de l'agenda n'est pas paramétrable, le code HTML produit étant un des pires que j'aie jamais vus (aucune feuille de style, tableaux imbriqués, etc). Il y a peut-être d'autres alternatives libres à phpicalendar...


3. Solution "rapide" : garder JPilot et bricoler un script pour imprimer les détails de l'agenda.

L'interface de JPilot est un peu dépassée, mais reste fonctionnelle, et assez proche de Palm Desktop. Et surtout, ça reste la meilleure solution de synchro PalmOS sous Linux (amha). Son gros défaut, c'est l'impression des calendriers qui est véritablement catastrophique.

Heureusement, il dispose d'une commande 'jpilot-dump' qui produit une sortie facilement adaptable. Voici un petit script Python qui utilise 'jpilot-dump' pour faire une sortie HTML des 15 prochains jours de l'agenda :
Code: Tout sélectionner
# Formatage en HTML de l'agenda PalmOS, en utilisant jpilot-dump.
# C'est mon tout premier script Python... ;-)

import os
import time
import datetime
import locale

filepath = 'tmp.html'
jour = ''
heure = ''
description = ''
output = []
locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8")

# ouverture du fichier HTML
f = open(filepath, 'w')
f.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n')
f.write('<html>\n')
f.write('  <head>\n')
f.write('    <meta content="text/html; charset=UTF-8" http-equiv="content-type">\n')
f.write('    <title>Agenda</title>\n')
f.write('    <style type="text/css" media="all">\n')
f.write('      h2 { font-size: 1.2em; border-bottom: 1px solid; width: 100%; margin-top: 2em; } \n')
f.write('      dt, dd { font-size: 0.8em; margin-bottom: 0.5em; } \n')
f.write('    </style>\n')
f.write('    <style type="text/css" media="print">\n')
f.write('      body { -moz-column-count: 2; -moz-column-gap: 2em; } \n')
f.write('      dl { -moz-column-break-inside : avoid; } /* unsupported */ \n')
f.write('    </style>\n')
f.write('  </head>\n')
f.write('  <body>\n')

# recuperation du planning des 15 prochains jours
i = 0
when = datetime.date.today()
while i < 15:
   
   # recuperation des RdV pour la date courante
   jour = when.strftime("%A %d %B %Y")
   f.write('    <h2>' + jour + '</h2>\n')
   jour = when.strftime("%Y/%m/%d")
   child_stdin, child_stdout, child_stderr = os.popen3 ('jpilot-dump -D -N' + jour + ' | sort')
   output = child_stdout.readlines()

   # formatage des RdV
   f.write('    <dl>\n')
   for line in output:
      heure = line[11:16] + ' - ' + line[28:33]
      description = line[35:-2].strip()
      if heure == "00:00 - 00:00":
         f.write('      <dt>' + description + '</dt>\n')
         f.write('      <dd>&nbsp;</dd>\n')
      else:
         f.write('      <dt>' + heure + '</dt>\n')
         f.write('      <dd>' + description + '</dd>\n')
   f.write('    </dl>\n')

   # incrementation de la date
   when = when + datetime.timedelta(days=1);
   i = i + 1

# fermeture du fichier HTML
f.write('  </body>\n')
f.write('</html>')
f.close()

# affichage dans firefox
os.system('firefox ' + filepath)
La même chose peut être faite pour le carnet d'adresse et la liste des tâches. Ce type de script reste beaucoup plus rapide et simple à utiliser qu'une solution serveur. On peut facilement personnaliser l'affichage en bricolant la feuille de style.

Merci d'avance à celui qui pourra compléter ce sujet : je cherche encore la solution parfaite pour synchroniser n'importe quel terminal mobile !

[EDIT] ajout de liens et correction sur le script [/EDIT]
Dernière édition par Kaze le Mer 27 Sep, 2006 20:01, édité 1 fois au total.
Kaze

Messages : 16
Géo : Grenoble

Mer 27 Sep, 2006 18:53

Solution 3 adoptée : simple (grâce à JPilot qui fonctionne comme Palm Desktop), rapide et efficace.

Merci pour ce script magique :D
Alix Cazenave

Messages : 412
Géo : Paris

Mar 28 Nov, 2006 11:12

Petit question ... comment fait tu pour faire la synchro avec Jpilot ??
car pour ma part j'ai un TE mais je n'arrive pas a faire de synchro .
avec gnome-pilot ça marche tres bien ... mais avec jpilot j'ai rien ....
en fait le truc c'est que je ne sais pas comment faire pour tourver le port usb utilisé par le palm , gnome-pilot le trouve tout seul mais pas jpilot ...
merci d'avance pour vos infos
amicalement
Mon blog c'est www.netblog.tk

Besoin d'une boite Gmail ??
Un petit mail et le rêve devient réalité ...
gchilloux

Messages : 21

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit