Hi guys! I have finished before going holidays a first probe for the Planner calendar backend for Evolution. Advice by rodrigo and with the last experience in evolution resources import for planner and the OGo connector, it hasn't been a very hard target. You can see the integration screenshot in: http://sinetgy.org/~acs/planner-evolution.png and the code is attach to this email. You need to apply the patch to the current evolution-data-server, and also, extract the "tar.gz" file in the e-d-s sources. In the "tar.gz" is located the new files: calendar/backends/planner: the real backend servers/planner: a little program to add the souces lines in GConf so Evolution can find the new backend data. Actually, the planner file the backend uses is hard coded and it is called "/tmp/test.planner". You need this file also in order the backend can show you planner tasks. I think it isn't worth the time to spend testing the new backend, but I want to show it to the world before going out for 2 weeks in holidays. Some details about how I have done it: 1. Take a current backend as reference: http 2. I have removed all the soup code, and the cache code and added lots of new code. Maybe the right thing to do is to have a skeleton to be filled when you want to start a new backend. 3. I have added to the backend the new libraries I need, libplanner, and add it to the building environment for e-d-s. 4. The backend is very easy in concept: you need to create something to translate what you have (MrpTask for Planner) to ECalComponent, and store in memory the relation between this MprTask and the ECalComponent. 5. When a client ask you to open the Calendar, I open a new Planner project and load all the task for this project, converting them to ECalComponent and saving the relation in a GHashTable with uid as the key. 6. I have added to srv/server.c and srv/GNOME_Evolution_DataServerLDAP.server.in.in (I use LDAP) the entries so e-d-s server knows about a new protocol called "planner". 7. To create the sources in GConf, I have followed the create-account.c in server/groupwise/create-account.c and I have created server/planner/create-planner.source.c When I return from holidays and be in production state another time I have to: - Find where the backend will live: e-d-s CVS or planner CVS - Solve some bugs when playing in real world with the backend - Complete the MrpTask to ECalComponent conversor - Find the way to ask the user for the details for the planner source: which file or database project she want to use for the backend. - Test, test and more test :) - Other things .... It is so funny to hack in this integrarion ... :) Thanks rodrigo for your great support in the evolution project. The "diff" is against the e-d-s as it is right now (16:50 GMT+2 15/08/2004). Cheers -- Alvaro -- Alvaro <acs barrapunto com> Barrapunto
Attachment:
eds-planner-backend.tgz
Description: application/compressed-tar