07 December, 2011
By lobo
Filed under v4.1, Documentation, Sprints

Continuing our amazing productivity during sprints, we introduce our 9th and final sprint of the year. This sprint is being held at the offices of De Goede Woning in Netherlands from Dec 12th - Dec 16th. A big thanks to the sponsors  - De Goede Woning - for offering facilities, bosworX for installing WiFi and to Erik H and Erik B from EE-atWork for sponsoring the food, drink and accommodations.

This sprint we are trying something a bit different. In addition to the folks gathering in the NL, we will have a virtual sprint going on at approx the same time on the #civicrm IRC channel. Considering we have developers spread across different time zones (europe, india, US east coast, US west coast, new zealand), we should be going pretty good around the clock :) We'll have a virtual...

Read more
29 November, 2011
By johns
Filed under CiviCRM, Sprints


Late last month, I attended a two-day code sprint in New York for CiviCRM, the free software constituent relationship management system. I want to say a few words about it because I thought it was a great experience, and a good model for other free software projects to follow (many already do!).

CiviCRM is a "graduate" of the FSF's High Priority Projects list. A system for nonprofits to organize their fundraising and communicate with supporters had been on the list for quite a while, because this was an area where many people told us they were still forced to use proprietary software.

Last year, we evaluated CiviCRM and concluded that it had achieved the set of features and level of stability that meant it could fill this need. At that point, the...

Read more
06 October, 2011
Filed under Sprints

There will be a CiviCRM Euro code sprint in The Netherlands from 12 - 16 December 2011, and you can register here

The idea is to have as many community members present so we can achieve lots and make all of us happy!
Office space will be provided at no cost by De Goede Woning (thank you!), wifi will be provided at no cost by Bosworx (thank you), accomodation will be provided at no cost by either De Goede Woning or EE-atWork (depending on number of participants) and EE-atWork will sponsor food and drinks. We do expect you to pay for your own travel expenses, if this a problem for you please contact us!

You can take part for any number of days, and you will find a list of topics here: http://forum.civicrm.org/index.php/topic,21702.0.html Please add the topics you are interested in! The sprint will be primarily a code sprint,...

Read more
05 September, 2011

Over the past few years the administration menu has grown quite a bit. Although I use it quite often, I find that I'm sometimes unsure where to look for a particular configuration option. We've heard the same comments  from both experienced and new users - so Xavier Dutoit and I thought it would be a good idea to take a stab at re-working the menu structure. The goals of the re-organization are:

  • reduce confusion - especially understanding the differences between Customize, Configure and Manage
  • reduce the # of clicks to get to any admin option
  • clarify language a bit

During the recent code sprint in the UK, we had a chance to do a "card sort" on the admin menu with Jamie McClelland from Progressive Technology Project. We came up with a proposed re-organization, and then tested it with the book sprint team by presenting the top level categories and  asking each person to note down the category where they would expect a...

Read more
02 September, 2011
By Dave D
Filed under CiviCase, Sprints

One of the items we didn't get to at the code sprint was a quicksearch by id that bypasses search results pages and takes you directly to the page in question, e.g. a case id or a contribution/invoice id.

I ended up just coding a drupal block that was client-specific that just searches for case id but that some people might find useful. You can find it at http://svn.civicrm.org/php/trunk/drupal/modules/physicianhealthbc/physic... and just look at the last 4 functions in that file.

Optionally you can also add in some CSS to make the block look/fit better:

#block-physicianhealthbc-0 div#edit-caseid-wrapper {

31 August, 2011
By lobo
Filed under v3.4 and v4.0, CiviCRM, Sprints

We've been having a great gathering and an incredibly productive code sprint at wonderful Cawthorpe, UK. Thanx to Dave Moreton from Circle Interactive for organizing the logistics and making this event possible.

Over the past few weeks, at least 6 people have asked a very similar question on the forums. I want to extend the results from the Contact / Contribute / Member search form and display these fields instead of my least favorite fields. For example, users want to see the organization and job title of their contacts in the search form instead of country and post code. Or the total amount someone has contributed to the organization as part of the contribution search results. We had a few ways of doing this, but not very elegant.

I wanted to address and solve this during the code sprint. I looked at the code and initially came up with two hooks: one for the search headers and one for the search results....

Read more
29 August, 2011
By kurund
Filed under Documentation, Sprints
It's been amazing code and book sprint in UK, here are some of the moments.

Read more
29 August, 2011
By totten

Several CiviCRM users have expressed an interest in managing CiviCRM activities with a smooth, interactive calendar screen.  Since calendaring can be a complex topic, we've put together a basic, working calendar to facilitate discussion.  The prototype resembles the calendar included in other relationship-management tools:

Calendar screenshot

The calendar is implemented in three pieces: (1) the excellent jquery-week-calendar plugin provides a rich Javascript interface for dragging and dropping calendar items, (2) arms_recur provides an API for creating recurring activities, and (3) example_calendar integrates these pieces into the CiviCRM interface.

If you think that a rich calendar interface would improve CiviCRM, then please give the prototype a...

Read more
29 August, 2011
By jamie
Filed under API, Sprints

If you've ever configured a schedule task (aka cron job) for CiviCRM, you know the routine. You have to look up the username and password for a user in your database that has database permissions, you have to find a really long mess of characters known as your site key, you have to find the proper name of the job you want (like UpdateAddress.php or civimail.cronjob.php) and then you must string them all together in precisely the right way to make the cron job.

What a tedious drag.

To lay the ground work for the Consolidated Cron Make it Happen, which will make all this much easier to setup, we're first doing some major re-organizing of the underlying code.

Currently, all of the code for running these tasks are independently stored in one-off scripts in the bin directory. This organization makes it very difficult to run the code in different contexts. For example, if you are using drush, it would be convenient to be...

Read more
28 August, 2011
By Dave D
Filed under CiviCase, Sprints

On a system with roughly 25,000 activities, running on a dedicated server, the case dashboard would take over a minute to load. Other orgs have reported similar problems, and in at least two cases the consultants simply removed the upcoming/recent sections from the dashboard since it was just too slow.

Taking for example the upcoming section, on the server above the query would take about 26 seconds. With some optimization, it now takes less than 1 second.

In this query the issue is that we are trying to display some information from a specific activity (the next scheduled activity within 14 days) inline with case data, and you need to remove possible alternate possibilities from the results. Removing the duplicates means re-joining back onto the activity table. You also have to re-join a third time in order to get additional fields from the activity record, since if you try to do this at the same time as using group by, you potentially get fields returned from...

Read more