Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
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
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.
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"
- 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.
- 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)
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>
- A couple more minor bugfixes that shouldn't cause regression.
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 options; 'exact' (default), 'startswith'.
Budget aggregation endpoint
Budget aggregations should now be performed on the new budget aggregation endpoint at
The aggregation key to get budgets was changed from
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
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.
There's some filters added, these are added to the API docs and can be found there.
|/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)
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/
You can now get results from the transaction endpoint in one of the following currencies:
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.
You can now export IATI XML from the admin interface in the IATI Sources section. This exports IATI XML as stored in OIPA.
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
Budget aggregations should continue to be done on the activity agregation endpoint at
*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
*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
*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|
Transaction endpoint renaming
|Release 2.2 name||Release 3.0 name|