Making extensions easier to find and publish

Over at the Extensions Working Group, we’re making careful progress toward improvements to the extension ecosystem, aiming to make it easier for all of us to do what we want with extensions: End users and site admins: easier to find, select, and install the right extension;  Extension developers: easier to publish extensions and set clearer expectations for support and maintenance, and easier to avoid duplicating existing extensions; Community volunteers: easier to conduct extension reviews and help them get qualified for automated distribution.

As an early step in those improvements, I’d like to point you to the relatively new Extensions Lifecycle documentation, which describes the process of publishing extensions through the CiviCRM ecosystem, along with clear definitions of concepts like stewardship (who’s managing this extension?), project maturity (exactly what is meant by saying an extension is “experimental” or “stable”?), and more.

More control for "current employer" fields in public forms

CiviCRM provides a "current employer" field for all individual contacts, and that field does some cool stuff. Problem is, when this field isn't an autocomplete (as in public-facing profiles), you're leaving the door open for typos and abbreviations, which will lead to duplicate records being created for an employer. Wouldn't it be cool to prevent that? Here's an extension that does that and more.

Recording multiple payments on one contribution, and dividing one payment among multiple contributions

A member sends several separate payments to cover outstanding dues on a single purchase, like an expensive membership or a table at an event. How are you going to record this?

A conference participant selects “Pay Later” on several different event registrations, and later wants to pay them all in a single credit card transaction.  How are you going to support this?

New Module for Drupal: CiviCRM Private Report

A couple of weeks back I wrote here some thoughts about letting users manage and modify their own private collection of reports without actually having site-wide "administer reports" privileges. I've since gone ahead and written up the code to make this happen, and I would love to get feedback from the community on its usefulness and ways to improve it.

Allowing users to modify reports without going crazy

A client of mine at NS Web Solutions is looking to solve a problem involving the way their users need to handle reports.  I think this might be common enough to be relevant for others, so here's a bit about what we're planning to do.
 
Note: This is based on a short forum thread here: http://forum.civicrm.org/index.php/topic,22307.msg93500.html
 

Publishing Activities as an iCalendar Feed

At NS Web Solutions, we recently got a chance to work on a cool project for one of Pogstone's clients. Thanks to this client's generosity, we expect soon to release a Drupal module which will provide a feed of each user's assigned activities in iCalendar format, ready to be subscribed to from with Google Calendar and/or Outlook.
 

Key features

Here's a short list of what you can expect from this module:

Building a detailed event management system (and some other cool stuff) with CiviCRM

Note: You can see videos of these features in action on NS Web Solutions' case study page for this project.

Update: Some of the code for these features is available on GitHub. See my comment below.

 

CiviCRM offers an incredible set of features straight out of the box. At NS Web Solutions we're sometimes asked to provide a CRM system with some pretty unique features, and we've found that by relying on CiviCRM's wide array of hooks and customization features, there's a lot that can be done.

 
We recently completed a project for a client that conducts many events per year in which all participants are fully sponsored to attend, including airfare, airport pickup, hotel accommodations, and meals. To complicate the equation, not all participants are given the same package; variations include hotel room type, in-room amenities, class of travel, length of stay, type of airport pickup, and more.
 
Seemlessly integrating all this data into CiviCRM was critical. We built a custom Drupal module implementing CiviCRM's wide array of hooks, in addition to a number of custom data fields, to achieve this.

Adding "sort by columns" to Reports

This has come up a couple of times before. According to my chat with Lobo today, not much is happening on this front. Since our client at Two Mice and a Strawberry has a need for this, we're diving in head first this week. Hopefully we'll have something that's worth contributing to core. Please comment below if you have any thoughts on the ideas presented here.

Adding Privacy and Comments to CiviCRM Notes

At Two Mice and a Strawberry, a client has asked for some customization of the Notes features for Contacts. It happens that these features may also be useful for other objects that use Notes, but at the moment we are primarily interested in getting this working for Contacts. In the CiviCRM forum, I had a short exchange with Lobo about the two primary improvements we're looking at:

Allowing non-admins to find and merge duplicates

As of now (version 3.1.5), CiviCRM limits finding and merging of duplicate records to users with the "Administer CiviCRM" permission. A recent thread on the forums points out that some organizations will want to allow that privilege to non-administrative users. Having a need for this myself, I'm looking for the best way to do it. If a reasonable solution can be found, I'm hoping the changes will make it into core at some point in the future.
randomness