Thursday, October 19, 2006 - 15:19
Written by

We've been working on the Branner Project and writing code to help analyze the applications and process them in a suitable manner. The application collects a fair amount of data across multiple pages and as such is not very conducive to reading on the web.

We wanted to analyze the data in Excel. The database is relational and hence hierarchical. CSV is not a great format for this purpose. So we wrote a CiviCRM -> XML converter and got all the data we needed in a nice easy to understand / parse xml. We then used a PEAR package (Spreadsheet_Excel_Writer) on windows to convert the xml to a set of excel worksheets. As part of this package we also included the contact_id, which allowed us to import results back into CiviCRM using the contact_id

We also needed to print and distribute PDF versions of each completed application. We explored quite a few open source packages and did not find any that met our needs. We decided to splurge on PDFLib and using the PDFlib blocks feature we were able to integrate PDF generation via CiviCRM. The PDF library (CRM_Utils_PDFLib) basically gets the xml representation of an application, flattens the xml representation and invokes the PDFLib api. Using a consistent naming convention and using them in all places made this job signficanly easier. You can create your template using Adobe Acrobat tools along with the PDFLib plugin and use the "templated pdf" to generate final versions of the student application.

We tested both acl's and the batch update in production on a relatively large data set on this project, and are relatively pleased with these features. ACL still needs a fair amount of work to make them production ready for v1.6

We also started work on The Mcconnell foundation project. This is fairly similar in scope to the Quest project and was kinda nice to see how quickly we could crank it out :)