New Year’s Resolution: releases for PhpReport

If you take a look to the repository history, you’ll notice that PhpReport is active, receiving patches to fix bugs and even some new features:

  • Custom templates for the most common tasks.
  • Filter for projects in project evaluation page.
  • A visual revamp, to make it look a bit prettier 😉

Tasks screen

But there is something that has been in my TODO list for too much time: simplify the installation process and start releasing the application periodically in tarballs. That will be my New Year’s Resolution 🙂 .

And by the way, Happy Holidays! 😀

PhpReport meets NavalPlan

I haven’t posted about that, but I’m also involved in the development of NavalPlan, a production management application with features to schedule projects and follow their advance graphically, controlling the costs and deviations. I have to say its dynamic Gantt diagrams are quite impressive for a web application 😉 .

NavalPlan has a work report system to store the information about the hours devoted by the employees to every task scheduled, and also provides web services to import and export those data, so it felt natural to connect PhpReport, our time tracking tool, with NavalPlan, to share the dedication data.

I’ve started writing a plugin for PhpReport to be executed right after creating a task, with the purpose of sending that task to NavalPlan using its web services. Right now it’s functional, but lacks extensive error checking. I still have to write similar plugins for the update and delete operations.

Check out the code from the remote branch navalplan-plugins in PhpReport repository:

git clone https://github.com/Igalia/phpreport.git
git checkout origin/navalplan-plugins

This is how it looks, so far 😉 :

Tasks in PhpReport

The same tasks, imported into NavalPlan as a work report

PhpReport meets Hamster

Some time ago, we realized that some igalians used Project Hamster to track their daily work, to know exactly when they started working and on what; later, that data was moved to PhpReport manually. So we thought it was a good idea integrating both applications.

We developed a patch to the development version at that time, to add some basic functionality:

  • Send a particular task from Hamster to PhpReport.
  • Send the tasks of an entire day to PhpReport.

Notice that the communication is one-way only; Hamster doesn’t notice changes done later in those tasks in PhpReport. Besides, the data model of Hamster is different, so users have to complete some missing information after sending the tasks to PhpReport. Nevertheless, that’s better than writing down everything manually…

It looks like this:

How the applet looks like login screen

And this is what you get:

Lately I’ve been thinking on how to continue the development. The code base of Hamster has changed a lot in the last months, so my patches are now basically useless… But in any case, the data models are different and I’m not very sure about the approach to take.

It seems I’m not the only one with this problem: the synchronization issue has been around for some time in Hamster bugzilla. There were different proposals, but there isn’t an agreement yet. Maybe should I develop a specific PhpReport client from scratch?

Meanwhile, I leave the code for you to check it out and give it a try:

git clone http://git.igalia.com/hamster-applet-phpreport.git
cd hamster-applet-phpreport/
git checkout origin/phpreport-gnome-2.27.91

And for compilation and installation:

./autogen.sh --prefix=/usr
make
make install

The prefix is necessary because the applet server doesn’t look into /usr/local (the default route) for new applets. And this installation will conflict with any installation of hamster-applet you could have done before.

I compiled it in ubuntu lucid (it should work for karmic too, but I couldn’t make it in jaunty) and I needed the following development packages:

python-dev
python-gtk2-dev
python-gnome2-dev
libgconf2-dev

Finally, you can launch the application in an independent window with debugging purposes, using this command:

/usr/lib/hamster-applet/hamster-applet -w