diff --git a/akvo/templates/reportserver/BIRT/.project b/akvo/templates/reportserver/BIRT/.project
new file mode 100644
index 0000000000..ba1010385c
--- /dev/null
+++ b/akvo/templates/reportserver/BIRT/.project
@@ -0,0 +1,12 @@
+
+
+ RSR_Results
+
+
+
+
+
+
+ org.eclipse.birt.report.designer.ui.reportprojectnature
+
+
diff --git a/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign b/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign
new file mode 100644
index 0000000000..4542f0cb2d
--- /dev/null
+++ b/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign
@@ -0,0 +1,5225 @@
+
+
+ Akvo Foundation
+ Eclipse BIRT Designer Version 4.4.2.v201410272105 Build <4.4.2.v20150217-1805>
+
+
+ queryText
+ 71
+
+
+ queryTimeOut
+ 71
+
+
+ rowFetchSize
+ 71
+
+
+ queryText
+ 298
+
+
+ queryTimeOut
+ 298
+
+
+ rowFetchSize
+ 298
+
+
+ in
+ /templates/grouped_listing.gif
+ org.eclipse.birt.report.designer.ui.cheatsheet.groupedlisting
+ ltr
+ 96
+
+
+ Id number of the project
+ Project id
+ static
+ true
+ integer
+ true
+
+ 2849
+
+
+ simple
+ false
+ text-box
+
+ Unformatted
+
+
+
+
+
+
+
+ metadataBidiFormatStr
+ ILYNN
+
+
+ disabledMetadataBidiFormatStr
+
+
+ contentBidiFormatStr
+ ILYNN
+
+
+ disabledContentBidiFormatStr
+
+
+ org.postgresql.Driver
+ jdbc:postgresql://localhost:1234/rsr
+ rsr
+ YnlwMGNndE1SQU13Y2JubzIxY3hWYm14cFM0TkxSaThuQkNScklNZQ==
+
+
+
+
+ metadataBidiFormatStr
+ ILYNN
+
+
+ disabledMetadataBidiFormatStr
+
+
+ contentBidiFormatStr
+ ILYNN
+
+
+ disabledContentBidiFormatStr
+
+
+ org.postgresql.Driver
+ jdbc:postgresql://localhost:1234/rsr
+ rsr_readonly
+ cmVtb25zdHJhdGluZ3JvZGVudA==
+
+
+
+
+ metadataBidiFormatStr
+ ILYNN
+
+
+ disabledMetadataBidiFormatStr
+
+
+ contentBidiFormatStr
+ ILYNN
+
+
+ disabledContentBidiFormatStr
+
+
+ org.postgresql.Driver
+ jdbc:postgresql://psql:5432/rsrreports
+ rsr
+ YnlwMGNndE1SQU13Y2JubzIxY3hWYm14cFM0TkxSaThuQkNScklNZQ==
+
+
+
+
+ nulls lowest
+
+
+ title
+ dimension
+ title
+ title
+
+
+ result_pk
+ measure
+ result_pk
+ result_pk
+
+
+ indicator_title
+ dimension
+ indicator_title
+ indicator_title
+
+
+ indicator_pk
+ measure
+ indicator_pk
+ indicator_pk
+
+
+ baseline_year
+ measure
+ baseline_year
+ baseline_year
+
+
+ baseline_comment
+ dimension
+ baseline_comment
+ baseline_comment
+
+
+ baseline_value
+ dimension
+ baseline_value
+ baseline_value
+
+
+ indicatorperiod_pk
+ measure
+ indicatorperiod_pk
+ indicatorperiod_pk
+
+
+ actual_value
+ dimension
+ actual_value
+ actual_value
+
+
+ actual_comment
+ dimension
+ actual_comment
+ actual_comment
+
+
+ target_value
+ dimension
+ target_value
+ target_value
+
+
+ target_comment
+ dimension
+ target_comment
+ target_comment
+
+
+ period_start
+ dimension
+ period_start
+ period_start
+
+
+ period_end
+ dimension
+ period_end
+ period_end
+
+
+
+
+ projid
+ TheProjectId
+
+ integer
+ 4
+ 1
+ 2849
+ true
+ false
+
+
+
+
+
+ 1
+ title
+ string
+
+
+ 2
+ result_pk
+ integer
+
+
+ 3
+ indicator_title
+ string
+
+
+ 4
+ indicator_pk
+ integer
+
+
+ 5
+ baseline_year
+ integer
+
+
+ 6
+ baseline_comment
+ string
+
+
+ 7
+ baseline_value
+ string
+
+
+ 8
+ indicatorperiod_pk
+ integer
+
+
+ 9
+ actual_value
+ string
+
+
+ 10
+ actual_comment
+ string
+
+
+ 11
+ target_value
+ string
+
+
+ 12
+ target_comment
+ string
+
+
+ 13
+ period_start
+ date
+
+
+ 14
+ period_end
+ date
+
+
+
+ RSR-test
+
+
+ 1
+ title
+ title
+ string
+ 12
+
+
+ 2
+ result_pk
+ result_pk
+ integer
+ 4
+
+
+ 3
+ indicator_title
+ indicator_title
+ string
+ 12
+
+
+ 4
+ indicator_pk
+ indicator_pk
+ integer
+ 4
+
+
+ 5
+ baseline_year
+ baseline_year
+ integer
+ 4
+
+
+ 6
+ baseline_comment
+ baseline_comment
+ string
+ 12
+
+
+ 7
+ baseline_value
+ baseline_value
+ string
+ 12
+
+
+ 8
+ indicatorperiod_pk
+ indicatorperiod_pk
+ integer
+ 4
+
+
+ 9
+ actual_value
+ actual_value
+ string
+ 12
+
+
+ 10
+ actual_comment
+ actual_comment
+ string
+ 12
+
+
+ 11
+ target_value
+ target_value
+ string
+ 12
+
+
+ 12
+ target_comment
+ target_comment
+ string
+ 12
+
+
+ 13
+ period_start
+ period_start
+ date
+ 91
+
+
+ 14
+ period_end
+ period_end
+ date
+ 91
+
+
+
+
+
+ 2.0
+
+
+
+
+
+
+ id
+ 1
+
+ 4
+ 10
+ 0
+ NotNullable
+
+ id
+
+
+
+ id
+
+ 11
+
+
+
+
+
+
+ title
+ 2
+
+ 12
+ 45
+ 0
+ NotNullable
+
+ title
+
+
+
+ title
+
+ 45
+
+
+
+
+
+
+ subtitle
+ 3
+
+ 12
+ 75
+ 0
+ NotNullable
+
+ subtitle
+
+
+
+ subtitle
+
+ 75
+
+
+
+
+
+
+ status
+ 4
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ status
+
+
+
+ status
+
+ 1
+
+
+
+
+
+
+ project_plan_summary
+ 5
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ project_plan_summary
+
+
+
+ project_plan_summary
+
+ 2147483647
+
+
+
+
+
+
+ current_image
+ 6
+
+ 12
+ 100
+ 0
+ NotNullable
+
+ current_image
+
+
+
+ current_image
+
+ 100
+
+
+
+
+
+
+ current_image_caption
+ 7
+
+ 12
+ 50
+ 0
+ NotNullable
+
+ current_image_caption
+
+
+
+ current_image_caption
+
+ 50
+
+
+
+
+
+
+ goals_overview
+ 8
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ goals_overview
+
+
+
+ goals_overview
+
+ 2147483647
+
+
+
+
+
+
+ current_status
+ 9
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ current_status
+
+
+
+ current_status
+
+ 2147483647
+
+
+
+
+
+
+ project_plan
+ 10
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ project_plan
+
+
+
+ project_plan
+
+ 2147483647
+
+
+
+
+
+
+ sustainability
+ 11
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ sustainability
+
+
+
+ sustainability
+
+ 2147483647
+
+
+
+
+
+
+ background
+ 12
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ background
+
+
+
+ background
+
+ 2147483647
+
+
+
+
+
+
+ notes
+ 13
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ notes
+
+
+
+ notes
+
+ 2147483647
+
+
+
+
+
+
+ currency
+ 14
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ currency
+
+
+
+ currency
+
+ 3
+
+
+
+
+
+
+ date_start_planned
+ 15
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_start_planned
+
+
+
+ date_start_planned
+
+ 13
+
+
+
+
+
+
+ date_end_planned
+ 16
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_end_planned
+
+
+
+ date_end_planned
+
+ 13
+
+
+
+
+
+
+ budget
+ 17
+
+ 2
+ 14
+ 2
+ Nullable
+
+ budget
+
+
+
+ budget
+
+ 16
+
+
+
+
+
+
+ funds
+ 18
+
+ 2
+ 14
+ 2
+ Nullable
+
+ funds
+
+
+
+ funds
+
+ 16
+
+
+
+
+
+
+ funds_needed
+ 19
+
+ 2
+ 14
+ 2
+ Nullable
+
+ funds_needed
+
+
+
+ funds_needed
+
+ 16
+
+
+
+
+
+
+ primary_location_id
+ 20
+
+ 4
+ 10
+ 0
+ Nullable
+
+ primary_location_id
+
+
+
+ primary_location_id
+
+ 11
+
+
+
+
+
+
+ language
+ 21
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ language
+
+
+
+ language
+
+ 2
+
+
+
+
+
+
+ current_image_credit
+ 22
+
+ 12
+ 50
+ 0
+ NotNullable
+
+ current_image_credit
+
+
+
+ current_image_credit
+
+ 50
+
+
+
+
+
+
+ target_group
+ 23
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ target_group
+
+
+
+ target_group
+
+ 2147483647
+
+
+
+
+
+
+ created_at
+ 24
+
+ 93
+ 29
+ 6
+ Nullable
+
+ created_at
+
+
+
+ created_at
+
+ 29
+
+
+
+
+
+
+ last_modified_at
+ 25
+
+ 93
+ 29
+ 6
+ Nullable
+
+ last_modified_at
+
+
+
+ last_modified_at
+
+ 29
+
+
+
+
+
+
+ donate_button
+ 26
+
+ -7
+ 1
+ 0
+ NotNullable
+
+ donate_button
+
+
+
+ donate_button
+
+ 1
+
+
+
+
+
+
+ sync_owner_id
+ 27
+
+ 4
+ 10
+ 0
+ Nullable
+
+ sync_owner_id
+
+
+
+ sync_owner_id
+
+ 11
+
+
+
+
+
+
+ date_start_actual
+ 28
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_start_actual
+
+
+
+ date_start_actual
+
+ 13
+
+
+
+
+
+
+ date_end_actual
+ 29
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_end_actual
+
+
+
+ date_end_actual
+
+ 13
+
+
+
+
+
+
+ hierarchy
+ 30
+
+ 4
+ 10
+ 0
+ Nullable
+
+ hierarchy
+
+
+
+ hierarchy
+
+ 11
+
+
+
+
+
+
+ project_scope
+ 31
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ project_scope
+
+
+
+ project_scope
+
+ 2
+
+
+
+
+
+
+ capital_spend_percentage
+ 32
+
+ 2
+ 4
+ 1
+ Nullable
+
+ capital_spend_percentage
+
+
+
+ capital_spend_percentage
+
+ 6
+
+
+
+
+
+
+ collaboration_type
+ 33
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ collaboration_type
+
+
+
+ collaboration_type
+
+ 1
+
+
+
+
+
+
+ default_aid_type
+ 34
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ default_aid_type
+
+
+
+ default_aid_type
+
+ 3
+
+
+
+
+
+
+ default_finance_type
+ 35
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ default_finance_type
+
+
+
+ default_finance_type
+
+ 3
+
+
+
+
+
+
+ default_flow_type
+ 36
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ default_flow_type
+
+
+
+ default_flow_type
+
+ 2
+
+
+
+
+
+
+ default_tied_status
+ 37
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ default_tied_status
+
+
+
+ default_tied_status
+
+ 1
+
+
+
+
+
+
+ last_update_id
+ 38
+
+ 4
+ 10
+ 0
+ Nullable
+
+ last_update_id
+
+
+
+ last_update_id
+
+ 11
+
+
+
+
+
+
+ iati_activity_id
+ 39
+
+ 12
+ 100
+ 0
+ Nullable
+
+ iati_activity_id
+
+
+
+ iati_activity_id
+
+ 100
+
+
+
+
+
+
+ sync_owner_secondary_reporter
+ 40
+
+ -7
+ 1
+ 0
+ Nullable
+
+ sync_owner_secondary_reporter
+
+
+
+ sync_owner_secondary_reporter
+
+ 1
+
+
+
+
+
+
+ country_budget_vocabulary
+ 41
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ country_budget_vocabulary
+
+
+
+ country_budget_vocabulary
+
+ 1
+
+
+
+
+
+
+
+ ]]>
+
+
+ nulls lowest
+
+
+ id
+ measure
+ id
+ id
+
+
+ title
+ dimension
+ title
+ title
+
+
+ subtitle
+ dimension
+ subtitle
+ subtitle
+
+
+ status
+ dimension
+ status
+ status
+
+
+ project_plan_summary
+ dimension
+ project_plan_summary
+ project_plan_summary
+
+
+ current_image
+ dimension
+ current_image
+ current_image
+
+
+ current_image_caption
+ dimension
+ current_image_caption
+ current_image_caption
+
+
+ goals_overview
+ dimension
+ goals_overview
+ goals_overview
+
+
+ current_status
+ dimension
+ current_status
+ current_status
+
+
+ project_plan
+ dimension
+ project_plan
+ project_plan
+
+
+ sustainability
+ dimension
+ sustainability
+ sustainability
+
+
+ background
+ dimension
+ background
+ background
+
+
+ notes
+ dimension
+ notes
+ notes
+
+
+ currency
+ dimension
+ currency
+ currency
+
+
+ date_start_planned
+ dimension
+ date_start_planned
+ date_start_planned
+
+
+ date_end_planned
+ dimension
+ date_end_planned
+ date_end_planned
+
+
+ budget
+ measure
+ budget
+ budget
+
+
+ funds
+ measure
+ funds
+ funds
+
+
+ funds_needed
+ measure
+ funds_needed
+ funds_needed
+
+
+ primary_location_id
+ measure
+ primary_location_id
+ primary_location_id
+
+
+ language
+ dimension
+ language
+ language
+
+
+ current_image_credit
+ dimension
+ current_image_credit
+ current_image_credit
+
+
+ target_group
+ dimension
+ target_group
+ target_group
+
+
+ created_at
+ dimension
+ created_at
+ created_at
+
+
+ last_modified_at
+ dimension
+ last_modified_at
+ last_modified_at
+
+
+ donate_button
+ measure
+ donate_button
+ donate_button
+
+
+ sync_owner_id
+ measure
+ sync_owner_id
+ sync_owner_id
+
+
+ date_start_actual
+ dimension
+ date_start_actual
+ date_start_actual
+
+
+ date_end_actual
+ dimension
+ date_end_actual
+ date_end_actual
+
+
+ hierarchy
+ measure
+ hierarchy
+ hierarchy
+
+
+ project_scope
+ dimension
+ project_scope
+ project_scope
+
+
+ capital_spend_percentage
+ measure
+ capital_spend_percentage
+ capital_spend_percentage
+
+
+ collaboration_type
+ dimension
+ collaboration_type
+ collaboration_type
+
+
+ default_aid_type
+ dimension
+ default_aid_type
+ default_aid_type
+
+
+ default_finance_type
+ dimension
+ default_finance_type
+ default_finance_type
+
+
+ default_flow_type
+ dimension
+ default_flow_type
+ default_flow_type
+
+
+ default_tied_status
+ dimension
+ default_tied_status
+ default_tied_status
+
+
+ last_update_id
+ measure
+ last_update_id
+ last_update_id
+
+
+ iati_activity_id
+ dimension
+ iati_activity_id
+ iati_activity_id
+
+
+ sync_owner_secondary_reporter
+ measure
+ sync_owner_secondary_reporter
+ sync_owner_secondary_reporter
+
+
+ country_budget_vocabulary
+ dimension
+ country_budget_vocabulary
+ country_budget_vocabulary
+
+
+ city
+ dimension
+ city
+ city
+
+
+ countryname
+ dimension
+ countryname
+ countryname
+
+
+
+
+ projid
+ TheProjectId
+
+ integer
+ 4
+ 1
+ 2849
+ true
+ false
+
+
+
+
+
+ 1
+ id
+ integer
+
+
+ 2
+ title
+ string
+
+
+ 3
+ subtitle
+ string
+
+
+ 4
+ status
+ string
+
+
+ 5
+ project_plan_summary
+ string
+
+
+ 6
+ current_image
+ string
+
+
+ 7
+ current_image_caption
+ string
+
+
+ 8
+ goals_overview
+ string
+
+
+ 9
+ current_status
+ string
+
+
+ 10
+ project_plan
+ string
+
+
+ 11
+ sustainability
+ string
+
+
+ 12
+ background
+ string
+
+
+ 13
+ notes
+ string
+
+
+ 14
+ currency
+ string
+
+
+ 15
+ date_start_planned
+ date
+
+
+ 16
+ date_end_planned
+ date
+
+
+ 17
+ budget
+ decimal
+
+
+ 18
+ funds
+ decimal
+
+
+ 19
+ funds_needed
+ decimal
+
+
+ 20
+ primary_location_id
+ integer
+
+
+ 21
+ language
+ string
+
+
+ 22
+ current_image_credit
+ string
+
+
+ 23
+ target_group
+ string
+
+
+ 24
+ created_at
+ date-time
+
+
+ 25
+ last_modified_at
+ date-time
+
+
+ 26
+ donate_button
+ integer
+
+
+ 27
+ sync_owner_id
+ integer
+
+
+ 28
+ date_start_actual
+ date
+
+
+ 29
+ date_end_actual
+ date
+
+
+ 30
+ hierarchy
+ integer
+
+
+ 31
+ project_scope
+ string
+
+
+ 32
+ capital_spend_percentage
+ decimal
+
+
+ 33
+ collaboration_type
+ string
+
+
+ 34
+ default_aid_type
+ string
+
+
+ 35
+ default_finance_type
+ string
+
+
+ 36
+ default_flow_type
+ string
+
+
+ 37
+ default_tied_status
+ string
+
+
+ 38
+ last_update_id
+ integer
+
+
+ 39
+ iati_activity_id
+ string
+
+
+ 40
+ sync_owner_secondary_reporter
+ integer
+
+
+ 41
+ country_budget_vocabulary
+ string
+
+
+ 42
+ city
+ string
+
+
+ 43
+ countryname
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ id
+ id
+ integer
+ 4
+
+
+ 2
+ title
+ title
+ string
+ 12
+
+
+ 3
+ subtitle
+ subtitle
+ string
+ 12
+
+
+ 4
+ status
+ status
+ string
+ 12
+
+
+ 5
+ project_plan_summary
+ project_plan_summary
+ string
+ 12
+
+
+ 6
+ current_image
+ current_image
+ string
+ 12
+
+
+ 7
+ current_image_caption
+ current_image_caption
+ string
+ 12
+
+
+ 8
+ goals_overview
+ goals_overview
+ string
+ 12
+
+
+ 9
+ current_status
+ current_status
+ string
+ 12
+
+
+ 10
+ project_plan
+ project_plan
+ string
+ 12
+
+
+ 11
+ sustainability
+ sustainability
+ string
+ 12
+
+
+ 12
+ background
+ background
+ string
+ 12
+
+
+ 13
+ notes
+ notes
+ string
+ 12
+
+
+ 14
+ currency
+ currency
+ string
+ 12
+
+
+ 15
+ date_start_planned
+ date_start_planned
+ date
+ 91
+
+
+ 16
+ date_end_planned
+ date_end_planned
+ date
+ 91
+
+
+ 17
+ budget
+ budget
+ decimal
+ 2
+
+
+ 18
+ funds
+ funds
+ decimal
+ 2
+
+
+ 19
+ funds_needed
+ funds_needed
+ decimal
+ 2
+
+
+ 20
+ primary_location_id
+ primary_location_id
+ integer
+ 4
+
+
+ 21
+ language
+ language
+ string
+ 12
+
+
+ 22
+ current_image_credit
+ current_image_credit
+ string
+ 12
+
+
+ 23
+ target_group
+ target_group
+ string
+ 12
+
+
+ 24
+ created_at
+ created_at
+ date-time
+ 93
+
+
+ 25
+ last_modified_at
+ last_modified_at
+ date-time
+ 93
+
+
+ 26
+ donate_button
+ donate_button
+ integer
+ -7
+
+
+ 27
+ sync_owner_id
+ sync_owner_id
+ integer
+ 4
+
+
+ 28
+ date_start_actual
+ date_start_actual
+ date
+ 91
+
+
+ 29
+ date_end_actual
+ date_end_actual
+ date
+ 91
+
+
+ 30
+ hierarchy
+ hierarchy
+ integer
+ 4
+
+
+ 31
+ project_scope
+ project_scope
+ string
+ 12
+
+
+ 32
+ capital_spend_percentage
+ capital_spend_percentage
+ decimal
+ 2
+
+
+ 33
+ collaboration_type
+ collaboration_type
+ string
+ 12
+
+
+ 34
+ default_aid_type
+ default_aid_type
+ string
+ 12
+
+
+ 35
+ default_finance_type
+ default_finance_type
+ string
+ 12
+
+
+ 36
+ default_flow_type
+ default_flow_type
+ string
+ 12
+
+
+ 37
+ default_tied_status
+ default_tied_status
+ string
+ 12
+
+
+ 38
+ last_update_id
+ last_update_id
+ integer
+ 4
+
+
+ 39
+ iati_activity_id
+ iati_activity_id
+ string
+ 12
+
+
+ 40
+ sync_owner_secondary_reporter
+ sync_owner_secondary_reporter
+ integer
+ -7
+
+
+ 41
+ country_budget_vocabulary
+ country_budget_vocabulary
+ string
+ 12
+
+
+ 42
+ city
+ city
+ string
+ 12
+
+
+ 43
+ countryname
+ countryname
+ string
+ 12
+
+
+
+
+
+ 2.0
+
+
+
+
+
+
+ id
+ 1
+
+ 4
+ 10
+ 0
+ NotNullable
+
+ id
+
+
+
+ id
+
+ 11
+
+
+
+
+
+
+ title
+ 2
+
+ 12
+ 45
+ 0
+ NotNullable
+
+ title
+
+
+
+ title
+
+ 45
+
+
+
+
+
+
+ subtitle
+ 3
+
+ 12
+ 75
+ 0
+ NotNullable
+
+ subtitle
+
+
+
+ subtitle
+
+ 75
+
+
+
+
+
+
+ status
+ 4
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ status
+
+
+
+ status
+
+ 1
+
+
+
+
+
+
+ project_plan_summary
+ 5
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ project_plan_summary
+
+
+
+ project_plan_summary
+
+ 2147483647
+
+
+
+
+
+
+ current_image
+ 6
+
+ 12
+ 100
+ 0
+ NotNullable
+
+ current_image
+
+
+
+ current_image
+
+ 100
+
+
+
+
+
+
+ current_image_caption
+ 7
+
+ 12
+ 50
+ 0
+ NotNullable
+
+ current_image_caption
+
+
+
+ current_image_caption
+
+ 50
+
+
+
+
+
+
+ goals_overview
+ 8
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ goals_overview
+
+
+
+ goals_overview
+
+ 2147483647
+
+
+
+
+
+
+ current_status
+ 9
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ current_status
+
+
+
+ current_status
+
+ 2147483647
+
+
+
+
+
+
+ project_plan
+ 10
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ project_plan
+
+
+
+ project_plan
+
+ 2147483647
+
+
+
+
+
+
+ sustainability
+ 11
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ sustainability
+
+
+
+ sustainability
+
+ 2147483647
+
+
+
+
+
+
+ background
+ 12
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ background
+
+
+
+ background
+
+ 2147483647
+
+
+
+
+
+
+ notes
+ 13
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ notes
+
+
+
+ notes
+
+ 2147483647
+
+
+
+
+
+
+ currency
+ 14
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ currency
+
+
+
+ currency
+
+ 3
+
+
+
+
+
+
+ date_start_planned
+ 15
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_start_planned
+
+
+
+ date_start_planned
+
+ 13
+
+
+
+
+
+
+ date_end_planned
+ 16
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_end_planned
+
+
+
+ date_end_planned
+
+ 13
+
+
+
+
+
+
+ budget
+ 17
+
+ 2
+ 14
+ 2
+ Nullable
+
+ budget
+
+
+
+ budget
+
+ 16
+
+
+
+
+
+
+ funds
+ 18
+
+ 2
+ 14
+ 2
+ Nullable
+
+ funds
+
+
+
+ funds
+
+ 16
+
+
+
+
+
+
+ funds_needed
+ 19
+
+ 2
+ 14
+ 2
+ Nullable
+
+ funds_needed
+
+
+
+ funds_needed
+
+ 16
+
+
+
+
+
+
+ primary_location_id
+ 20
+
+ 4
+ 10
+ 0
+ Nullable
+
+ primary_location_id
+
+
+
+ primary_location_id
+
+ 11
+
+
+
+
+
+
+ language
+ 21
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ language
+
+
+
+ language
+
+ 2
+
+
+
+
+
+
+ current_image_credit
+ 22
+
+ 12
+ 50
+ 0
+ NotNullable
+
+ current_image_credit
+
+
+
+ current_image_credit
+
+ 50
+
+
+
+
+
+
+ target_group
+ 23
+
+ 12
+ 2147483647
+ 0
+ NotNullable
+
+ target_group
+
+
+
+ target_group
+
+ 2147483647
+
+
+
+
+
+
+ created_at
+ 24
+
+ 93
+ 29
+ 6
+ Nullable
+
+ created_at
+
+
+
+ created_at
+
+ 29
+
+
+
+
+
+
+ last_modified_at
+ 25
+
+ 93
+ 29
+ 6
+ Nullable
+
+ last_modified_at
+
+
+
+ last_modified_at
+
+ 29
+
+
+
+
+
+
+ donate_button
+ 26
+
+ -7
+ 1
+ 0
+ NotNullable
+
+ donate_button
+
+
+
+ donate_button
+
+ 1
+
+
+
+
+
+
+ sync_owner_id
+ 27
+
+ 4
+ 10
+ 0
+ Nullable
+
+ sync_owner_id
+
+
+
+ sync_owner_id
+
+ 11
+
+
+
+
+
+
+ date_start_actual
+ 28
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_start_actual
+
+
+
+ date_start_actual
+
+ 13
+
+
+
+
+
+
+ date_end_actual
+ 29
+
+ 91
+ 13
+ 0
+ Nullable
+
+ date_end_actual
+
+
+
+ date_end_actual
+
+ 13
+
+
+
+
+
+
+ hierarchy
+ 30
+
+ 4
+ 10
+ 0
+ Nullable
+
+ hierarchy
+
+
+
+ hierarchy
+
+ 11
+
+
+
+
+
+
+ project_scope
+ 31
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ project_scope
+
+
+
+ project_scope
+
+ 2
+
+
+
+
+
+
+ capital_spend_percentage
+ 32
+
+ 2
+ 4
+ 1
+ Nullable
+
+ capital_spend_percentage
+
+
+
+ capital_spend_percentage
+
+ 6
+
+
+
+
+
+
+ collaboration_type
+ 33
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ collaboration_type
+
+
+
+ collaboration_type
+
+ 1
+
+
+
+
+
+
+ default_aid_type
+ 34
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ default_aid_type
+
+
+
+ default_aid_type
+
+ 3
+
+
+
+
+
+
+ default_finance_type
+ 35
+
+ 12
+ 3
+ 0
+ NotNullable
+
+ default_finance_type
+
+
+
+ default_finance_type
+
+ 3
+
+
+
+
+
+
+ default_flow_type
+ 36
+
+ 12
+ 2
+ 0
+ NotNullable
+
+ default_flow_type
+
+
+
+ default_flow_type
+
+ 2
+
+
+
+
+
+
+ default_tied_status
+ 37
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ default_tied_status
+
+
+
+ default_tied_status
+
+ 1
+
+
+
+
+
+
+ last_update_id
+ 38
+
+ 4
+ 10
+ 0
+ Nullable
+
+ last_update_id
+
+
+
+ last_update_id
+
+ 11
+
+
+
+
+
+
+ iati_activity_id
+ 39
+
+ 12
+ 100
+ 0
+ Nullable
+
+ iati_activity_id
+
+
+
+ iati_activity_id
+
+ 100
+
+
+
+
+
+
+ sync_owner_secondary_reporter
+ 40
+
+ -7
+ 1
+ 0
+ Nullable
+
+ sync_owner_secondary_reporter
+
+
+
+ sync_owner_secondary_reporter
+
+ 1
+
+
+
+
+
+
+ country_budget_vocabulary
+ 41
+
+ 12
+ 1
+ 0
+ NotNullable
+
+ country_budget_vocabulary
+
+
+
+ country_budget_vocabulary
+
+ 1
+
+
+
+
+
+
+
+ ]]>
+
+
+ nulls lowest
+
+
+ name
+ dimension
+ name
+ name
+
+
+
+
+ projid
+ TheProjectId
+
+ integer
+ 4
+ 1
+ 2849
+ true
+ false
+
+
+
+
+
+ 1
+ name
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ name
+ name
+ string
+ 12
+
+
+
+
+
+ nulls lowest
+
+
+ id
+ measure
+ id
+ id
+
+
+ title
+ dimension
+ title
+ title
+
+
+
+
+ child_of
+ TheProjectId
+
+ integer
+ 4
+ 1
+ 2081
+ true
+ false
+
+
+ has_as_parent
+ TheProjectId
+
+ integer
+ 4
+ 2
+ 2081
+ true
+ false
+
+
+
+
+
+ 1
+ id
+ integer
+
+
+ 2
+ title
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ id
+ id
+ integer
+ 4
+
+
+ 2
+ title
+ title
+ string
+ 12
+
+
+
+
+
+ 2.0
+
+
+
+ In
+
+
+
+ 1
+
+ 4
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 2
+
+ 4
+ 0
+ 0
+ Unknown
+
+
+
+
+ ]]>
+
+
+ nulls lowest
+
+
+ id
+ measure
+ id
+ id
+
+
+ title
+ dimension
+ title
+ title
+
+
+
+
+ child_of
+ TheProjectId
+
+ integer
+ 4
+ 1
+ 2081
+ true
+ false
+
+
+ has_as_parent
+ TheProjectId
+
+ integer
+ 4
+ 2
+ 2081
+ true
+ false
+
+
+
+
+
+ 1
+ id
+ integer
+
+
+ 2
+ title
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ id
+ id
+ integer
+ 4
+
+
+ 2
+ title
+ title
+ string
+ 12
+
+
+
+
+
+ 2.0
+
+
+
+ In
+
+
+
+ 1
+
+ 4
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 2
+
+ 4
+ 0
+ 0
+ Unknown
+
+
+
+
+ ]]>
+
+
+
+
+ number
+ dimension
+ number
+ number
+
+
+ name
+ dimension
+ name
+ name
+
+
+
+
+ param_1
+
+ string
+ 12
+ 1
+ 33
+ true
+ false
+
+
+ param_2
+
+ string
+ 12
+ 2
+ 67
+ true
+ false
+
+
+
+
+
+ 1
+ number
+ string
+
+
+ 2
+ name
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ number
+ number
+ string
+ 12
+
+
+ 2
+ name
+ name
+ string
+ 12
+
+
+
+
+
+ 2.0
+
+
+
+ In
+
+
+
+ 1
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 2
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+
+
+
+
+
+ seventeen
+ 1
+
+ 4
+ 10
+ 0
+ Unknown
+
+ seventeen
+
+
+
+ seventeen
+
+ 11
+
+
+
+
+
+
+
+ ]]>
+
+
+ nulls lowest
+
+
+ number
+ dimension
+ number
+ number
+
+
+ name
+ dimension
+ name
+ name
+
+
+
+
+ param_1
+
+ string
+ 12
+ 1
+ 33
+ true
+ false
+
+
+ param_2
+
+ string
+ 12
+ 2
+ 0
+ true
+ false
+
+
+ param_3
+
+ string
+ 12
+ 3
+ 0
+ true
+ false
+
+
+ param_4
+
+ string
+ 12
+ 4
+ 67
+ true
+ false
+
+
+
+
+
+ 1
+ number
+ string
+
+
+ 2
+ name
+ string
+
+
+
+ RSR-test
+
+
+ 1
+ number
+ number
+ string
+ 12
+
+
+ 2
+ name
+ name
+ string
+ 12
+
+
+
+
+
+ 2.0
+
+
+
+ In
+
+
+
+ 1
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 2
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 3
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+ In
+
+
+
+ 4
+
+ 12
+ 0
+ 0
+ Unknown
+
+
+
+
+
+
+
+
+
+
+ seventeen
+ 1
+
+ 4
+ 10
+ 0
+ Unknown
+
+ seventeen
+
+
+
+ seventeen
+
+ 11
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 100%
+
+
+
+
+ 8pt
+ 8pt
+ html
+ new Date().toLocaleDateString()]]>
+
+ |
+
+
+
+
+
+
+
+ 18pt
+ bold
+ #586978
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ Project
+
+
+ title
+ title
+ dataSetRow["title"]
+ string
+
+
+
+ row["title"]
+ html
+
+
+ 8pt
+ 8pt
+ 8pt
+ Project
+
+
+ date_start_planned
+ date_start_planned
+ dataSetRow["date_start_planned"]
+ date
+
+
+ date_end_planned
+ date_end_planned
+ dataSetRow["date_end_planned"]
+ date
+
+
+ date_start_actual
+ date_start_actual
+ dataSetRow["date_start_actual"]
+ date
+
+
+ date_end_actual
+ date_end_actual
+ dataSetRow["date_end_actual"]
+ date
+
+
+
+ ((row["date_start_planned"]) ?
+ row["date_start_planned"] + " -- " + row["date_end_planned"] :
+ "(No time period)")
+ + " <br>" +
+((row["date_start_actual"] || row["date_end_actual"]) ?
+ (row["date_start_actual"] ? row["date_start_actual"] : "")
+ + " -- " +
+ (row["date_end_actual"] ? row["date_end_actual"] : "")
+ + " (actual)" :
+ "")
+ html
+
+
+ #EDEFE1
+ 0pt
+ 0pt
+ 0pt
+ 7.947916666666667in
+
+ 4.291666666666667in
+
+
+ 3.65625in
+
+
+
+
+ Sectionheader
+ 18pt
+ bold
+ 0pt
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+
+ "Project Summary"
+
+ Project summary
+
+ |
+
+
+ Sectionheader
+ 18pt
+ bold
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ Partners
+
+ |
+
+
+
+ 1
+ 3
+
+ 12pt
+ 0pt
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ Project
+
+
+ project_plan_summary
+ project_plan_summary
+ dataSetRow["project_plan_summary"]
+ string
+
+
+
+
+ row["project_plan_summary"]
+ html
+
+ |
+
+
+ Partners
+
+
+ name
+ name
+ dataSetRow["name"]
+ string
+
+
+
+
+
+
+
+
+ 14pt
+ bold
+ 1pt
+ 8pt
+ 1pt
+ 8pt
+ name
+
+ |
+
+
+
+
+ |
+
+
+
+
+ Sectionheader
+ 18pt
+ bold
+ 0pt
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ Location
+
+ |
+
+
+
+
+ 14pt
+ bold
+ 0pt
+ 0pt
+ 4pt
+ 8pt
+ 12pt
+ 8pt
+ Project
+
+
+ countryname
+ countryname
+ dataSetRow["countryname"]
+ string
+
+
+ city
+ dataSetRow["city"]
+ string
+ true
+
+
+ (row ["city"] ? row ["city"] + ", " : "") + row["countryname"]
+ html
+
+ |
+
+
+
+ Parent_projects
+
+
+ title
+ title
+ dataSetRow["title"]
+ string
+
+
+ id
+ dataSetRow["id"]
+ integer
+ true
+
+
+
+
+
+
+
+ Sectionheader
+ 18pt
+ bold
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ left
+
+
+ all
+ (Total.count() < 1)
+
+
+ Parent project
+
+ |
+
+
+
+
+
+
+ 14pt
+ bold
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ title
+
+
+ none
+
+
+
+ |
+
+
+
+
+
+ Child_projects
+
+
+ title
+ title
+ dataSetRow["title"]
+ string
+
+
+ Aggregation
+ integer
+ COUNT
+
+
+ Expression
+
+
+ true
+
+
+
+
+
+
+
+ Sectionheader
+ 18pt
+ bold
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ left
+
+
+ all
+ (Total.count() < 1)
+
+
+ Child projects
+
+ |
+
+
+
+
+
+
+ 14pt
+ bold
+ 8pt
+ 8pt
+ 8pt
+ 8pt
+ title
+
+ |
+
+
+
+
+
+ 8pt
+ 7.96875in
+ Results_indicators_periods
+
+
+ period_start
+ period_start
+ dataSetRow["period_start"]
+ date
+
+
+ actual_value
+ actual_value
+ dataSetRow["actual_value"]
+ string
+ true
+
+
+ target_value
+ target_value
+ dataSetRow["target_value"]
+ string
+
+
+ baseline_value
+ baseline_value
+ dataSetRow["baseline_value"]
+ string
+
+
+ title
+ title
+ dataSetRow["title"]
+ string
+
+
+ period_end
+ period_end
+ dataSetRow["period_end"]
+ date
+
+
+ actual_comment
+ actual_comment
+ dataSetRow["actual_comment"]
+ string
+
+
+ indicator_title
+ indicator_title
+ dataSetRow["indicator_title"]
+ string
+
+
+ baseline_year
+ baseline_year
+ dataSetRow["baseline_year"]
+ integer
+
+
+ baseline_comment
+ baseline_comment
+ dataSetRow["baseline_comment"]
+ string
+
+
+ actual_value_number
+ dataSetRow["actual_value"] && !isNaN(dataSetRow["actual_value"]) ? dataSetRow["actual_value"] : -1
+ integer
+ true
+
+
+ target_value_number
+ target_value_number
+ (dataSetRow["target_value"] && !isNaN(dataSetRow["target_value"])) ? dataSetRow["target_value"] : -1
+ integer
+ true
+
+
+ progress_pct
+ progress_pct
+ (row["actual_value_number"] > -1 && row["target_value_number"] > -1 )
+?
+ Math.min(100, Math.round(row["actual_value_number"] * 100 / row["target_value_number"]))
+ :
+ -1
+ integer
+ true
+
+
+
+ 50
+
+ 1.2708333333333333in
+
+
+ 3.0729166666666665in
+
+
+ 1.8958333333333333in
+
+
+ 1.6770833333333333in
+
+
+
+
+ 2
+ 1
+
+ Sectionheader
+ 18pt
+ bold
+ 8pt
+ 0pt
+ 8pt
+ 8pt
+ left
+
+
+ all
+ (Total.count() < 1)
+
+
+ Results
+
+ |
+
+
+ left
+
+
+ all
+ true
+
+
+ var a=1,b=1;
+reportContext.getGlobalVariable('debug')
+ html
+
+ |
+ |
+
+
+
+ NewTableGroup1
+ row["title"]
+
+ row["title"]
+
+
+
+
+ 4
+ 1
+
+ 14pt
+ bold
+ #6D8FAF
+ 8pt
+ 0pt
+ 1pt
+ 8pt
+ b=1, "Result " + a++;
+ html
+
+
+ 14pt
+ 0pt
+ 8pt
+ 8pt
+ title
+
+ |
+
+
+
+
+
+ NewTableGroup2
+ row["indicator_title"]
+
+ row["indicator_title"]
+
+ false
+
+
+ #F0F0F0
+
+
+ all
+ !row["indicator_title"]
+
+
+
+ 4
+ 1
+ 0pt
+ 0pt
+ 4pt
+ 0pt
+
+ 7.875in
+
+ 1.4479166666666667in
+
+
+ 2.90625in
+
+
+ 1.90625in
+
+
+ 1.6145833333333333in
+
+
+ silver
+
+ 0pt
+ 0pt
+ 4pt
+ 0pt
+
+ gray
+ 12pt
+ bold
+ white
+ 8pt
+ 8pt
+ inline
+ "INDICATOR " + b++
+ html
+
+ |
+
+ 3
+ 1
+
+ silver
+ 12pt
+ #000000
+ 8pt
+ inline
+ row["indicator_title"]
+ html
+
+ |
+
+
+
+ 4
+ 1
+
+ #000000
+ 8pt
+ 8pt
+
+
+ all
+ !(row["baseline_value"] && row["baseline_year"])
+
+
+ "Baseline: " + row["baseline_value"] + " " + (row["baseline_year"] ? "(" + row["baseline_year"] + ")" : "")
++ " " + row["baseline_comment"]
+ html
+
+ |
+
+
+ |
+
+
+ bold
+ italic
+ center
+ Period
+
+ |
+
+ #F0F0F0
+
+ bold
+ italic
+ black
+ center
+ Actual
+
+ |
+
+
+ bold
+ italic
+ center
+ Target
+
+ |
+
+
+ |
+
+
+
+
+ avoid
+
+ 4
+ 1
+ 0pt
+ 0pt
+ 8pt
+ 0pt
+
+ silver
+ 0pt
+ 8pt
+ avoid
+
+
+ all
+ !row["indicator_title"]
+
+
+
+
+ |
+
+
+
+
+
+ #F0F0F0
+
+
+ all
+ !row["indicator_title"]
+
+
+
+ 1pt
+ 8pt
+ 1pt
+ 8pt
+ center
+ middle
+
+ sans-serif
+ 8pt
+ normal
+ none
+ none
+ none
+ none
+ 0pt
+ 0pt
+ -35pt
+ 12pt
+ 12pt
+ center
+ block
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 0.0
+
+ 33.0
+ progress_low
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 33
+
+ 66
+ progress_middle
+
+
+ ge
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 66
+
+ progress_high
+
+
+ (row["progress_pct"] >=0)
+?
+ row["progress_pct"] + "%"
+ :
+ ""
+ html
+
+
+
+ 2.6.1
+ Pie Chart
+ Standard
+
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ 24.0
+ 3.0
+ 3.0
+ 3.0
+
+ -1
+ -1
+ -1
+ -1
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+ false
+
+
+ 77%
+
+ 16.0
+ true
+
+ Center
+ Center
+
+
+
+
+ 0
+ 255
+ 255
+ 255
+
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+
+
+ 0.0
+ 2.0
+ 0.0
+ 3.0
+
+ true
+
+
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+
+ -1
+ -1
+ -1
+ -1
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+ true
+ 0
+ 0
+
+
+
+ 0
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+
+
+
+ 0.0
+ 0.0
+ 0.0
+ 0.0
+
+
+ 3.0
+ 3.0
+ 3.0
+ 3.0
+
+ -1
+ -1
+ -1
+ -1
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+ false
+
+
+
+ 0
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 2.0
+ 2.0
+ 2.0
+ 2.0
+
+
+
+
+
+
+
+
+ Vertical
+ Top_Bottom
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ true
+
+ Right
+ Categories
+
+
+
+
+
+
+
+
+ 0
+ 255
+ 255
+ 255
+
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0.0
+ 2.0
+ 0.0
+ 3.0
+
+ false
+
+ Above
+
+
+ 0.0
+ 0.0
+ 212.0
+ 130.0
+
+
+ 3.0
+ 3.0
+ 3.0
+ 3.0
+
+ -1
+ -1
+ -1
+ -1
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0
+ 255
+ 255
+ 255
+
+ true
+
+ Two_Dimensional
+ Points
+ 10.0
+ 0
+
+ enable.area.alt
+ false
+
+
+
+ 'A','B','C','D','E'
+
+
+ 6,4,12,8,10
+ 0
+
+
+
+ false
+
+
+
+ This chart contains no data.
+
+
+ Center
+ Center
+
+
+
+
+ 64
+ 127
+ 127
+ 127
+
+
+
+ 128
+ 127
+ 127
+ 127
+
+ true
+
+
+ 10.0
+ 10.0
+ 10.0
+ 10.0
+
+ false
+
+
+
+
+
+
+
+ 255
+ 217
+ 94
+ 117
+
+
+ 255
+ 225
+ 122
+ 12
+
+
+ 255
+ 52
+ 181
+ 115
+
+
+ 255
+ 192
+ 192
+ 192
+
+
+
+
+
+
+
+
+ 255
+ 217
+ 94
+ 117
+
+
+ 255
+ 225
+ 122
+ 12
+
+
+ 255
+ 52
+ 181
+ 115
+
+
+ 255
+ 192
+ 192
+ 192
+
+
+
+ true
+
+
+
+
+
+
+
+
+ 0
+ 255
+ 255
+ 255
+
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0.0
+ 2.0
+ 0.0
+ 3.0
+
+ false
+
+
+ row["number"]
+
+ Text
+ Sum
+
+
+
+
+ Orthogonal_Value
+
+ ,
+
+ Outside
+ false
+
+ onmouseover
+
+ Show_Tooltip
+
+
+ 200
+
+
+
+ false
+ 0
+
+
+
+
+ 16.0
+ true
+
+
+
+
+ 0
+ 255
+ 255
+ 255
+
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0.0
+ 2.0
+ 0.0
+ 3.0
+
+ false
+
+ Right
+
+
+ 1
+ true
+
+ 10.0
+
+ 0
+ 255
+ 255
+ 255
+
+ 1.0
+ 90.0
+ 66.0
+
+
+ Text
+ Sum
+
+
+
+ true
+
+
+
+
+
+
+
+
+ 0
+ 255
+ 255
+ 255
+
+
+
+ 1
+
+ 255
+ 0
+ 0
+ 0
+
+ false
+
+
+ 0.0
+ 2.0
+ 0.0
+ 3.0
+
+ false
+
+
+ row["name"]
+
+
+
+ Orthogonal_Value
+
+ ,
+
+ Outside
+ false
+
+
+ true
+ Text
+ Sum
+
+
+
+ 1.0
+
+]]>
+ SVG
+ false
+ block
+ none
+ none
+ none
+ none
+ 0pt
+ 0pt
+ 38pt
+ 38pt
+ Four_rows
+
+
+ all
+ row._outer["progress_pct"] < 0
+
+
+
+
+ param_1
+
+ (row["progress_pct"] < 33)
+?
+row["progress_pct"]
+:
+0
+
+
+
+ param_2
+
+ (row["progress_pct"] >= 33 && row["progress_pct"] < 67)
+?
+row["progress_pct"]
+:
+0
+
+
+
+ param_3
+
+ (row["progress_pct"] >= 67)
+?
+row["progress_pct"]
+:
+0
+
+
+
+ param_4
+
+ 100-row["progress_pct"]
+
+
+
+
+
+ number
+ dataSetRow["number"]
+ string
+
+
+ name
+ dataSetRow["name"]
+ string
+
+
+ progress_low
+
+ |
+
+ 1pt
+ 8pt
+ 1pt
+ 8pt
+ middle
+
+ 12pt
+ center
+ (row["period_start"] || row["period_end"]) ? row["period_start"] + " -- " + row["period_end"] : ""
+ html
+
+ |
+
+ middle
+
+ 12pt
+ bold
+ 4pt
+ 4pt
+ 1pt
+
+ Unformatted
+
+ center
+
+
+ all
+ row["actual_value"] && (!isNaN(row["actual_value"]))
+
+
+ actual_value
+
+
+ 12pt
+ bold
+ 4pt
+ 4pt
+ 1pt
+
+ Currency
+ #,##0{RoundingMode=HALF_UP}
+
+ center
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 0.0
+
+ 33.0
+ progress_low
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 33
+
+ 66
+ progress_middle
+
+
+ ge
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 66
+
+ progress_high
+
+
+
+
+ all
+ row["actual_value_number"] == -1
+
+
+ actual_value_number
+
+ |
+
+ middle
+
+ 12pt
+ bold
+ 4pt
+ 4pt
+ 1pt
+ center
+
+
+ all
+ row["target_value"] && (!isNaN(row["target_value"]))
+
+
+ target_value
+
+
+ 12pt
+ bold
+ 4pt
+ 4pt
+ 1pt
+
+ Currency
+ #,##0{RoundingMode=HALF_UP}
+
+ center
+
+
+ all
+ row["target_value_number"] == -1
+
+
+ target_value_number
+
+ |
+
+
+ #F0F0F0
+ avoid
+
+
+ all
+ !row["actual_comment"]
+
+
+
+ 4
+ 1
+ 1pt
+ 16pt
+ 1pt
+ 8pt
+
+ progress_high
+ 10pt
+ normal
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 0.0
+
+ 33.0
+ progress_low
+
+
+ between
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 33
+
+ 66
+ progress_middle
+
+
+ ge
+ Finance.percent(row["target_value_number"],row["actual_value_number"],-1)
+
+ 66
+
+ progress_high
+
+
+ row["actual_comment"]
+ html
+
+ |
+
+
+
+
+
+
diff --git a/akvo/templates/reportserver/README.md b/akvo/templates/reportserver/README.md
new file mode 100644
index 0000000000..35db28bf70
--- /dev/null
+++ b/akvo/templates/reportserver/README.md
@@ -0,0 +1,62 @@
+# Reportserver templates for RSR
+
+These BIRT templates are intended to be installed on a ReportServer.
+
+They were developed using the BIRT Report Designer plugin for Eclipse, version 4.4.
+
+The RSR projects used as test cases were #2849 and its parent project #2081.
+
+
+## Deployment to reportserver
+The report has one parameter, TheProjectId, which is created on the RS as a Dataset parameter, key=TheProjectId, BIRT, query="select id from rsr_project order by id desc"
+
+
+
+## Access by URL
+
+https://reporting.test.akvo-ops.org/reportserver/reportserver/httpauthexport?key=project_results&user=user1&password=unicorns&format=pdf&download=false&p_TheProjectId=2081
+
+Since this exposes a password, even if just a dummy one, it should be hidden behind the rsr nginx proxy which can append the key/username/password query parameters. A proxy rule like this should do it, as the original query parameters will be copied over:
+
+location /report/project {
+ proxy_pass https://reporting.test.akvo-ops.org;
+ rewrite ^(.*)$ /reportserver/reportserver/httpauthexport?key=project_results&username=user1&password=unicorns break;
+}
+
+The URL will then become something like
+https://rsr.akvo.org/report/project/2849?format=pdf
+where format can be one of [WORD, PDF, HTML, PNG, EXCEL].
+
+
+During development I found it convenient to:
+
+### Set up a readonly account for the database
+```
+sudo -u postgres psql
+postgres=# create role rsr_readonly encrypted password '*************' login;
+postgres=# grant connect on database rsr to rsr_readonly;
+\c rsr
+rsr=# grant usage on schema public to rsr_readonly;
+rsr=# grant select on all tables in schema public to rsr_readonly;
+rsr=# grant select on all sequences in schema public to rsr_readonly;
+```
+
+
+### Make an ssl tunnel to the DB server
+
+```
+ssh -L 1234:psql.test.akvo-ops.org:5432 stellan@psql.test.akvo-ops.org
+```
+which allowed me to create a BIRT data source like this:
+```
+Driver Class: org.postgresql.Driver (v9.4)
+Database URL: jdbc:postgresql://localhost:1234/rsr
+User Name: rsr_readonly
+Password: ***********
+```
+
+
+
+
+
+