PhpReport 2017

Time for our yearly release of PhpReport! There has been a lot of activity during last year as a part of Igalia Coding Experience program. Thanks to Tony Thomas for having done a great work!

These are my highlights of the PhpReport 2.17 release:

Simplified UI for tasks

We have changed the tasks UI to give more room to the most important fields and sorted them by importance, so the most important fields are first in the tab-navigation order. The goal is to be able to fill tasks faster and more efficiently.

In particular, the new projects field is very interesting because it lets users search both by customer or project name. With this change, we have been able to remove the customer field for every task. Choice in the project field is now limited by default to the most common projects, the one users have been directly assigned to; the full list of open projects can be gathered with the special load all entry.

Simplification extends to the data model, related web services and reports. Now a project can only be assigned to one customer removing the many-to-many relation there used to be. The ability to assign several clients to the same project was barely used, and even felt unnatural in most cases, so it’s not a big loss.

Auto-save tasks

The tasks screen got the ability to auto-save changes every certain number of seconds. We have kept one exception: deleted tasks must be manually saved, and we have kept the save buttons for that purpose. This exception will be around until we have some way to undo task deletion.

Persistent templates

Templates are finally kept on the server side so they can be accessed from any browser and any computer. Their usage is also less cryptic, now a name for the template is explicitly asked upon creation instead of using the description field as a name. Finally, we added one permanent template to create a task that comprises the entire work day. It’s very useful to fill holidays in, because the length of the work day is calculated for that user and day.

User weekly goals

To better keep extra hours under control, we have added a new entry in the User work summary box in the tasks screen. The week goal entry will tell users how many hours they should work every week to finish the year with 0 accumulated hours. It updates every week, taking into account the number of hours accumulated since the beginning of the year. For example, if you worked some extra time in the last month, the weekly goal will give you a figure that is lower to your standard weekly timetable so in the end of the year the extra time is compensated.

It’s possible to define per-user weekly goals, with custom time periods and numbers of accumulated hours.

Weekly hours in a project

A new grid in the project details report will show the number of hours worked every week by project members. It is useful to keep a weekly control of the time devoted to the project.

New manager user profile

We have limited access to standard PhpReport users only to certain reports, and a new user profile called manager has been added. Manager users have the ability to access system-wide reports and details from any existing project.

And more

Days start with an empty task so you can start typing your progress right away, there are keyboard shortcuts to jump to the next or previous days, more direct access to project details reports…

Check the other many features and fixes in the release page, and enjoy PhpReport 2.17!

A new PhpReport for 2016

It’s been three years without any new release of our venerable time tracking tool, PhpReport. It doesn’t mean the project has been still during all this time; despite the slower development pace, you will find more than 80 patches in the repository since the last release, which account for 45 fixes or small features in the project.

It’s time to gather them all in a new release, PhpReport 2.16. These are the highlights:

CSV export

csv export button

All reports have now an option to export data to CSV, so they can be imported into other software. This was made with spreadsheets in mind, and I can confirm it works perfectly with our dear LibreOffice Calc.

Quick-access buttons

Quick access date form

Most reports got quick-access buttons added for the most common time periods: current and previous week, current month and year, etc.

Smarter “copy from yesterday”

The “copy from date” feature allows to copy tasks from a certain date into the current one. Its main use case is to copy everything from your previous work day, because you probably have been doing the same work, more or less during the same timetable… You can conveniently copy the tasks and just add some tweaks. The default date to copy from used to be the previous day, but you don’t usually want to copy your tasks from Sunday to Monday! Now it defaults to the previous date you have worked.


Addressed several slightly annoying behaviors to make the application more enjoyable to use. For example, when you create a project, the grid will scroll automatically to the newly added project so you can keep editing the project attributes. A similar thing happens when you have some row selected in the accumulated hours report and you load a new set of dates: the previously selected row will be kept selected and visible. Opening the project details from a report now pops up a new window so your report remains untouched when you go back to it. Inexplicably small grids now use all the screen space, and we increased the consistency among the different edition screens.

Moved to GitHub

The project sources, releases and the information previously available in the project website has been moved to GitHub, so any potential contributors will find a familiar environment if they happen to be interested in PhpReport.


I’ve bumped the version number from 2.1 straight to 2.16. The intention is to make one release per year, to guarantee some predictability regarding how and when the changes in the repository will arrive to users. You can expect PhpReport 2.17 releasing in March next year; it may look like a long time but I think it’s reasonable for a project with a low level of activity.

Looking for help!

Igalia has recently announced open positions in our Coding Experience program, and one of them is aimed to work in PhpReport. We have many ideas to improve this tool to make it more productive and powerful. Check the conditions of the program in the website if you are interested!

New release: PhpReport 2.1!

Although I’ve recently changed of scene, there’s still some love for one of the eldest tools we have in Igalia, PhpReport. I’ve been gathering some hours here and there in the last months to be able to develop and ship a new batch of improvements. I would like to highlight some of them:

  • Now we have a way to block the edition of tasks after some time. You can configure a number of days after which users will not be able to insert new tasks or modify existing ones. This will prevent that huge changes in the past affect to your numbers without notice.
  • There is also a new report for users to check their list of tasks and search among them. It gives a higher-level view of your work than the day-to-day tasks interface, while providing more detail than the user or projects details screens. There is also a complementary web service that can be accessed by external scripts. The first commit of this feature dates back from 2010, so it has indeed been stopped for too much!
  • The annoying bug in the tasks screen that prevented you from saving correct tasks under certain conditions is finally gone. And since we were at it, we have modified the notification banners to show up only once.
  • Finally there’s some documentation for system administrators beyond the installation instructions.
  • We added a new boolean field to the tasks to mark specific tasks as done “on site”.
  • Implemented some keyboard shortcuts to increase the productivity in the tasks screen. In particular, you can quick jump to a task with CTRL + 1, 2, etc., save with CTRL + S or add a new task with CTRL + N. Alternatives with ALT exists for browsers not allowing to override these specific combinations, see the corresponding section in the user documentation for details.

The list could be wider, but you can already read it in the changelog. Meanwhile, you can download the new version, or try it online [EDIT: online demo not available any more]. Enjoy!

Welcoming PhpReport 2.0, final

As it was advanced in a previous post, the list of tasks in the TODO for PhpReport 2.0 milestone was shrinking… now it’s finally complete, so I’ve made the 2.0 release available from PhpReport site.

This is the list of changes since the previous release, beta 2:

  • Written user documentation, integrated in the application.
  • Implemented a screen to create, edit and delete hour compensations.
  • Implemented a screen to create, edit and delete cities.
  • Implemented a screen to manage work calendars.
  • Upgraded Ext JS framework to the latest version in 3.x series, 3.4.0.
  • Reviewed permissions of the admin/user groups on some screens and services.
  • Reordered the menu bar, deleting the unused entries.
  • [Bug #131] Correct authorization problem related with project creation.
  • [Bug #136] Fix size of template creation and delete buttons.
  • [Bug #155] Prevent wrong calculation of project deviation.
  • [Bug #161] Prevent blank project details screen due to a null end date.
  • [Bug #168] Added holidays project to default installation.

You can see the latest version of the application in action in the public demo site, as usual [EDIT: demo site not available any more].

I’m just publishing this announcement but I already have my mind in the future, with more features, fixes and improvements. The first steps are written in the new TODO.

That’s all for now. Happy summer hacking!

A brief update on PhpReport

It’s been a long time since the last post about this tool. It was the announcement of beta 2, and a lot of things have been done in the >50 patches committed since then. Let’s review and update the TODO file of the last release:

  • Features:
    • Screen to manage cities and calendars DONE!
    • Screen to manage compensation of extra hours. DONE!
  • Documentation:
    • Write the basic end-user documentation WORK IN PROGRESS

Besides, there are bug fixes and usability improvements. All these changes can be seen in action in the public demo site [EDIT: demo site not available any more].

As you can see, there’s little left to do to announce the final 2.0 release. But that won’t be the end of the road, but a milestone to take breath and keep coding.