@kjod kjod released this Apr 24, 2018 · 59 commits to master since this release

Assets 2

Added mem cache
Fixed endpoint errors
Added region to aggregation endpoints

@zemanel zemanel released this Feb 19, 2018 · 90 commits to master since this release

Assets 2

@VincentVW VincentVW released this Nov 9, 2017

Assets 2



  • add find and replace task to dataset queue

  • provide all transaction types in aggregation options on /transactions/aggregations/

  • don't delete activities on deleting the dataset


  • aggregation currencies when both activity and child has values

  • remove uniqueness from dataset.name

@VincentVW VincentVW released this Oct 13, 2017 · 8 commits to release-3-maintained since this release

Assets 2


No breaking changes (decimal upgrade), just minor features and bug fixes:

  • Update codelist models to accept more characters on codelist names (since the IATI registry changed some names)
  • Also provide a activity level aggregation on transaction type 5,6,7,8,9,10,11 ( we previously only had that for transaction type 1,2,3,4)
  • Bugfix in force parse tasks
  • Bugfix in the requirements (django-extensions had an invalid dependency on six (it does not work on six 1.11.0). Fixed that by adding six 1.10.0 to OIPA's requirements
  • Add task for find and replacing source urls in case users want to easily switch their URL's to an internal URL for testing new IATI sources.

@bryanph bryanph released this Feb 19, 2018 · 286 commits to master since this release

Assets 2

Many breaking changes in this release. The main goal of this release is to expose all the data and methods in API's so that it can be used in IATI Studio and other potential use cases.

TODO: link to docs in "main features"

Main features:

  • Activity CRUD API
  • Organization CRUD API
  • separated validation methods for Activity and Organization fields
  • Full export for Activity and Organization
  • Publishing to IATI registry is now possible
  • OIPA now exposes a task queue for IATI exports
  • OIPA now provides a "docstore" which indexes documents like pdf's, xsd etc for full-text search.

Breaking changes:

  • Activity id has been changed from an IATI identifier to an incrementing id
  • Organization id has been changed from an IATI identifier to an incrementing id
  • All migrations have been purged due to these changes, all instances should run migrations from scratch again.
  • reporting_organisation in the activity API now points to the Organisation model instead (through publisher.organisation)

@VincentVW VincentVW released this Nov 23, 2016 · 747 commits to master since this release

Assets 2

Bugfix release. Changelog:

-UI fix task queue
-GenericForeignKey related_object Django 1.10 bugfix
-Minor parsing bugfixes

@VincentVW VincentVW released this Nov 6, 2016 · 767 commits to master since this release

Assets 2


No breaking changes (decimal upgrade), just minor features and bugfixes:

  • Django upgraded to version 1.10.x (possible cause of regressions, regression checked on some sites running on OIPA + most should be covered by unit tests, no regressions found any longer)
  • Task queue scheduler fixed
  • Task queue UI improved
  • Task queue "Root (traceable) activities update" task fixed
  • Remove deprecated non-IATI indicator functionality
  • Make CSV export compliant with Excel
  • By default, narratives without a language (nor default-lang) are not parsed. Added setting DEFAULT_LANG to be able to change that per instance. (example usage: DEFAULT_LANG = 'en')
  • Link doclink in admin area to documentation on readthedocs
  • Make single activity update also parse post save actions, to be able to use the single activity re-parse in production instances
  • Add config files for usage with ubuntu 16.04 LTS
  • Fix bug in iati_synchroniser, to limit the dataset title to 254 chars
  • Add initial version of a result aggregation endpoint via <oipa_url>/api/results/aggregations/
  • A couple more minor bugfixes that shouldn't cause regression.

@VincentVW VincentVW released this Jul 31, 2016 · 820 commits to master since this release

Assets 2

Minor regression bugfixes between release 2.2 - 3.1

@VincentVW VincentVW released this Jul 19, 2016 · 837 commits to master since this release

Assets 2

IATI 2.02 parsing

All 2.02 fields are now supported in the parser. Both Activity and Organisation standard.

Extra search functionality

Up until now the search would only return full word matches. The extra search type startswith was added and can be used through the parameter q_lookup.

q_lookup options; 'exact' (default), 'startswith'.

Budget aggregation endpoint

Budget aggregations should now be performed on the new budget aggregation endpoint at <oipa_url>/api/budgets/aggregations/

The aggregation key to get budgets was changed from budget to value, to be consistent with other aggregation endpoints.

Parser validation improvements

The validation used to raise the same error on all validation errors. It now raises the correct errors with clear messages and those are exposed through the notes fields on the <oipa_url>/api/datasets/ and <oipa_url>/api/datasets/aggregations/ endpoints.

Activity provider activity tree endpoint (for traceability, alpha)

A new sub-endpoint was added to the activity detail endpoint.

<oipa_url>/api/activities/<activity_id>/provider-activity-tree/ returns the upward and downward provider-activity-id traceability tree of this activity.

This tree could be used for showing funding / funded activities. This endpoint is a first effort, it might change heavily in later releases.

Other changes

There's some filters added, these are added to the API docs and can be found there.

API changes

Endpoint Field Changes
/activities/ document_links -> title Title changed from plural to singular (returns an object instead of a list now)

Plans for next releases

  • Parser performance improvements
  • Conversion on activity level aggregations (USD/EUR/GBP/CAD/JPY/XDR)
  • More features on traceability functionality
  • Organisation endpoint fully implemented in the API
  • Activities POST API
  • Organisation POST API
  • Trigram search indexes research (supported from Django 1.10 on)

@bryanph bryanph released this May 30, 2016 · 972 commits to master since this release

Assets 2

New documentation

Documentation for OIPA can now be found at http://docs.oipa.nl/en/latest/

New Location Endpoint

A new location endpoint can be found at https://dev.oipa.nl/api/locations/

Currency conversion

You can now get results from the transaction endpoint in one of the following currencies:

  • USD
  • EUR
  • GBP
  • CAD
  • JPY
  • XDR

If you have another currency that you would like to be able to convert to, let us know in an issue.

To convert to one of these currencies, use the convert_to parameter in the transaction aggregation endpoint.

IATI export

You can now export IATI XML from the admin interface in the IATI Sources section. This exports IATI XML as stored in OIPA.

Organisation standard

Organisations reported in the IATI organisation standard are now parsed alongside the activities. Also, a corresponding endpoint has been created: https://dev.oipa.nl/api/organisations/

The organisation endpoint only returns organisations found in the organisation standard IATI files or as reporting organisation in the activity IATI files. The endpoint only returns organisation_identifier and name fields for now. Participating organisations are not added as organisation for the reasons of non uniqueness of refs / names.

New Transaction Aggregation Endpoint

Transaction aggregations should now be performed on the new transaction aggregation endpoint at <oipa_url>/api/transactions/aggregations/

Budget aggregations should continue to be done on the activity agregation endpoint at


Aggregation changes/renaming:

*All transaction aggregations moved to the new transaction aggregations endpoint (see previous header)
*The field name of the item grouped by in aggregations is now always the same as the group_by name.
*The aggregation keys were changed for consistency. The new names can be found on the /transactions/aggregations/ page.
*The count aggregation on the Transactions endpoint returns a count of the transactions in the aggregation. To get the activity count activity_count can be used on the aggregations parameter.
*The sector/country/region aggregations are now percentage weigthed by default, hence the following group_by's are deprecated:

Release 2.2 Release 3.0
recipient_country_percentage_weighted_incoming_fund incoming_fund (group by recipient_country)
recipient_country_percentage_weighted_disbursement disbursement (group by recipient_country)
recipient_country_percentage_weighted_expenditure expenditure (group by recipient_country)
sector_percentage_weighted_incoming_fund incoming_fund (group by sector)
sector_percentage_weighted_disbursement sectordisbursement (group by sector)
sector_percentage_weighted_expenditure expenditure (group by sector)

Activity endpoint filter renaming:

Release 2.2 name Release 3.0 name
related_activity_recipient_sector related_activity_sector
related_activity_recipient_sector_category related_activity_sector_category
activity_aggregation_budget_value_gte total_budget_value_gte
activity_aggregation_budget_value_lte total_budget_value_lte
activity_aggregation_disbursement_value_gte total_disbursement_value_gte
activity_aggregation_disbursement_value_lte total_disbursement_value_lte
activity_aggregation_incoming_fund_value_gte total_incoming_fund_value_gte
activity_aggregation_incoming_fund_value_lte total_incoming_fund_value_lte
activity_aggregation_expenditure_value_gte total_expenditure_value_gte
activity_aggregation_expenditure_value_lte total_expenditure_value_lte
activity_plus_child_aggregation_budget_value_gte total_hierarchy_budget_value_gte
activity_plus_child_aggregation_budget_value_lte total_hierarchy_budget_value_lte
activity_plus_child_aggregation_disbursement_value_gte total_hierarchy_disbursement_value_gte
activity_plus_child_aggregation_disbursement_value_lte total_hierarchy_disbursement_value_lte
activity_plus_child_aggregation_incoming_fund_value_gte total_hierarchy_incoming_fund_value_gte
activity_plus_child_aggregation_incoming_fund_value_lte total_hierarchy_incoming_fund_value_lte
activity_plus_child_aggregation_expenditure_value_gte total_hierarchy_expenditure_value_gte
activity_plus_child_aggregation_expenditure_value_lte total_hierarchy_expenditure_value_lte

Transaction endpoint renaming

Release 2.2 name Release 3.0 name
activity activity_id
activity_related_activity_id related_activity_id