At least once at the end of the annual fundraising campaign the campaigns team needs an export of donation data sets created during the campaign. Currently, this is done manually using a script. We can use the Reports section of the Fundraising Operation Center to enable users to download the data themselves.
Acceptance Criteria
- An additional report type is added to the Reports section of the Fundraising Operation Center ("Rohdaten").
- The existing filter functions for the start and end date as well as campaigns and keywords are applied.
- Selecting the checkbox "alle" below the campaigns and keywords select box exports all data sets within the given timeframe, ignoring what's stored as the tracking parameters.
- Unbooked, deleted and moderated donations are not exported.
- Selecting the new export type disables the button "Berechnen" and only supports downloading the data as a csv file.
- The exporter can handle requesting 500,000 rows at once.
- The export file contains the following fields:
- id
- creation timestamp (dt_new)
- status
- payment interval (periode)
- payment amount (betrag)
- payment type (zahlweise)
- newsletter opt-in (info)
- receipt opt-in (bescheinigung)
- salutation (anrede in data)
- address type (adresstyp in data)
- campaign (first part of tracking in data)
- keyword (second part of tracking in data)
- is a recurring donation (if log in data contains an item starting with "parent donation")
- banner impressions (bImpCount in data)
- total banner impresstions (impCount in data)
Implementation details
- Set query to unbuffered to prevent memory issues
- Use chunked transferring of data
- Increase timeout if necessary